[
  {
    "path": ".gitignore",
    "content": ".ipynb_checkpoints/\n"
  },
  {
    "path": "Lecture 17.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# LCS \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 61,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def LCS(s1, s2):\\n\",\n    \"    # initialize state\\n\",\n    \"    n, m = len(s1) + 1, len(s2) + 1\\n\",\n    \"    dp =   [\\n\",\n    \"        [ 0 for _ in range(m)] \\n\",\n    \"        for _ in range(n)\\n\",\n    \"    ]\\n\",\n    \"    pred = [\\n\",\n    \"        [ (-1,-1) for _ in range(m)]\\n\",\n    \"        for _ in range(n)\\n\",\n    \"    ]\\n\",\n    \"    \\n\",\n    \"    for i in range(1,n):\\n\",\n    \"        for j in range(1,m):\\n\",\n    \"            # CASE 1: ignore character in s1\\n\",\n    \"            dp[i][j], pred[i][j] = dp[i-1][j], (i-1,j)\\n\",\n    \"            # CASE 2: ignore character in s2\\n\",\n    \"            if dp[i][j] < dp[i][j-1]:\\n\",\n    \"                dp[i][j], pred[i][j] = dp[i][j-1], (i,j-1)\\n\",\n    \"            # CASE 3: extend\\n\",\n    \"            if s1[i-1] == s2[j-1] and dp[i][j] < dp[i-1][j-1] + 1:\\n\",\n    \"                dp[i][j], pred[i][j] = dp[i-1][j-1] + 1, (i-1,j-1)\\n\",\n    \"    \\n\",\n    \"    print (np.array(dp))\\n\",\n    \"\\n\",\n    \"    # recover the solution\\n\",\n    \"    x,y = (n-1,m-1)\\n\",\n    \"    solution = []\\n\",\n    \"    while pred[x][y] != (-1,-1):\\n\",\n    \"        if pred[x][y] == (x-1, y-1):\\n\",\n    \"            solution.append(s1[x-1])\\n\",\n    \"        (x,y) = pred[x][y]\\n\",\n    \"    solution.reverse()\\n\",\n    \"    \\n\",\n    \"    return solution\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 62,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0 0 0 0 0]\\n\",\n      \" [0 1 1 1 1]\\n\",\n      \" [0 1 2 2 2]\\n\",\n      \" [0 1 2 2 2]\\n\",\n      \" [0 1 2 3 3]]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['b', 'a', 'b']\"\n      ]\n     },\n     \"execution_count\": 62,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"LCS(\\\"bacb\\\", \\\"babd\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 63,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[0 0 0 0 0 0 0 0 0 0]\\n\",\n      \" [0 0 0 1 1 1 1 1 1 1]\\n\",\n      \" [0 0 0 1 2 2 2 2 2 2]\\n\",\n      \" [0 1 1 1 2 2 2 2 2 2]\\n\",\n      \" [0 1 2 2 2 2 2 2 2 2]\\n\",\n      \" [0 1 2 3 3 3 3 3 3 3]\\n\",\n      \" [0 1 2 3 4 4 4 4 4 4]\\n\",\n      \" [0 1 2 3 4 4 4 5 5 5]\\n\",\n      \" [0 1 2 3 4 4 4 5 6 6]\\n\",\n      \" [0 1 2 3 4 4 5 5 6 7]]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['t', 'h', 'i', 's', 'l', 'c', 's']\"\n      ]\n     },\n     \"execution_count\": 63,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"LCS(\\\"isthislcs\\\", \\\"thisislcs\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Viterbi algorithm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"states = ('Healthy', 'Fever')\\n\",\n    \" \\n\",\n    \"observations = ('normal', 'cold', 'dizzy')\\n\",\n    \" \\n\",\n    \"start_probability = {'Healthy': 0.6, 'Fever': 0.4}\\n\",\n    \" \\n\",\n    \"transition_probability = {\\n\",\n    \"   'Healthy' : {'Healthy': 0.7, 'Fever': 0.3},\\n\",\n    \"   'Fever' : {'Healthy': 0.4, 'Fever': 0.6}\\n\",\n    \"   }\\n\",\n    \" \\n\",\n    \"emission_probability = {\\n\",\n    \"   'Healthy' : {'normal': 0.5, 'cold': 0.4, 'dizzy': 0.1},\\n\",\n    \"   'Fever' : {'normal': 0.1, 'cold': 0.3, 'dizzy': 0.6}\\n\",\n    \"}\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def viterbi(obs, states, start_p, trans_p, emit_p):\\n\",\n    \"    V = [{}]\\n\",\n    \"    predecessor = [{}]\\n\",\n    \"    \\n\",\n    \"    # Initialize base cases (t == 0)\\n\",\n    \"    for y in states:\\n\",\n    \"        V[0][y] = start_p[y] * emit_p[y][obs[0]]\\n\",\n    \"        predecessor[0][y] = None\\n\",\n    \"    \\n\",\n    \"    # Run Viterbi for t > 0\\n\",\n    \"    for t in range(1, len(obs)):\\n\",\n    \"        V.append({})\\n\",\n    \"        predecessor.append({})\\n\",\n    \"\\n\",\n    \"        for y in states:\\n\",\n    \"            highest_probability, best_y_prev = 0.0, None\\n\",\n    \"            for y_prev in states:\\n\",\n    \"                probability_from_y_prev = V[t-1][y_prev] * trans_p[y_prev][y] * emit_p[y][obs[t]]\\n\",\n    \"                if probability_from_y_prev > highest_probability:\\n\",\n    \"                    highest_probability, best_y_prev = probability_from_y_prev, y_prev\\n\",\n    \"            V[t][y] = highest_probability\\n\",\n    \"            predecessor[t][y] = best_y_prev\\n\",\n    \"    \\n\",\n    \"    print(*dptable(V), sep='')\\n\",\n    \"    \\n\",\n    \"    # Return the most likely sequence over the given time frame\\n\",\n    \"    n = len(obs) - 1\\n\",\n    \"    (prob, state) = max((V[n][y], y) for y in states)\\n\",\n    \"    \\n\",\n    \"    # Recover the path\\n\",\n    \"    path = []\\n\",\n    \"    for t in range(n,-1,-1):\\n\",\n    \"        path.append(state)\\n\",\n    \"        state = predecessor[t][state]\\n\",\n    \"    path.reverse()\\n\",\n    \"    \\n\",\n    \"    return (prob, path)\\n\",\n    \"\\n\",\n    \"# Don't study this; it just prints a table of the steps.\\n\",\n    \"def dptable(V):\\n\",\n    \"    yield \\\"    \\\"\\n\",\n    \"    yield \\\" \\\".join((\\\"%7d\\\" % i) for i in range(len(V)))\\n\",\n    \"    yield \\\"\\\\n\\\"\\n\",\n    \"    for y in V[0]:\\n\",\n    \"        yield \\\"%.5s: \\\" % y\\n\",\n    \"        yield \\\" \\\".join(\\\"%.7s\\\" % (\\\"%f\\\" % v[y]) for v in V)\\n\",\n    \"        yield \\\"\\\\n\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"          0       1       2\\n\",\n      \"Fever: 0.04000 0.02700 0.01512\\n\",\n      \"Healt: 0.30000 0.08400 0.00588\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(0.01512, ['Healthy', 'Healthy', 'Fever'])\"\n      ]\n     },\n     \"execution_count\": 8,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"viterbi(observations, states, start_probability, transition_probability, emission_probability)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.4.1\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "challenge1/.gitignore",
    "content": "coins\n"
  },
  {
    "path": "challenge1/README.md",
    "content": "# The coins challenge\n\nTo run c++ solution run\n```bash\ng++ coins.cpp -O2 -o coins\n./run_tests.sh ./coins\n```\n\nTo run Python solution run\n\n```bash\n./run_tests.sh python2 coins.py\n```\n"
  },
  {
    "path": "challenge1/coins.cpp",
    "content": "#include <algorithm>\n#include <cstdio>\n\n// OVERALL COMPLEXITY: O(n lg n)\n// (due to sorting)\n\n// maximum number of coins\nconst int MAXN = 1000005;\n\n// n - number of coins\n// k - we need k as many tails as heads\nint n, k;\n// c - buffer to hold all the characters\nchar c[MAXN];\n// array of (prefix_sum[i], i) values\nstd::pair<long long, int> seq_and_index[MAXN];\n\nint main() {\n    scanf(\"%d%d\", &n, &k);\n    scanf(\"%s\", c);\n    // for prefix sums it is important to add an extra element\n    // for empty sequence at the beginning.\n    // this is so that when we compute\n    //\n    //     seq_and_index[n].second - seq_and_index[0].second\n    //\n    // we get sum of elements for indexes 1 <= i <= n\n\n    // We reuse seq_and_index for two things\n    // initially it just stores values k and -1\n    // later we compute prefix sum\n    seq_and_index[0] = std::make_pair(0,0);\n    for (int i=0; i <n; ++i) {\n        // we convert R to k and O to -1\n        if (c[i] == 'R') {\n            seq_and_index[i + 1].first = k;\n        } else {\n            seq_and_index[i + 1].first = -1;\n        }\n        seq_and_index[i+1].second = i + 1;\n    }\n\n    // NEW PROBLEM: find longest contiguous subsequence of\n    // sum 0 (sum zero implies k times as many heads)\n\n    // compute the prefix sum\n    for (int i=1; i <=n; ++i) {\n        seq_and_index[i].first += seq_and_index[i-1].first;\n    }\n\n    // new problem: find a pair of elements in the array,\n    // that have the same value and that are furthest\n    // away possible.\n\n    int res = 0;\n\n    // sort by value.\n    std::sort(seq_and_index, seq_and_index + n + 1);\n\n    // for all groups with the same value\n    // compute max and min index in that group.\n    // update result with the difference between those indexes\n\n    int min_index, max_index;\n    for (int i=0; i <=n; ++i) {\n        if ( i == 0 || seq_and_index[i].first != seq_and_index[i - 1].first) {\n            min_index = seq_and_index[i].second;\n            max_index = seq_and_index[i].second;\n        }\n        min_index = std::min(min_index, seq_and_index[i].second);\n        max_index = std::max(max_index, seq_and_index[i].second);\n        res = std::max(res, max_index - min_index);\n    }\n    printf(\"%d\\n\", res);\n}\n"
  },
  {
    "path": "challenge1/coins.py",
    "content": "# OVERALL COMPLEXITY: O(n)\n# here we use a dictionary\n\ndef main():\n    # n - number of coins\n    # k - we need k as many tails as heads\n    n, k = [int(v) for v in raw_input().split()]\n    # coins - buffer to hold all the characters\n    coins = list(raw_input())\n    assert len(coins) == n\n    coins_as_numbers = []\n    for coin in coins:\n        if coin == 'R':\n            coins_as_numbers.append(k)\n        elif coin == 'O':\n            coins_as_numbers.append(-1)\n        else:\n            assert False\n    # NEW PROBLEM: find longest contiguous subsequence of\n    # sum 0 (sum zero implies k times as many heads)\n\n\n    # for prefix sums it is important to add an extra element\n    # for empty sequence at the beginning.\n    prefix_sums = [0]\n\n    # compute the prefix sums\n    for coin in coins_as_numbers:\n        prefix_sums.append(prefix_sums[-1] + coin)\n\n    # new problem: find a pair of elements in the array,\n    # that have the same value and that are furthest\n    # away possible.\n\n    # this dictionary maps from array values,\n    # to the index of prefix_sums, where the value\n    # occurs for the first time\n    # Specifically leftmost_index_of_value[S]\n    # is equal to smallest such i that prefix_sums[i] = S\n    # NOTE: it is build iteratively left to right\n    leftmost_index_of_value = {}\n    for s_idx, s in enumerate(prefix_sums):\n        if s not in leftmost_index_of_value:\n            leftmost_index_of_value[s] = s_idx\n\n    res = 0\n    for s_idx, s in enumerate(prefix_sums):\n        res = max(res, s_idx - leftmost_index_of_value[s])\n\n    print(res)\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "challenge1/run_tests.sh",
    "content": "#!/bin/bash\n\n# stop script on error and print it\nset -e\n# inform me of undefined variables\nset -u\n# handle cascading failures well\nset -o pipefail\n\nSCRIPT_DIR=$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\n\nfor filename in $SCRIPT_DIR/tests/*.in; do\n    output_filename=${filename::-3}.out\n    time $@ < $filename | diff -bs - $output_filename\ndone\n"
  },
  {
    "path": "challenge1/tests/mon0.in",
    "content": "15 3\nRORROOROOROOORO\n"
  },
  {
    "path": "challenge1/tests/mon0.out",
    "content": "8\n"
  },
  {
    "path": "challenge1/tests/mon10a.in",
    "content": "1000000 2\nRRRRRROORRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROOORRRRRROORRRRRRRRORRORRRRRORRORRORRRORRORRORRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRORRRRRORORRRRORRRORRORROORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRORORORRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRORRRRORRRRRORRORRRRRORRRORRRRRRRRORRORRRRRRRORRRORORRRORRRORRRRORRROORRRRRRRORRRRRRORRORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRORRRRRROROORRRRRRRRORRRRRRORORRORRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROOORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRROORRRORRORRRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRROORORORRRORRRORRRRRRRRRRRRRORRRORRORRRRRRRRORRRRORRRORORRRRRORRRRROROORORROORRRORORRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRRRORORRRRRRRRRRRRRRORRRORORRRRRRRRRRORRORRRRRROROORORRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRORRRRRRORORORRRRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRORRRORRRRRROORRRRRORRRRRRRROOORRRRRRORRRRORRRRRORRRRRRRRRRRORRRRRRROROOORRRRORORRRRRRRRRRRRRRRRRRROORRORRRRRRRORRRRRRRRRRORRRRRORORRRRRRORRRRRORRRRRRRRORORORORRORRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRORRRRRRORRRRRORRRRRRORORRRRRORRRORORRRRRRRRRORRRRRORRORRRRRRROOROOORRRORRRRRRRRRRRRORORRRORORRRRRRRROROORRRRRRRRRRORORRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRORRRRORRRRRORRRROORRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRROROORORRORORRRRORRRORORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRORORRORRRORRRRRRRRORRRRRRRRRRROROORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRROROORRRRRRRRRRRRRORRRRRROORORRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRORRORORRRRRRRRORRRRRROORRORRRRRRROROOORRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRORRORRRORRORRRRRORORRRRORRRRRRRRRORRRRRRRRRRRROORRRRORRRRRRRRRRORORORRROORORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRORORRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRORRRORRRRRRORRRRRORRORRRRRRRRORRORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRORORORRORRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRORRRRRRRRORRRRRORRRROORRRRRRRRRRRRRRORRRORRORORRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORORORRRRROORRRRRRRORORRROORRRRRRRRRRORRRRRRRRRRRRORRROORRRRROORRRRRRORORRRRRRRRRRRRRRRRORRRRRORRRORORRRRORRRRORRRRRRRRRROOROOORORRORROORRRRORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRORRRRRRORRRORRRROORORORRRORRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRRRRORRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRROORRRRRRRRORRRRROORORRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRROORRRRRORRRRRRORRRRRORRORRRRRRRRROROORORRRRROOORRORORRORRRROORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRROORORRRRORRRRRRRRRORRORRRRRORRORRRORRRRRRRRRORRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORRROORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRRORORRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRRROORRRROORRRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRROORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRORRRRORORRRRRORRRORRRRRRRRRRORRORRRRRRRRORORRRRRORORRRRRRRRRORRRRRRRRRRROORRORRRRRRRRRRORRRORORORRRRORORRRRRRRRORORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRROORRORRRRRRRRRORRRRORRRRRRRRORRORRORRRRRRRORROORRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRROORORORROORRRRRRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORROORORRRRROORRRRROORRRRRRRRRRRRRORRORRRRRORRROROORRRRROORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRROORORORORRRRRRRRRRRRRRRRRRRRROROOORORRORRRRRRRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRROORRRRRRRRRRRROORRRRRRORRRRRRRRRORORORRRRRRRRRROORRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORROORRRRRRORRRRRROROORRRRRRROROORORRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROROORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRROORORRRRORRORRRORRRRRRRRROOORRRRORRRRRRRORRRRRRRRROORORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRROROOORRRRRRRRORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRORRRRRRRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRORORORRRRRRRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRRRORRORRRORORRRRRRRRRRRRRORRORRRRRORRRORRRRRORRRRRRRRRRORORRRRRRORROORRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRROROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORROOROORRRRRORRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORORORORRRRRRRRORROORRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRORRRRRRROORRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRORROORRRORRRRORRRRRRRRRRRRRORORRRRRRRRRROORRORORRRRRRRRRRORRRRORRRORORRRRRRORRRRRORRRORRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRORRRRROORORRORRRORRRRRRRRRRRRORRRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRORRRRRRRORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRORRRRRRRRROORRRRROORRRRRORRRRRRRRRRORRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRORRRORRROORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRRRRORRRRRRRORRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRORRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRORRRROORRRORRRRRRRRORRRRRRRRRORORRRORRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROORROORRRRRRRORORRRRRRRRRRRORRRRORRORRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRORRROOROORORRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRROORORRRRRRRRORORRRRRRORORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRORRORRRRRORRORRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRORRRRRRORRRRRRRRRRRORRRORORRRRRRRRRROORRRRORRRORRORRRRRRRRRRRRROORORRRRORRRRRRRROORORRRRRRRRRRRRORRRRRRRRRRRRRROOROROORORORRRRORORRRORRRRRRRRRRRORROROROORRRRRRRROORRRORRRRRORRORRRRRRRRRRRORORRORRRRRRRRRRRRORRRORRRRORRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRORRORRRRRRORRRRRRRORRRRRORRRORRRORRORORRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRORRORRRRRRROOORORRRRRRRORRRRRRORORORRRRRRRRRRORRRRRRRRRORORRRRRRORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRRORRRRRRRORRRROROROORRRORRROORRRRORRRRRORRRRORORRORRRRRRRRRRRORRRRRRRRRROORORRRORORRRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRROROORRROORRRRRRORORRRRRRRRRRRRRORRRRRORRORRRRRORRRRORORRRRRRRORRRRRORRORRRRRRRRRRRRORRORORRRRORRRRRRORRORRRROOORRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRRRORORRRRRRRRORRRRRRRORORRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRROOOROORRRRRRRRRRORRRRRRRRRRRRRORRORRORRORRRRRRRRRRRRRRRRROOOOOORRRRRRRRRRRORRRRRORRRRRRRRRRRRORORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRORORRRRRRRORORRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORORORRRRRRRRRORRORORRORRRRRRORROORORRRRRRRRRRRRRORRRRRRRRRRRRORORORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRORRROOORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRORRROORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORORRRRRRRRORRRRRRORRRRRRRRRRORRRRRORRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRORRRRORRRRRORRRRRROORRRRRORRRORRRORRORRRRRRRORRRRRRORRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRORRROORORRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRORRRRRORRORORRRORRRRRORRRRORRRRRRRROORRRRRRRORRRRORRORORRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRROROROORORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRORORRRRORRRORRRRRRORRORRRRRRRRRORRROORORRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRORORRRORRRRRORRRRRRRROORRRRRRRRRRRRRRRROORRRRRRRRORRORRRRRORRORRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRROORRRRROORRRRRORRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORROORRRRRRRORRRORRRRRROORRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORORRRRRORORRRRORRRORRRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRORRRORRRRRRORRRRRORORORRRRRRRRRROORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRROORRRRRRRRORRRRRRRRORRRRORRRRRORRORRRRROORRRRRORORRRRORRRORORRORORRRRORRRRRRRORRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRORRRRORRORRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRROOOORRROORRROORRROROORORORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRORRRROORRRRRORORRRRRORRRROROORRORRRRRORORORRORRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRORRRRRRRRORRRRRRRRRRRORORRROORRRRORRRRRORORRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRROROORRORRRRRRRRRRRRROOORRRRRRRORRRRRRROORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRORRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRORRRRRORRRRRRRRROOORRRRRRRRORRRRRRROORRRRRRROOROORORRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRROORRRORRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRROORRRRRORRRORORRORORORRRORRRRORRRRROORORRRORRRORRRORRRRRROROOORRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRORRORORRORORRRROORRRRORORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRRORRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRORORRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRROROORRRRRRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRORORRRRRORRRRRRRORRRRRORORRRRRORRRRRRRRRRRORRRRRRRRRRRROOORRRRRORRRORRRRRRORRRRRORRORRORRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRORRRORORRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRORRRROORRORRRRRRRRORROOORRRRROORRRRRRRRRRRRRRORRRORROORRRROROORRRRORRRRRRRRORRRORRRRRRRORRRRRRORRORORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRORORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRORRORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORORRORRRORRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRROORRRRRRRRRORRRORRRORORRORRRRRRRRORORRRRRRRRRRORRRRRRRRORRRRRORRORRRRRORRRRRRRRRROORRRRRRORORORRRRRORRRRRRORRRRRRRRRRROORRRRRROORROOORRRRRRRRORRROROROORRRORRORRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRROOORRRRRROORRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRORRRRRRRROORRRRRRRRRRRORRRRRORRORRRRRRORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRRRRRORRRORRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORROROORRRRORRRRORRRRRORRRRRRRRORRORRORRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRORORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRORORRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRORRRRRRORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRORRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRORRRRRRRROORRRRRRRRRRRORRRRORRRRRRORRORRRORRRRRRORRORRRRRRRRRORRRRORRORRRRRRRRRORRORORRRORRRRRRRRRRORRRRORRORRORORRORRRRRRRORRORORRRORRRORRRRRRORROORORRRRRRRRRRRRRRRRRROROOORORRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRROORRORORRRRRORRRRRRRRORRRRRORORRORRRRRRORRORRRRORRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRORRRORRRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRORRRRRRRRRRROORRRRRORRRORRRROORRORORRRRRRORROROORRROORRRRORRORRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRORRRRRRRRORRRRROORORRRRRRRRRRRRRRRORRRRORRRRRORRORRORRRRORRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRORROOROROROORROORRORRRRRRRRORORRRRRRRRROROORRRRRRORORRRRORRRRRRRRRORRORRRRORROORRRRROORORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRROORROORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRORORRRRRORRRRRRRRRROORRRORRRORROORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORRORRORRRRROORORRRRRRRRRRRORRRRRRRRRRRRRORORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRORRROROROROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRROORRRRRORRROORRRRROORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRROORRRORRRORORRRRORRRRRRRORRRRRRRORRRORRORRRRRRORRRRRRRRRORORRRRRRRRRRORRRORRRRORRRRORRRROOORORRRORORRRRRRROOROORRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRROROORRORRRRRRRORRRRORORRRROORRRORROOORRRORRRORROORORRRRRRRRORRRRRRRRRRRRRRROOROORRRORORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRROORRRRRRRROORORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRROORRRRORRRRRROORRRRRRRRRRROOORRRRRORRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRORRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRORRRRRORORRRRRRRORROORRRRRRRRRRRORRRRROORRRRRRRRRRROORRRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRORRRORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRRRRORRRRRRRRRRRRRRRRRORRORRRRROORRRORORRRRRORRRRRORROORRRRRRRRRORRRRORRORRORORRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRORRROORRRORRRRRRRROORRRROORRRRORORRRRRORRRRRORRRRRROROROOORRRRRRORRRRORRRORRRORRRRRRRRRRRORRRRRRRRRROOORRRORRRRRORORORRRRRRRORRRRRRRRRORORRRRROROORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRRRRRORRRORRRRORRRORRRORRRRRROORORRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRORRROORRRRRORRRORRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRORRROORRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRORRORRRRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRORORRRRRORORORRRRORRRRRRORRRRRRRRORRRORORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRROROROORRORRRRRRRRRORRRRRRRRRORRRRRRRROORRORRRRRRRORRRRORRRRRRRRRRORRORRRRORRRRRORRRRRRRRRORRORRRRRRORRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORROORRRRORRRORRRRRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORORRRORRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRROORRRRRRROORROORRRRRRORRRORRRRORRRRRRRRRRROROORRRRORRRRRRORRROORRROORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORRRRRORRRRRROORRRRRRRRORORRRRRORRRRRRRRRROOORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRRORORORRORRORORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRROORRORRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRORRRORRRROORRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRORRRRRORRRROORRROORRORRRRRRRRORRRRRRRRORRORRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRORORRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRROROROORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRROORRRORORRRRRROORRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRORRRRRRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRORRRRRRORORRRRRRRRRRRRORRROROROORRRORORORRRRORRRRORRRRRRRRRRRRRRORRORRRORRRRROORRRRRORRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRORRRRRRRORRORRRORRRRRRRRRROOORRORORRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRROORROROORRRRRRRORORRRRRORRROORRRRORRRRRRRRRRROORORRRORRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRORRRORRROORRRRORRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRROORRROORRRORRRRRRORRRRRRRRRRROROORRORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRORRRRORRRRRRROORRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRORRRRORRORRRORRRRRRRRORRRRRRORRORRRRRRORRRORORORRRRRRRRRRRRRRORRRRORROORRRORRRROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROOORRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORORRORRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRROOORRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRROORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRORRORORRRRORRRRRRRRRRRRRORORRRRRROORRORRORRRRRRRORRRRRRRRORRRRORRORRRORRRORORRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRROORRRORORRORORRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORORRROORRRRRORRORRRRROORRRRRRORRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRROORRORRRRRRORORORRORORORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRROORRRORRRROORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRROORORRROORRRRRRORRORRRRRRORRRORRRRRRRRRRRRROOOORRRORROROORRRORORRRRRORRROORROROORORROORRRRRRRROORRRRRRRORRRRRRRORRRRRRRRRRRRRRROORROORORORORRRROORRRRRRRRRRRRRRRRORRRRRRRROOOROORRRRRRRRRRRRORRRRRRORORORRORRRRRRRRRRRORRRRROORRORRRRRRRRRROORRRRRROOORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRORORORRRRRROOROROORRORORRRRORRORRORRORRRRRRRRRORRRRRRRRORORRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRROROORRRRRRRRRRRRRRRRORRRRRRRROORRRROORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRORRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORORRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRORORRRRRRRRRRORORRRRRRRRRRRROROOOORRRRRRRRRORRRRRORRRRORORROORRORRRRRRRRRRRORRRRRROROORORRRRRRRRRRRRRRRRRRRROOORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRORORRRORRRRRRRRRRROORRORRRRRORRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROOORRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRORRRRORORRORRRRRORRRRRRRRRRORORRRRRRRORORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRORRORORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRORORRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRORRRORRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRORRRRRRRRRRRRRORROORRRORRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORROOROOORRORORRRORRRROORRRRRRORRRRRRRRORRORROORRRRORROORRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRORRRORORORRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRROORRRORRRRORORRRRRRRRRORRRORRORORRRRRRRRORORRRRRRORRROOORRRRRRRRRRRRORRROORORRRORROORRRRRROORRORORRORRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRORRRRRROORRRRORRRORRRRRRROORRRROORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORORRRROORRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORORRROORRRRORRRRORORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRRORRRRRRRORRORORRRRRRRRRORRRORORRORRRRORRRRRRRRRORRRRRORRRORRORRORRRRRORRRRRRRRRORRORORRRRRRRROORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORORORRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRRROROORRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRRROORRRRRRRRROROORRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRORORRRORROORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRORRORRRORRRRRRORORRRRRRRRRRRRRRRRRRORROORORRRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRORRORRROORRRRRRRRRRRRORRRRRRRRRORROORRRRRROROORRRRRRRRRORRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRRROROORRRRRRRORRRRRROORRRORRRRRRRRRROROROROORRRORRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRROORRRORRRRRRRRRRRRORRRRORRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRORRRRORRRORRRORRRRRRRROORRRRRRRORRRRRRROROORRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRORRRROORRRRORRRRRRORRORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRORRRRRORRRRRRRRRRRRORRRORRRRRRRORRRORRORRRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRROORRRRRRRRRRRRRORROORRRORRORRRRRRRRRRRRRRRORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRROORRRRRRRRORROORRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRRRRRRROORORRRRRRRRRORRORRRRRRRRRRRRRORRORRRRRRRRRORRORROROORRROORORRRRRRRRRRRRORRROOROORRORRRRRRRRRRRRRROROORRRROORRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRROORRORRRRORRRRRORORRRRRRRORRRRRORRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROROORRRORRORRRORRRRORRRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRORRRRRRRRORRRRORRROORRROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRROOORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRRORORRORORRRRRRORORRRORRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRORRORORRRRRRORORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRRRORRORRRRRORRRORRROORRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRORRORRRRORRRORRORORRORRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRORORRRRRRORRRRORRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRORRRRORRORRROOROORRRRRRRRRRRRRRRRORRRRRRROROORRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRROORORRRRRRROORORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRORRORROORRORRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRROORROORRROROORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRROORRRORRRORORRORRRORORRRRRRORORRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRORRRROROORRRORRRRRRRRRRORRRRRORROORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRORORORRRRRRRRRROORRRRRRRRRORRRORRRRRRRORRRORORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRROORORRRORRRRORRRRRRRORRRRRRRORORORRRRRRRRORRRRRRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRROORRRRRROORORRRRRORRRRRRRRRROOROORORRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRROORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRORRRRRRRRRRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRORRRRRORORRRRRRRRRRORRORRRRRROORORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRORORRROOORORORRRRRRRORRRORRRRRRRRRRRORRRRRRRRROOORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRRRRORRRRRRORRORORRRRORORRRRRRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRROORRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRRORRRRRRORROOROORRRORORRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRRORRRRRORRORRRRORRRRRRRROOROORRRRRRRRRRORRRROROORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRROORROORRRRRRRRRORRRROOOORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRROOROORROORORRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRRRRRRORORRRRRRORORRORRRRRORRRRRRRRRRORRRRRORRORRRRRORRRORRRRRRRRROORRRRRRRRRRRORRORRRRRRORRRRRRRRRRROORRRROORRRRRORRRRORRORRRRRRORRORRRRRORRRRORRRRORRRRORRROROORRRRRRRORROROORRRRRRRORORRRRRRRRRORRRRRRRRRRORORRRRRRRRORRROORORRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRRRRRRRROORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRORRORRRRRRORORRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROOOORORRRRRRORRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRRRRROORRRRRRRRORORRRRORRRRRRRRRRORRORRORRRROORRORRRRRRRORRRORRRRRRRRORORRRRRORRRRRRRRRRRRROOROORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRORRORRRRRORRORRRRRRRRORRRORRRRROROORRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRORRRRRORRRRORRRRORRRRRORRRRRRRRRORRRORRRRRRRORROROORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRORORORRRORRRROOORRRRRORRORRRRRRRORRRRORRRORRRRRRROORRRRRRRRORRRRRRRRRRRRORORRRRORRORORRRRORRRRRRRRROORRORRRRRORRRRRRORRRROORORRRRRRRRORRRRRRRRRORRRRORORORRORORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRORRRRRRORRRORRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRROOOROROROORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRORRRRORRRRRORRRRRORRROORRRRRORRORORRORROORRRRRRRRRRRRRRRROORORRRRRRORRRRROOORORRORRRRORORRRRRRRRRRRORRRRRRRRRRORRRROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRORRRRRRORRORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRORRRROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRRORRORORRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRRRRORRRRRORRRROORRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRORORRRRRRRRRORRROORRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRROOORRRORORRORRRRRRRORRRRRRORRORRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORORRRORRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRORRRRORRRRRRRORRORRRRRRRRRRRRRROORORRRRRRRORRRRRORORORRRRRORRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORRRRRRRRORRRRORRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRROROORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRORORRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRORRRRRORRRRRRROORRRRRORRRRRRROOORRORRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRORROOOOORRRORORORRRRRRRRROOROORRRRRORRRORORRRRRORRORRRRORRORRRRORRORRRRORRRRORRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRROORRRROORRORRRORRRRRORRRRRORRRRRRRRRORRORRRRORRRORRRRROROORRRRRRORROORRRRORROORRRRRRRROORORRRRRRRRRRRRRRRORRRRRRORORRORRRRRRRORORRRRRRRRRRORORRRORRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRROOORRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRORRRORRROORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRORRRRRRRRORRRRRRORORRRRRRORRRRRORRRORORRRRORRRRRORORRRRRORRORRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRROORRRRRRORRRRRORRRRORORRRRRRRORRRRRRRRRROORRRRRRRRROORRRRRRORRRORORRRORROORORRRRRRRRRRRRRRRRRORRORRRRRRRRRRROORROROORRRRRRRORORRRRORRRRORROORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRROROROORRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRRROORRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRORRRRROORRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRORRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRORRRRRRRROOORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRORRRRRRRRRORRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORORRRORRRRRRRRRRRRRRORRRORRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRORRRORROORRRRRRRRROOORROORRORRRRRRRRRRRRRORRRRORRRORRRORORRRRORRRORRRRORRRRRRRRRORRRRRORRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRORRORRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRORRRRRRORRRORRRRRORRRRRORRRRRORRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRROORRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRRRRRORRORRRRROORRRRRRRRRRRRRRRRORRRRRRROOROROORRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRRORRRRORORRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORORORRRORRRRRRORRRRRRRORRRRORRORRRRRRRRRORRORRRORRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRORORRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRORRRRORRRRRORRRRRRRRORRRRROORRRRRORRRRROOOORRRROORRRRRRRRRRRRRRRRRRRROORRROORRORRRRRORRRRRORRRRORRORRRRORRORRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRORRRORRRRORRORRRROOORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRORROOORRRRRRRROORRRRRRORRRORRRRRORRRRORRORRRORRROORRRRRRORRRRRRRRRRRRRRROOORRRRORRRORRRRRRRORRRRORRRRRORRRRRORRRRRORRRORRRRRRRRRRRRRROORRRRRRORRRRRORRRRRRRRRRRORRRRRRROORRRRRORRRRORRRRRRRORRORRRRRRRRROORORRRORRRRRRRRRRRRRROORRRRRRRORRORORRRRRRRRORRRRRRRRRRORORRRORORRORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRORRORRORORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRORRRRRROORORRRRORRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRORRRRORORORRROROORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRROOORRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRROOORRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRORRRRRRORRRRRRRRORRRRORRRRRORRRRRRRRRRRRORRRORORRRRORRRRRRRORRRRRORRRORRRORRRRRRRRRRRRRRROOORRRORORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRROORRRORRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRORRRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRORRRRRRRRRRRRRRRRRRORRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRORRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRROORRRROORRRRRRROORRRRORRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRROROORRRRRRRRRRRRORRORRRRRRORRRROROORORRRORORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRROORRRORRROORRRRRRRRRORRRRRROORRRRRRROORRRRORORRROORORRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOOORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRORRRORRRRRRRORORORRORRRRRRRROORRROORRRRRRRRRRRRRRORRRROOORRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRORRRRROORRRRRORRRRRRRORORORORRRORRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRRRRRRORRORRRRRRORRRORRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRROORRRRROORRORRORORRROORROORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRRRORORRORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRORRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRROORORRRRRRRRRRRRRRRRRRORRORRRRORRRORRRORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORORRRRRORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRORRORRRRRRORRORRRRORRRRORRRRRRRRRRRRRRORROORORRROORRORRRORRRRORRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRROORRRRROROROROROORRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRRRRORRRRRRRRRRRRRRRRRRROORRROOORORRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRROROORRRRRRORRRRRORORRORRORRRRRRORRRRRORRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRROORRRRRORORORORORRRRORORRRRROOROORRORRORORRRRROORRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRORRRRRORRORRRRRRRRRRORRRRORRROORRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRORRRRRRRRRRRRRRRRORRROOORORRRRRORRRORRRORRRRORRORRRRORRRRRORRRRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRROROROORRRRRORRORRRRRRORROOORRRORRORRORRRRORRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRROORRRRROROORORRRORRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRROROOORRRRORRRRRRRRRRORRRORRRRORRRRORRORRORRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRORRRORORRRRRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRRORRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRORRRRRRORRORRRRROORRRRRORRRRRORRORORRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRORRRRRRRRRORORRRRRORRORORRRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRORRRORRRRRRRRRORROOORORRORORRRRRRRRRRRORRRRRRRRRRRRRRROOOORRRRRRRRRRRORRRRRRRORRRORRRRRORORRRRORRRRRRRRRRRRRRRRRROORRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORRRRRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRORRRRORROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRORRRRORRRRRRRORORRRRROOORRRRRRRRORORRRORRRORORRRRORRORRRORRRRRRRRRRRORRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRORRRRRRRRORROORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRORORORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRROORORRRRRRRRRROORRORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRROORRRORRROOORORRRRRRRROORORRRRORRRRRRRRORRORORRRRORRRRORRRRRRRRORRRRRRRRRORRRRRRRRRORRORORORRORRRRRRRRROROORRRRRRRRORRRRRRRRRRROORRRRROORRORRRRRRRRRRRRRRRROROORRRRRRRRRRRORRORRRRORRRRRRRRRRRORRRORRRRORRRRRRORRRORRRRRRRRRORRORRROORRORRRRRRORRRRORORRRRRROORRRRRRROORRORRRRORRRRROOORORRORRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRORORRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORORRRRRRRRORORRRRRRRORRRRRRROORROORRRRRRRRRRORRRRROROORRRRROORORRORRRRRRORRRRRRRRORRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRORRRRRRRRRRROORORRRRRRRORRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRRORORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRRRORRRRORRRRRRRRORRRRROORRRRRRRRRRRORRORORRRRRRRRRRORRRRRRORRRRORROORORRRRRRORRRRRRRRRRRRRRROROOROOORRRRRORRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRORRORRRRRRRRORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRORRRRORORRORRRRRORRRRRORRORRRRRRRRRORROOROORORRRRRRRORRRRRRRRORRRRRRRRRROORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROOORRRORRRRORORRRRRRRRRRORRRORRORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRORORROORRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRROOORRRRROORRRRORRRORRRRRRRRRRORRORRRRRRRRRRRORRRORRRORRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORRORORRRRRRORRRRRRRRRRRRORORRRRRRORORRRRORRROORRRRRRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRRORORRRORRRRRRRRROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRROORORORRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRROORRRRRORRRRORRRRRRRORRORROORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRROROOORRRRRRRRRRRRRRRRORORRRORRRRORRORRRRORRRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRROOORRRRRORRRRORRRRRORRRORRRRRRRRRRRRORRRRORORRRORRRRRORORRRRRRRRRRORRRRRROROORORRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRORORRRRRRROOORRRORRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRORRRRRROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRORRORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRORRRROORRRRRRORROORRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRROOORRRRRRORRRRRRORRRRORRRRORRRRRRORRRRRORRRROOORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRORORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRORRRRORRRORORRRRRRRRRRRRORORRORRRRRRORORRRRRRRRRRRROOORRRRRRROORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRRRORRRORORRRRRRRRRRRRORRRORRRRRORRRRRORRRRRRRRRRORRRRORORRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORROOORRRRRORRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRORRORRORRRRORRRRRRRRRRROORRROOORORRRRRORRRRRRORRRRRORORRRRORRORRRORRRORRRRORRRRORRRORRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORORRRRRRRRRRRORORRORRRRRRRRRRRRRROORRRROORORRRRRRRORRRRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRRRORRRRRORRROORRRRRORRRRRRROORRRRRRRRRRRRRRROORRRRRRORRRORRORRRRRORRRRRRRRORRRRRORRRORRORRRRRRORRRRRRRRRORRRRRRORRROORRRORRRROORRRRRORRRRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRORROROOORRRRRRORRRRORRRORRORRORRRRRORORRRRRRRRRRROORRRRRRRRRRRRRORORORRRRORRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRROORROORRRRRRRRRRROOOORRORRRRRRRROORORORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROORRROORORRRRRRRRORROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRRRORRRORRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRORRORRRRRRORRRRRORORRRRRRORRRORRRRRRRRRRRRRRRRROROORRORRORRORRRRROORRRRRRRRRROROORRRRRRRRRORRRRRRRRORRRRRRORRRRORRRRRRRORRROORRROROROROORORRRRRRRRORRRROROROROORRORRRORRRROORRRORRRORRRRRRORRORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRROORORRRORRRRRRORRRRORRRRRRRRRRORORRRRRRRORRRRRRORROORRRRORRRRROORRRORORORRRRRRRRRRRORRRRRRRRRRRROOROORORRRRRRRRORRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRORORRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORROORRRORORRRRRRRRRORORRORRRRRORRORRRORORRRRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRORRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRROORROORRORORRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRORORRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRRRRROORORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRROORRRRRRRRRORRRRRORORRRRORORRRRRRORRRRORRRRRRORRRRRRRORRRROORRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROORRRRROORRORRORRRRRORRRORRRRRRROORRRRRORRRRRRRRORRRROORRRORRRRRRORRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRORRROOORRRRORRORRRORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRORRRORRORRRRRRROORRRRRORRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRRORRRRRRRRROROORORRRRRRRORRORRRRRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRORRRRRRRORRRRRORRORRRRRRRRRROORRRRRORRRRRRORRRRRRRRRRORRRRORRRRORRROORRORRRRRORROORRORRRRRRRRRROORORRRRORRRRORRRRORRORRRRROROORORRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRRROROROROORROORRRRRRRRRRRORRRRRRRORRRORRORRORORORRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRROORRROORORRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRROROORRRRRORRRRRRRORRRRRRRRROROORRORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRORRORRROORRRORROORORROORRRRRRRRRRRORRRRRRRRRROROORRORRRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRROORRRRORRRRRRRRORORRRRORORRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRROROORRRRRRRORRRRRRRRORRORRRROOOORRRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRORORRORRRRRRRORORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRRRRORRRRRRRRRRRORRRRRORRORRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORORORORRRRORORRRRORRRORRRORORORRRRRRRROORORRRRRRRRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRORROORRRRRRRRRORRRRORRORORRRRRRRRRRRRRRORRRORRORRRRRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRRORORRRRORRRORRRRRRRROORRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRORRRRRRRRRORROORRORRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRROORRRORRRRRRROOORRRROORRRORORRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRRROOOORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRORORRRROOORORORRRORRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRROORRROOROROOORRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRORRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRORRRRRRORRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRORRRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRORRROORRRRRRRORRROORRRRRORRROORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORORROORRRORORRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORORORORRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRORRORORRRRORRRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRROORRRRRRORRRRRRRORRRRRRRRROORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRRRRRORRRRRRRRRORRRROORRRRRROORRRRRRRRRROORORRORRRRRRORRRRRRRORRRORRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRORRRRRRRRORRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRORRRROROROORRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRORRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRORORRRORORRORRRRRRORRORRRRRRRRRRROORRRRRRORRRRROORRRORRRROORRORRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRROORORRRRRRRRRRORRRRORRRRORRRRRORRRRRRRRRRROOROORROORRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRORRORORRRRRRRRRRRRRRRRORRRRRRORORORRORRRRORORRRORRRRRRRRRRRRRRRRROOROORRRRRRRRRRRROORRRRRRORRRRORRRORORRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRORRRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORORRRORRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRORRRRRRRRORORORRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRROORRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRROORRORORRRORRORRRRRRORRROORORRORORRORRORRRRRRRRRRRORROORRRRRRRORRRORORRRRRRRRRORROROORRRRRRRORRRRRRRRRRROORRRORRORRRORRRRORROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRROROORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRRORRORRRORRRORRRRORRRRRRORRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRROORORORRRRRRORRRRRRORRRRRRORRRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRORRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRORRRRRRRRROROORORRRRRRRORRRRRORRRRRRRRRROROORRRRRRRRRRRRRRORORRRRRRROORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRROORORRRORORRRRRORRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRORRRRRRORRRRRRRORRORORORRRRRRRRRRRRRRRRRRORRRORORRRRRRRORRRRRRRRRRRORRRRRRRRRORRORRRRORRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRROOORORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRROOORRRRRRROORORRRRRRRRORRRRRRRRRRRORORORRORORORRRRORRRRRRRRROORRRRORRORRRORRRRRRORRRRRRRORRORRRRRRRRRRORRRRORRRRRRRRORRORRRRRRORRORRRRRRRROOORRRORRRRRRORRRORRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRORORRRORRROORRRORRRRRORRRROROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORORRRRRRRORRRORORRRRRROORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRORRRORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORORRRRROORRRRROORORRRRRRRRRORROORRRRRORRRRRRRORRORRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORROORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRROORORRRORRRRRROOORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRRORRRORRRRRORORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRORRRRROORRRRRORRRRRRORRORRRRRORRORRRRRRRRRRRROORRRRRRRRRORRRRORRRRRRRRORRRORRRROOORRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRORORRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORROORRRRRROORRRROORRRRRRRRORRRORRRORRORRRORRRRRRRRRRRRORRRRRRORORRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRRRRRRRORRORRRRRRROORORRRORRRRRRRRORRRRRRORORRRROORRRRRRRROORRRORRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRORORRRRRRRRRRRORRRRRROORRRRRRORRRRRORORRRRRRROORORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRROORORRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRROOORRRRRRRRRORRROORRRORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRRRRRRRRROROORRRRRRORRRRRRRRRRRORRRRRRRRRORRRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRROORORRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRORROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRRORRORRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRROROORRRRRRRRRORRRORRRRORRRRRRRRRRRRRORORRRRRROROORRRRRRRRORROROORRRRRRRRRORRORRORORORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRROORRORRRRRRRORRRRRRORRRRRRROORRRRRRRORRRORRRRORORRRRRORORRORRRRRRRORRRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRRORRORORRORRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRROORRRRRRRRRORRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROROORRROORRORRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORORRORRRRROORRRORRRRRRRRORRRRRORRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRROORRRRRORRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRORRRORRRRRORRRRRRRORRRORORRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRORRROORRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRORORORRORRRRRRRRRRRRORORRRRRRRRRRORRROOROORRRRRRORORRRRRRRRRRRRRRORORRORRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORROORRRRRRRRORRRRRRRRRRRORORRRRRRORRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRORRRORORRRRRRRRRROROORORRRRRRRRRORRRRRRRRRRRORORRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRRRORROORRRORRORORRORRROROORRRRRRRRORRRRORROORRORRRRRORRRRRRRORORRRRORRRORROORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRORROORRRRRRORRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRORORROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRORRRROORRRORRRRRRRRRORRRROORRRRRRRRRRRROOORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRROORROORRRRRRRRRRRRORRRORRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRRRRROORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRORORRRRRRRORRRRRRROORRRRRRRRRRRRRRRORRRORRRRRORORRORRORRORRRRRRRRRRRRRRORROOORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRORRRORRORRORRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRRRORRRROROORRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRROORRRORORRORORRRRRRORRRRRRRRRRRRRORROORRRRRRRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRROORRRRRRRRRRRORORRRRRORRRORROROORRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRROORROORRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRORRRRROORRRORRRRRRROORRRRRRORRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROROORRRRRRRRRRRORORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROOROOORRRRRORRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRORRORORRROROOORRRRORRRRRORRRRRROORRRRRRORRORORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRROORRRRRRRROORRRRRRRRRRRROORORRROORORRORRRRRRRRRRRRRROORORRRORRRRRROORORRRRRRRRRRRORRRRRRORRRORRRRRORRRRRRRRRRRRRRRRORRRRORRRROOORORRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORORRRRROORRRRRORRRRRRORRORORRRRRRRRRORRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRORORRRRRORRRRRORRRORRORRRRORRRORRRRRRRRORORRRRRRRRRRRRRRORORRRRRRORRROORORRRRORRRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRORORRROORRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRORRRRORRRRRRRRORRRROROORRRORRRRRRRRRORRRRRORROORRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRROOORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRORRORRORRRRRRORRRRRRRRRRRRRRRRRROORRRRRORRRORRORORORRRRRROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRORRRORRRRRRRRRRROOORORRRRRRRRRORRRRRRRRRORRRRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRORROORRRRRORRRRRRROOORRRRRRRRRRRRRRRORRRORORRRRORRRRRRRORORORRRORRRRORROORORORORRRORRRROORORORRORRRRORRRRRRRRRRRRRORRORORRRRRRRROORRRORORRRRRRRRRRRORROORRRRROOORRRORRRRRROOORRRRROROORRRRRRRRRRORRRRRRRORRORRORRORRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRORORRORRRRRRORORORORRRRRRRRRRRORRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORORORRRRORRRRRRORRRRRORRRROORRRRRRRROORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRROORRRORRORRRRRRRORORRRRRRRRRRRRRORORRRORRRRRROORRRRRRRRORRRRRRRRRORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORORRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRRRRRRROORORRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRORORRRRRRRORRRRRRROORRRRORORRRORRRRRRORRORORRRRORRORRRORRRRRRRORRRRROROOROORRRRRRRORRRRORRROORRRROORRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRORRRRRORRORRRRRRORORRORORRRRRRRRRRORRRRRRRRRRRRORRORRROORRORRRORRRORRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORROORRRRORORRRRRRRRRORRRRRORRRORORRRORRRRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRROORRRRRRRRRORRRRRRRRRORRROROORRORRRRRRRRRRRRORORRRRORRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORROORRRRRRORRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRRROOORORRRORORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRROOOORRORORRORRRRRRRORRORORRRRRRRROOOROORRROORRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRRRRRRRRRRORRRORRROORRRRRRRRRRRRRRRORRRRRRROOORRORRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRROORRRRORRRORRORRRRRRRRRRRRROROOORRRRRRORRRRRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRORRRORRRRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRRRRRORRORRRRRRRRRORRRRORRRORORRRRORROORRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORRRRRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRROORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRROROORRRRROROROROROOOORRRRRROORRORRRRRRRRRRORRRRRORRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRROORRRROOORRRRORORRROROORRORRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRRRRRROROORRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRROORRRRRRORORRRORRRRRRRRRRRRRORROORORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRORRRRRORRRRRRORROORRRRRORRRORRRRORRRORRRRRRRRRRRROORRRRRRRRRRRORRORRRRORRRRORORRORRRRRRORORRRRRRRRRRRROOORRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRROORORRRRRRRRRRORORRRRORRRRROORROORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRORRORORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRORRRORRRROORRRROOORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRRROORRRRRROORRRORRRRRRRORRRORRRRROORRRORRRRORRORRRRRORORRRORORRRRRRRRRRORRRORRORRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRORRRRRRRRORRRORRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRROORRRRRORRRRRRORRORRRRRRRORRORRORRRORRRRORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRORROORRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRROROORORRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROROROOORRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRORRORORRRRRRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRROROORRRRRRRORRRRRORORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRROORRRRORRRRORRRRRROORRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRORRORORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRORRRRRRRRRRORRRORRRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRRORORRRORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRORRRRRRRRROORRRRRRRRRRRRORRRRORORRRRRRRRRRROORRRRRRRRRRORRRRORRRRRRRRRRRRORORRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRRORRRRRORORORRORORRRRRRRORORRRRRRRRRRRRRRROORRRRRRRRRRORRORRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRORRRRRRRORRRRRORRORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRORRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRORRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRROOORRRORORRRRRROROORORRRORRRORRORRRRRRRRROORRRORRRORORORORRORRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRORRRORRRRRORRRRRROORRORRORRRRRORRRRORRRRORORORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRORRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRROOOORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRROORORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRORORRRRRRRRRRRRRRRRRRRORORROOORORRRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRROORRRORRRORROORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRORORRRRRRRRORRRORORRRRORRRRROOORRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRORRORRRRRRRRRROROORRRRRRRROORRRRRORRRRORRRRRRORRORRRORRRRORRRRORRRRRRRRROORRORRRRRRRRRRORRRRROORRRRRORRRROORRROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRORRRORRRORRROOOROORRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRORORRRRRRORRRRRORRORORORRRRRRRRORRRRRRRRRRRRORRRORRORRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRORRORORORRROORRRRRORRRRRRROORRRROOORORRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORORRRORORRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRORRRRRRRRORORRRRRRRORRRRORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRORRRRRRORRRRORRRRORRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRORRRRRRRRRRRRRRRORORRRRRRRORORRRRRRORRRRRRRRRRRRRRRORRORROORRRRRRRRRROORRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRORRRORRRRRORRRRRRRORRRRRRRRRORRORRRRORRORRRRRORROORRRRRRRRRRRRROORROOOORRRORRRORORRRRRRRRRRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRORRORRORRRRORRRORRRRRRRORRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRORRORRORRORRORRRRORRRRRRORRORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRORORRORRRORRORRRRRRORRRRRRRRRRORRRRRRRRORRRRROORORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRORRRRRRRRRRRRORRRRORRRRRRROORRRORRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORORORORRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRORRORROOORRRRRRRRRRRORORRRRRRORRRRRRRORRRRRRRROORRRRROORRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRORRRRRRRORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRRRRORRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRROORRRRROORRRROORRRORRRRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRORORRRRORRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRORRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRROROORRRRRRRRRRORRRRRORRRRORRROORRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRROORRRORRRRRRORORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRORORRRORRRRRRRRROORRRRRRRRRRORRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRORORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRORRORRRRRRROORRRRRRORORRRORRRRRORRORRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRORRROORRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRRRORRRRRRRORORRRRROORORRORRRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRORRRORRRRRRRORRORRORRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORORROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRORRRORRRRRRROORRRRRORRRORRORRORRORRORRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRORROORORRRRRRORRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRRRORRORRRRRORROORORRORRRRORRRRORRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRROORRROORORRRRRRRRRRRRRORRORROOOOORRRRRRRRRORRRRRRRRRRORRORRORRRRORRRRRRORORRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRORRORROORRRRRRRRRRRRRORRORRRRRRRRROORRRRRRRRRRRRROORORRORRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRORRRRORRRRROORRORRORRORRRRORRRRORRRORORRRORRRRRRRORRORRRORORORRRRRRRRRRRRRRRORRRRRRRROORRRRORRRORORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRROORRRRRRORRORRORRRRRORRRRRRORRRRRRORRRRROORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRORRRRORRRROORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRROOOOORRRRORORRRRRRRORRROROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORORRROORRRRRRRRRRRORRRRRROORRRRRRORRORRRRRORORORRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRRRORRRORRROORORRRRORRRRORRRRRORRRRRRORORRORRORORRORRRRRRRRRRRRRROROROORORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRORRORRRRRRRRRRRROORORRRORRRRRRRRRRRRRRRRRRRROORORRRRRORRORRRORRRRRRORRRRRORRROROORRRORRORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRORRRRRORRRRORRRORRRRRRRORRRRRRRRORRRORORRRRRRORRRRRRRORORRRRORRRRORRRRRORORRRRRRRRORRRRROORRRRRRRRRRRRRRRRRORRRORORORRRRRORRRRRRRRRRRRRRRRRORROORRRRRORRRRRORRRRRRRRRRRRRRROOOORRRRRRRRRRRRRORORRRRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRORRORRRRROORRRRRRRRRRRORORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRROOORRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRORRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRORRORROORRRRRRRRRRRRRRRORRRRRRRRORRRROORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROROOORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORORRORRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRORRRROORRRRRRRRRRRORRORRRRRORRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRORORRORRORRRRORRORRORRRRORRRRORRROORRORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRORORORRROORRRRRRRRRRRORRRORRRRRROROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRORORRRRORRRRORRROROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRROOORRRROORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRROORRRRRORRRRRORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRROORRORORRRRRRRRRROORORRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRORRRRORRROORRRRRRRRRORRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRORRRORRRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRORRRRRRRRRORRRORRRRRRORRRRRRRRORORRRRORRRRORRORRRRRRRRRRRRORRRRRRRRORORRORRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRROORRRRRRRRRRORROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORRRORRRRRRORRRRORORORRRORRRRRRORRRRRRRRRORRRORRRRRRRORRRRRRRORORRRRRORRORRRRORORRRRRRRRRRRRORRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORORRRRRORRRRRRRORORRRRRRRORRRRRRRRRORROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRORRORRRRORRRRRRORRRORRRORRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRORRRRRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRROORRRRRORRORRRRRRRRRRRORRORRRORRRRRRROROORRRORRRRRRRRRRRROORRRRORRRRRRRRRORRRRRORRRRORRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORORRRRRRRRORRRRRRRRRRRORRRRRRROORRRORORRRRRORORORRRRRRRRRRRRORRRRRRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRROORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRORRRORRRRORORRRRRORRROOORORRORORRRRRORRRRRRROORRROORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRRRRRRORRRORORRRRRRRORRRRRRORRORROORRRRRRRORRORRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRORRRORRRRORRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRRRORRRRROOORORRRRORRRRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRROORRRRRRRORRRRRRRRRRRRRORRROORORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRORRRORORRRROORRRORRRRRRRRRRRRRORRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRORORRRRRORRORRORRRRORRROORORRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORROOORRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRRRRORORORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORORORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRROORRRRRRRRRRROORRRRORRORRRRRROOORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORORRRORORRRRRRRRRRRRORRORORRRROORRRRRRRORORORRRRRRRRROORRRRRRRRRROORRRORRRRRORORRRRRRRORORRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRROORRRORRRRRROORRRRORRRRRRRRRRRRRRRRORRORRRRRORRRORORRRRRRRRRRRRORRRRORRRRORRRRORRRRRRRRRROOORRRORRRRRRORRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRROOORROORRRRRRRRRRRRRRRRORORRRRRRRROOORRORROOORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRORRRRORRORRRORRROOORRRORRRORRRRRRRRRRORRRRORRRRORRRRRORRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRORRRRORRRRRORRRRORRORRRRRRRRRRRRRRRRRRRROORRRORRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRORORRRRRRORRRRRRRRRORRORRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRRORORORRRRRRRRRRORRRORRRORRORRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRORRRORRRRRRROOOORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRORRORRRRRRRRRRRRROOROORRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRROORRROROOOORRRRRRRORRRORRRRRRRRRRORRORRRRRRROORRRRRRRRRRRRRRORORRROORRRRRRORRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRROORRRORRRRRRRRROORRRORRRRRORRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROORRRRRRRRRRORORRRRRRRROOORRRRRRRRRRRRRORRRRRRRORRRRRORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORROORORRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRORRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRORRRRRRORRRORORRRRRORRRROORRORRRRRRRRRRRRRRORRRRRRRRORROORRORRRRORORRRRRRORRRROORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRORRRRRRORRORRRRORORRRRRRRRRRRORRRORRRRRRORRRORRRRRRORORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRORRRRRRRRRROORRRORRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRROORRRRRORRORRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRORORRRRORRORRORRORRRRRRRORRRRRRORORRRRORROROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRORORRRROORRRORRRRRRRRRORROROORROORRRRRRRRRRRRRRRRRRRORRRORROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRORRRRORRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRORORROORORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORORRORRRRRRRRRRRORRORORRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRORRRORORRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRROROROORRRRRRRRRRRORRORRRRRRRROORRRORRRRRRORRORRRORORRRRRRRRRRRRORRRORRRORRRRRORRORRRRORRRRORRRRRRRORRRRRORRRRRRRRROORRRORRRRRROORRRORRRRRRORRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRORRORRRRRRORRRRORRORRORRRRRORRRRRRRRRRORRRRRRRRRRRRRORRORRORRRORRRRRRRRRORRRRRRORRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRRROORRORORRRRORRRORRRRRRRRRRRRORRRRRORRRORRRRROOORRRORRRRRRRRRRRRRORORRORRRRRORRRRRORRRORRRRRORRRRORRRRRRRRRRORRORRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRORORORORRRORRRRRRRORRORRRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRRORRRRRROORRORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRROROORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORROORORRRRORRRRRRRRRRRRRRRRRRRORROOORRROORRRRORRRRROORORRRRRRORRRRRRRRRRRORRRRRORRORRRRRORRRRRRORRRRROOORRRRRRRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRRORRROOORRRRRRORRRRRRRRRRRORORORRRRRRRRORORRRORORRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRROORRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORRORORRRRRORRRRRRRRRRROORRRRRRORRRRORORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORRRRRORRRORRRRRRRRORRORRRRRRRRRORORRORORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRRRORORRRRRRRRRRRROORRRRRRRRRRORRRRRRORRRRRORRRRRRORORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORRRORRORRRRRRRRRORRRRRRRROOOORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRORRORRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRORRRORRRRRRRRRRORORRRRORRRRROORRRRRRRRRRRRROORORRORRRRORRRORORRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRROROORRROORRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORORORROOORRRORRORRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRRRRORRRRRRORRORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORRORRRRRORRRRROORORORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRORRRRORRRRORRORRORRRRORRRRRRORRRRRRRRRRRRORRRORRORRRRRRROORRRRRRORRRRRRORRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRROORORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRRRORORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRRRORRRRRROORRORRRORRRRRRRRRRRORORRRRRRORRORRORORRRRRORRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRORRRRRORRRRRORRRRORRORORRRORRRRRRRRRRRRORORRRRRRRRRRRROORORORRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRORRRORRRRRORRRRORRRRORRRRRORRRRROORRRRRRORRRRORRORRORRRRRORRRORROROORORRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORORRRORRRRRRRRORORRRRRRRRRRRRRRORORRORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRORRRORRRRRRRRRRRORRRORRRORRRRRRRORROROORRRRRRRRRRRORRRORRORRRORRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRORRRRROORRRRRRRORRRORRRRRRROORRORRRRORORRRORORRRRRRRRRRROROORRORRRORRRRORRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRORRRRRROORRRRORRRORRRRRRRROORRRRORORRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRRROOORRRRRROORRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRORRRORRRORRRRRORRRRRRRRRRROORROORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRORORROORRRORRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRROORRRRRORORORRRRRRRRRRRRRRRRRRRRORRRRORROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRROORRORRRRRORRRRORORRRRORRRRRORRORRRRRRRRRRRORROORRRORRRROROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRORRRRROORRRRRRORRRRRROORRROOOORORORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRORRRORRRRRRRORRROORRROORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRORORRRORRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRORROROORRRRRRRRRORRORRORRRORRRRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRORORRRRROORORRRRRRRROOORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRROORORRRRRRRRORRORORRORRRRRORRRRRORRRRRRRRORORRRROORORORRRRRRRORRRRRRORRORORRORRRORRRRRRRRRRORRRRORRRRRRRRORROOORRORRRRRRORRORRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRORRRORORRRRRRORRRORRRRRRRRRRRRRORORRORRRRRORRRORORRRRRRRRRRORRORRRORRORRRRRRRRRRORRRRRORORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRORRORRRRRORRRRRRRRRROORRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRORRRRORRRROORRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRORORRRRRORRRRRRRROOORRRRRRRRRORRRRORORRORORRROORORRRRORRRRRRRRRRRRRRRRRRROOROOROROROORORRRRRORRRRORRRRRRRRRRRRRORRRRRRROORRORRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRROOROORRRRRRRRORRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRORRRORRRROOORRRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRROROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRROORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRROORROROROORRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRORRRRRRORRRRRRRRORRRRRRRRRRRORRORRRRORRRRRORRRRORORRRROROORRRRRORRRORRRRRRRRROORROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRRORORRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRRRRRRRRORRORRRRRORROORRRRRRRORRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRORRRRRORRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRROORRRRRRRORRRORRRORRRORORRRRORRRRRRRRORRRRRRRRORRORRORRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRRRORRROORRRRORRRRRRORRRORRRORRORRORRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRORORRRRRRORRRRRRRRORRROORRRORRRORRORORRORRROORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRORRRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRORRROORRRRRRRRRRRORRRRROORRRRRRRRORRORRRRRRRRRRRRORRRRRRORRRRORRROORORORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRRORRRRRRRROORORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRROROORRRRRRRRRRRORRRRRRRRRRRRRROOROORRRRRRRRORRORRRRRRORRRRORRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRORRROROORRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORORRRRORRRRRRRORRRRRRRRRORRRORRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRORRRRRORORROROORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRORRRORORRRRRORRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRROORRRRRRRRRROOORRRRRRRRORRRRORRRRORRRRRROORRRRRROORRRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRRRORRRORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRRRRRRRORRRRRRRROORORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORRRORRRRRRORRRRRRRRRORORRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORORORRRRRRRRROOOORORRORORORRRRORRRROOORRRRRRRRRRRRORRORRRRRRRRRORORRORROORRROORORRRORRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORROORRRRRRRRRRRRRORRRRRRORRORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORROOOROORRRRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRORORRRORRRRRRRRRRRRORORRRRRRRROROORRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRORRRORRORRORROORRRRRRRRRRRRRRRRRRRRRORRRRORROORRRRORRRORRRROORRRRROOOOROORRRRRORRRRRRORRRRRRRRRRROROOOOORRRRRRRRRRORRRRRRRORROORORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRORRRRORRRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRORRRRRORRRRRRRORRRRRRROORORRRRORORRRRRRRRRRRRORORRRORROORRRRRRRRRRRRRORRROROORORRRRRORORRRRRRRRRORRRRRRRRRRRORRRORRORRORRRRRROORRRRRORRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRORRRRORRORORRORORRORRRRRRRRRRORRRORRRRRRRORRRRRROORRORRRROORRRRORRRRRRRORRRROROORRRRRRRRRRRRRRRRRORRRORRORRORRORRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRORRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRORORRRRORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROROROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRORRRRRRRRORRRORRORRRORORORRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRROOORRRRRRRRRORORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRORRORRRRRORROORRRRRRRORRRRRRRROORRORORRRRRRRRORRRRRORRRRRRORRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORRRRORRORRRRRRORRRRRORRRRORRRRRRRRRROORRRORRRRORORRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRRROORORRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRORRRRRRROOORRRRRRORRORRRRRRRRRRRRRRRORRORRORRRRRORRROROOORRRRRRRORRRRRRORORRRRRRRRRRRRRRORRRORRRRROORRORRRORRRRRRRRRORRORRORRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRROORORRRRRRRRRRROORRRRRRRRRRRRRRRRRORRORRRRRRRRRROORORRRRRORRRRRRRRORORRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORROORRRRRRRRORRORORRRRRRRORRRORRORRORORRRRORRRRRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRRORRROORRRRRRRRRRRRRORRRORRRORRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRORRRRRORRRRORORRRRORRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORORORORRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRORRRORRRORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRORRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRORRRRRRRRRRRROORRRRRROORRRRRROOORRRRRRRORRRRRRRRROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRORRROORRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRRRRORROOORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRORRRRORROORRRRORRORRRRRROORORORORRRORRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRORRRORRRRORRORORRRRRRRRRRRORRORORRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRORROOORRRRRROROORORROORORORRRRRRRRRRRRRRRRORRRRRRORRORORRRORRORRRRRRRRRRRRORRRRRRRRORORRRORRORRRRRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRROORRRRRRRRRRRRRRORRRORRRRRORRRRRRORRRRRORORRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRRORRRRORRRRRRORRRRRORRRRRRRROOOORRRRRRORRRRRRRORROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRROORRRROROROORRRRORRORRRRRRRRORRRRRRRRORRRRRRRRRORROORORRRRRRRRRRORORORORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRRRRRRRORRORRRRRRRRRRRRORRRRORRORRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRORRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRROROORRRRRRRRRRRRRROORRRRRORRRRROORRRRRRORRRRRRRRRRRRROORRROORRRRRORORRORRRRRRRORRRRRRRROORROROORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROOROOORORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORROORRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRORRRRRRORRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORROROORRRRRORRRRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRORRRRORRRRORRORORORRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRROORRRRRRROORRORRRORRRRRRRRRROORRORRRRRRRRRRRROORROORORRRRRRRRRRORRRRRRROORRRRRRORRRORRRRORROORRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRRRRRORRRROROOORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRROOORORRRORRRRORRORRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRROORRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRORRORRRORRRRORRRRORRRRRROORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORRRRORROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORORRRRORRRRRRRRORRRRRRROORRRRRRRRRORRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORROORRORRRRRRORRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRORRRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRORRRORRRRRRRROORRRROORRRORRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRROORORORRRRORRRORRRORRORRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRORORORRRORRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRRRRRRORORRRRRORRROORRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRRRORRRRRRRRORRRRORRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRORRRRORRRRROORROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRORRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRRORRORORRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRORRORORRORRRRORRRRRRRRRRORRRRRORRRRORRRRRRORRRRRRRROORRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORORRRRROORRORRRRRRRRRORROORRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRORRRRRROORRRRRRRORRRRRRRROOORRRRRRROORORRRRRRRRRRRRRRROROORRRORRRRRRORRRRRROORRRRRRRRRRRRORRORRRRRRRRRRRRORRORRORORORRRRRRRRROORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRORORRRRORRRRRRRRRRRRRORRORRRROOROOORRRRRRORRRRRRRRRORORRRORORRRRRRRRROROORRRRRRRRRRORRRRRORRRRRRROORRRRRRRRORRRRRRORRORRORRRRRORRRRRRRRORRORORRRRRRRRRRRRRORRRRRORRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRORORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORORRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRORRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRORRORRORRRRORRRRORROROORRORRRRORORORRORRRRRORRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRROORRRRORORRORRRRRRRRORRRRRRRRRORRRRRRRRROORRRORORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRRRORRRRRROORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRORRRRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORORRRRRRRORRROORRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROORRRRRRRRORRRRRRRORRRRORRRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRORORRRRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRORORRRRRRORRRRRORRRRRRRRROOOOORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRORRRRRRRRRORRRRRRRRORRORORRORRRRRRRRRORRRRRRORORRRRRRRRRRRRORROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORORRRRRORRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRORRORRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORORORRROORRRRRORRRRRRRRRRORORRRROORRRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRRROORRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRORRRRRRRORRRORRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRRRRRRORRORRRRORORRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRRORRRRRRORRRORRRORRROROORRRROORRORRORRRRRRRRRRRRORRRRRRRRRRRRROROORRRORRRRORRRRRRRRROORRROOROROORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRORRRRRRRRRRORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORRRORRRRRRORROORRRRRRORORORRROROORROORRORRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORORRRORRORORRROOORRRORRRRRRORRRRRRRRRORRRRRRORRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRORRRRRROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRROORRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRROORRROROROORRRRORRRRORRRRRORRRORRRRRRRRRRRRRORRRRRRRORRORRRRRORRRRRRRRRRRRRORRRRORRRRRRORRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRORROORORRROORRRRRORRORRORRORRRRRROORRRRROORRRRRRRRRRRORORRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRORROORRRRRRRORRRRORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRORRRRRRRROORRRRRRRORORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRORRRRORRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRROROORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRORRRORRRRORRRRRRRRRORRROORRORORRRRRRORRRRORRORRORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRORORRRRRRROORROOORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRROORRRRRORROORRRRRRRORRORRRRRRRRORRRORRRRRROORRORRRRRRRRRRRRRRRORRRRRORRORRORROORORRRORRRRRROORRORRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRORORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORORRRRRROORRRRRRRORRORRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRORORRRROORRORRRRRRRRRRRRRRRORRRRRRRORROORRORRRRRRRRRRORRRRRRRRRORRORRRRROOORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRRRRRORRRORRRRORRRRRRRORORRRRORORRRRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRROORRORRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRORRRRRORRRRRRORORRRRRORRRORRRRRRRROOORRRRRRRRRRORRRRRRRRRRORRRRRRRORORRORRORRRRRORRRRRRORRRRORRRRORRRRRRRROOORRORRRRRRRRRORRRRRRRORRRRRORRRRRRROORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRROROORORRORRRORRROORRRRRRRRRRROORRORRRRRRRRRORRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORROORRRORORRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRORRRRORRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORORRRRRORRRRORORRRROROORRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRORORRRRRROROORRRRRRRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRORRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRORRRORRRRRORRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRRROROORRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRORORRRORRRRRRRORORRRRRORRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRORRRRRRRRRORRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORROORRORRRRORRRRRORRRRRRRRRORROOORORRORRRRORRRRRORORRRORRRRRORRRORRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRRORRRRRRORRORRRORRORRRORRRRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRORORRRORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRORRRRORRRRORRRRRORORRRRRRRORRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROOORRROORRROOOORORRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRROORRROORRORRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRORORRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRROOORRRRRRROROROORRRRORRRRRRRORRRRRRORRORRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRORRORRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRORRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRROORRRRRRRRRRORRRRRRRORRRRROORRRRRRRRRRROROOORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORROORRRROORRRRRRORRRRORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRROORRORRRRRRORORRRRRRRRRRORRRRROORRRRRRRORRORRRORRRRRORRRRRRRROORROORRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORROORORORRRRRRRRORRORRRRRRRORRRRORRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRORRRRRRORRROORRORRRORORORRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORORRRRRRORRRRORRRORORORRORRRRORRORRRRORRORRRRRRRRRRRRRORRRRRRRRORORRRRORRRRRORRRRORRRORRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRRRRRORROOORRRRRORROORRRRRRRRRORRRRORRRRRORRROORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRORRRRORRRRRRRRRORRRORORRRRORRORRRRROORRRRRORRRRRRRRRORORRRRRRRRRRRRRORORRRRRRRRRRRORRORRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRROORRRORRRRRRRRRRRRRRORRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRROORRRORRORRRRRRRRRRORRRRRRRROORRORRORRRRORRRRRRORRORORRRRRRORRRRRORRRRRRORRRRRRROROORRRRRRRRRRRROORRRRORRRRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRORRORORRRRRRRRRRRRRRORRRRRRRORROORRRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORORRORORORRRRORRRRRRRRRRRORRORRORRRORORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRORRRORORROROORRRORRORRRRRRRROORORORRRRRORROORRRRRRRRORRRRRRRRRRRRRORORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORROORRRRORRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRORRRRRRRRRRRRORORRRRORRRRRRRRORRRRRRRRRRRORRRORRRROORORRRORROROORRRRRRRRRRORRORRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRORRRORRRRORORORRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRORRORORORRRRRORRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRORRRRRRORRRRRRROORRRRRRORRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRORRORRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRRRROOROOORROORRRRRRRRRORRRRRRRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRORORORRRRRRRRORORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRORRRORRRORRRRROORORORORRRORRRRRORRRRRRRRRORRRRRRRRRRRRRORORRRRRORRRRRROORRRRORRRORORRRORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRORRRROORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRORROORRRRORRRRRRRRRRORRRORRRRORRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRROORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRROORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRROORORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORORRRRRORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRROOORRRRORRRRRRRRRRRRORRORRROORRRRRRRRORRRRRRRRRRROORRRRRORRRRORRRRRRRORRRRORRRORRORRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORRRORRROORRRRRRRRRROORORROORORRRRRORRRRRRRRRRRORRRRRRRORORRRORORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRORRRRORORRRRRORRRRRRRORRRORROORORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRROROORORRRRORORRORORRRRRRRRORORRRORRRRRORRRRORRORRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRORORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRORORORORRRRRORRRRRRRRRRRORORRRRRRRRRORORRRRRORRRRORRRORORRRRRRORRRRRORRRRRRRRRRRROORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRORROORRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORORRRRRRRRRRRRRORRRRORRRORRRRRORRRRRRORORRRRRRRRRRRRRRRROROORORORRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRORRRRRORRORRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRORRRRROORRRRORRRRRRRRORRORRRRRRROORRRRRORRRRRRORRRRRRORRRORRRORRORRRRRORRRRRORRRRORRORRRRRRRROROORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRORRRRRRRRORRRRRRORROORRRORROORRORRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRORRRROORRRRRRRRRRRRRRRROORRRRRORRRROROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRRORORRORRORRRORRRRRRRRRORRRORRORRORRORORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRORORORRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOROROORRRRRRRRRORRRRORRRRRRRRRORRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRORORROORRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRROOORRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRORRRRRRRRORRRRORRRRRRRORRRORRRRORRROROROORRRRRRRRRRORORRRRORRRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRRORRRORRRRRORRORRRRRRRRRORRRRRRRROOOORRRORORRORRRRRRORRRRROORROORORRRRRRRRORORRRRRRRRRORRRRORRRRRRRRRRORROORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORORORRRORRRRRRRRRRRRRRRRRRORRRROROORROORORRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORORRRRRRORROORRRRRRRRRRRRRRRORRRRROORRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRORORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRROROORRRRRRRRRRORRORRRORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRROORRRRRORRRRRORRRRROORRRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRORRRRRRRRORRRRRRRRORRRRORRORRRORRRRRRRORRRRRRRRORRRORORRRRRRRRROOORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRROORRRRRORRRRRORRRRRRORRORORRROROOORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRRORRRORRRROORRRORRRORORRRORRORRORRRRRRRORRRRRRRORRORRRRRRROORRORRRRORRRRORRRRRORRRORRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRROORRRRRRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRORORRRRROROORRRRORRORORRROORRRORRORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRRRRRRORRRRRRORORRRRRRRORRRORRRRRRRRORRRRRRRORRRORORORRRORRRRRRRRRRRRORORRROORRORRRRRORRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORROORRRORRRORRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRROORRRRORRRRORRRORRRRRRRORRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRROORRRRRORRRRORRRRRRRRORRRROORRRRRRRRRORRRRRORRRROORORRORRRRRORROROROORRORRRRRORRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRROOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORRORRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORRORRORRRRRRRRRORRRRRORRORRRRRRRRROORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRROORROORRORRRRRRRRRROORRRORORRRORRRRRRRRRRRRRORORRRORORRRRRRRORRRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROORRRRRORORORRRRRRRRORORRRRRRRROROROORORRRORRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRROORRORRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRRORRRRRRRRRORRRRRRRRRORRRRORRRORRORRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRORRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRORRRRRRRRROROORORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRRORRORRRORRRRRRRRRRRRRRRORRORORORORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRORRRRRRRORORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRORRROORRRRRRRORRORRRRRRRRRRRRRRRORRORRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRROORRROOORRRRRRRORRROORRRRRRRRRRRRRORRROORRRORORRRRRRRRRRRRROORORRRRRORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRROOORRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRROORRRRRRRORRRRRRORRRRRORRRRRRORRORRRRRORRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRROORRORRRRRRRRORRRRRRRRRRRRRORRRRORROORRRRRRRRROOORRRRRRRRROORRRROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRORRRRRRROOORRRORORRRRRRRORRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORROORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRORRORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRRRRRRRRORRRORRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORORORRORRORRRRRRORRRRRRRRRRRROROORORRRRRRRROROORRORORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRORORRRRRRORRRROORRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRORRRRORRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRRORRRORRRRROORORRRORRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRORRORRORRORRRORORRRROORRRRRRORRRRRRRRRRORRRRRORORRRRRRRRRRRORRRRRRRRROOORRROORRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRORRRROORRRRRRRORRORRRRRRRRRRRRRROOORRROROORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRRRRRORRRRROROOORORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRORRRRRRRRORRRRRORRORRORRRRRRRRRRRRRROROORRRRRRRORRRRRORORRRRRRORRRRRORRROORRRORRRORRORRRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRRRRRORRROORRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRRROORRRRRRRRRRRRRRRRORRRRRORRRRRORORRRRRRRRRRRRROORRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROROORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORORRORRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORROOORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORRRORRRROORRRRORRRRRRRORRRRORROORRORRRRRORRRRRORRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRROORORRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORROROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROROOORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORORROORRRRRRORRRRRRRRRRORRRRRORRRRRROORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRROORRRRRRRRRORORRORRRORRORRRRRORRRRRRRRRRRRRROROORRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRROORRROROORRRRRRRRRROORRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRORORORRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRORORORROROROORORRRRRRRRRRRROROORRRROORRRORORRRORORRRRRRRRROOOORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRROORRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORROORORRRRORRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRORRORRRORORORRRRRRRRRRORRRORROORRORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRORRORRORRORRRRORRRRRRRRRRRRRRRRRRRROORRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRORRRRRRRRRROORRORORRRORRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORORORRRORRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRORORRRRROORRRRORRRRRRRORRRRRORRRRRORRRORRRRRRRRRROORRORRRRORRRORRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRORORRRRRRRRROORRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRROORORORRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRRORRRRRRORRRRRRRROROORRORRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRORRRRRORRORRRORRRRRROORRROORRRRRRRRORRRORRRRRRRROORORRRORORRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRORRRRRROORRRORRRRRORORRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRROORRRRRRRRRORRORRRRRORORRRRORRRRRRRORRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORORORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRROOORRRRRRRORRRRORORRRRRROORRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRORRRRRORORRRORRRRRORRRRRRRORRRRRORRRRROOOORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRORORRRRRRRRRRORRRRRRORROORRORRRRORRRORRRRRRORRRRRRRRRORRROROORRORROROOORROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRORORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRORORRRORRORORRRORORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRROOROROORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORORRRRRORRRORRRRRRRRRORRRRRRRRRRRORORORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRORRRORRRORRRRRORRRRRORRRRORRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORRRRROORRRRRRORRRRORORRRRRORROOORRORRORRRRRRROORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRORRRRRROOOORRORRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRORRRROOORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRROORRROORORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORORORRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRORRRRRRRORORRRROORRORORRRRRRRRORRRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRORRRRRORRRRRRRRRRRORRROROORRORRRRRRRRRRRRRROORRRRORRRORROROROORRRORRRRRRRORORRRRRRORRRROORRORORRRRROORRORRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRORRRORORRRRRRRRRRRRORRRRRORROOROORRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRORROORRORRRRRRORRRRRRRRRRRRORRORRRORRRRRRRRRRORRRORRRRRRRRRRRORORRRROORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRRRRRRRRRRRROORORRRRRORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRORRRRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRROORRORRRRRRRRRRRRRRRRRORRRRORORRRRORRRORRORRRRRRORORRRRRRRORRRRRRORRRRORRRORRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRROORORRRRRRRRRRORRROORRRRRRORRRORRRRORRRRRRROORRRRRRORRRRRRORROORRRRRORRRRRRRRRRRRRRRORRRRRORRORRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRROORRRORORRRRRRRORRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRORRRORRRRRORRRRRRRRRORRRORRORRRRRORRRRRORRRRRRRORRORRORRRRRORORRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORORRRRRORORRRORRRRORRRRRRRRRRRRRRRORRRRRORRORORRRRRRRORRROORRRRRORRROOROORRRRORRRRRRRRRRRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRROORRRRRRRRORRRRORRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRORRORRROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRROORORRRORRRRRRRRRORRRORRORRRRORROROORRRRRRRRORRRORRRRRRRRRRORRORRRRORRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRORRORRRRRRRRRORRRRORRRRRRORRRRRORRORRRRORRRRRRRRRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRORRORRORRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORROORORRRRRRRRRRRRRRRORORORRRRRRRORRORRRRRRRRROORRRROORRRRROORRRRRRORRRRRRORRRRRRRORRRRRRRRRRRORRORORRRRRRORRRORROROORRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRROORRRRRRRRORORRRRRRORRRORRRRRRRORORRRRRRORROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRRRORRRRRRORRRORRROOOORRRORRRRRRRORORRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRORRRRRRROORRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRRRRRRRRROORRORRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRRORRORORRORRRRRRORRRROROORRORRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRROROORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRORORRRRORRORRRRRRORRRRORRRRRORROROROORRRORRRRORRRRRRRRRRRROROORORRRRORORRRRRRRRRORRRRRRRRRROROORRRORRRRRORRRRRORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRORROORRRRRORRRRORORRRORRRRORRORRROORRRORRRRRRORORRRRRRRRORORRRRRRRRRRRRRRRRRRROORRRRROORRORRRRRORRRRRRRRRROORRORRRORROORRRRRRORRRRRRRORORRRRRROROORRRRRRORROORRRRRRORRRORRRORRRROOORRORRRRORRROOROORRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRORRRRORRRRORROORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORORRRRORORRRRRRRORRRRORRRRRRRRRRRRRRRRRORORRRRRRRRROORRRORRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRORORRORRRRRRRORRRROROORRRRRORRORRORRRRRRROOORORORRRRRRRRRRRRRRROORRRRRRRORRRRORRRORRRORRRRORRRRORORRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRORRRRRRRRRRORRORRRRRROORRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRORRRRRRORRRRRRRRORRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRORORRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRROORRRRRRORRRRRRRORRRRRRORRRRORRORORRRROORROORRRORRRRRRORRRRRORRORRRORRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROOORRRRRRRRROORRRRRORRRRRRRORRRRRRORRRRRRRRRROORRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORORRORRRRRRRRRRRRRRRRORRRRRRRORRRRRROORORRRRRRRRORRRRRRRRORRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRORORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRORRRRRRRRRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRRORORRRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRORRRRROORRORORRRRRRRRRRORRRRORRRRRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRORORROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRRRRORRRRRRRORRORRRRRRRRRORRRRRRORRRRRRRORRORRORRRRRRORRORORRRRRRRRRRRORRRRORRRROORRRORRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRROORRRRRRRRRRORRRRRRRRORRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRROORORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRORRRROORORRRRRRORRRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRRRROORRORRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRROOORRORRRRRRORORRORRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRORRRORORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRORRRRROOROORRRRRRORRRRRRRRRRRORRRORRROROORRRRRRRRRRRRORORRRRRORRRRORRRRRRRRRRRRRRRORRRRRORRRORRRORRRRRRORORRRRRRRRORRROROORORRRRRRRRRRRORRRRRRRRRRORRORRRORORRRORRRRORRRRRRRRRRORRRRRROOROORRRRRRROORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRORRRRORRRRRRORRROORRRRRRRRRRORORRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRORRRRRRRORRORRRRRRRRORRROORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRROORRRRORRRRROROOORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRORORRRRRORRRORRRRORRRRRRRRRRRRRRRORRRRORRRRRRRORRROORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRORRRRRRRRORORRRRRRRRORRRORRORRRRRORRRRROROORRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRORORRRROORRRORRORRORORRRRRRRRRRRRRRRRRRRORRRRRRROROORRORRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRORRRORRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRORRRRORORROORRRROORRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRROORRRRROOORRORRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRORRRRROORORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORROORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRORRRORRRRRRRRRROROORRRORROROORRRRRORRRRRORRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRROOORRRRRRORORRRRORRRRRRRRORRORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORROOOOORRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRORORRORRRRRRRORORRROORRRRRRRRRRRRRRRROORRRRRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRRORORRRORRRRRORROORRRORRRRRRRORRRRRORRORRRRRRRRRRRRORORRRRRRRRORRRRRRORRRRRRORORORRORRRRRRRRRRRRRRRRRORRRRORRRRORRRRORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRORRORRRRORRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORRORORRORRRRRRRRRRRRRRRRRRRRRROROORRRRRORORROORRRRRRRRRRRRRRRRORRRORORRRRRRRRRRORRORRRRRRRRRRRROORROORROORRRRRRRRRRRRRRRORRRRRRROORRRRRROORRRRORRRRRORRRRRRRRRORRORRRRRROORRRRRRRRORORRRRRRRORRORRRRRORRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORORORORRRRRRRRRORORRRRRRRORRORRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRORRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRROORRORRRRRRORRRROORRRORRRRRRRRRORORRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRORRRRORRORRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRORRRRRRRRRRRORRRRRORRRRRORORRRORORRRRRRORRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRORRRRROROORRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRORRRRORRORRRRROOORRRORRROOORRORRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORORRORRRRRRRRROORRRRRROORRRORRORRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRORRRORRRRORRRORRRRRRRRORRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRRROORRORRRRRRRRRRORRRRRRRRRORRORROORROOORRRRRRRRRRORRRRRRRRRRRRRRORRORRRRORORRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORORRRORRRRROORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRRRRRRRRORRRORORRRORORRORRRRRROORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROOORRRRORRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORORRRRRROORRORORRRORRRRRRORRRRRRRRRROROORORRORRRRRRRROORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORORORRORRRRRRRROORORRRRORRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRROOORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRRORRRRRRRORRROOORRRRRRRRORRRRRRORRRRRRRRRRORORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRROORRRRRRRORORRRRRRRRRORRRORRRRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRORRORRROORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRORRRRRORRRRRRORRRRRROORORRRRRRRORRRORRROOOORORRRRRRRRRRRRRRRORRORORRORRRRRORRORRRRRRRORRRRROORRRRRRRRRRRRROOORRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRORRRRRRRRRRRRROORRROORRRROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRROROORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRORORRRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRROORRRRRRRRRORROOROORRRRRRORRRORRORROORRORRRRRRRORRRRRRROOORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRORORRRRRRRRRRRRRRRORRRORRORRRORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRROROORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRORRRRRRRRORRRRORRRRORORRRRORORRRRRRRRRRRRRORRRRORRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRORRRROORRRORRORRRORRRRRRRRRROORRRORROORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRORRRRRORRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRRRRRRRROORORRRRRRRRRRORRRORRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRROORRRRRORRRORRORRRRORRRRORRRRRRRRRRRRORRRORRRRRRRORRORRRRRRRRORRRRROORRRRRRRRORRRRORRORRRORRRRRRRRRORRORRRRRRORRORRRRORORRRRRORRRRRRRRRORORRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRRRRRORRORRRRORORRRRORORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRROORRRRORRRRRRRORRRRRRORRORRRRORROROORORRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRORRORRRRRRRRROORRRRORRRRORRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRRORRRRRROORRRRORRORRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRORRORRRRRORRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRORORRRRRRRRRORROOORRRRRRRRORRROORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRRORROORRRRORORRRRRRORRRRRRRORRRRRRRRRRRORRRRRORORROORRRRRRRORRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRRORORORRRRRRRRRRRRORRORRORRRORRRORORROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRORRORRRORRRRRRRRROORRRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRRROORRRRRRRRRORRRRRRRRRRORRORRORRORRRORRRRRRRRROORORRORRRORRORRRRRRRRRROORRORRORRRRRRRORRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRORROORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRORRRORRRRORRRRRRRRRROORRROROORROORROORRRRRORRORRRRROORORRRRRRRRRRRRRRRRRORORRORRORRRRRRRRRRORRRROORRRRRRRORRORRRRRORRRRRRRRRRRRRRORROORROORRRRRRRRRRRORRRRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRORRORORRRRRRRRORORRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRORRRRRRRRRRRORRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRORRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORORRRORORRRRRRRRRRROORRRRRRRROORRRRRRRROORRRORRRRORRROORORRORRRRRRRORRROORRORRRRRORRRRRRRORRRRRORRORRRRORRORRROORRRRRRORRRRRORRROORRRORRRORRRRRRRRRORRRORRORRRRRRRRORRORRRRRRRRORRRRRROOOORRRRROROORRORRRRRRRRROORRRRRRRORORORRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRRRRORRRRRRRORORRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRORRRRORRORRRORRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORORRRRRRRRORRRRRRRRORRRRRRRRRRRRORORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORORORRRRRRRRRRRRRORRRRRRORRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRORORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRROORRRRRRRRRRRORORRRRRORRRRRRORRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRORRRORRORRRRRRRORRORRRRRRRRORRRRRRRRRRORRORRRRRRRRRORRRRORRRRRRRRRRORRRORRORRRRORRORORRORRORROORRRRORORORRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRORRROORRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRORRRRRRRRRRRORRORRROORRRRRRRRRRORORRRORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROROORRRRRRRRRRORORRRORROORORRRRRORRRRRRORRRRORRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRROORRRRRRRROORRORRRRRRRRRRRORRRRRRRORORRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORROORROORRRRRRRORORORRORROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORORRRROORRRRORRORORRRRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRRORRORRORRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRORORRRRORRRRORRRRRRRRRRRRORRORRRRRRRORROORRRRORRRRROOORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORRORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRROORRRRORROORRRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRROROORRROORRRRRRRRRRRRORRRRRRORROOORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRORORRRORRROORRRRRROORRRRRRRRORORRORRORORRORRORORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRORORRRRRRRRRRORRORRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRORRRRRRRRRRRRORRRORRRORORRORORRRRRORRORRRRRRRRRRRORRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRORRORRORORRRRRRRRORRORRRORRRRRRRRRRORRRRRRRRRRORRRRRROORORRRRRRRRRRRRORORRROORRRRORRRRRRRRRRORRORRORRRORRRRRRORORRRRRORRORRRRORRRRRRRORRRRRRRORRRRRRORROORRRRRRRRORRRORORRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRORRRORRORRROORRRRORRRRORRRRROORORRRRRRRRRRRRORRRRRORORORRRORORRRRROORRRRORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRORRRRORRRORRRRRRRRROROORROROORRRROORORRRRRRRRRRRORRRRRRRRRRRRROORRRRROORRRRRRRRORORRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRRRRRRRRRRRORRRRRRROORRRRRRRROORORRRRRORRRRRRORRRRRRORRRRORRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRORORRRRRRORRRORORRORRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRROORRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRORRRRRRORRORRRORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORROORRRRRRRORORRRRRORRRROOROROORRRRRRROORRORRRRRRORORRRRORRRORRRRRRRORRORORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRORRORRROROORRORRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRORRRRRRRRRRRRORRRROOOOOORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORROORRRRRORRRRRORRRRRRRROORRRRRRRRORRRORRRRRRRROORRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRROORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRROROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRROORRRRRRRRORRORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRORORRORRRRRRRRRRRRRRORRRRRRROROORRRRRRRRRRRORRRRORRORRRRRRORRRRRRRRRRRRRRORRRRRRORRORRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRORRORRRROORRRORRORRORRRRRRROORRRRRRRRRRROROORRRRORRRRORRRRRORRRORORROORRRRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRORRRORRRRRRRRRORORRRORRRRORRRRRORRORRRRORRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRORRRRRRRRORRRRRRORORRORRRRRRORROOORRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRRRRRRRORRRRORRRRORORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRORRRRRRROORORRORRRRRRRRORROORRRRROORRORRROOORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRORRRRRRRRROORORRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRORORRRRRRORRRRRRROORORRORRRORRRRRRRRORRRORROORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRORRRROOORRRRRRRRRRRRORRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRROROOORRRRRRRRORRRRRRRRRRRORORRRRORRORRORRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRORRORORRRRRORRORRRRRRORRRORRORRRRRRRRRRRRORRRRRROORROORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRRRORRRRRORORRRRRRORRRORRORRRRRRRRRORRROORRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRRRRRORRRORRROOORRRRRRORRRRORORRRORRRRRRORRORRRRORRRRRRRRRRRRRRRROORORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORROOORORRRRROROORORORRRRROORRRRRRORRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORORORRRRRRRRRRRORORRRORRRRORRRRRORRRRRORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRROORRRRRRORRRRORORORRROORRRORRRRRRRRRRRRORORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRROORRRRRORRORRORORRRRRRRRORRRORRRRORRRRRRRORRRRRRORORRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRORRRRRORRRRORRRRORRRRORRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRROOORRRRORRRRRRORRRRRRRRRRRROOROORORRORRORROORORRRORRRRRRRORRORROORRRRRRORRORRRRRRROORRRRRRRRRRRRRRRROROORRRRRRRRRRRORROORORORRRORRORRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRROOORORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRORRORORRORRRRRRRORRRORRRRRRRRRRRROORORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRORRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRORRRORORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROORRRROORRRRRRORRRORRRRRRRRRRRRRRROOOOOROORRRRRRRRRRRRORORRRRROOROOORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRROORRRORROORRRRRRRRRRRRRRRORRORRORRRRRORRORRRRRORRRRRRRRRROORRRRRRRORRRRORORORRRRRRORRRORRORRRORRORRRRRORORRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRROORRRRRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORORRRORRRRRRRRRRRORRORRRRORRRORRORORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRORRRORORRRRORRRRORRRRRRORRRORRRRRROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRORROORRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRORROORORORRRROORRRRRRRORORRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRROORRRRRRRRRRRROORRRORRRRORROROROORRORRRRORRRRRRORRORRORRRORRORRRRRRRRROORRRRROORRRORRRRRRRRORRRROOROROORRRRRRRRORRRRRRORRRRRORRRRRRRRORRRRRROORRRRORROROROROORROORRRRRORRRORRRORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORORRRRRRORRRRRRRORRRRRRRRORRRRRRRRROORRRRORRRRRROORRRORRORRRRRORRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRORRRROOORRRRRRRORRRRORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRORORRRORRRORRRRRRRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRORRRRRRRRRRRRRRORRRRORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRROORROORRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRORRRRRRRORRRRRRRORORRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRROROOROORRROORROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRROORORRRORRORRRRRRRORRRRORRRRRORRORRRRRORROORRRRORRORRRRRRORRORRRRRRRRRRRRRRRRORRRORRRROORORRRRRRRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRROOORRRRORRRRRRRRORRORRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRRORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRORRRRORRRRRRRRRRORRRORRRROORRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRORRRRROORORRRRRRRRRRROORRRRRRRRRRRRRRORROORRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRORRRRRORRRRROORRRRRRRORRRRRORORRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRORRORROOORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRORORRRRRORORRRRRORRROORRRROORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRROORRRRRORORRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRORRROORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRORORRRRRRRRRORRRRRRORRORRRRRROOORRROROORRRRRORRRRRROORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRORRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRORRORRRRORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRROORORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRORRRRRRRRRORROORORRRRRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRORRRRRORRRRRROORRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORROORRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRROOORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORORORRRORRRORRRRRRRRRRRRRRORRRRRRORRRORORRRORRRRRORRORORRORRRORRROROORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORORROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRROROORRRORORRRRRORRRORRRRRRRORRRRORRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRRRORRRRRORRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRROOORRRRRRORRRRRRRRORRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRROORRRORRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRROORRRRORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRORRRRORORRRROORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRROROORORRRRRRORRORRRRORRRRRRROROORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORROORORRRRRRRRORORRRROORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRRRRRRORRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRORRRRORRORRORRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRORORORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRROORRRORRORRROORORRRRORRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRRRRRRORRRRRRRORRRRRRRRRRORRORRRROORRRRRRRRRRRRORRRROORRORRRRRORRORRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRORORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRORRRRRORRRRRRRRRORROORORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRROROORRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRROOOOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORORORRRRROORRORORRORORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRROORRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROOORRRRRRRRORRORRRORRRORRRRRRORORRRORRROORORRORORRRRORRRORORRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRORORRORRRRRRRRRRRORRRRRRRORRRRORRORRROOORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRORROOORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRORORRRRRRORRORRRRORRORRRRRRRORRRRRRRRRRRRRRORRROORRRRRORRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRORRORRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRORRRRRORRRRORRRRORRORRRORRRROORRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORORRRRORRRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRROORRRRRRRRRRRRRORORORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRORRRORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRORRORRRRRRRRRRORRRRRORRRRORRROORRRRROORRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRORRRRORRRRRRORORRROORRROORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRORORROOORORORRRRRRRRRRRRRRRRRRORRRORRORROORORORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRORRRORRRRROORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRRRORROORRRRRRRRRRORRRRORRRRRRRORRORRORORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRORRRRRORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRORRRRRRROROORRRRRRRRRRRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRROROROORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRROORRRRRRRRRRRORRRRORORRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRORORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRRRRRRRRRORRRORORRRORRRRRORRRORRRRRRRRRRRRRRRRROORORRORRRRRRRRRRROOORORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRORRORRRRRRRRRRORRRRROORRRRRORORRRRRRRRRRORORROROORRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRORORRRRRRRRORRRRRRROORRRRRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRORRRRRRROORRRRRORRRRRRROORRRORRRRRRORRORRRRRRORORRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRORORRORROOOORRRORRRRRRRRROOORORRRRRRRRORRRRRRRRORRRRRRRRORRRRRRORRRORRRRRRORRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRROORRRRRROORORRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRROORORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRRORORRORRORRRRRRRRORRROOORRRRORRORRRORORRRRRRRRRRRRRRRRRORORRRRRORRRRORRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRROOOOORRRRRRRRROORRRORRORRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORROORRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRORRRRRRORRORRRRRORRRORRRRRRRORRRRRRRORROORRORRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORRRRORRORRRRORRRRRRRRRRRORRRRORRRRRRORRROROORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRROROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRORRRRRORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRORORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRRRRORRORRRRRORORRRRRORRRRRORRRRRRRRRRROORRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRORRRRROOORRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORORRRORRRRRORRRRRRORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRORORRRRORRORRRRRRRRRRRRRRRRORRORRRRORROORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRRRRORRRORORRORRRRRRRORRRRRRORRRRRRRRRRRORRRRRORRORRRRORROORRRORRRRRORRORORORRRRORRRRRORORORRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRRRORRORRORRRORRRRRORRRRRRRRROORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRORORRRRORRRORRRRRRRRRRRROOORRRRRRRORRRORRORRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRROOORRRORRRRRRRRRRRRRRRRRRRORORRRORORRORRORRRORRRRRROOOOOROOROROORORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRRRRRRRRRROORRRRRRRRRRRRORRRRRORRRORORRRRRORRORRRRRRRORRRORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRROORORRRRRRRRROORRROORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRROORRRRRRRRRORRRRRORORRRRORORRRRRRRROORRRORRRRRRRRRRORROORORRORRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRRORRRRRRRRRORRRRORRRRRRRORRORRRRRRRRORRORORRRRRRORRRRRORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRORRORRRRROOORRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRROOORRRRRORRRORRORRRRRRRRROORRRORRORORRRRRORRRRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRORRROORRRRRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRROROORRRRRRRRRORRORRRRROOORRRRROROOORROOORRRRRRRRRORRRRRRRRORRORRRRRRRRRROORRORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRORRRRRRORRRRRRORRRRRROORRRRORRRRORRRRROOORRRRORRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRORRRORROORORRORRRORRORRRRORRRORRRRRRRRORRORRRRORRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROROORRRRRRRRORRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRORORORRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRORROROORRRRROORRROORRRRRRRORRRRORROROORRRRORRRORRRRORORROORRRRRRORRRRRRRRRRRRRRORRRRORRORROORRRRRRRROORRRRRRRRRORRRRRRRORRRRRORORRRRORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRORRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRORRROORRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRROROOORRORRRRRRRRRRRRRROORRRRORROORORORRRORRORROORRORRRRRRRRROORRRORRRRRRORRRRRRORRROORRRRRRRRRRRRRRRORRRORRRRRRRORRORRRRRRRRRRRRORRRRRRRORORRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRORORRRRRRORRRRRRRRROOORRORRORRRORRRORRRRRRRRORORROROORRRRRRORRORRRRRORRRRRORRORRORRRRRROORORRRORRRRORRRRRRORRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRROORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRORORORRRRRROOORROORRORRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORRRRRRORRORRRRRORRRORRRRROORRORRRRRRRRORRROORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRROROORRRRRRRRRORRRRRRORRRRROORRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRROORRRORRORRROORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRORRRROOORORRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRROORRRRRRRRRRRRORRORRRRORRRRRRORRORRRORRRRRRRRRRRRRRRRORRORRRRRRRORRRROORRRRRORRRROORORORORRRORRRRRRRRROROOOORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRORRRRRROORRRORORRRRORRRRRRRRRRRRRRRRRRORORRORRRRRORRROORRRRRRRRRRRRROROORRRRORRRRRRRRRRRRORORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRORRRRRRRRROORRRROOORRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRORRRRRRRRRRORORORRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROROORRRRORORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRORORRRRROROORRRRRORROORRRRRRRORRROORRORRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRROORRRRROORRRRRRRRRRRRRORRRRRROORRRRRORRRRORORRRRRRRRRROORRROROOORRRRRORRORRORRRRROORRORRRRORRORRRRORRRORRRRRRRRRRRORORRRRRRRORRRRORRRORRRORRRORRORRRORRRRRORRORRRRORRRORORRRRORRRORRRRORRORORORRRRRRRORRRRRRRRRRRRRROOORORRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRROORORORRRROORRORRRRRRORROORRRRRRRROORRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRORRORRRRRRRORRRRRRRRROOORRORRRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORORORRRRRRRORRRRRRRRRRRORRRORORRRORRORRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRORORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRROORORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRORORROORRRRRORRORRRROOORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRORORRRORORRRRORRROORRRRRRRROROORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRORRORRRORRRROOORRRRROOORRRRORRRORROOROORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRROOORRRRRRRORRRRRRRRRRRRRORORORRORRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRROORRRRROROORRORRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRORRRRRRRRORROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRORRRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRROORRORRORRRORRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROORRORORRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRROOORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRORRRRORRORRRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRORRRORRRRRORRORRRRRRRRORRRRRROORORRORRRRRORRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORORRRRRROOORRROORRRRRRRRRRRRRORRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRRORROORRORORRRRRRORRRRRRORRRRROORRRRORRRRRRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRORRRORRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRORRRROORORORRROORORRRORRRRRRORRRRORORRRRRRRRRRRRRORRRRRRRRRRORRRORRRORRORRRRRRRORRRRRORORRRRRRORRRRRRRRORORRRRORRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRROORRRRRORRROOORRRRRRORORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORORRRRORRRRRRORRRRRRRRRROORRRRORRRRRRROOORRRRRORRRRORRRRRRRRRRORRRRRRORORRRRRRRORRORRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORORRRORRRRRRORORORRRRRRRRRORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORORRRROORRORRRRRRRRRORROORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRROORRRORRORRORORRRRRRRRRORRRRRRORRRRRRORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRRRRORRRRRRORRRORRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRORORRRORRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRRRROORRORRORRRRRRRRORRRRRRORRRORRRRORRORRRORRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRROORORRRRORORRRRRORRROORRRRRRORRRRRRRRRRRROOORRRRRORRORRRRRRRRRRRORORRORRRRRRORORRRRRRORORRRORRRRRRRRRRRRRRRRRROORRRRRROORRORORRRRRRORRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRRRRRORRRRORRRORRRRORORRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRORRROOORRORORRRRROORRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORROORORRRRRORRRRORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRORRORRRRRROORRRRRORRRRRRORORRRORORRRRRRRRRRRRRORRRRRROORRRORRRORRRORRRRRORRRRRORRRORRORORRORRRORRRRRORORRRRORRRRROORORRORRRRRRRRRRORRORRRRORRORRORORORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRORRRRRORRRRRRRROORRRORRRRRRRRRORORRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRORRRRRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRORRRRRRRRRRRRRRRORORORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORRROORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRROROORRRORRRRRRRRRRRRRRRORRORORRORORRRRRRRORRRRRRRRROORRRRROORORRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRORRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRROOORRRRRRROORRORRRRRRRRRRRRRROROORRRRRRRORRRRORRRRORRRRORORRORRRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRORRRRRRORRRRRRRORRRRRRRRRRRRORRORORRRRRRRORORRRRRRRRORRRRORRRRRRRROORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRROORORRROORRRRRRRRRRRRRRRRRRRORRORRORORRRRORRRRRRRRRRRRORRRRRRRORRROORRRRRRRRRRRORORORRRRRRRRRRORRORRRRRRORRRRORRORRRRRRRRRRRRRRRORRRRRRROOOORORRRRRORORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRORRRRRRRROORRRRORRRRRRROORRRRRORRORRRRRRRORRRRRRRRRORRRRROOORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORRRRROORRRRROROORRORRORRRRRRRRRRRRORRORRRRRRRRRRRRROOORRRORRORROROORRRRRRRRORRRORRRRROORRRRRRRROORRRRRRRROORRORRROORRRORRRRRRRRRRRRRORRRRORRORRRORRRRORRRORORRORORRORRRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRROOORRORRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORORRRRORRRRORRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRORRRRRORORRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRROORRORRORRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRORRRRRORRORRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRORRRRRORORRRRRRRRORRRRRORRORRORRRRRORRRRORRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRROORRRRRRORRRORRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRORRRRORORRORRRORRRRRRRRORRORORRORRRRRRRRRRRRRRRRORRORRORRRRROORRRRORRRRORRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRRORRRRORORRRRRORRROOORROOORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRORRRRRROORORRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRORRROORORRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRORRRRORORRRRRRRRRRORRRRRRRRRRORRORRRRRRRROORRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRROOORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRROORRRRRRRRRORRRRRRRORORRRRRORORRORORRRRORRRRORRRRRRRRRRRORRRRORRORRRRRRRORRORRROORRRRRRRRRRRROOOORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRORRORRORRRRRRRRORRORRORORORRRRRRROORRORRRRRRRRRRRRRORRRORRRORROORORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRROORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRORRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRROROROORRRRROORRORRRRRRRRORRRRRORRRRRRROOORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRRRORORRROORRRRORRRRRRORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRORRRRROORRRRRRRORRORRRRORRRRRRRORORRORRRRRRROORRRRRRRRRRRRRORROORRORRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRORRRRORORRRRRRORRRRRRRRRORRRRRRRORRORRORRRRRRRRORORRORRRRRRRORRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRROROORORRRRORORRORRORRRORRRRRRRRRRRORRRRRRRRRRRORORORRRRRORORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRORRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRROORRRRRRRRRORRRORRRRRRRRRRRRRRORRRRORRRORRORRRRRRRRORRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRROROORRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRORRRRRORRORRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRROORRRRRROROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROROORORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRORRRRORRRRRRRRORRRRRORRRORRORRRRRORRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRROROORORRRORRRRRRORRRORRRRRORRRORRRRRRRRRRRROORRORRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRORORORRRRORRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRORRRRRORRRRRRRORORRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRORROROORRRRRRRRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRORROORRRRRRRRRORRRORRRORRRRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRRORRRRRRORRORORRRRORRRRROORRRRRRRRORRORRRRORRRRORORRRRORRRRRORRRRRRRRRROORORRORRRRRROOORRRRROORRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORORRORRRRORRROORROROOORRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRRORRORRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRROOORRRRRORRRRRRRRRORRRRRRRROORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRORRRORRRRRRORRRORRRRORRRRORROORORRRRRRRORRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRORRRRRRRRRRORRRRRRRRRORRRORRORRORRRRRRORRRRORORRRRRRRORRRRRRRRRRRROORORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRROOORORRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRROORRRORRRRRRRORRRRRORRRORRRROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRROORRORRRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRORORRRRRORRRRRRRRROORRRRROORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRRRROROORORORRRRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRRRORORRRORRRRORRRRORRRORRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRORRORORORRRRRRRRROORRORRRRRRRRRRRORORRRRRORRRROORRRRRRRRRRRRRRRRROROOORRORRRRRRRORRRRRRRORRORRRRRRRORRRRRRRROROORRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRORRRRRRRROOORRRRRRRROORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRORORRRRRRRRROORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRROOORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRROOORRORORORRRRORRRRRRROROROORRRRRRRRRRRRRRORRRRORRORRORRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRRRORORRROORRRORRRRRORRRRRRRORRRORRRRRRRRRRRRROORRRORRRRORRRRRORROORRRRRRRRRRRRRROORRRRRRRRRRRRRRRORROORRRRRRRRRRRRORRRORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRRORORRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRROROORRRRRRRRRRRRORROORRRRRRORRRRRRRRRRORRRRRRORRRORORRRRRRRRRRRRRRRRRRRORRROORRORRRRRRORRRRORRORRRRROORRORRRRRRORRRRRORRRORRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRORRRROORRORRRORRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRRRRORRORRRRRRORRROORRRRRROORORORORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRROORRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRORRRRRORORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRROORRROROORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRROORRRORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRRRRRORORRRRRRRRORRRRRRRROORRORORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORORRRRORRORORRRRRRRRORRRRRRRRRORORRRRRRRORRRROORRRRRRRRRRRRRROORRRRRRRRRRORRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRORRRRRORRRRRRRRRRROORRRRRORRRRRRRRRRORRRORRRORRRRRRORRRRRORRRRRRORRORRRRRRRORRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRORORRRORORRRRRRORRRROOORRRRRRRRRROORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRORRRRRROORRRRORRRRRRRRRRORRORRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRORRRORRRRRRRRRRRRRORRORRORRRROOROOROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRRRRORRRORRRRORORORRRORRRRRORRRRRRORORRRRRRROORRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRORRORRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRORRRRRRRRRRRRORROROROORRRRRORRRRRRRRORRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRROORRRRROOORRRRORRRRRRRRRRRRRRRORRRRRORRRRRRROORRRRRRORRRRORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRRRRRORRRRRRORORRORRRRRRORRRRRRRRRORRORRRRORRORRRROOORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRORORRRORRRRRRRRRRRORORORRRRRRRORROORRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRROORRRRORRRRRRRRRRRORRROORRRRORRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRORORRRRRORRRORRRRORRRRRORRORRRRRRRRRRRRRRORORORRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRORRRRRRRRORRRRRRRRRRORRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRRRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORRRRRORRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRRRRROOORRRRORRRRRRRORRRRRRRRRRRRROORRORRRRORRRORRRRRRORRRRRRRRRRRRORORRRRRORRRRROORROORORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRORRRORRRRRRRRRORRRRRRRRRRORRORRORRRRRRORRRRRRRRRRRORRRRRRROORRRRRRORORRRRROORRRRRRRRRRRORRRRRRRORORRRRRRRRRORRRRORRORRORRROROORRORRRRROORRORROORORROORRRRRRRRRRRRRRRRORORORORORRRORRRORRRRRRRRRORRORRORRORRRRRRRRORRRRRRRRRRORRORRRRRORORRRORRRRRRRRROORRRRRRRORRRRRRRRORRORRORRRRRORRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROROROORRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRROORRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRORORRORRRRRRRRRRRRORORORRRRORORRRRRRORORRRRRRORRORORRRRORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRROORRRORORRRRRRRRRRRRRRRRRRRORORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRROOORRRRRRRRRRRRRRROORORRRRRRRRRRRRORORRRROROORORRRRRRRRRRRRORRORRORRRRRRRRRRRORORRRRORRRRORRRRRORRORRRRRRRRRORORRRRRRRRRORORRRRRRRORORRRRRRORRRORRRRORROORRRRRRRRRORORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRROORRRORRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRORRROORRRRRRRRRORRRRRRRORRRRRORRRRRRORRORRRRRRRRORRRRORORRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRROROROOORRRORRRRRORRRRRRRRRRRRRORRORRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRORRORRORRORRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRORORRROORRRRRRRRRRRORRRRRORRRRORORRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRROOROORRRRRRRRORRRRRRRORRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRRRORRROORRRRRRRRRROROORRRRRRRORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROROORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRROORRORRRORRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRORROORRRORRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRORRRORORRORRROORRRRRRRORROORORRRRRRORRRRRORRORRORRRRRRROORRORRRRRRRRORRRRORROORRRRORRRRRRRRRRROOOROORRRRRRRRRORORRRRRRORRROORORRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRORORRRRRRRORRRORRROORRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRROROORRORRRRRRRRROORRRORORRRRORRRRORRRRRRRRRORRRRORRRROORRRORRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROOORRRRRRROORORRRROOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRROORRRRRRRORORROORRORORRRRRRRRRRRRRRRRRRRRORROOORORRORRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRROOORRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRROOORRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRORROOORRRRRRORORRORRRRRRRORRRRORORRORRORRRRRRORORORRRORRRRRRRRROORRRRRRRRRRRROROOORORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRORRRORRRRORRRORRRRRRRRORRRRRRORRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRORRRRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRROROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRORRRRRRRRRORRRORRRRROORRRRRRRRROORRRRRRRRORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRORORRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORRRRRRORRRORRRRORRORRRRRRORRRRRRORORRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRORRRRRRORRRRRORRRORORRRRRRRRORRORORRRRRORORORRORRRRRRRRRRORROORRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRROORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROOOROROOORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRROORRORRRRORRRRORRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRROORRRRRRROORRRRRRRORRRORRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRORRRRORORORRRRORRRRORRRRRORRRRORORORRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRORORRORRORRRRRRRRRRRRORRRRRRRORRRRRORRRRRRROORRRRRRRRORORRRRRRRRRRORRRORRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORORRRORRRRORRROORRRRRRRROORRRRRRORRORRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORORRORORRRRRRORORRRORORRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRROOORORRRRORORROORRRRRRRRRRRRRRORRRRRRRORORORRROORRRORRRRRRRORRRRRRRRROORRROORORRORRRRRRORROORRRRRRRRRRRRROOORRRRORRRORRRRRRRRRRRORORRRRRRRRRORORRRRRRORRRRRRRORRRRORRRRRRRORRRRRRRORRRORROORORRRRRRRRRORRRRRRRRRRRRRORORRORRRORRRRRRRRRROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRORRRORRRRORRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRROOORRRRRORRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRORRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORORRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRORRRRORRRRRRRORRRRRRORRORORRRORRORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROROORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRROORRRRRORRROORRRRRRRRRRRRRRRRRORORRROORORRRRRRRRRRRRRRRRRORRRRRRRRRORRORORRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRROORORRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRORRRORRRRRRORRRRRRRRRRRRORRRRORRRRRRORORRORRROROORRORRRRROORRRRRRROORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORRORRRRRRRORRRORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRORRORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRORRRRRRORRORRRRRRORRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRORORRRRRRRRRRORRROOOORRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRORROORORRRRORRRORRORRRRRRRRRRORRRORRRRRROORRRRRORRRRRRRORRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRRRORORRROORRORRRORRRRRRRRRRRRROROORRORRRRORRRRRRRRRRRRRRRRRRRRORROORRRRORRRORROORRRRRRRRRORRRRRORRRRRRRRRORRRRRORRORRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORORRRRRORRORORRORORRRRORRRRRRRRORRRRRRRRRRORRRORRRORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRORRRORRRRRRRRRORRRRRORRRRRORRRRRORRRRORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRORRORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRORROORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRROORRRRRRRRORORRRRRRRRRORORRRRRORRRRRRRRROORRRORORRRORRRRORRRRRROOORRRRRRRRRRRRRRRRRRROORRRRROORRORORRRRRRRRORRRRRRRRORORRRRORORRRROOORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRORRORRRRRRRRORRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRORRRROORRRRRRRRRRORRRRRRORRRRRORRRRRRRRORRORRRRORRRRRRRRRORRRRORRRORRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORORRORROORRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORROOORRRRRROOORRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRROOROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRRROOORRRORRORRRRORRRRRRRRRRRRRRRORORORRRRRRRRRORRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRORROROORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRORRRRROORRORRRRRROORRRRRORRRRRRRRROORORRRRROORRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRORRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRORRRORRRRRRRRRRROORRRRRORRROORRROORORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRORRRRRORRRRRRRRRROROORORRRRRORRRRRRRORRRRRRRRRRRRRRRORRRORRORRRRORRRRORRRRRRRORORRRRRRRRRRRRORROORRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRORRORORRORORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRROORORRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORORRORRORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRORRRRRRROOORRRRRRRRRRRRRRROORRRRRRROORRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRORORRRORRRRRRRRRRRRRRORRORRRRRRRRRRORRRORRRRRRRRORRRORRORRRORRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRORRRRORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRORRRRRORRRRRRRORORRRRORRRRORRRRRRRRRRRRRRRRRORROOOORORRRRORRRORRRORRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRROROORRORRRRRRRRRRRRRRORRRRRRRORORRRORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRORRRRRORORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRORORRRRRRORRRRRRORRRRRORRRRRRRRROOORRRRRORORORRORORRRROOORRRRRRRRRRRROORRRRORRRRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRORRRRRORORORRORRRORRRRORRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORORRORRRORRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRORRRRRRRRRORRRORRRROORORRRRRRRRRRRRORRRRRORRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRRORRRRRORORRRRRRRRRRRRORORRRRORRORRRRRRRORRRRRRRRRORROROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRROOORRRRRRRRRORRRORRRRROOORRRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRROOROORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRORRRRRRRROORRRRRRRRRORRRRRRRRROORRRRRORORRRORRORRRRORRRRORRORRRORRRRRRRORRORRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRORRRORORRRRRRRRORRRRRRORRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRORRORRORRRORRRORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRORRRRORRRRORRRRROORRRRORRRRRRRRORORRORRRORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRORRRORRRRRRRORRORRRROROORRORRRRRRORRRRRORRRORRRRRRRRRRRRORORRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORORRRORRRORORRRRRRRORRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRORRORROORRRRRROORRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRORORRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRORRRRRRRRORRORORORRRORRRRRRRORRORRRRRRROORRORRRRORRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRORRRRORROORORORRRRORORRRRRRRORROORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRORRRRRRRRRRRORROROORRROORRORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORROOOOORRRROORRRRORORRRRRORRRRRRRRRRRRRRROORROROORRRRRRRRRRRRRRRRRROORORRORRRRRRORRRORORORRRROROOORORRRORRRRORRRRRRRRRRORRRORRORRRRORRORRRRRORRRRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORORRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRORRRRRROROORRRORRRORRRORORRRRRRRORRRRRRORRRRRRRORRRRORORORRRORORRRRORRRORRRRRRRRRRRRORRORRRRRRROROORRRRRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOOORORRRORRRRRRRORRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRROORORRRRRORRRRORRRRORRRRROROOORRRRRORRRROORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRORRRRORRRORRRRRRORORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORRORRRRRORRRRORRROORRRORRRRRRRRORRRRRRRRRRRRRRROORRRORRRRRORRRRRRRRORORRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORRORRRRRRRRORRRRRRORORRRRRRRRRRRRRORRRRRRRRROORRRRRORRRORORRRRRRRRRORRROORRRRRRRROORRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRROOROORRRRRRORRRRORRORRORRRRORORRORRRORRRRRRRRRRRRORRRRORORRRRROOORRORRRRORRRRORRORORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRRORRRORRRORRRRORROORRRRRORRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRORORORRRRRRRORRRRRRRORROROORRRORRRRRRRRRRORRRORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORORRRRRRRRRRRORORRORRRRRRORRRRRRROORRRRRRRRRRRRORRORRRRRRRORRRRRROORRRRRRRRORRORRORRRRRRRRORROOROROORRRRORRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRORRRORRRRRRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRROORRRRRRRORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORORROORORRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRORORORRRORRRRROORRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRRRORRRORRRRRORORRRRRRRRORORRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRRRROORRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROROORRRRRRRRRRRRRRRRORRRORORORORRORRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORORORRRRRRRRRRORRRRRRRORRRRORRRORRRRORRORRRRRRRORRRRRRRRRRRRORRRRORORRRRRRORRRORRRORRRROORRRORRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORORORRRRRRRORORRRRRRRRRORORRRRRRORORRRRRRRRRRRRORORRRRRRRRORRORRRRRRRRORRRRRRRRRORORRRRORRRRRORRRRRRORORRRROORRRRORRRRRRRRRRRRORRRRRRRRRRRORRORRRRROORROORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRORRORRRRRRRRRRRRRRRORORROORRRRRRRRRRRORRRRRRRRRRRRORRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRORORRORRRRRRRORRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRROORRRORRRRORRRRRROORRRORRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRORORORRORRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRORRORRRORRRRRORRRORRRRRORRRORRRORRRORRORRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRROOORRRRRORRRRRRRROORRRRRRRRRRRORRRRRORRRORORRRORRRRRORRRRROOORRRRORRORORRRRRORRORRORRRORRORRRRRRRRRRORRROORRRORRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRROOORRORRRRRRRRRRRRRRRRRORRRRRRORRORRORRRRRRROORRRORRRRRORRRRRRRRRORRRRRRRORORROORRRORRORRRRRRRRORRRORRRRRRRROORRRORORRRRRRRRRRRRRRRROORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRORRORRRRRRRRORRRRRRORRRRRRORRRRRRRRORRORRRRRRRORORRRORRRRRRROORRRRRRRRRRRROROORRRRRRRRORROORROORRRRORRROORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRROORRORRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORORRRRRRRRRRRROROORRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORORRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORORRRRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRRROROORRRRRRRRRRORRRRRRRRRRRRORORRROORORRRORRRRRRORRRORRRRRRROORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRRROROORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRORRRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRROORRRROORRROROORRRRRRRRORRORRRORRRORRORRRROROORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRORORRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRORRRRRRRRRORRRRRRROORRORRRRRRORRRRRRRRRRRRRORORRRRRRORORRRRORRORRRRRRORRRRRRRRRRRRORRORORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORORRORRRRRRRRRRRRORRRRORRROORROORRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRORRRORRORRRRRROROORRORRRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRROROORRRRRRRORRRRRORORRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRROORORORRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRORROOROORRORRRORRRORRRRRRRRRRORORRORRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRROORORROORRRRRORRRORRORORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRORORRRRRRORRRRORRRRRRRRRRRRROORORORRRRRRRORRRRRRRRRRRRORORRRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRRRORORRRORORRORRRRRORRRRRRRORRRRORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRORORRRRORRRORRRRRRRRRRRRRRRORRRRRRORORRRRRRORRRRRRRRROOORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORORROORRRRRRRRRRRORRRORRORRRRRRRRRORRRORRORRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORORRORRRRRRORRRRRROORRRRORRORRRRRRORRRRRRRRRROORRRORRRRRRRRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORROORORRRRRRRRRORRRRRRRRRORROORRRRRRRRRRORRRRRRRRORRRRRRORRORRRRRRORROORRRRRRRORRRRORRRRORORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRORRRROORRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRROORRRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRORRRORRRRRRRRRRRORORRRRORRORRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRORRRORORRORRRORRRRRRRRRRRRRRORRORRRRRRRRRORRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRRRRORRRRROROORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORORRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORORRORROOORRRORRRRRRRORRROORRRRORRORRRORORRRRRRRRRRRRORORRRRRROORRORRRORRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRRRRORRRORORRRRORORORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROROROORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRROORRRRRRRRRRRRROROORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORORRRRRRRRRROORORRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRORRRRORORRRRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRROORRORRRRRRRRRRRRORRRRROORORORRORRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORORORROORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRORRRRORRRRRRRRRRRORRRRRRRRRORRROORRRRRRRRRRRRROORRRRRRRRRORRRRORRRRRRRRRRRRORRROOORRROROORRRRRRRRRROROORORRRRRRRRORRRRRRRRRRORRRORRRRORRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRORORRRRRROORRRRRRRRRRORRRRRRROROORRROORRRRRRRORRRRORORRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRORROROORRORRRRORRORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRORRRORROORRROROORRORRRRRRRRORRORRRRROORORRRRRRORRRRORRORRRRRRRRRORRRRRRRORRRRORRRORRRRRRRRRRRRRRORRRORRORRRRRORRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRORORRRORRRRRRRRORRROROORRRRRRROORRRORROORORRRRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRORRRRORRRRORORRORRORRRORORROORRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORORRRRORRRRRRRRRRRORRRRORRRRRRORRRORRRORRRRRRROOROORORROORORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRORRRRRRRRRROORRRRORRRROORRORRRRORRORRRRRRRRROORORRORORRRRRRRRRRRORORRRROORORRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORORRRRRRRRRRRORRORRRROORRORRRRRRRRRROORRORRRRROORRRRRRORRRRRORORRRORORRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRROORRRRRRRORORRRRORRORRRRRRROORRRRRRRORRRRRRRRRRRRRROORRRRRORORRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRORRRRORRRRORRRRRRORRRRROORRRORRORRRRRRRORRRRORRRRRRRORRRRRRRRORORROORRRORORRRRRRRRRORRRRRRRORRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRORRRRRORRRRRRRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRROROORRRORRRRRRRRORRRRRORRORRROOORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRORRORRORRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRORRRRORRRROORRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRORROOORRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRORRRORRRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRORORRRRRRRRRRRORRRORRRRRORRORRRRORRRORRRRRRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRRROORRRORORRORRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRORROORRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRROORRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRORRRRROORRRRRRRRRRRRROORRRRRORRORRRORRRORRORRRRRRORRORRROROORRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROROORRRROORRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRROORRRRORRRRORRRRRRRORRRRRORRRRORRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRORORORRRRRRORRRRORRRROORORRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRROORORORRRRRRRRRRRRRRROORRRRORORRRORRORRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORROORRRRRRRRRRRRORORRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRORRRORRRRRRROOROORRRRRRORRRRORRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRRORRRRRRRRRRRRRRORROORRRRRORRORRRRRRORRRORORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRORORRRRORRRRRORROORRRRORRRRRRRRRRRORRRRRROROROORRORRRRRRRORORORRRRRRRRRRORRRORRRRRROORORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRORORORRRRRRORRRRRRRRORRRRORRRRROORRRRROORRRRRRRRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRORRRRRRRORRRORRRRRORRRORRRRRRRRRRRORRRRRRRRRRROORORRRRRRRORRRRRRRRORRORRRRRORRRRRRRRRRORRRRRRRRRORRORRRORRORORRRRORRRORORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRROORORRRRRRRRRRRRRRORORRRRRORRORROORRRRRRRRRRRRORORROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRORRRORRORRRRRRRRRORRRRRRRRRRORRRRRRRORRRROORRRORRRRRORRRORRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRRRRRORRORRROORRRRRORRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRRRRRORRRRRRORRRORORRRRRORRRRRRRRORRRRRRORRROORRORRRRORRORRRROORORRRORORORRRRRRRORORRRORRRRRORRORRRRORRRRRROOORRRORROORRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRROORRRORRRORROORRRRRRROORRORRRORRRRORRRRRORORRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRORRRRRRRRRRRRRRROOORRRRORRRORRRRRRRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRROROORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRROOOOORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRORRRRRRRORRRRORRRRRORRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRORORRRRRORORRORRRRRRRRRRRRRROORRRRRRRORRRRORRROORRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORROORRRRROORRRORRRRRRRRRRRRORRORRRRRRORRRRRRRRORRRRORRRRORRRRORRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRORRRRRRRRORORRRRRRROORRRRRRRRRORRRRRRRORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRORRRORRRRRRORORRRRORRRORRORRRRRRORRRRRRRRRRRRRORRORROROORORRRRRRRORRRORRRRRRRORRRRRRORRRRORRRRRRORRRORRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRORRRRORRRORORRRRRORRRRRRORORRORRRRRORORORRORRRRRRRRRRORRRRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRORRRORRRRRRROROOORRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRORRRRRRRRRORRRRRRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRORORRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRORRRRRORRRRRRRRRORORORORRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRROROORRRRRRRRORRRRORRRRRRRRORRRRRRRRORORRORRORRRRRRRRRRRRRRORRRROORORRRRORRORRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRORROORORRRRRRRRRRRRRROORRRRRROOORRRRORRORRRORRORRROORRRRORRRRRRRRRORRORRRRRORRRROORORRRRRROOORRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRORRRRORRRRORRRRRORORRRRRRRORRRRRRROORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRORRRRRRRORORRRORRRRRORRORRRRRORRRORRRRRRRRRRRRRRORROORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRORRORORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORORORRRRORRRRRRRRRORRORRORORRRRRRRRRRORORORRRORORRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRROOORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROROROORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRRRRRRRRRRORROORRRRRORRORRRRRRORORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORORORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORORRRRRRRRRRRRORRRRORRORRRRRORRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORRRRRRORRORRORRRRRORRRRRORRORRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRORORRORRORRRRORRRROORRRRRRRRRRRRRORRORORROORRRRRRRRRRRRRRRRORRRRRRRROORRORRRRROROORRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRORRORRRRRRRRORRRRORRRRRRROORRORRORRRORRRORRORRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRORRORRRORRRRRRRRRORRRRRRRRRROORRRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRROORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRORRROORRRRRRRRRRRORRRRRRRRRROORRORORORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRORRRORRRRORRRRRRRRRRORROORRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRROORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRROORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRORORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORORRRORROORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRROOOORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRROORORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRORORORORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRORRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRROOORRRRRRRRROORORRRRRORROROORRRRRORORORORRRRRRRRRRRORORRRRRRRRRORRORRRRORRRORRRRORRRRRRRRRROORORRRRRRRRRRRORORRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRROORRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRROOORRRRRRRROORRRRRRRRRRRRRRRORRORRRORRRRRORRRRRRROORRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRROORRRROORRRRRORORRRRRRRRROOOORRRRRRRRRRROOORRRRRRRRROORRRRRRORRRRRRROORRORRROORRRRRRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRORRRRORRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRORRRRROROORRRROORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRORORRRRRRRROORRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORORRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRORRRRORRORRRRORRRRRRRRRRRRROORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRORRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORORRRORRROOORRORRORRORRORRRRORRRRRRRRRRRORORRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRORRRRRRORORRRORRRRRRRRRRROORORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRORRRRRORRORORRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORRRORRRRRRRRRRRRRRORORRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRORRRRRRRRRRRRRORORRRRRRRORORRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORORROOORRRORORRRRRORRRRRROORRRRRORRRRRRRRORRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRORRRRRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRROORRRRRRRRRRORORRRRORRRRRORRRRORRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORORRRRRORORRRRRRRRRRRROORRRRRROOORRRRRORRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRORRORRORORRRRRORRRRRRRRRORROORRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROROORRRRRRRORRRRORRRRRRORORRRRRRRORRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRROORRRRRRROORRRORRORORRRRORORRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRROORRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRORRRRRRRRRRRRRRRRRORRRRRRRORRROORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRROOORRRORRRRORRRRRROORRRRRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRROOORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORRRRRRRRORRRRRORRORRRROORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRORRORORRRRORRRRORRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRROORRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRORRRROROORRRRRRRORRRRRORRRRORRRRRRRRRORRRORRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRORRRRORORRRRRRROORRRRRRRRORRRRORRRORRORRORRRRRRRRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRORRORROORRRORRRRORRRRORRRORRRROORRORRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRROORORRRRRRORRRRRRRRROORRRRORRRRORRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRORRRORORROORRORRRRORRRRRROROORRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRORRRRRROORRRRRRRRRRRRRRRORRRRORRRROORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRORRRRRRORORORRRROORORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRROORRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRORRRRRRRRORRORRRRRRORRORORRRRRRRRRRRRRORRRRRRORORRORRORRORRRRRRRRRRRRRRRORORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRROROORRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRORORRRRRRRRRORORRRRRRRRRORRRRORRRRRRRRRRORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRORORORRRRRRRORRRRORRRROORRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRROORRRRRRRORRORRRRRRRRRRRORRRRORRRRRRRRORRORRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRORRRRRRORRRRRRRORRRORRRRRORRRRRRORRRORORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRROORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRROORRRRROOORRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRROORRRRRORRRRRORRRORRORRRRRRRRORRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRROORORRRRRRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORRRRRORRRRORRRRRRORRORRRRRRRORRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRORRRORRRRROORRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRORROORRRRORRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRORORORRRRRRRORRRRRRRRORRRORRRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORRORRRRORRRRORRROORRRORRRORRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRROORRRORRRRRRRRRRRRRRRRRORRROORRRROORORRRRRORRORRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRORRRRRRORRRRORRORRORRRRRRRRRRRORRRORRRORRRRRRRRROROORRRRRRORRORRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORORRRRRRORRRRRRRRRRRRRRORRRROORRORRRRRRRRRRRROORRRRORRRRRRRRRORRRRROORRRORORORRRRRROORRRRRRRRRROORRORRRRRRRRRRRRORORRRRRRRORORRORRRRRRRRRRRRRRRRRRRROROORRRRRROORRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRROORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRORORRRORRRRRORRRRRRORROORRRRRRRRRRRRORRRRRORRRORRORRRRRRRORROORRRRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRRRORRRRRRRRORRORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORORRRRORRRORRRRORORORORRRROOROORRROORORRORORORRROORRRRRRORRRRRRRRRRROORRRRRORRORRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRROORRRRRRRROOORRRRRRRRORRRRRRORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRORRRORRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRROORRRRORRRRORROORRRRRORORRRRRRRRRRRORRRRRROORRRRRRRROORORRRRRRRRRORORRROORRRORRRRRRRRRRORRRRRRRRORORORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRORRRRRRORORORROOORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRROORRRRRRRORRRORRORRRRRORRORRRRRRROORRRRORORRRRRRORRRRRORRRORRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRORRRRRORRORRRRRRRRORRRRRRRRRRRRORRRRORRRRORORRRORRRRROROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRORRRRRROORRRRRRRRRRRRRORRRRRRRRRORRROORRRRRRRORRRORRRRRRORORRRRRORRRRRRRRRRRRRRORRORRRRRRRORRRRRRORRORROROORORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRROORRRRRRRRRROORRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRORRRRRRORRORRRRORRRORRRRROORRRORRRORRRRRRRRRRRRRORRRORRRRROORORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRROORRRROORRRRORRROORRRRRRRRRORRRRRRRRRRRRRRRORORROORRRRRRRRRRRORRROORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRORORRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRORROORRRRORORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRROOORRRRRROORRRORRRRRRORRRORRORRRRRRRRORRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRROORROORRRRRRRRRRRORRRRRORRRRRRRRRRRRROORRRORRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRORRRRRRRRRRRORRRORRORRORRRORRRRRROOORRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRORRRORRRRRRRRRRRRRRRRRORROROORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRROORRRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRORRRRRRRRRRORORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRRRRRRORORRRORRRRRORRRORRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRROORORRRRRRRRORRRROORRRRRRRORRRRROROORRRRRRRRRRRRRORRRORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORRORRRRRRRRRRRRRRRRROOORORRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRROOORORRRRRORRRRRORRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORRORORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRORRRRRRRROORRRRRRRRRROROORRRRROORRORRRRRRRRRRROORRRRRRRORRRRORRRRORRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORORORRRRRRRRORRORRRRORRRRRRRROROORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRORRRRORRRRRRRRRROORORORRRRRRRORRORRRRRRRORRRROORRRROORRROORRRRRRRROORRRRRRRRRRRORROROORORRORRRRRRRRRRORROORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROROORRRORORRRRRORORRRRRRRRRRRORRORORORRRRRRRRORRORRORRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORORRRRRRORORRRRRRRRRRRORRORRRRRRRRRRORROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRORRRRORRRRRORRRRRRRRRRRRRRRRRROROOROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRORRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRROORRRRORORRORRRRRRORRRRRORRRRRORRRRRORORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRORRRRRRRRRRROORRRRRRRRRORRRRRRRRRRORRRROORRRRRORRRORRRRRRRRORRRRRRORRRRORRRRORRORRORRRRRRRROORRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRORRRORORRRRRRRRRROORRRRRORRRRORRRRRORRRRORRRRRRRRORRRORORRRRRRRRRRORRRRRORRRRORRORRRRORRRRRRORRORRRRRRORROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRROORRRRRORRRRRRORRRRRRRRRRRRRRORRRORORRRRRRRRRORRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRORRRORRRROORORRRRORRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRORORRRRRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORROOOORRRRRORRRRRRRORRRRRRORORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRROORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRORRRRRROORRRRRRRORRRRRRRRORRRRRRRRRRRORRRORORRRRORRRRRRRRRROORRRRORRRRRRORORRRRRRRORRRRORRRRRRRORRRRRRRRRRORORRRORRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORROORRRRORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRROROOROOORRRRRRRRRRRRORORRRRRRRORROORRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRORRRRORRRRRRROORRROORRRRRRRRORRORORRRRROORRRRRRRORRRORRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRRRORRORRORROOORRORRRORRRRRRRRRRRRRRRRRRRRRORORRORORRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRORORRRORROROORRRRORORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRORRRROORRRRRRORRRRRRRRRRORRRRORORRRORRRRORRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRROORRRRRORRRRRORRRRRRROORRRRRRRRRRORRRRRRRRRROORRRRORRORRRORRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRROORROROOORORRRRRRRORRRRRRRRRRRRROOOOORRORRRRRRRRRRRRORORRRRRORROORRORRRRRRRORRRRRRRRRORORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRORRRRRRORRRRRROORORRRRORRRRRRRRRORRRRRORRRRORRRRRORRRRRRRRRORRORRORRRRORRRRRRRORRRRRRRORRORRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRORRRRRRRRROORRRRRRORRORRORRRRRORRROORORRORRRORRRORRRRRRRRRRRRORRRRRRORRORRRRRRRRRORORRRRRRRORRRORRRRRRRRRRORRRRRRORRRROOOORRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRORRORORORORRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRROOORRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRROROORRRRRORRRRORRRRORRRRRORRRRROROORRRRRORRRRRRORRRRROORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRORRRRRROORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRORORRRORRRRRORRORRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRORRRRROOOORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRORRRRRRROROORRORRRRRRRORRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRORRRROOORRRRRRRROORRROORRRRORRRRRRORRORRORRRORRRRRRORORRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRORORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRROOORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRORRRROROORRRRRRRRRRRRRRORROORRORRRRRRORRRRRORRRRRRRORRORORRRRRRRRORRORRRRRRRORRRRRRRORORRORORRRRRRRRRORRRRRORRRRORRRROORRRRRRORRRRRRRRRRRRRRRRORROOOORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRORRRRORRRRRRRRROORRRRROOORRORRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRRROOORRRRRRORRORORRRRROORRRRRRRRRRROOOROROORRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROOORRRRRRORRORRROORRRRORRORRRRRRRRRRRRRRRRRRRRRRROORRRRORORRROORRRRRRRROORRRRRRRRRRRORRRORRRORRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRROORRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRORRRRROORRRRRRRRORORRRRRORROORRRRORRRRROORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRROROORRRRRORORRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORROOORORORRRORRRORRRORRRROORRRRRRRRRRRRRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRROOORRRRRRRORORRROORORRORRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRROORRRORRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRRRRRRORRRRRRRRORORRRORRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRROORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRORRORRRRRRRRRRORORRRRRRRRRRRRRRROORROROORRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRORRORRRRRRRRRRORRRORRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRORRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRROORRRRRRRRORRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRRRORORRRRRORORORRRRRRORRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRORRRRRORRORRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRORORRRRRRRRRRRRRRRORRRRRROORORRRRRRRRORRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRORRRRRRRORRRRORRRRROORRRRRRRRRRRRORRRRORRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRROOORRRRORRRRRRROORORRRRRRRRRRORRORRRRRRROORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROROORRRRRRRRRRRRRRORRRRRRRRRORRROORRRRRRRRRRRROOOORRRRORRRRORRRRRRRORRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRORRRRRORRRRRORRRRRRRRORRORRRRRRRRROROORRRORRRRORRRORRRORRRRRRRRRORRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRORRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRROORRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRORRRRRRROORRRRRRRORRRRRORRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRORRRORRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRORRRORRRROORRROOORRRRRRORRRRRRRORORRRRRORORRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRROORRRRRRRRORRRORRRRRORRRRRORORRRRRORRRRRRRRRORRRRORRROORRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRORRRORRRRORRRRRRRRORRRRRORORRRRRRRRRRRRORRRRRRORRORRRRRORRRORORORRRRRORRRRRORRRRORRORORRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRORRROROORRRRRRRORRRRRORRRRORRRRRRRRORRRRRRRRRRRORRRROOORRORRRRRRRRRRRRRRROORRRORRORROORRRRRRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRORRROORRRRRRRRRROORRRRRRRRRROORRRRRRROORRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRORRORRRRORRRRRRRRRRRRRORRORRRRRRRORORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORORRRRRRRRROOOOORRRRRRRRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRORRRRRRRORORRRRRRRRROORRRRORRRRRRRRRORRORRRRRRRRRRRORRRRORRRRRRRROORORRRRRRORRRRROROOORRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRORORRRRRORROOORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORORRRRRRRRRRORRRRRRRORRRRRORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRORRROORRORRORORRRROROORRRRRRRRORORRORRRRRRRRORRRRRRRRORRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRORRRRRRRRORORRORRRROORRRRRRRRORRRRRRORRRRRRRROROOROORRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRORRRORRORRRORORRRRRRRORRRORRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRRROORRRRROORRRRRRRRRORORRORRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRROORORRRRRRRORRRRORROOORROORRRRRRORROORRROORRROORRRRORRRRRRRORRRRRRORROROROOROORORRRRRORRRRRRORRRRRRRORRRROORORRRRRRRRRRORRRRRRRRRORRRRRRROORRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRORROORRORROORRRRRRRRORORRRRRRRRRRRORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRORRRRORRRRRRRRRRORRRRRRRRRRORORORORRRRORRRRRRROORRRRRRRRRRORRRRRRRRORRRROORRRORRRORRRRRRRRRRRORRRRRRRORRORRORORRRORRROORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRORORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRORRRRRRRORRRRRRRROOORRRRRRRRRRORROORRRRRRORRRRRRRRRRRRRORRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRRRRRRORRORRRRRRRRRRRRRRRORRRORRRRRRROROORRORORRRRRORRRRRORRORRRRRRORRORRRRRRRRROORRRRRRRRRRROORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRROORORORRRRRRRRRORRORRORORRORRRRRRRRRORORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRRRRROORRRRRRRRRRRORRRORRRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRROOORRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORORRRRRORRRRRRRRRRRORRRRRRRORRORRRRRRRORRRRRORRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRORRRORRORRRRRORRROORORRRRRRRRRRRORRRRRRRRRORORRRRRORRRORRORRRRRRRRRRRORRORRORORRRRRRRRRRRRRRRRRRORROORRORORRRRRRRROORRRRRRRRRRRRRRORROORRRRRRRORORRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRORRRRORRRORORRRRRRORORRRRROOOORORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORORORRRRRRORRRRRORRRRRORORRRRORRRRROORRORRRRRRRRRRRRRRRORRRRRORRRORRRRROORRRORRRRRRRRRRRORRORRRROORRRRRORRRRRRROROORRRRRORRRRRRRRRROORRRRRRRRRORRORRORORRRRRORORRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRORRRRRRORRROORRRORRRORRRORRRRRROORRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRORROORRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRROORRRRORRRRRROORRRORRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRORRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRORRORRRRRRORRRRRRRRRRORORRROORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROORRORRRRRROORRRORRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRORORRRRRORRRRRORRRRRRRRRORRRRRORORRRRRRRRRRRORRRRORORRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRORRRROOOROOOOORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRORRRRORORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRROORRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRORORORRRRRRRRRROOORRRRRRORRRRRROORRRRRRORRRORRRRRRRRRRORRRRORRORRRRRRRRRRRORORRORRRRORRORRORORRRRRRORRORRRRRRRRRORORRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRORRRORRRORRRORRRRRRORRORRRRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRROROORORRRRRRRRRRRRRORRRRRROORRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRROROORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRORORRRRORRRRRORRRRRRRRRRRORRRRRRROORRRRRRROROORRRRRRRRRORRRRRRRORRRRRRRORORRRRRRRRRRRRRORRRRRRRRORRRORORRRRRRORRRRRRRRRRORRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRORRRRORRORRRORRRRRRORRRRRRRRRORRRRRRORRORRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORORRORRORRRRORRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRROORRORRRRRRRRRROORRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROOORRRRORRRRORRRRRRRRRROORRRRRORRORORORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRORRRRRRRRRRRRORORRROORRORRRRRRRRRRRRRRRORRORRORRRRRRORRORRRORRROORRRORRRORRORRRRRRORRRRRRORRRRORROORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRORRRRRRRRORRRRORROORRRORRRRORRORRRRRRROORRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRORRRORRRRORRRRRRRORRORRRRRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRROORRRRRORRRRRRRRORRORORORRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRORRORORRRRRRRRRRRRRORRRRRRRRRORRORRRORORRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRROORRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROORRRRRRRRRORRORORRRRRRRRRORRRRRRRORRRRRRRRRORORRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRORRRRRRORROORORORRRRRRRRRRRRRRRORRRRRORRRRRRORORRRORRRRORRORRRRORRRRORRORRRRORRRRRRRORORRRRRORRRRRRRROORRRRRROORRRRRORRROOROORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROORROORORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRORRRRORORRORRRRROORRRRRRRRRRRORRORRRRRRRRORRORRORRRRORRRRRRRRRRRRORRRRORRRORRRRRORRRRRRRRRRRROORORRRRRRRRRORRRRRORRORRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRROOORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRROORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORORRORRRORRRRRORORORRORRRORRORRRRRRRRRROORORRORRORORRRRRRRRORRRRRRRRRRRRRORRORRRRRRORRRRRRRRRORRRRRRROORRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRROORRROORRRRROORRRORRORRRORRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRRRRORORORRORROORRRRRRRRRRRRORRRORRRRRRRRROOROORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRROORRRORORRRRRRORRRRRORRRRORRROOOORRRORRRRRRRRRRRRRRORRRRRRRRRROORORRRRRORORRRRRRRRRRRRRRRRRRORRROORRRRROROORRRRRRROROORRRORRORRORRRRRRRROORRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRROORRRRRRRRRROORRRRRRORRRRRRRRRRRORRRROORRORRRRROORRRROORRRORORRORRORRORRRRRRRRRRRORROROOOOROORRRRRORRRRRORRRRRRRRRORRRRRRRRROORRRRRRORRORORRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORRRRRORRRORRRRRRORRRORRRRORRRRRRORRRRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRORRORRRRROORRORRRORORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORORRRRROORRRRORRRRRRRRRRORRRRORRRRRORRRORRRRRRRRRRRRORRRRRRRRROORRRORRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRORRRRRRRRRORRRRRRORRRRRORRORRRRRORRRRRORRORROORRORRRRRRORRRROROORRRORRRRRRRRRORRORRRRRRRRRRRORRRRORRRRRRRRRORORRRORRORRRRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRRRORRRRRORRRRRRRRORRRORRORRRRRORRRRORRRRRRRRRRRORRRRORRRRRRORRRRORORORRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRORORORRRRRRRORRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORROOORRRRRORRRRORRRRRRRORRRRRRRORRRROORRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRROOORRRRRRRRRRRRRORRORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRORRORRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRORRORRRRORORORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRORRRRRRORRRRRRRRRRRRRORRRRRRROOORRRRRORRRRRRRRRRRRRRRRRRRROOORORRRRRORRRRRRORRRRRRORRRORORRRRRRRRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRROORRORORRRRRORRRRRRORRRRRRRRRRRRRORRORRRRRRRROORRRRRRRORRORRRRRRRORRRRORRRORRRRRRRORORRRRRRRRRRRRORRRRORROOORRRORRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRROORRRRRORRRRRRRRRRORRRORROORRRRRRRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRORRRRRRORRRORRRRORRRRRRORRRORRORRRRRRRRRRRRRORRRRRRRRORRRRRRRORORRRORRORRRRRRORRRRRRRRRRRRRORRRRRRORRRORRRRORRRORRRORRRORRORRRRRRRRRRRRRRRORRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRRORRROORROROORRORRRRRRRRORORROROORRRRRRRRRRRRORRRRRORORRRRRRRORRRRORRRRRRORORRRRRRRRRRRRORRORRRRRORRRRRRORRRRRRORRRRRRRRRORROORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRORORRRRRRRRRORRRRRRRORRRROROROORRORRRRRRORRRRRRRRRRRRRRRRRORROORRRRORRRRRRRRORORORRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRORORORRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRROORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROORRRRORRRRRRRRRRRRRORORRRRRRORORRRRRRORORRORRRORRRRRRRRRRRRRRRORROORORRRRRRRRRRRRROORRRRRORORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRORRORRRRORRRRORRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRRRRRRRRRRRRORRORRRORRRORRRORRORRRRORRROORRRRRRRRRRRRORRRROORORRRRORRRRRRRRORRROOORRORRRORRRORROROROORRRRRRORRRRRORRRRORRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRORRRRRORRRORRRRORRRRRRORRRRRRRORRRRRRRRRRORRRORRROORRRRRRRRRORRRORRRORROORRRRRRRRRRRRRRRRRRRRORRRRRRRORORRORRRORRRRRORRRRRORRRRRRRRRRROORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRORRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRROORRRRRRRRRORRRRROORRRRRRRRRROORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRORRRRRORRRRRRRRRRRRRRORRRRORRRRRRORORRRRORORRRORRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRORRRRROORRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRROOORRRRRRRORRRRRRRRRORRORRRROROORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORORRRRRORRORRRRRRRRRRRRRRORRRRORORRROROROORRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRORORRORRROORORRRRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORRRRRROORRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRRRRRRRRRORRRRRRORRRORRRRORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRROORRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRROORRORRRORRROOOORRRRROORRRRRROORORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRRRORORRRRRRRRRRRRORORROORORRORRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRORRRRRRRRRORRRRRORRRORRORRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRORORRRRRORORRRRORRRORORRRRRRRRRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRORRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORORRRRRORRRRRRRRRRORRRORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRORRORRRROORRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRROORRORRRRRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRRRRRORORRRRRORORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRORRORORORRRORRRRRRRRRORRRORRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRORRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRORRORRRRRRROORRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRROORORRRORRRORRRRROORRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRROROORRRRRRRORRRORRRRRORRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRRRRRRORRRRORRRROORRORRRRORRRRRORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORORORRRORRRRRRRRRRRORRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRORRROORORORORRRRORRRRRORORRRRRRRRORRRRRORRRORORRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRORRRRROOORRRRRRRRRROORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRORRROROORRORORRROORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRORRRRRORRRRRRRORORRRRRRRRRORRRRROORRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRORORRRORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRROORRRRORRRRRRRRRORRRRRRRORRRRRRRORORRORRRORRRRRRRRRRRRRRRRROROOROORRRRRRRRORRRRRRRORRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRROORRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORORORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRROORRRRROORRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORRRRRRRRORORRRORORRRRRORRRRRORRORRRRRROROORRRRRRRRRRRORRRRRRRRROORRRRORRRORRRRRRRRRRRRRRRORRRORRRRRRRORORRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRROORRROORRORRRRRRRRRORRRORROORRRRRRROROROORORRRRRRRRRRRRRRRORRORORRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORRRORRRRRORORRRRRRRRRRROORRORRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRROOROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORRRRRRRRRRRRRRORRORRRRORRRRRRRRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRORRRORRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRROROORORRRRRRRROOORRRRRORORRRORRRRORRRORRRRRORRRORRRORRRRRRRRORRRRRROORRRRRRRRRRORRRRRRRRRRRRORRRRORRORORRORORRRRORRORRRRRRRRRRRRRRRRORRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRORORORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROORRRRRRRORORROORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRORRRRRROROORRRRROORRRRRORRORRRORRRRRRROORRORORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRROOORRRRRRRORRRORRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROROORRRRRRRRRRRRRORRRRRORRRRRRORRORRORRRRORROOOOORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRROOORRRORRORRRORRRORRRRRRRRORRRRRRRRRORRRRORRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRORORRORRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRORRORORRORRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRROORRRRRRRRRORRRRRRRROORORRORRRRRRRRORRRRORRROORRRRRRRORRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRORRRORRRRORRRRRORRORRRRRRRRRRRORRORRRRRORROORRORRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRORRRRRRRROORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROROORORORRRRRRRRRRRRRORRRRORRRRRORRORORRRRORRRRRRRORRRRRRORORRRROORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRORRRROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRORRRRRRORRRRRRRORRRRRRRROORRRRORRRRRRRRRORRORORRRORRORRORROORORRRRRRRRRRORRRRRRRRRRROORRRRRORRRORRRRRORRRRRRORRRRRORRRRRRRRRORRORRRRRRORORORRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRORORRRRRRRRRRRORRRRRRRROORRRRRORORRRORRRRRRRRRRRRRRRRRRRRROORORORRRRRRRRRRRRRRORRROORORRRRORRRRRRRRRRROORRRRRORRRRRRRRRRRRRRORRRRRRORRORROORORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRROROORRRRRRRRORRRRRRRROORRRRRRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRROOORRORRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRORROORRRRRRRRRRRORRRORROORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRORROORRRRRORRRRRORRRRRRRRRRROORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRROORORRRRRRRRRRRRRRRRORORRRRRRRRORROORRRRRRRRRRRRORRRORORRORRRRRRRRRRORRRRORRRRRRRORRRORORRRRRORRRRRORRRRRRORRRORRORRRRRRRORRRORRRRRRRRORRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRORROORRRRRRRRRRRORORRRRROORRRRRRORRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORRRRRORRORRRRRRRORRRRRRRRORRORRRRRRRRRRRORORORRRROOORRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRORRRRRRRRRORRROORROORRRROORRRRORRORRRROOORRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRORORRRRRRRRROORRRRRORRRRRRRORRRRRRORRRRORRRORRROROOORRRRRRRRRORRRRROROORRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRORRRRORRRRRRRRRORRRRRORORROORRORORRRRRRRRRORRRRRROROOORRRRROOORRRRRRORRORRRRRRRRORRRRRORRRRRRROOORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRROORRRRRROORRRRRORRRRRRRROORRRRRORRORRRRRRRROROOORORRRRRRRRRRRRORRORRRRRRORROOOORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRROROORRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRORORRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORROROORORRRRRRROORRRRRRRRRRRRRRRRORROORRRRROORORRRRRRRRRRRROORRROORRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRORORORRRRORRRORORORRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRROORRRORRRRRRORRRRRRRRRRRRRRORRROORRRRORRRRRRRORRRRRRRORRRRRROORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRROOORRRROOORRRRRORRRRRRORRRRRRORRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRORRRORRORRRRRORORRRRORRRORRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRORORRRRRRRORRRRRRRRRRRRORRORRRORRORRRRORRORRRRRRROROROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRROROORORRRRRRRORRRRORRRRRORRRRRRRORRRORRORORRRROORORRRRRRROOORRRORORRRRRRRRORRORRRRORRRROROORRRRRRRRRRRRROOROORRRRRRRORRORRRORRRRRORRRRRRORRRRRRRORRROORRRORRROROOORRRORORRRRRROORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRROORRORRRORRRORORRRRRRRRRORRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRROORRORRRRRRRORRRRRRRRRRROORRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRORORRRORORRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORROORRORORRORRRRRRRRRRRRRRRRRRROORRRORRORROORRRORORORRRRRRRRRRRRRRRRRRORRRRORRROROORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRROORRORRRORRRRRRRRRRRRRRRORROORRRRRORRRRRRRRORRRRRROORRRORRORORRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRRRORRRRRROORRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRROORRRORRRRRROORRRRRRRRORRRRRROORRRRRRRORRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRORRRRORRORRRRRRORRRRRORRRRRORRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRROORRRRRORRRRRRRRRRRRROORRRRORORROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRROROORRRRRORRRROORROORORRRRRRORRRRORRRRRRRRRRORRRROROORRRORRRRRRORRRORRRRRRRRRRRROOORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRORRRRRRRRRRORRRRRORORRRRRRORORRRRORORORORRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRORORRRRORRRRRRRRRRRRRROORORRRRRRORRRRRRROORRRRRRRRRRRRRRORRRRRRRORORORRRORORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRROORORRRRRORRRRORRRRRRRRRRRRRRRRRRROROORROORRRRRORRRRROORRORORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROORRRRRRRRRRRRRRORORRRRORRRROORRORORRORRRRRRRRORRRRRRRRRRRRRRORORRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORORRORRRRRORORRRRRRRRRRRORRORRORRRRRRRRRRORRRRORROORRRRRRORRRRRRRRRRRRORRRRRORRRRRRROORRORRRRRRRRRRORROORRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRROORORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORORRRRRRORRRRRRRRRRORORORRORRRRRRRRORRRRRORRRRROROORRRRORRRORRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRORORRRRRORRRROORRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRROORRRRRRRRORRRRRRRORRRRORRORORRORRRORORRORRRRRRRRRRORRRRRRORRRRRROORORRRRRRRRRRRRRRRRRRROORRRRRRRRRRROOROOORRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRORORRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORORRRRRROORRORRRRORRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRORRORROORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRROROORRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRORRRRRRRRRROORRRRRRRRROORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRORRRRRRRRROORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROOORRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRORORORRRRRRRORRRORRRRORRRORORORRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRRORRRRRRORRRRRRORRORRORRORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRROORRRRRROORRRRRRRRRRRRRRRRRROOROORRRRORRRORORRORRRRRRORRRRRRORRRRRRRRRRORRRRORRORRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRORRORRRORRRRRRORRRRORORRRORRORRORRRRROOORRRORRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRORROORRRRRORROORROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRROORRRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRROORRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRROORRRORRRRORRRRRRRORRRRORRRRRRRORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRROOORROORRRRRRORORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROOORRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORORORRORRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRORORRRRRORRRRRORRRORRRRRRRRRRROROOORROORRRRRRRORRRRRRRRRORRRRRORRRORRORRRRRRRRRRRRRRRROOORRRORRORORRORRRRORRRORRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRRORRRRRRRRROORORRORORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRORORRRRRRRORRRRRORRRRROORRRORRRRRROORRRORRRRRROROORRORRRRORRRRORRRRRRORRORRRRRRRRRRRORRRRRROORRRROOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRORORORRORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRROORRORRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRORRORORRRRRRRRRRRRORRRORRRRORRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRORRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRORRRROORRRORRRRRRRROORRROROORRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRORRRRRRRRORORRORRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRROORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRROORRRRRORROROORRRRRORRRRRORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRORRRORRORORRRORRORRRRORRRORRRRORRRRRRRRRRRRORRRRRRRRRORORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRROORRORRRRORRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRROORRRRRORRRRRRRRRRROORRORRRROORRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORORRROORRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRRRRROORRRRRRORRRRRRORRRRRROORRRRORRRRRRRORRRRRRRRRORRRRORRROORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRROORRRRORRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRORORRRRRRRRRROORRRRROOROORRRRORORRRRRRORRRORRRORORRRRORRRRRRRRRRRRROORRRORRRORRRRORRRRRRRRRRRRRORORORRRORRRRRRRRRRORRORORRRRRRORRRRRRRRRRROORORRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRROORRRRRRRORRROORORORRRORRRRRRRRRRRRRRRRRRORRORORORRRORRRRROORRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRORRRRRRORRORRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRRRRORROORRRRRRROORRRRRORRRRRRORRRRRROORRRRRRRORRROORROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRORRRORRRRRRRRORRRRRRROOOORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRORRRRRRRRRRORRORRORRRRRRRORRRRRRORORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRROORRRRRRORRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRORORRRRRRRRRRORRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRRRRRORRRRRRRRRRORRRROORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRRRORRRRRRORRRRRRRRRRORORRORRRRRRRRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRORRRRRROORRROORORRRORRRORRRROORORRRRRRRRRRRRROORRRRRRRRRRRRRORRORRRRROORRRRRRRRRRORROORROROORROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROOORRROORORRORRRRRRRRRRRRRORRRRRRRORRORRRORRRRRRRRROORRRRRRRORRRORRORRRRRRRRRRRRORRRORRRRRRRRORRRRORRRRRORRRORRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRORRRROORRORRRROORRRRORRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRORRRRRRROROORRRRRRRORRRRRRRRRORRRRRRRORRRRORRRRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRRORORRROORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRRRRRROORRRRRRRRRRRRRRRRRORROORRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRROROOORRRRRROROORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRORRRORRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRORORRRORORRORROORORRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRROORRROORRRRRRRRRRRRRRRORRRRRRORRRRRORROORRRRORRRRRORRORRORRRORRRORRRRORRRRRRORRRRORRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRORRRORRRRRRRRRRRRORORRRRRORRRRORORRRRRRRRRRRRRRORRORRRRRRRROORRRRORRRORRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRORRRORORRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRROROORRRROORRRRORRRRRRORRORRRRRRORRORRRRORRRRRRRRRRRROORRRORRRORRRRORRRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRROOORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRROOORRRRRRRORRRRRRRRRRRORRRRORRRRRRRRORRRRRRORORORRRRRRRRRORORRRRRORRRRRORRORRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRROOOORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROOOORRRRRRRORRRRRORRRRRRRORORRRRRRRORRRRRRRRRRRORORRORRRRRRRRRRRRRORRRRORRORRRRRRRROOORORRRRRRRRRRRRRORRRRRROORORRORRRRRRORRRRRRRRROORORRRRRRRRRRRORRRRRRRRORRRORRORROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRRRRRRRRRRRRRORRROROROORRRRRRRRRRORRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRORORRORRRRRORORRRRRRRRRRRRRRROORRRORRORRRORORRROORRRORRORORRORRRRRRRORRRRORRRRORROORRRORRROORRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRORORRROROORRRRRRRRRRRRORRRRORORRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRRRRRRORORRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRORORRRRRRRRRORRRRRRORRRRRRRRRRORRORRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRROORORRRRRRRRRRORORRRRRORRRRORORRRRRRRRRRRORRRRRROORRRRRRRRRRRRRORRRRRRRORORRRRRRRORRRORRORRRRORRRRRRRRRORRRRRRRRORRRORROOOOORRRRRRRRRRRRROROORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORORORRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRORRRORRORRRRORORRRRRRORRRRRORRRRRRRROORORORRRRORRRRRRORRORRRORRRORRRRRRRRORRRRROORRRRRRORRRRORRRRRRRRRRRRRRRRORRRROROOORORRORORORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRORORRRROORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRROORRRRORRRRRORROORORRRRRROORRRRRRRRORRRRROORRRORRORRRROORORRRRORRRRRORRRRRRRRRORRRRRRRRRRROOOORRRRRRRRRRRRORRRRORRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRROROORRRRRRRRRRRRRRRORRRRRORRRRRROORRRRRRORRRRRRRORRRRRRORRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRROROORRRRRRRRRORRRRORRORROORORROOROOORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROOORRRRORRRORRRRRRRRRRRRRRRROROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORORORORORRRRRRRRRRRRRRRORRRORORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRORRORRRRRRORRRRRRRRORRRRORROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRROORORRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRORRRRRROORORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRORORRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRORRRRORRRRRRRRROOOROORRRRRRRROROORRRRORRRRRORRRRRRRRRRRRRORROROORRRORRRORRRRRRRRRORORRRRRORRRRORRORRRRRRRORORRRRRORRRRRRRRRORRRRRORRRRRRRORRROORRROORRRRORRRRRRRRORRRORRRRORROOOROROORRRRRORRRRRRRORRRROOORORRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRORORRROORROROROORRRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRORRRRORRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRORRRORORRRRRRRRORRRRRRRRROORORRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORORORORRROROORRRRRRRRRORRRRRRRROORRRRORROOORRRORRRRORORRRRRRRRRRORRRRRRRRRORRORRRRRRROOORORRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRORRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRORRRORRRRRRRRRRRRORRRORRRRORRRRORRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRROOORRRRRRRRROOROORRRRRORRRRRRRRRRRORRRRORRORRRRORRORRRRRRRRRRRRRRRRRRROROORORRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRROORORRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRROROORRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRROORRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRORORRRORORRRRRRORRRRRORRRRRRRROROORRRRRRRRORRRRRRRRORRRRROORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRROOORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORROORRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRRROORRRRRRRRRRRRRRRROORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRORRRRRRRRRRRRRORRRRRORRRRRRORRRRRRORRORRRRRRRRRRRRROORRRRRORRRORRRRRRRORRROROORRRRORRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRORRRRRORRRRRRROORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRROORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRORROORRRORRRRORRRRRRRRRRRRORRRRRRRRRORRORRORRRRRRRORRROORRRRRORRRROOORRRRRRRRORORORRRRRRRRRROROROORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRROORRRORRRRRRRORRRRRRRRRROORRRRORRRRRRRROORRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRORRRRRRRRRRRRRRRORRROORRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRORRRRRRRRORORRORRROROORRRRRRRRRRORRRRORRORRRRRRORRRORRORRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRRRORRRROOORRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORRRRRRORRRRROOORRRRRRRRRRRRRORRRORRRORRRRRRORRRRORRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRROROORRRRORRRORRRORRRORRORRRRRRRORROORRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRORRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRORORORRRRRRRRRRRRRORRRROOORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRORRRRORORRRORRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRORRRRORRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRORRRRRRRORRORRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRORRRRRRRRRORRORRRRORORRRORORRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRRRORRRRRORORRRRRRRORRRRRRRRRRRRRRRROORRORRRORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRROORRORRRRORORRRORRRROOORRRRRRRRRORRORRRRRRRORRRROORRORORRRORRRRRORRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRRRRRORRRRRROORRRRRRRRORRRORRRRRRORRRORRRRRORRRRROORRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRROORRROORRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRORRRORRRRRRRORRRRRRROORORRRRRRRORRRRRRORRRRRRRRORRRRRORORRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRORRRRRRRROOORRRRRROORRRRORRRRRRRORRORRRRRRRRRRRORRORRRRORRRRRRRRRROORRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROOORRORRRRORRRRRRRRRRRRRRRORRRRRRORRORROOORRRRRRRRRRORORRROROOORORRRRRRRRORRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRROOORRRROORRRRRRRORRRRRRRRRRRRRORRRORRRRORROROORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRORRRRORRROROORRRRRRRRRRRORRRRORRRRORORRRRRRRRRRORRRRRORRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRORRORRRRRRORRRRRRORRORRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRORRRRORORROORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRORORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRORORRRRRRRORRRRROORORRRRRRRORRRRRRROORRRRRRRRRRRROROORRRORRRORRRRRRORRRRORRRRRRORRRRRRRRRRORRRRRRRRRROORRRRORRRRRRRROORRRRRRRRRRRRRRRROORRRRRRRORRRRRORRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRROOROORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRORRRORORORRRORRRORRRRRORRRRRRRRRORRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRRRORRROROORRRORRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORORRRRRRROORRRRRRRRRRORRRRRORROORRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRROOORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRRRRRRRRRORORORROORRRORRRRRRRORRRRRRRRORRRRRRORORRRRRRRRRRRRRRRROOOORRRRORRORRRRRRORRRRORRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRORROORRRRRORRRRRRRRRRRORORRROORORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRROORRRRRRRRRORRORRRRROORRRORORRRRRRRRORRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORROORRRRORROORRRRRRRRRRRORRRRRRRRRORORROOORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRORRRRRRRRRRORORORRRRRORRORRRRRRRRORORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRORRORORRRRRORRRRRRROORRORRRRRRRRRORRORRRRRRRROORRRRRRRORROROORRRRRRRROORRRRRRRORRRRRRRRRRRORRRRRRORRRRORRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROROORRRORRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRORROORRRORRROORRRRRRRRRRRRORORRORRORRORRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRORRROROROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRROOORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORORRROORRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRROORRRRORORRRRRORORRRRRROORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRROROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRROORROOOORRRRORRRRORRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORRRRRRORRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRROORRRRRORRRRRRRRRORORRRORRRRROORRRORORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRROOOORRRORRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRROORORRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRRRRORRORORRRORRRRRRRRRORRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRORRRRRRRORRRORRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRORROORRRRRRORRORRRRRRRORRRRORRRORRRRRRRRRRROORRRRRRRRRRRRRRRORORRRRRRRORORRORRRRORRRRRRRORRORRORRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRORRRRRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRORRRRRORRRRRRORRORRRRRRORRRRRRRROORORRRRORORRRRORRRRRRRRRRRRRRORRRRRORORRORRRRRROOORRRRRRRRRORRRRRRRRRRRORORORRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORROORRRRRRRORRRRRORRRRORRORRORRRRRRRRRRORORORRRRORRRRROROORRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRORRRRORRRRRRRORROORRRRRRRRRRRRRRORORRRRORRORRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRORORRRORRRRROOORRRRRRRRRRRRRRORRRROOORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRRRRRRRROORORRRRRRORRRRRRROOORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRORRORRRRRRRRRORORRRRRRRRORRRORRORRORRRRROOORORRRRRROORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORORROORRRRRRRRRRRRRRRRRRRRRRRROROROORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOOORRRRRORRRORRRRRRRRRRRRRRORRRRRRORRRRORRRORRRRRRRRRRRRRORRRORRRRRRRORORRORRORORRRRRRRRRRORRRRORRRRORRRRORRORORRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROROROORRRRRRRORROORRRRRRORRRRRORRRRRRRRROORRRRRRORORRRRRRRRROORRRRRRRRRRRRRRRRRRORORRORRRRRRRORRRRRRORRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRRORRORRRRRORORORRRRRORRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRROOORRORRRRRRRRRRRRRRRRORRRRRORROORORRRRRRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRROOORRRRORRRRRORRRRRORRRRRRRRRROORROROORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORORRRRORRRRRRRRRRROOORORRRRRORRRRORRORRRRRRRRRORORRRRRRRRRRORORORRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRORORRRORRRRORRRRRRRRRORORRRRRORRRORRRRRORRORRORRRRRRRORRRRRROROORRRRRRRRRRORRRRRRRROORRRRORORRORRRRRRRRRRRRORRRORRORORRORRRRRRORRRRRRRRORRRORRORRRRRRRRRRRRRRRRORRORRROORRORRRRRRRRRRORRROORRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRROORRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROROORORORRRRORRRRRRRRRRRORRRRRRORRRRRRRRROOORRRRRRRRROORRRRRRRRRRRRRRROORRORRRORRRRRRRRORRRRRORRRRRRRRORRRRRRRRORORRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRROOORORRRRRRRRRRRRRRORRRRORRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRROORRROORRRRRRRRRRRORRORORRORRRRRRRRRRRRORRORRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRORRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRORRRRRORRRRRRRORRRRRORORORRRRRRRORRRRRRRORRORRRORRRRRRORORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRORORRORRRRRRRRRORRRROORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRORRRRRRORRRORRORRRRRORRRRRRRORRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRROOORROROORRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRORRRRRORRRRRORORRRROORORRRRRRRRRORRORRRRROORRRRRRORRRRRRRROORRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRROROORORRRRRRRROORRRRRRORORRRORRORRRRORRRRRRRRRRRORRROORRORRORRRRRRORRORRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRROOORRRRRRRRRRRORRRRRRRORRRRORRRRRRRRROORRRRRRRRRRRRRORORRORORRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORROORRORRROORRRROOOORRRRORRRRORRORRRRORORRORRRRORRORORORRRRORRRRRRRRRRRRORRRRRRRRROROOROROORRRRRRRROORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRROORRRORRRROORRRROOORRRRRRRROORROROROOROOOOROROORRRRRRRRRRRORRRRRRRRORRORRRORRRORRORRRRRRRRORORRORROORRORRORRRROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORRORRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRORRRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRROORRROOORRRRRRRRORRRRRRORRRRRRRRRORRORRORRRRRRRRORRRRRRROORRRRORRRORRRRRRRRRRRORRRORRRRRRORRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRORRRORRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRORRORORORRRRRRRRRRRRRRRRRRRRORORORRRORRRRORRRRRRRROROOORRRRORORRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRORRRRRORRRRRRRRRRRRRORRRRRRRRROROORRRORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRORRRORRRRRRRRROORRRRROORRRRRRRRROORRRRRRORRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRRORRORRRRORORORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRORORRORRRRRRRRRRRRRORRRRRRROORRORRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRORRRORRRROOORRORRRRRORRRRRRRRORRRRRRRROORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRROROOORRRRRRRRORRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORORRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRROORRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORORORRRRORORRROORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRROORRORRRRRRROORRRRRRRRRORRRORRRORRRRORRRRORRRORORORRORRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRROORRRRRRRRRRORRRRRRRRRRRRROROROORRRRORORRRRRRRRRRRRRRRRRORRORRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRORRRRRRRRRRORORRRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRROORRROORRRROORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRORRROORORRRRORROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRRRORRRROORRRRRRRRRRRRRORRRORRRRRORRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRORRORRRRRRRRRRRRORRRRORRRRORRORORRRRRRRORORORRRORRRRRRRRRORRRRRRRRORRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRROORORRRRORRRRRRRRRORORORRRORROROORORRRRROORRRORRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRRRRRRRROORRRRRRRRROORRRRORORORORRRORRRRRRRRRORORRORRRRRRORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRORRRORRRROORRORRROORRRRRRORRRRORRRRRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRORORRRROORRRRRRRRRRRORRRRRRORRRRORRRRRORRRORRORRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORROORRRRRRRRORORORRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRROOORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORROORROORRRRRRRRRRORRRRRRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRROOORRRRRORORRORRORRRRRORRRRRROORRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORROORROORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRRORRRRORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRORRORRROOORRRRRRORRRRORRRRRORRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORORRRRRRRRORRRRRORROORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRORRRRRRRRRRRRRRRRROORRRRORRRRRRROORRRRRRRORRRRRRORRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORORORRRRRORRRRRRRRRRORRRRORRRRRRRRORRRRRRRRORORORRRRRRRRRRRRORRORRRRORRRORRRORRRRRRRRRRRRRRRORORRRRRORRRRRRORRRRRRORRRRRRRRRORRRORRRRORRRORRRRRRRRRROORROOORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRORRRRRROORRRORORRRRRRRRRRORRRORRRRRRRRRRRRORRORORORRRRRRORRRRRRRRORRRRORRORORRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRORRRRRRRRRRRROORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRORRRRRRROORRRRORRRRORRRRRRORRRRORRRRRORRRROORRRRRRRROORRRRRRORRRORRRORRRRRRRRRRRRRRRROORRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRORRRRRORORRROOOORORRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORORRORRRRRORRRRORRRRORRRRORRRRRRROOORRROROROROORORRORORRRRORRRRRROORRRROROORORRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRORORRRRRORRROORRRRRRRRRRRRRRRRRROORRRRRRRORROORORRRRORRRRROOORRORRRRRRRRRRRRRRRRRRRRRRROOOOOORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORORRRRORRRRRRRRORRRORRRRORRRRRRRORRRRORRRRRRRRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRORRRORRORRORRORRRRRRRRRORORORRORORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRORRRRRRRORRRRRORORORRRRRROOOORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORROORRRRRORRRRRRRRROOORRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRORORROORRRRRRORORRROOROORRRORRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRORRORORRRRRRRRRRRRRROORRORRRRRRRORRRRROORORRRRRRRORRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORORRROROORRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRRORRRRRORRRRRRRORROORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRRROOORRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRORRROORRRRRRRRRRORRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRORORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRORORRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRROORRORRRRRRRRRORORRRRORRRRRRROOOORRRRORRRORRRRROORRROORRRRRRRORRRORORORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORORORORRRRRRRRRORRRRRRRRRRORRRRRRRRRROORORRRROOORRRRRORRORORRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRORRORORRRRRRRRRRRRRRRRRORORRORRRRRRRORRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRROORRORRRRRRRRRRRRRRORORRRRROORROROORRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRROROORRRRRRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRROROORRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRROORRRRRRROORRRRRRRRROORRRORRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRROORRRRORRRRRRRORRRRRORORRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORORORRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRORORRORRRORRRORRRRRRRRRORRRRRRRRRRROORRROROORRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRROOORRRRRRRORROORRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRROORROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRORROORRRROORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRROROROORRRRRRRRRRRRRRRRRRRRROORRORRROOORRRRRRRRRORRRRRORORRORRRRRRRRRRROORRROOROORRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROROROROORRRRRRRRRRRRRORRRRORRRRRRORRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRORORRRRRORRORORRRRRRRRRRRRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRORRRRRRORRRRRRRRRORRORORRRRRORRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRORRORRRRRRRRRRORORRRORRRRRORRRRRRRORRRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRORRRORRRRRRORRRRRRORRRORRRRRRRRRRRRORORORRRRRRORRORORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRORRRRRRRRRRRROORROORRRORRRRORRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRORRRRRRRROROORRRRRRRRORRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRRRRRORRRRRRRRRRRRORRRRROROORRRRRRRROORRRRRORRRRRORORRRRORROORRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRORORORRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRORRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRORORROORRRRRRRRRRRORROORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRROORRRRRRRORORRRRRORRRORRRRRRRRRRROORRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRORRRORRORORRRORORRRROORRORRORRORRRRRRRRORRORORORRRRRRORRROORROORRORRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRROORRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORROORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRROORRRRORRRORORORRRRRRRRRRRRRORRORORRRRRRRRRRRORRRRORRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRROORRRROORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRROORORORRRORRRORRRRRORRRRRRRRRRRRRRRRORRORRRRRRRORRORRRRRRORRRRRRORRRRRRROROORRORRRORRRORRRORORRRRORRRRRRRRRRRRRRRRROORRRRRRRRRORORRRRRRROOORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORORRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRROORRRRRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRORRRRRRORRRORRRRRRRORRRROORRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRORRRRRORRROORORRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRORORRRRRRRRRRROORRRRRORRRORORRRRRORRRRRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRROOORRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRORRRORRRRORORRRRORRRRRRRRRRRORRORRRRRRRRORRRRORORRRRORRRRRORRRORRRRRRRRRRRRRRRRROORRRRROORRORRRRRRRRORRRRRRRORRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORORORRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRORRRRRRROROORRRRRRRRRRRRRRRRRRORRRORRRRORROORRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORROOORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRORRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRROOORRRRRROOORRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRROORRRRRRRRRORORRRRRRRRRRORRRRORRRRRRRORORROOORRRRORRRORRRRORRRROORRRRRRRRROORRRROOORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRROORRRRORRRRRORRORRRRORORRRORRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRROORRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRORORRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRROROORRRRRRORRRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRORRRRORRROORRROROORORRRRRRRRORRORRRRRRRRRRRORORRRRRRRROORRRRRRRRRRRRRRRRRORORRORORRRRRRORRRRRRORORRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOOORORRRRRRRRORRRROORRRRRRRRRRRRRRRRORRRRORRORORRORRRRROOORRRRRRORROORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRROOORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORORRRRRRRORRRRRORRRRRORRRRORORRRRRRRRRRORRRRRRRRROORRRORORORRRRRRROORRRRORRRROORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRROORRRRRROORORRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRRORRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRROORRRRRRRRRRORRORRORRRRRRRRORRORRRRRRRRRRORRRRRRRORRRRRROORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRORRRORRROORRRRRRRRORRRROORRRRORRORRORRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRROROORRRRRRRRRRRRORRRRRRRORROORRORRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRRORRRORRRRORRRRRRRRRRRRRROORORRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORORRROORRRRORRRRORRRRRRRRRROORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRROORORRRORROORROORRRRRRRRROORRRRRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRORRRRRRRRRORRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORORORRRRRRRRRORORRROORORRRORRRROROOROORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRORRRRRRORORRRRRRRRRRRRRRORRRORRORROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRROORRRORRRRRRRORORRORRRRRRRRRRRRRRRORRORORORRRRRRORORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORORORRORORRRRRRRRRRRROORRROORRORRRRRRRORRRRRRRRRORRRRRRRRRRORORORRRRRRORRROORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRORORORORRRRORRRRRRROORRRRRORRORRRRRRRRRROORRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRORRORRRRRRRORRRRRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRORRRORRRORORRROROORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRORROORRORORRRRRORRRRRRRORRRRRRRRRRORRRRRORORROORRORRRRRRRROOROORRRROOORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROROORRORRRRRORRRRORORRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRORROORRRRRRRORRRRORRRRORRRRRRRORORRORRRRRRRRRRRRRORRRRRRRORRRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRORRORRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRORORRRRRRRROORRRRRRRRRORRRRRRROORRRRRORRRRORRRRRORRRRRRRRRRRRRRORORRRRROORRRRRRRRRRRORRORRRORRORORRRORRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRORRORRRROORRRRRRRRRRRRRRRRRRROORORRRRORRORRRORRRRORRRRORRRORRRRRRROOORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRROORROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRORRORROOOORRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRROORRRORRRRROORORRORRRRRORRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRRRORORRROORORORRRRRRRRRORORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRORRRRRRROORRRRORRRRORRRRRRORRRROORRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRROORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRROORRRORORRRORRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRORRROROROORORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRROORRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRROORRROROOORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRORORRRRRRRRRRRRRRORORRRRRRRRRORRRRRRORRORRRORRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRORRRORRRRRORRRROORRRRRORRRRORRORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRORRROORROORRRRRRRRRROROORORRRRRRORRRRRRRRRRRRRRRRRRRORORRRORRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRRRRORORRORORRRRRRORRORRRRRRORRRORRRORRRRRRRRRRRORRRRORORORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRORRRRRRORRRRRORRROORRORRRRRRRRORRRRRRRROORRRRRRRRRRRORRRORORRRRORRRRRRRROORRRORRORRORRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRROORRRRRORORORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRRORRRRRRRRRORRORRRRRRRRRRORRORRRRRRRROOORRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRORRRRRORRRRROORRRRRRRROOORROORRRRRRRRRRROORRORRRRRRORRRRRRRRRORRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRORRRRORRRORRRRROORORRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRROORORORRORRRROROOORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRORORRRRRRRRRRORORRRRRRRRRRORRRORRRORORRRRRRRRRRRORRORRRRRORRRRRORORRRRRRRRRORRRRORRRRRRORRRORRRRRRRRRRORRORRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRORROOORRRRRRRROORRRRRRRORROORRRRRORRRRRRROORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRROORRRRRRORRRRRRRRORRRRRORORRRRORRORRRROORORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORROORRORORORRRRRRORRRORRRRRRRORRRRRRROORRRRRRRRRRRRRORRRROOORRRRRRRRORRRRRRRROORORRORRRORRORRORRORRRRRRRORRRORRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORORRORRRRRRRORRRRRRRRRORORRRRRRRRRRROROROROORORRRRRRRORRRRROORRRRORRRRRRRRRRRRORRORRORRRRRRORRRORORRRORRRRRROROORRRRRRRRORRRRRRROORRRORRRORRRRORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRORROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRROORRRRRORRRRRRRRRRRORRRORRRRRROORORRRRRORRORRRRRRRRRORORRRORRORRRRRRRORORRRRRRORRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRRORRRRRRORRRRORRRRRROROORRRRRRRRRRRRRRROORRRRRRRORRRRRRROORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORORORRRRRRRRORRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRORRRRRRORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRORORRRRRORRRRRORRRRRRRRRRORRRRRRORRRROORRRRRRRROORRRRRRRRORRROORRRRRRORRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRORRRORRORRRORRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRORRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROORRRRRORRORRRRORORRRORRORRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRORRRRRRORRRORORRRRRORRRRORRRRRRRRORRORRRORRRRRRRRORRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRORRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRORRRRRRORRORRRRRRRRORORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRROROORRRRRRRRRRRORRRRRROROOORRRORRRROORRRRRRRRORRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROOORORRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRORORRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRORRRORRRRRRRRRRORRRRRRRRORRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRORROOORRORRRRRRRROORRRRRRRRRRRRROORRORORROORORORORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRRRRRROORRRROOORRRRRRRRRRRRRRRRORRRORRRRRORRORRROORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRORRORRRRORRRRRRRRRRORROOORRRRRRRRRRRORRORRRRRRRRRRRRRRORORRRRORRRRRRRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRORRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORORRORRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRORORORRORRRRORRORRRRORRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRORROROORRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRORORRRRRRRRORRRRRRORRRROOORRORRRORRRORRRORRRROORRORRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRROORRRRRORORORRORROORROORORRRORRRRRRRRRORORRORRRRRRRRORRORRRRRRRROORRORORRRRRRRRRRRRORRRORRRORRRRRRRORRRRROORRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORORRORRORRRRRRRRRRRRRRORORRRROROORRRORRRRRRRRRRROROOROROOORROOOORRRRRRRORRROORRRRRRRRORRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRROORRORRRORRORRRRRRRORORRORRRRORRRRORORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRORRRRORRORRRRROOORRRRRRRRRRORRRORRRRRROROORRRORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRORRRRORRRRORRORRRRRRRRRORRRRRORRRRRROOORRRRRRRORRRRRRORRRROORRORRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRRRRRORROORRRRRORROORRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROORORRRROORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRORRRRRRROORRORRRRRRRORRRRRRRRRORRRRORRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRROORRRRRORRRRORORRORORRRRRRROROORORORRRRRRRRORRRORRORRRRRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRORRORRORRRRRORRORRRORORRRORRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRORRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRORRRRROORRRORRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORROOORRORRRORROOOORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORROORRRRRRRRORRRORRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRRRRRRROORORRRRRRRRRRROORRRRRROOORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROOORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROOORRRRRRRRRORRRRRRRRROOOORRRRORORRRORRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRROORRORORORORRRRRRRRROORRRRRRRRRRRRORRORRRRRORRRRRORRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRROORRRORROROORRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRORRORRRORRRRORRORORRROORROORRRRRRRRRRRRRRRORRORROORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRROORRRRRRORRORORRRRORRRRRRRRRORRRROORRRORORRRRRRRRRRRRORRRRRORORRRRRRORRORRORORRRORORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORORRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRORRROOORRRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRRORRRRRORORRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRORORRRORRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRROORRRRORRRRRRRRRRRRRRRRRORRORRRRRROORORRRORORRRORRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRROORRRRORROORRRRRRRRRRORORRRRRRRRRRRORRRORORRRRRRORRRRROORROORRRORRORRRORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROROORRORRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORORRRORORRRRRRROOORRORRRRORORORRORRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROOORRRORORRRRRRRORRORRRORRRRRRRORRRRRRRRRRRRORRORORRRRRRRRORORRRORRRRORRRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRROOROORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRROORRRRRRRORRRRRRRRORRRORRORRRRRRRORRRRORROORRRRRORRRRORRRRRROORRORRRORRRRRRRRORRRRRRRRRROROORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRROORRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROORORRRRRROORRRRORORRRRORROORRRRRRRRRORRRRRORRRROORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORORRRRRRRRORRRRORRRRORRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRROOORRRORRRRRROOORRRROORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRROORRRRRRRRORRRORRORRRRRRRRORRRRROORRRRROORORRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRRRORORRRRRORRRORRRRRORRRRORRRRRRRRRRRROROOORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRORRRRRRRRROOORRRRRRRORRRRRORRRRRORORRRRRRRRROORRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRORRRORRROROORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORRRORRRRRORRRORRRRRRRRRRRORRRRRRORRRRORRORRRRRRRRRORRORRRRRORRRRRRRRORRRORRORRROORORRRRRRRRORRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRORRORRRRRROORRRORRRROORRRRRORRRRRRRRORORRRRORRRRRORRORORRRROORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRROORORORRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRORRORRRORRRORRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRROOORRRRRRRRORORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRORORRRORRRRRROOOORRORORROORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORRRRORRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRORRRRORORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRORRRRRRRORRRRORORRORRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRROORRROROORRRRRRORRRRRORRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRROOORROORRRRRRRRRRRRRRORROORRORRRRROORORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRROORRORORORRRRRORRRRRRRRRRRRRRORRRORRRRROORRRRRRORORRORROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRORRRRROROORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORROROROOORRRRRORRRRRRORRRRRRRRORRORORRORRORRRRRRRRRRORRRRRRRRRRRRRORORORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRORORRRRRRORRORRORROOORRRRRRRORORRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORORORRORRRRRRORRRRRRRRRRRRRORRORRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRORRRRRRRORRRRORRRROORRRRRORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRORORRRRRRRRORRRRORRRRRRORRRRROORRRRORRORORRRRRRRRRRRRRRRRORRRRRORRRRORRORRRRORRRROORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROORRRORRORRRRRRRRRORRRORRRORRRRRRRRORRRRRORRROORRRORROORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRORRORRRRRRRRORRRRRRRRRRRORRRRORRORRRRRORRRRORRRRRRRRRRRROORROROORRRORRRRORRRRRRRORORRRRRRRORRORRRRRRORRORRRRRRRRORRRROORRORRRRRRRRRRRRROORORRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROROORRORRORRRRRRRRORRRRRRRRRRORRRRRORRRRRRORORRRORRRRRRRRRRRRRRRRORRRRRRRROROORORRRROOORRRRRORRRRRRORRRRORRRRRRORORORRRRRRRRROORRRORORRORRRRORRORORRRRRRORRRRORRRRRRRRRRORRORRRRROORRRRRRRROORRRRORRRORRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRORRRRRRRORRRRRRRORRRRORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRORRRRORRRRRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRORRORROORRRRRRRORRRRRRRRRRRORRORRRRRORRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORORRRORRRRRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRORRORRRRRRRRROORRRRROOORRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRORRRRROORRRRRRORRRRRRORRRRRORRRRRORORRRORRRRRRRRRROORORRRRRRORRRRRRORRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORROORROORRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRORRRRRRRRRRRRRRRRORRRROORRRORRRRRRORRRRRRRRRRRRRRRRRORRORRRORRROORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRROORRRORROORROOROOOORRRRRRRRRRRRRRORRRORRRRRRRORRORRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRORROORRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRORRORORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRORRORORRRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRROORRORRRRRRORRRRRORRRRRRRRORRRRORRRRRRRORRORRRRRRRRRRRRRRORRROROORRRRRRRRRRRRORRRRRRRROORRROOORRRORRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRRORRRRORRRRRRRRRRRROORRRRRORRRRRRORRRORRRRRORRRRRORRRRRRRRRORRRRRRRORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRORRROORRORRRRRRORORROORRRORORRRRRRRRRRRRRRRRRORRORRRRROORROOORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRORORRRRRORRORORORRRRORRRRRRRROOORORORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRROORRRRORRRRRRRORRORRRRORRORRRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRORRRRRRRORRRRORRRRRRROORRRRRRRRRRRORRORRORRRRRORRRRRRORRRORRRRRRORORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRORRRRRORRROROORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRORRRRRRRROORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRROOORRRRRRRORRRRRORORRRRRRRRRRRRORORRRORRRRRRRORRRRRRORRRRRORRORRRRORRRRORRRORRORORRORRRRRRRRRORRRROOORORROORRRRRRROORRRRRRORRROROROORRRRRRORROORROORRORRRRRRRORRRRRRORRRRRRROORRORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRROOORRRRRORRRRRRORRRRRRRRRORRRRROORRRRRRRORRRRRROORRRRRRRRORRRRROORRRORRORRRRRRRRRRRRORRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRORRROORRRRRRRORRRRRRORRRRORROORRRRRORRRRRRORRROOORRRRRORRRORORRORRRRRRRRRRRROORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRROORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRORORORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORORRRRRRRRRORORRRRRRRORRRRRRRRRRRRORRROORRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORRRRROORRRRRRRRRRORORRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRORRRRORRORRRRORORRRRRROORORROORRORRRRRRORRRRORORRRRRRRRORRRORRRRRRROORORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRORRORORRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRORORORRORORORRRRRRRRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRROORRRRRRRORRRORRRRRRRRORRRRRROORORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRORRORRRRRRRRRRRORRRORRRRRRORRORRRRRRRRRRRRRORRROORRORRRRORRRRRRRRRORORRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRORROROORORRRRORRRROOROOOORRORORRRRRRRRORRRRRRRRRRRORRRRRRORRRORORORRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRORORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRORRRRRORORRRRORRROORORRRRRRRRRRRRRORRORRRRRRORRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRROROORRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRRRRRORRRRRRRRROROORRRRORRRRORRRRRRROORRORROORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRROORRRRRRORRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRROOORRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRORORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRORORRRORRRRRROORORRRRRRRRRRRRRORRRORRORROOOROOORRRORORRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRROORORRORRORRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRORRRORORORRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRROORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORORROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORROORRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRORRRRRRRRRORRRORORRORRRRRRRRRRRRRRRORRRORRRRRRRRRRROORORORRRRRRORORRRORRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRROORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRORRRRRRRROORRRRROOORRORRRRORRRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRROORRRRORRRORRRRRRORORRRORRRRRRRORRRRRRRRRRRORRRRRRRORRORRORRRRORRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRORRRORRRRRRRRORRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRORORRORRRORRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROOOORRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRORORRRRRRRRRRRORRROROORRRRRRRRRRRORRRRRRORRRRRORRORRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRROORRRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORORRRRRORRRRRRRORRRRRORRROORRRRRORRRRRRORRRRORRRRRRORRORRRRRORRORRRORRRRRRRRRRRRRRRORRRORRRRORRRORRRROORRRRORRRRRRRRRRRRORRORRRRRRRRRORRROORRRRRRORRRORRRRRRRRRRRRRORRORRORRRRRRORRRRRORRORRORRRORRRRRRORRRRORRORRRORRRRRRRORRRRRRRRRORRRRROOORRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRRORRRRROORRRRRRORRRRORRORRORRRRORORRRRRRRRRORRRRORRRORRRRRRORRRRRROROROOROORRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRORROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRRORRORRORRRRRRRRRRORRRORRRRRRRORRORRRRROORRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRORROORRRRORRRRRRRRRORRRRORRRRRRRRORRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORORRRRRRORRRRRRROORRRRRORORRRRRRROORORRRRRRRRORRRRROROORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRORRRORRRORRRRRRRRRORRORRORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRORRRRRRRORRORRORRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORORRRRRORRRRRRRRRRRRRRRROORRORORRRRRRRRRRRRORRRRRRRORRROROORRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRORRROORRRRORRRRROOORORRORORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORORORRRORRRORRRORRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRORRRROORRRORORRRRRRRROORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROROOORRRRRRRRRRORORRRRRRROORRRRRRORRRRRRRRRRRRORORRRRRORRORRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRROORRORRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORROROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRORRRORORRRRRRROORRRRRRRRRORRRRRRRRORRORORRRRRRRRRORRRRRORROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRORORORRRRRRRRORRORORRRRRRORRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRROROORROORRRORRORRRRRRORRRRRORORRRRRRRRRRRRRORRRRRORRRORRRRRORRRRORRRRRRORRORRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRRORORRRRORRRRROROORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRROORRORRRRRORRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRORORRRRRRROORRRRRRRRRRRORORRORRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRORRRRRORRRRRRRROOORRORRRORRRORRRRORRRORORRRORRRORORRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORROOORORRRRRRRROORRRRRRRRRORRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRROORRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRORORRRRRRRROOORRRRORRRRRRRORRRRRROORORRRRRRRRRORRRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRORORRRRRRORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRORRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRORRORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRORRRROORORRORRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRRORROORRRRRORRORRROORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRROORRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORROORRRRRRRRROOORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRORRRRORORRRORRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRROORRRRRRORRRRRRRRORRRORRRRRRRRORRRRORRRRRRRRORRRRROORRRORRRRORRRRRORRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRROORRORRRRRORRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRRRROROROORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRORRRRRORROORRRRRRRORRRORRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRORORRORRRROORRROORRRRRRRRRRRRRRROORRRRRORRRRRROORRRRRRRRRRRRORROORRRRORORRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRORRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRROORRRORROORRRRRRRRRRRROROORRRRRRRRRRRORORRORRRRRRRORRORRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRORRRORRRRRRRORRRRORRRRRRRRRRRRORRRRORRORRROORRRRORRRRRRRRRRRORORRRRRRORRRRRRRRROORRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORRRRRRRROORRRRRRRRRRRRORORRRORRRRRRRRRRROORRRRRORRRRRRRRRRORORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROROROROORRRORRORRRRRRRRROORRRRRRRRRRRRRRRORRRRRRROORRRORRRRRRORROOORRRORRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRORRORRRORRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRROOROORRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRORRORRRORORORRRROORORRORORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRROOORRRRRRRRRORORORRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRORRORORORRRRRRRRRRRRRRORRRRROORRRRRROORRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRORRRRRRROOORRRRRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRROOORRRRORRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRORORRRORORORRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRORORRRRRRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRORRORRORRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRROORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROOORRRORORRRRRRRORRRORRRRORRRRRRRRRROORORRRRRRORRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRORRRRRRRRROORORRRRRRORRORRRRRRRRRRORORRRRRRRRRORRRRRROOORRRRRRRORRRROORORRRRORORRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRRRORORRRRORRRRRORRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRORROORRRRRRRRRRRRORRROORORRRRRRRORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRROORRRRORRRRRRRORRRRRRORRRRRRRRRRROORRORRRRORRORORRRRORRORRRORRRRRRRRRRROORRRRRRRRRRRRRRORORRRRRORRRORRRRRRRORRRRRRORRRRRRRRRRRRORORRRRRRRRRROROROORRORRORRRORRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRROORRRRROORRRRRORRRROORRRRRRRRORRORRRRRORRRRRRRRORRRRORRRRROORORORROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRRORRRRRRRRORRRRRRRRORROORORRORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRROORORORRRORRRRRRROORRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRORRRRORRROOORRRORRRRRRRRORORRRRRRRRROROORRORRRRRRRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRORORRRRORRRROOORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRORRORRRRRRORRRRRORRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRRRORRORRROORRRRRRRRORORRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRORRRRRRORRORORRRRRORRRRRRRRORRRRRRORRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRORRRRRRRRORROORRRRRRRRRRRRRRRRRORRRORRORORRORORRRRRRRRRORORRRRROOOORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORORRRRRRORRRORRRRRRRRRRRRORRRRORRRRORRRRRRORRORRRRRRORRRRRRRORRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRORRRORRORRRRORRRRRRRORRRRORRRRRRRRRRROORRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRORRORRRRRRRRORRRORRRRORRRORRORRORRORORRRRRRRRRRRRRRRROROORRORRRRORRRRRRRORRORRRRORORRRORRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRORRORORRRRORRRRRRRRRRORRRRRORORRRRRRRROORORORRRRRRORRRRRRRRORRORRRRRORRRRRRRRRRRRRRROORRORRORRRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRROORORRRRRRRRORORRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRORROOOORRRRROORROORRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRORRRRRRRRORRRRRRORRORRRRRRRRRRRRROORRRRORRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRORRORRORORRRRRRRRORRRRRRRRRRRRORRRRRORRORORROORORRRRRRRRRRRRRRORRRRRRORORORRRRRORROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRORORORORRRRRRROROROORRORRRRRRORRORRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORROORRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORORRORROORRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRROORRRRRRRRROORRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORROROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRROOORRRRROORRORRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRROORRROROORRRRRRRRRRRRRRRRRRROROOORRRORRRRORRRRRRRORRRORRRRROORRORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRRRRRRROROORRORRRRRORRORRORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRORRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORROORRRRRRORRROROORROORRRRORRORORRORRRRRRORRORRORRRRRRRRRRRRRRRRRORRRRRORRRORRROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRROROORRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRORRRRORRRRRRRRORRRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRORORRRRRRRRRRRRRRORRRRRRRORRRRRROORORRRRRORRRRRORRORORRRRRORRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROORRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRORRRRRRRRRRRORRRRORRRRRRORRORRRRRRRRORORRORORRRRROORRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRORRRROORRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRORRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRORRRRRRRRRORORRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRORORRRRROORRRRRRRRORRORRRRRRRORRRORRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRORRRRRRORRRRORRRRRRORRRRRORORRRRRRRRRRRRRROOORRRORROOORORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRROORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRORRRRORRRRRRRRRRRROORRORRRRRRRRRRRRORRRRRRRRRRRORROORORORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORORRRORROORRRRRRORRRORRRRRROORRRRRRRRRRRRRRRORRRRRORRRRRROORORORRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRROORROORRRRRRRRORRRRRRRRRRRRORRRORRRROORRRRRRRRRRROROROORRRORRRRRROROORRRRROORRRRRORRRRORROORRRRRRRORRRRRRROORRRRRRORRORRRRRORRORORORRRRRRRRRRRRRRRRORRRRRRROORRORRRRROORRRRRRORORORORRRRORRORRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRORRORORRRRRRRRORRRRRORORRRRRRRRRRRRORRORRRRRRRROORRRRRRORRRRRORRRRRRROORRRROORRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRROOORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRROORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORORORRRRRORRRRRRRORRRRRRRROORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRROORRRRRRRRROOORRRRRRRORRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRORRRRORRORRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRROORRRORRRRRORRORRRRORRRRORROROOOORRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRORRRRRORRROORRRRRRRRRRORORRRRRRRORRRRRRORRRRRRORORRRRRRRRRORRRRRRORROORRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRORRRRROORRRRRRRORRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRROORRRRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRORRRORORRRRRRRRRRRRRRRRRRRRORORRRORRROORRRRORRRROORORORRRRRRORRRRRRORRRRRRRRRRORRRROORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRORORRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRORRRRRRRORRORRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRORORRORRRRRRRRORRROOORROOORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROOORRRRRRRRRRRRRROORORRRRRRRRRORORORRRRORRRRRRRRRRRRRROORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRROORRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRRROORRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRORRRRRORRRRRRORORROORRRRRRRROORRRRRORRRORRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORROORRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORRRRORRRRRRRRRORRRRORRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRROROORRRRRRRORRRRORORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRORORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRORORRRRRRRORRRORORORRRRRRRROORRRRORORRRRRRRRRRRRRRRORRRRRRRRROOOORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRRROORRRRRRRRRRRRRORRRORRRRRRRRRORRRRRROORRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORORORRORRRORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRORRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRROORRROORRRORRRRRRRRROORRRRRRRRORRRORRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRORRRRORRORRRRRORRRRRRRORRROOOORRRRRRRRRRRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRROROORROORRRRRRORRRRRORRORRORRRRORRRORRRRRORRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRORROORORORORRRORRRRRRRRROORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORORRRRRRORRRORRRRRRRROROORRRRRRORRRRRRRRRRRRRRRRRRRRRORORRROORRRRRROORRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRROORRRORRRORRRRRRRORRRRRRRRRORRORRRRORRRRRRORORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRRORRORRRORRORORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRRORRRRRRRORRORRRORRRRORROORRRORRRORRRRRORORRRROORRRROROORRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORRRORRRRRRRRORRRRRORRORRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORROORRRORRRORORRRRRRRORRRORRRRROROORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRORORRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRROORRRRRRORRORRRRRRORRRRRRRRRRORRRRORRRROOOORRRRRORORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROROORRRRRRRRRRRORRRRRORRRRRRRRORRRRORROORRORRRRORRORRRORRRRRRRRRORRRRRRORRRRRRRRROORRRRORRRORRRRORRRRRRORRRRRRRRRRROORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRORROORRRORRRROORRRRRRRRRRRRRRRORRRRRRRORROORORRRRORORRRRRORRRRORRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRROROORORORRRRORRRRRRRRORORORROOROORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRROORRORRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRORROORRRORRRRRRRRRRRRRRRROORORRORRORRORRRRRRRORRRRRRRROORORRORRRRORRORRRRRRRRRORRRRORRRRRRRRRORRORORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRORRRORRRRRORRORRRRRORORRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRROORRORRRRRORORRORORRRRRRRRRRRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRORORRRRRRRRRORRRRRRRRRRRORRORRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRORRRRRRRORRROOORORORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRORRRRRRRRRRRORRRRRRORRRRRRORROORORRRORRROORORRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRORRRRRRRRORRRRRORRRRRORRRORRRRRRRRRORRRRORRRRRRORRRRRRORORRRRRORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRRRRRROORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRORRRRRRRRRRORRROOORROORRRRRRRRRRRRRROORROOORRRRRORRRRRRRRRRORRRRRRRRRRRRRRROROORRORRORRRORRRORRRRORRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORORORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRROORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRORORRORRRRRRRRRRRORRRRORRORRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRORORRORORRRORRORRORRRORRRORRRRRRRORRRRORRRRORRRRRROORRORRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRORROORRRRRORRORRRRRORRRRRRRRORRRRRRRRORRRRRRORORRRRRRRRORRRRRRORRRORROORRRRRRRRRRORORROORRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRORRRRRRRORORRORRRRRRRRRROORRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRORORRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRORRRRRORRORRRRRRRRRORORORRRRRRRORRRRRRRRORRRRRRORRORRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRROROORRRORRORRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRORRRRRRRRRRRROORROROORORRORRRRRRRROORRRRRORRRRRORRRORRRRRORRRRRRRRRRRORRORRRRRRORRORRRRRRRRRRORRRRRORRRRORRRRORORRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRORRRORRRRORRRRRRORRORROORORRRRRRRRRRORRRRORORORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRORRRORRRRORORRRRRRRRRRRRORRRROORRRRRRRRRRORRORRRRRRRRRRRRRRROORRRROORRRRRRRRRRORRRORRRRRRRRRROORRRRORRRRRORRORRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRORRRORRRRORRRRRROORRRRRRORRRRRRROORRORRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRROORRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRROOORRRORRORRRRRORRRRRORRRRROROORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRORORRORRRRRRRORRRRRORRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRROROOORROORRORRRRRROOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRORROORRRRRORRRRRRRORRRRRRRRRRRRORRORRRROORORRORORRRRRRRORRRRRRRRORRRRRRRRRORRRRROORRRRROROROORRORORORRRRRROORRRRRRRRRRRORRORRRRRRRRRRRRROORRRRRRRRORRRRORRROORRRORRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRROORROORRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRORRORRRRRORORRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRROORORRRRRORROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORORRRRRRROOORORRORRRRRRRRORRRROORRRORRRRROROORRRRRRRRRRRRORRRORRRRRRRRORRRRRROORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORORRRRORRRORRORRRRRORORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRORRRRROORORRRRORRRRRRRORRRRRRRRRORRRRRRRORORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRORORRRRORRRRRRRRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRORRROOROORRRRRRRRRRRORORRRRRORRORRRRRORORRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRORRORORRRRRRRRORRRRORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRORORORRRRORRROORRRRRRRRRRRRORRRRRRRRRRORRORRRRORRRRROORRRRRRRORRORRRORRORRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRORRORRRRRRORRRRRORORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRROORRRORRRRRRRRRRRRRRRORORRRORORRORRRRRORRRRRRRRORORRORRRRORORRRRRORRROORROORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRROORRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRROORRRRRRORROORRRRRRRRROORRRRRRRRORRRRRRRRRRRORRROROOOORRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRORROOORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRORRROORRRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRORRORRORRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRORRRRRRRRRRRORRRRRORRRRRRRORRRRRORRROORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRROROORORRRRORORORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORORRORRRRORRORORRRRRORRRRRRRRORRRORRRRORRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRRRRROORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRORORRRRRRORRRRRRORRRRORRRRRRRRRRRRROORRRRRRORRRRORRORRRRRRRRROORRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRORRROROROORRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRORRRRRROORRRRROORRORRRRRORRRRROORRRRORRORORRRRRRRRRRRRRROROORROROROOROORORRRRRRRRORRRRRRRRROORRORRORRROOORRRRRRRRORRRRORORRRORRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRORRRORORRRRRRRORRRROROORORRRRORRRRRRORRRRRRORRRRRRRRRRORRRORRRORORRORRORRRRRRRRRRRORRORRRRRRRRRRRRORROROOORRRRRRRRRORORRORRRRRRORRRRRRRRRRORRRRRRRRROORORRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRRRORRROORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRORRRRORRRRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRROORRORRRRRRRRORRRRRRRRRORROORRRRRRRRRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRROORRRRRRRRRRRORRRRORRRRROORORRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRROORRRORRROORRRORRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRROORRORRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRROORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRORRRROORRRRRRRRORRRORRRRRROROROOORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRORORRORRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRROOORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRORRRRRRRRROORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROOORRRRRRRORRORRRRRRRRRORORRRROOORRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRORRRRRRROOORRRROORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRORRRORRRORRORRRRRRRRRRRORORRRRRRRRRRRORRRORRRORRRRRORRRRRRRRORORRRORRRRRRORRRORRORRROOORRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRROORRROOORRRRRRORRRORRRROORRRRRORORRORRRROORRRRRRRRRRRRRRRROORRRRRORRRRRRRRORRRRRRRRRRORRRRRRORORRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRORRORRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRORRRRRRORRRRRRRORRRRORORRRROORRRRROORORRRORRRRRRRORRRRRRRRORORRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORORORRRRRROORORRRORRRRRRORRRRORRRRRRRRRRORORRRRRORRRROORORORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRORRRRORRRORORRRRRRRROORRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRORORRRRRRRRORRRRRORRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRORRORORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRROORRRRRRRORRRROORORRRRRRRROROORRRRRRORORRRRRRRRRRRRROROORRRRRRRRRRRRORRORORRRRRRRRRORRRRRRRRORRRROOORRRRRRRRRRRRRRRROOROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRORRRROORORRRRRRRORRRRRRORRRRORORRRRRRRRRRRROORRRRORRRORORRRRRRRORRRRORRRRRRORRRRRRRRORRRORRRRRORRRRRRRORORRORRRRRORRRRROROORRORRORRRRRRRRRORRRRRRRORRRRORRRORRRORRRORROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRROORRRRRRRRRRRRRRORRRRRRRRRRRORRRROOROORRRRRRRORRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRORORRRORRORRORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORORRRORRRROORRRRRRRRRRORRRRRRORROOORRRRRRORRRRORRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRRORORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORORRRROORRRRRORORORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRROORRRORORORRRRORRORRRRRRORRORRRRRRRRRRRRRORORRRRRORRRRORRORRRRRRRRRRORORORRRRRRRORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRORRRORRRRORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORROOORRORRRRROORRRRRRRRORRRRRRRORRRRRORROORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORORRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRROORROORRRRRRRRORRRRRRRROORORRRRROOORRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRORRRRRRRRROORRRRRORRORORORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRORRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRORRRRORRRRORRRRRORRRRORRRRRRRRORRRRRRORRORRRORRRRRRRRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRROORRORROOORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRORRRORRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRORORRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRORRRORRRRRRRRORRRROOORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRORORRORRROOORRORRRRRRROOOORRRRRRRRRRRRRRRRRRRRRRROORROORRRRORRROORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORROORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRORORRRRRRORORRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRORRRRROORRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRORRROORORRORRRRRRRORRRRRRORRRRRRRRRORRORRRORRRORRRORRRRORRRRRRORRRRRRRRROOORRRORRRRRRRROORRRRRRRRRRRORRRORRRRRRRORRRRRRROORRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRROORRORRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRROORRRRRRRRRROORRRORRRRRRRORRRRRRRRRRRORRORRORRRRRORRORRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRORRORRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORORORRRROORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRORRORRRORORRRRRRRRRORRRRRROORRRRROORRRRORRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRROORORRRORRORRORRRRRRORRRRRRRRRRORRRORRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRRRRRRRORORRRRRRROORRRORRRRRORRRRORRRORORRRRRRRRRORORRRRRRRRRRRRORRRRRRROOORRRRRRRRRRRORRRRRRRRRORRRRRRORRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRROORRRORRRRRRRRORRRRRRORRROORRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROORRRRROOORRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRORRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRORRRRORORORRORORRRRRRRRRRRRROORRRRRRORRRRRRRRRRORRRORRRRRRRRORRRORROORRROORRRRRRRROOORRRRRRORRRRRORRRRRORRRRRRRRRORROORRRRRORRRRORRRROORRORRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRROORRRRRRRRRRORRRRRORRRRRRRORRORORRRORRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRORORRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRROORRRRRORRRRRRRRRRRORRRORRORRRROROROORRRRRRRRRRRRRROROOOOROORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRROORRRRRROORORRRRROOORRRRRRRRRRORRORRRRRRRRRRORORORRRRRORRRRORRRRORRORORRRRRRRRRRRRRRRORRRRROORRORORRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRORORORROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRRRRRRRRRRORRRRORORRRRRRORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRRROOORRRRORRRORRRRORRORRRRRRROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRRRROOORRRRRRRRRRRRORRORRRRRRORROROORORRRRRRRRRRRRORRORORORRORRORORRRRRRRORRRRRRORRRRRRRRORRRRRORRRRRORROORRRRRRRRRRRRRRROROROORORRRRRRRRRORRRRRRRORRRRORRORRRRRRRRRRORRRRRRRRRRRRORRROORRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRORROORRRRRRRRRRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRROOORRRRORRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRROOORRRRRRRROORRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRORRRRORRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRORRROORORRRRRRRRRORRRRRRRRRRRORRRRRRRORRORRRRRORRRRORORORRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRROOORRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRROORRRROORRRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRRRORRRRRRRROROORORRRROORRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORORORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRRORRRRRORRRRRRORRRRRRORRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRORRORRRRRRRRORRRRORORRRRRRRRRORRRORRRRRORRORRORRORORRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRROORRRRRORRRRRORRRRORRRRRRRRRRRRORRROORRRRRRRRORRRRRRORRRORRRRROORORRRRORRRRRRRRORORRRRRRORRRRRORRRRRRORRRRRORRORRRRORRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRORRRRRORORRRORRRRRRRRRRRRORRRRRROORRRRRRRRRRRORORRROORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRRRORRRORORRRRRRRRRRORORRRRRRRRRRORRRRRORRRRRRRRRRROORRORORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRORRRRRRORRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRORRRORRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRORRRRRORRRRRRRORRRRRRRRRRORRRRORRRRRRRRORRRORRRRROORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRORRRRRRORORRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRORORROORRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRORRORRRORRORORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRORRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRROOROROORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORORORRRRRRRRRORRRRRRRRRRRRRRROROOOORRRRRRORRORRORRRRRORRRRRORRORRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRORRROOOORORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRORRRRORRRRRRRRRRROORROORRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRORRORRRORRRORROORRORRORORRRRRRRRRRORRROOORRRRRRRORRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRORRRORRRRRRRORRRRRRRRRORORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROROOORRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORROORORORRORRORRRRRRRORRRORORRORORRRRORRRRRORRRRRORRORRRRRRRRORRRRORRRRRRRRRRRORRRROORRRRRRORROORORRRORRRRRORRRRRRRRRORORRORRORRRROORRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRROORRRRORRRRRRORRORRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRORRRRRORRRRORRRRRRRRRORRORRRRORRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORORRRRRRRRRRRRRRRROORRRRORRRRRRORRRRRRRRORRRRORRRRRRRRRRRORORRORRRORRORRRRRRRORRRRORRRRRRRRRRRRRRORRORRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRORRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRORROORRRRRRRRORRRRRRRRRRRRRRRRORROORRROOORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORRORRRORORRRRRRROORRORRORRRRRRRRORORRORRRRRRRRRRRORRRORORRRRORRRRRRORORRRRRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRROORRRORRRORRRRRRRORRRRRRRRRRRORROORRRRRRRRRRORRRRRORRRRRRORRORORRRRRRRRRORRORRORRRRORRRORORRORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRORORRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRORRROORRORRRRORRRRRRRRORRRRRRRORORRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRORRRORRRROORRRRRRRORRRORRRROORROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRROORRRRRRORRRORORRRORORRRRORORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRORRRORRRRORRORRRRRRRRRRRRRROORRRRORORORORRRRROORRRORRRRRRORRRRRRRRRORRORRRRRRRRRROOORRORROORRORRRRRRRRORRRRRRORRRRRRRRROROROORRRRRROORRRRRRROORRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRROORRRORRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOOORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORROORRRRRORORROOOORRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRORORRRORRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRORRORRRORRRRRRRRRRRRRRRRROORORROORRRORRRRRRRRRRRRRRORORORRRRORRORRRRORRRRRRRRRRRORRORRRRORRRRRRRRRRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRORRRRORROORRRRRRRRRRRRRRORRRRRORRRRORRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRROOORRRRRRRRRRORRROORRRRRRRORRRORRRRRRRRRRRRRORRRRRRRORRRORRRORRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRRORRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORRRRRORORRORRRRRRRORRRRRRRRRRORRRRRRORORRRORRRRRROORRRRORORRRRRRORRORRRRRRRORRORRORRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRORORRROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRORRRRRORRRRRRRORRRRORRROROORRRRRRRRRRRRRRRRRRRRORRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRROROORRRRORORRRRRRORRRRRRRRRRRRORORRRRRORRRRORRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRROORRRRRRORORRRRRROORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORRRORRRRRRRROOROORRRRRROORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRORRRRRRORRRRRRRRRRORRRRRRRRRORRRORRRRRROORRRRRRRRRRRRRRRRRORRRORRORRRRRRORRRRRRRRRRROOORRORRRRRRRORORRRRRRRRRORRRRRRRRORRRORRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRROROORRRRRRRRORRRRRRRRRRRROROOORORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRRRORRRRRRRRRORRRRRRORORRORRRRRORRRRRRORRRORRRRRRORRRRRRRRORRRRRRRROORORRRRRRORROORORRRRRROROORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRORORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRORRRORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRORORRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRORRRRRRORRRRRRRRRRORRORRRRRRRRORORORORRRRRRRRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRRRORRRORRRRRRRRORROORRRRORRRRRORORRORRRRROROROORRRRRRRRRRRORRRRRORRRRRRORRRORRRRRORRRRRRRRRRRRROORRRORRRRRRORORRORRRRORRRORRRRRRRRRRRRRORRORRORRROORRRRRRRRRRRORRRROORORRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRORRRRRRORRROORRROORRORRRRRRRRRRRRRRRRRRRORRROOORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRORRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORROORRRRRRRORRORRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORORRRORORRORRRRRRORRRRRRRRRRRRRORRRRRRRROROORRRRRRRROORRRORRRRRRRRORRRORRORRRRRROORORRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRORRRORORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORORRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRORORORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRRRRRROORRORRRORRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRORRRRORRRRRRRRORORORROORROROROROORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRRRRRRORRRORRRRRRRORORRRRRRRORRORORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRRRROROORRRRRRRRRRRORRRRRRRRRROOORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRORROORRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROROORRRRRRRRRRRRRRRORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRRRRRRRRROORRRRRRRRRRORRRRORRRRRRRRRROORRORRRRRROORRRRRRRRORORRRRRROORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRROOOROORRRROORORRRRRRRRRRORRRRRRRRROROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRORORRRRRRORRRRRRRRRRRORORORORRRRORORRRRRRRRRRORORRRRRRRRRRRRORRORRRORORRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRORRRROORORRROORRRORRRRRRORRRRRRRRRORRORRRRRRRRRRROORORRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRORROROOORRROORRRRRRRRRRRRRRORRRRORRORRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRORRRRORRRORORRRRRRRROORRORRRRRORRRRRORRRRRRRRRORRRRRRRORRRRRORORRRRRRROORRORRRRRRRRORRRORRRROORRORRRRRRRORORRRORORRRRRRORRORRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRROROROORRRORRORRRORRRRORRRRRRRORROOORRRRRRORRRRRRORRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORRRORRRRRRRRRRORRRORRRRORRRRROORRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRORRRRRRRORRRORORRORRRROORROROORORRRROOORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRORRRRRORRRORRRRORRRRRRRRROORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRROOORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRORORORRORRRRRORRRRRRRRRRRRRORRRORORRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROORRRRORRRRRRRRRRRRRRORRRRRRROOORORRRRRORORRORRRORRRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRORORORORRRRRROORRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORORRRRORORRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRROORRRORRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRORRRRRRRRORORRRORRRRORRRRORRRORRRRRORRORRRRRORRRORRORRRRRRRORRRRRRRRRRRRORRORORRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRORROORRRROORRRRROROOORRRORORORRORRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRROOROORRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRROOORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRROROROOOORRRROORRRRROORRRRRROORRRRORROORRRORROORRRRRRRROOORORRORRRRRRRRORORRORRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRROROOORRRRRRORRRORRRRRORRRRRORRRRRRRRORRRRRRRORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRORRRRRRRRRRORRRRRRRRRRRRORRORRORRRORRRROORRRRRORRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORORRRRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRORRRORRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRROORRORRORRRRRRRORROROORORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRROORRROORRRRRRRRRORRRRRRRRRRRRRRRRRORORRORRRRRRORRRRRRORRRRRRORRRORRRORRRRORRRRRORORRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRROOORRRRRRRRRRRRRRORRRRRRRORRRRRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRRORRRRORRROORRRRRRRRRRRRRRORRROORRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRROORRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORORRROORRRRRRRRRRRRRRRROORORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRORRRRRRRRORRRRRRORROORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRORRORRROROORRRRORRRRRRRRRORRRRRRRRRORRRRORORRRRRRRRORORRORORRRRORRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRORORRORORRRRRRORORRRROROROOOORRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRROROORRRRRORRRRRRORRORRORORRRRRRRRRRORORRRRRRRRRRRORRORRORORRORRRORRRRRRROORRRRRORORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORORRRRRRRRRRRORRRRROROOOORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRROORRRRORORRRORRRRRRRRRRRRRRRRRRORRORRORRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRORORRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRROORORRRRORRRRRRORRORRRRRRRRRRRRRRORRRORORRRRORRRRRRORRRRRORRORRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRORORORRRORRORORRRROORRRORRRRRRRRORRORORRORROORRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRORORRRRRRRRORRRRRORRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRROROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRROORRRROORRRRRRRRRRRORRRORRRORRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRRORRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRROOORORRRRRORRRRRORRRORRRRORRRRRRRRRRRRRRRRRORRRROORRRRORRRORRRRRORRRRRORORRRRRRORRRORRROORRRRRRRRRROORORRRRRORRRRORRRRORRRRRRRRRRROROOORRRRRRRRRRORRRORRRORRRRRRORRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRROROROROORRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRROROORRRROORRRORRRRRRRRORRRRRRRRRRORRRORRORRRRORRRRRORRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRROORRRRRRRRRRRORROORRRRORRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORROORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRROORRRRRRRRROOORORRRRROORORORRRRRRRRRRRRRORRORRORRRROORRORRRRRRRORRRRRRRRRRRRORROROORRRRRRRORORRRRRRRRRRORORRORRRRRRRRROORRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRORROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRROORRRRORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRROOORRRRORRRRRRORRROORRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRORRRRRRRROORRRRRORORRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRORRORRRRROORRORRRRRROORRRRRRRORRRRORRRRRRRRORRRRRORRORRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRORRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRORORRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRROORRRORRRORRRRRORRRRORRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRORROORORRRRRRRRRRRRRRRORRRRRORRORRRRRRORRORRRRRRORRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRORRORRRRRRRRRORORORORRRRRRRRRORROORRRRRRRRORRRROROORRRRRRORRRRORRRORORRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRROORRRRRORRORRRRRRRRRORORRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRROORORRRRRRRRORRRORRORRRRRRRORRRORRRRRRRORORRRORRRRRRRRRRRRORRORRRRRRRORRORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRORORRRRRRRRORRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRROORRRRRRRRRRORRRRRRRRRROOORRRORRORORRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRORORRRRRRRRRRRRRRRORRRRRRRRRORRORORRORRRRRORRRRRORRRRRORORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORROORRRORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRORRORRRRORRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRRRORRORORRRRRRORRRRORORRRORRRRRORRRRRRORORORRRRRRRROORRRRRRRRRRRRORRORRRORRRRRRORROORRRRRRRORRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRROORRRRRRRORRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRRORRRRRRRRORROROORRROORRRRRRRRRRRRRRRRROROORORRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRORORRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORORRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRROORRRRRRRRORRRRORRORRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRROORRRRRRRRORORRRORRRRRRRRRORRRRRRRRORORRRRROORRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRORRROORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRORROORRRRRRORRROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRROORRORRRRRORORRRRROOORRRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRROORORRRRORRRRRRRRRRORROORRRRRRRRRORORRRRRRRRRRRORRORRORORRRRRRRRRORORORRRRRRRORRRRRRRRORORORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRORRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRORRRORORRORRRRRRRORRRRRRRRRRRRRORORRRRRRRRORRRRRRRORORRRROOORRRRRORRRRRRRRRRRRRORRRRRRRORROORROORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRROORRRRRRRRORORORRRRRRRRRRRRRRROORRORORORRRRRORRRORRRRRRRRRRRRROROORRRRRRORRORRRRRRRORRRRRORORRRRRRORRRORRRRORRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRORORRORRRRORRORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORORRORRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRORRRORRORRRRORRRRRRRRRRRRRRROORRORORRRRRORRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRORORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRROORORRORROORRRRRRRRRORRRRORRRRRRRRRRRRROORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRROORRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRORROORRORRRORRRRRRRRRRRORRRRRORRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRROOORRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORORRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRORRRRORRRRRRRORRORRRRRRORRRRRRRRRORORORORRRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRORORRRRRRRRRRRORORROOROORORRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRORRRRRORRORRRRRRROOORRRRRRRROOORRRORORRRRRRRRRRRRRROROORRRRRORRORRRRRRRRRRROOORORORRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRORRRRRRRRRRRROORRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRORRORRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRORRORRRRRRRORRRRORRRORRRRORRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRORRRRRROORRRRRRORRORRRORRRRORRRRRRRORRRRRRORORRRRORORRRRRRRRRRRRRRORRRRRRORRRORRORRORRROORRRRRRORRRRRRRRRORORRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRRORORRRRRORRORRRRRRORRORRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRORORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRORRRRRRRRRRORRRRRRROROROROOORRRRRRORORRRRORORRRRRORRORRRRRRORRRRRRRRRRRRRRRRRROORRRRRORRRRRORRORRRRRRRROORRRORRRRRRRRRORRRORRORRRRORORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRROORRRORRRRRRRRRRRRROORRRRRORORRRRRRRRORRRRRORRRRRRRRRORORRRRRRORRRORRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORORORRRROROORRRRRRORRRRRRORRRRRRRRRRRRRROORRRRORROOORRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRROORRRRRRRRRROORRRRRRRRRRRROORRORRRRRRRRRORRORRRORRRRRRORRORRRRROOORRRRRRRRRRRORORRRRRRRRRORRRRRORORRRRORRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRROORRRRRRORRRRRRRRRORORRRRRRRRORRORRRRORORRRRRRROORRORRRRRRRORRRRROORRRRORRRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRRRRRRRORRRORRRROORRRRRRRRRRRRRORRRRRRRRRRORORRRRORRRORORRRRRRRRRRRORORRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRROORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRROORRRRRRRRRRRRRRRORRRRRORRORORORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRORRRORRRRRRRRRRRRORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRORORRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROORRORRRRRRRRRRRRRRRRRORORRRROORRRORRRRORROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROORRRORRRRRRORRRORRRRRRRORRRORRORRRRRRRORRRRRRORRRRRRRRROORRRORRRORRRORRROORRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRRORRRORORRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRROORRRROOORORRORRRRRORRRRRRORRRRRRORRRRRRORRRROROOOORRORRRRRRORRORRRRRORRRRRRRRRRRRRRORRORRRORRORRRORRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRRORRRRRORRROROORRRRRRRRRRRRORRRRRORRRORRRRORRRRORRRRRRRRRRORRRRROORRORRRRRRRORRRRORRRRRRORRRRRRRRORRRRRRORRRRROORRRRRORRRRRORRRRRRORRRROOORRRRRRRRRRRRROORORRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORORRRORRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRORRRRRORORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRORRRRRRRORORRORRRRRRRRORRRRRRORORRRRRRRRRRORORRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRROORORORRORRRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROROORRRRRRRORRRRRRRORRRRRRORRRRRORRRRRORRRRRRRROORRRRRRORRORRRRRRORORORRRRRRRRRRORRRRORRRRROORRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRROOORORRRRRRRRORRRRRRRRRRRRORRRRRRRORORRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRORRORORRRRRRRORRRRRORORRRRORORRRRRRRRRRORRORRRORRRRORRRRRRORRRRRRRRRRORRRROORRRORRORORRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRORRROROORRRRRROORRRRRRRORRRRRORRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROORORRRRRRRRRRRRRRRRORRRRRRROORRORRRORRRROROORRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORORRRRRRRRORRRRRROORRORRORRRRRRRRRRRRORRRRRORRORRRRORRRRRRRRORRRRRORRRRORRRRRRORRORORRRRRRRRRRRRRRRRRORRRRORRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRORORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORORRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRORRORORRRRORORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRORROORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRORRRRRRRRORRRRRRRRRRRRORRROORRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORORRRRRROORRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRORRRRRRRROROORRRORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRROOORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORORRRRRORRORRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRORRRRORORRRRORRRRRRRORORROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRORORRRRORRORRRRRORROORRRRRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRORRRORROORRRRRORRRRRRRRRRRORRRORRRORORORRRORORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRROORORRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORORRRORRRRRRRRRRRRRORRRRRRRORRORRRORRORRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORORORRRRRRRORRRRRRORORRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRORRRRRRORRRORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRROORRRRRRRRRORORRORORRRRRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRORORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRROORRRRORRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROOOORRRRRRORRRRRRRRRRRRRRRRRRORRORROOORORRORRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRORORRORRRRRROORROORORROORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRORRRRRRORRORROORRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRROORORRRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRORRRRORORRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRROROORRRRRRRRRRORRRORRRRRORRRRRRRRRRROORRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORRRRRRRORRRRRRRROORRRRORRRRRRRRORRORRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRROROOORROORRRORRRRRRRORRORRRRORRRRORRRROORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRROORRRORRRORORRRRRORORRRRRORRRRRORRRRRRORRORRORRRRRRRROOOOORRRRORORRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRORRORRRORRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRROORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRROOORRRRRRRRRRORRORORRRRRRROORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRORRRRRORRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORORORRRORRRRRRRRRRRORRRRRRRRRORORROORRRRRRRRRRRORORORRRRRRORRRRRRRRRORRRRORRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROROORROORRRRRORRORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRORRORRRRRRRROOOROORRORROROORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRORRRRORRRORRRRRRRROORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOOORRRRORRRRROORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRROORRROORRROOORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRROORORRRRORRRRRRRRORRRRRRRRRORRRORORRRRRRRRRRRRRRRORRRRRRORRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRRROORRROORRRRRRRRRRROORRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORORRROROORRORRRRRRRRRRRORORORRRORRRRRRRRRRROORRRRRRRORRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRROORRRRROORRRRRRRRRRORRRRRORORRRRRORRRRRORRROORRRRRRRRRRRRORRRROORRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRORORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRORRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRORRRRRRROORORORORRORROORRROOORRORRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRRRROORRORRRRRRRRRRORRRORRRRRRRRRRRROROORRRRRRRRRORORORRRRRRRRRRROORORRRRRRORORRRRRRRORRRRRRRRORRRRRRRROORORRRRORRRRORRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRORORRRORRRRRRRORRRRRRRROORRRRORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORORRRRRRROORRRRRRRORRRRORRRORRRRRRRRORROORRRRRRRORRRRORRORORORRRORRORRRRRRRRRRRRORRROORORRORRRORRRRRRRRORRRRRRRORRORRRRRRRROOORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRORORRORRRRRRRRROORRRRRRRORRORORRRRRRRORRORRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRROOORRRRRRRRRRRRROROORRRRRROORRRRRRRRRRRORRRORRRRRRRRRRORRRRORORRRRRRORRRRRRRRORRRRRORRRRRRORRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRORORRRRORRRORRRRRRRRRRRRRORROROORRRRRORROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORROOOORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRORORRRORRRRRRORRRRRRRRRROROORRRRORORRRRRORRORRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORORORRRORRRRRRRRORRRRRRRRRRORRRRRRRORRRRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRROORRRRORRORRRRRRRROORRRRRORRRRRRRRRROORRRORORRRRRRRORRRRRRRRRRORRRRRRRRRROORRRRRRRRRORRRRORRRRRRRRORORORRORRRORRRORRRRORRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRORRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRROORRRRRRRRORORRORRRRRRRRRRRRRORRORORRRORRORRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRORORRRRRRRORRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRRRRORRROORRRRRORRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRROORRRRRORRRORRRRRRORRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRORORRRRRRRRRRORORRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRORRORRRORRORORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRROORRRRORRORRRRRRRRRRRRRRRRRRRRRRRROROORRORORRRRRRRRRRRRRRRRROROOOORRORRRORRRRRRORRRROOORRRRRRRRRRRRRRRRRORORRRRRORORRORRORRRORRRRRORRRRRORRRRRRRORRRORORRRRRRRORRORORRRRRRRRORRRRRRRRRRRRRORROORRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRORRRRRRRRRRRRRRRORORRRRRRRRRORORRROORRROORRROORRORRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRORROORRRRRRRORRRRORRORRRRRORRRORORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRROORRRRRRRRRORRRRRRRRRRRORORRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORROORRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRORORRRORORRRRRRRRORRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRROORRRRRRRRRRRORRRRRRRRORORRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRORRRRRROROORRRRRRRRORRRRRRRRRRRRRRRROOOROORRRRRRORORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRROORRRRRORROORRRRRRRRRRRRRRRRRRRRORORRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRROOOORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRRRORRRRRORRRORORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORRRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRORROOORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRORRRRORRRORORORRRRRRRRRRRORRRRRRORORRRRORRRRRRRRRRRRORRRRRRRRRORROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRORRRRORRRRRRORORRRRRRRRRROORRRRROORRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRORRRORORRRRRRORRRRRRORORRORRRRRRRRRORRRRORRRRRORRRRRRORORORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRORRORRRRRRRRRRRORRROORRORRRRRORRRRROOROORRORRRRORRORRRRRRRRRRORRRRRRRRORRRRRORRRRRRRORRRRORRORRRORRORRRORRRRORORRRRRRORRORROORRRRORRRRROOORRRRRORRRRRRROOROORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRROOORRRRRORRRRRRRRRRRRRRRROORRROORRRRRRRRRRRORORRORRRRRRRRRRRORRRRRRRRRRRRORRORRORRRROORRRRORORRRRRRORRRRRORRRRORRRRRORRRRRORORRORRORRRRORRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORORORORRRRRORRRRRRRRRRRRRRRRRORORRORORRRRRRRRRRRRRORRRRORRRRRRRRRORORORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRROORRORRRRRROORRRRORRRRRRORRRRRRRRORRRRRORRRORRRRRRRRRRORRRRRRRRRRORORRORRRRRRRROORRRRORRRRRRRRORRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRRRRORRRRRRRRORRROOORRRORORORRRRRORRRRORRRRROORRRRRRRRRRRORRRORRRRORRROORRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRORRRRRRRRRRRRRROOOORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORORRRRRRRROORRRRRRRORRRRRRRRRRORRRRORRRRRRRRRROORRRORRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRRORORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRRORRRRRRORRRRRORRRRRORORRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRORRRRORRRRRRORRRRRORRRRRRRORRRRROORRRRRRRRRRORROORRORRRRRRRRRRRRRRRORRRRRRRRROROROORRRRRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRROORRRORRRRRRRRORRRRRRRORRRRRRRRRROORORRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRORRRRRRRRROOORORRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRROROOORORRRORRRORRRRRRRRRRRORORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRORRORRRRRRRRRRRRRRRORRROORRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRORRORRRRRRRRORRRRORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORRRRORRRRRRRRRRRRRRRRORRORRORRRRRRRORRRORRORORRRRORORORRRORRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORORRRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRORRRRRRORORRORRRRRRRRRROORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRORRRORRRRRRRRRORORRRORRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRROORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRRRRORRORRRRRRORRRRROORRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRROORRRRRORRRORRRRRRRRORRRORRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRROORRRRRRRRORORRRRROROORRRRRRRRORORRRRROOORRRRRRRORRORRRRORRRORROROORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRORORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRRRRORRRRRORRORORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRRRRRRRRORRORRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRORRROORROORRRRRRRRRORRRRORRRORROORRORRROORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRORRRRROROORRRRRRRRRRORRRRORRORRRRROORORRORRORRRRRRRRRRRRRORORRROORORRRRRRRRRORRRRRRRRORRRRORORRRRRRRRRRRORRORRRROROORROROORRRRRRORORRRRRRRRRRRRRRRRRRORORORRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRRORORRRORROOORORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRORROORRRRRRRRRRRRRRRRORRRRRRRORRORRORRRRRRRORRROORRRORRRORRRRRRRRRORORRRORRRRRRRRRRRORRORORORRORRRRRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRROORRRRRRRRRRROROORRRRRRORRROORORRRRROORRRORORRORRORRRRRORRORORRRRRRORRRRORRRRRRRRORRRRRRRRRRRRORRRORRRRRRORRRRRRORRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRROOORRRRRRORRRRRRRRRRORRRRRRORRORRORRORRROOORRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORORRROORRRRORRORRRROORRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORORRRRORRRRRRORRRRRORORORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRROORRRRRORRRRRRRORRRRRRRRRORRRRORRORRRRRRORRORORRRORRORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRORORRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORORRRRRRRORRRRRRRRRRRRROORRRRRRRRRROORROORRRRRRRRROORRRRRRORORRRRORRRRRRRRORORRRORRRRRRROORORRRRRRRRRRRRRRRORRRRRRORROORRRORRORRRRRORRRRRRRRRRRORRRRRRRRROROORRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRORRRORORRRORRORRRRORRRROOORRRRORRRRRRRORORORRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRORRORRRORRORRORRRRRRRRRRORRRRRRRORRRORRRRRRRRORRORORRRRORRROORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRROOROROORRRRRRRRRRRRRRRRRRRRRRORRORORRORRRORRRRRRRORRRRRRROORRRRRRRRRRRRRORRRORRRRRORRRRRRRRORORRRRORRRRRROORRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRORRRRROOORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORORRRRRRRORORRRRRRORORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRORRRRRORROOROROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRORRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRROORRRRRRRORORRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORORRORRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRROORRORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRORRRRRRRORRRORRRRRRRRORRORRRRRRRRORORRORROOORORRRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRORRRRORRRRRORORRRRRRROORRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORORRORORRRRRORRRRRRRRRRRORRRRORRRRRRRRROOORRRORRORRROORRRRRRROORRRRRORRORRRRROORRRRRRORRORRRRRORRRORRRRRRRRROORRRRORRRRRORRORRRRRRRRRRRORRRRRRRRORRRRRORRRROORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRORORORRRRORORRORRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORRRRRRRROORRRRORRRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRROROROORRROORRRRRRRRRRORRRRRRRRRORRRRRRRROROROORRORRRRRRRRRRRROOORRRRRRRRRRORRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRROORRRRRRRROORRRRORRRRORRRRRRROORRRRRRORORRRROROORRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRROORRRORRRRRORROORRRRRORRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRORRRRORRRRRRRORRRRRRORRORRRRRRORRRRORRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRORRRORROOORORRRRORRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRORRRORORORRROORRORRRRORRORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRORRRRRORORRRRRROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRORRRRRRRROORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRROORORRRRRRORRRRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRORRORRRRRRORORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRORORORRRRRRRRRRRRRRORRRRORORRRORRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRROOORRORORRRRRORRRRRRRRROROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRROORRRRORRRORRORRRORRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRROORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORORROOORRRRRRRRRRRRORRRRRROORRRRRRRRRORRRRRRRRORRRRORRRRRRORORORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRORORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRORORORRROORRORRORRROORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORORRRRRRRRRRROOOROORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRRRORRRRRRRRRRRORRRRRRRORRRROORRRRROOOORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORORROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRRRRRRRROOOOOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOORRRRRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOORRROOOOOORRROOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOORRRRRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOORRRRRROOORRROOOOOORRRRRRRRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOORRRRRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRRRRROOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOORRRRRROOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOORRRRRROOORRROOORRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOORRRRRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRROOORRRRRRRRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRRRRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRRRRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRRRRRRRRRRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRROOORRROOOOOORRROOOOOORRRRRRRRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRRRRRRRROOORRRRRRRRROOORRRRRROOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOORRRRRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRRRRRRRRRRROOORRRRRRRRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRRRRRRRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOORRRRRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRRRRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOORRRRRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRRRRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRRRRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRRRRRRRRRRROOORRRRRROOOOOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOORRROOORRROOORRRRRROOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRRRRRRRRRRRRRROOORRROOORRROOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRRRRROOORRROOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRRRRRRRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOORRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOORRROOORRRRRRRRRRRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOORRROOORRRRRRRRRRRROOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOORRRRRROOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOORRRRRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRRRRROOORRRRRRRRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRRRRROOORRROOORRRRRRRRROOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRROOORRRRRRRRRRRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOORRRRRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRRRRROOORRROOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRRRRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOORRRRRRRRRRRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRRRRRRRRRRROOORRROOORRRRRROOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRRRRRRRROOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOORRROOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOORRRRRROOORRROOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOORRROOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRROOORRRRRRRRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRRRRRRRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRRRRRRRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOORRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRRRRRRRRRRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOORRROOORRRRRRRRRRRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRRRRRRRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRRRRRRRRRRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOORRROOORRROOORRRRRRRRROOORRROOORRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOORRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOORRRRRRRRRRRROOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRRRRROOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOORRROOORRRRRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRRRRRRRROOORRROOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOORRRRRRRRRRRRRRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRRRRRRRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOORRROOORRRRRRRRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRRRRRRRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRRRRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOORRRRRROOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOORRRRRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRRRRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRRRRRRRRRRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOORRRRRRRRROOORRRRRROOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRRRRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOORRRRRROOORRROOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRRRRRRRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOORRRRRRRRROOORRRRRROOORRRRRRRRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRRRRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRRRRROOORRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRRRRRRRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRORRRRRRRRRROORRRRRROORRRRRRRRORRORORRRRRRRORRRRRRORRRRROORRRORRORRORRORORRRRRRRRORRORRRRRRRRRRROROROORRRRORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRORRRRRRORORRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRROORRRORRORRRORRRRRORRRRRRRRRRRRRRRRRRRRORRROOORORRRORORRRRRRORRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRROROORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRROORRORRRORRRORRRORROORRRRORORORRORRORRRRRRORRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRORRORRRRRRRORROORRROORORRORRRRRORRORRRRRRRRRRRRRRRRRROOORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRORRRRORRRRRRRROROORRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRRORRRRRRRRRRORRRRORRRORRRRROORRRRRRRRRROORRRRORRRORRRRORRRRRRRRRORRRORRRRRRORRRORRRRRRRROROORORRRRORRRRRRROORROORORRRRRRRRRRRRRRRRRORORRRRROORORRRRRRRRRRRRRRRRRRRRORRRROORRORRRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRROORRRRRRRRRRORORRRRROOORRRRORRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRROORRRRRRRRRORRRRROORRRORRRRRORRRRRRRORRRRRRRRORROROROORRRRRORRRRRRORRORRRRRRORRORRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRORORORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRORRORRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRORRRRRORRRRRROORRORORORRRRRRRORRRRRRRRRRORRORRRRRRRRRRROOORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRORORRROOORRRRRRRRRRRRORRORRRRRRRROORRORRRRORRRRROORRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRORRRORRRORRORRRRRRRRRRRRRRRRRRRRORORRROORRORRRRRORRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRORRRRRORRROORRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRROOORRRRRRORRRORORRRRRRRORORRRRRRRRORRRRRRRRRRRRRORORROOORRORORRRRRRRRRRORRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRORRRROORRRORRRORORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORROROORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRROORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRORRROORRRRORRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRROROOORRRRRRRRRRRRORRORRRRRRRRRRORROORRRRRORRRORROORRRRRRRORRRORRRRRRRRORRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRROROORRRRRRRORRRRRORORRRRRRRRRRRRRORORRRROORRRRRRORRRRRRRRRROORRRRRROORRRRRRORRRRORRRRRRORROORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRORRROORRRRRRRRRRRRRORRRRRRRRRRRROROORRORRRROORRRRRRRRRRRRRRRORROOORORRRRRRRRRRRRRRRRRRRRORORRORRRRORORRORRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRRROORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRROROOORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRORORRROROORRRRRRORRRRRRORRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRORRRRRRORRRROORORRORRRRRRRRRRRORRROORROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRROORRRRRORRORRORRRRRRRORRRRRRRORRORRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRROOORRRRORRORRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRROORRRRRRRRRRRRRRRORRRRORRORRRRRRORRRORRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORROORORRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRROORRRRRRRRORRRRRRRRORRRRROORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRORRORRRRROORRRRRORRRRRRRRRRORRRRROORRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRORRRRRRRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORORRRRRRORRRORRORORRRRRORRROORRRRRRRRRRRORRORRORRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRORRRRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRRRROORRORRRRRRRORRRRRRORORRRRRRRRRRRRROORRRRRRORRRRRRRRORRRRORRRRRRORRORRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRROOORRRRRRRRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRROOORRORORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRORORRRRRRRRRRRRRRRRORRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRORRRRRRRRORRRRRORROORRRRRORRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRORRRRORRORRRROORORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRROROROOORRRRORRRRRRRORRRRORRORRRORRORROROOORRRRRROORRRROROORORRRRRRORRRORRRRRRRRRRORRRROORRRRRRRORRORRRRRORRRORORRRRRRRRRRRRRORRRRRRRROORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRORRRRRRORORORRRRRRRRORROORRRROORRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRROORRORORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRRRRORRRRRRRRRORRRRRRRORORRORRRROROOORRRRRRORRRRRRRORRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRORROROORORRRRROOORORRRRORRRORORRRRORRRRRRORRRRRORRRRRORRRRRRROORRRRRRROORRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRORORRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORORRRRROORRROORRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRORRRRORORORRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRORORRORRRRORRRRRRORORRRRRRRRROOROORRRRRRRRRRRRRRRORRRRRRRRRRRRRROORROORRRRRRRROORRRRRRRORRRRRRORROORORRORRRORRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRORRRORRRROORRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRORRRORORRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRROORRRRRRRRRRRORRRRRROORRRRORRRORRRRRRRRRRRRORRROOOOORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRRRRRRORRRRRRRRRORORRRRRRRRRRRRORRORRORRRRRRORRROOORRRRRRRRRRRRRORRRRRRRRRORROROORRRRRRORRRRRRRRORRRRORRRRRRRORORORRRRRORORORROORRRRRRRRORRRROORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRORROOORORRRRRRRRRRRRRRORRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRRRORRORRRRORORRRORRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRROORRRRRRRRRORRRRRORORRRRORRRROORORORRRRRRRRRRRRROORRRRRRRRRROORRRRROORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRORRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRORORRRRRRORRORRORRRRRRRROORORRRRRRORRORRROORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRROOOORRORRORRRORRRRRRRRRRRRORRRRRRRRRROROORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRORRORRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRORRORRRRRRRRRORRRRRRRRORRRRRRRRROORRRRROORRRORORORRRRRORRRRRRRRRRRRORRRRRORRRRRRRROORORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORORRRORRRRRRORORORRRRRORRRRRRORRORRRRRRRRORRRRRRRORROORRRRRRRRRRRRRORRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRRRORRRORRORORRRRORRORORRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRROOORRRRRRRRRRRRRORROORRRRORRRRORRRRORRRRRRRRRRRRRRORRORRORRRRRRRRROORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRRRRORRRRORRRRRRROORRRRRRRROOORRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRORRRROORRRRRRRROORRORRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRRRRRRRRRRRRRRRORRRORORRRRORRORORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRORROORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRORRRRORRRRRRRRRRRORRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRROORORRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRORROORRRORRRORORRORRRRRORRORRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRORRROORORRRRRORRRROORRRRRRRRRRRRRRRORRRRRRRRROORRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRORRRORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRORRRRORORORRRORRRORRORORRRORRRORRRRORRRRRRORRROROROORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRROROORRRRRRRRRRRRRORRROORRORRRRRRRORRRRRRRRRRRORRROOROOROORRRRRRORRRRROORRRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORORRRRRORORORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRROROORRRORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORROORORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRORROORORORRRRRRRRRRORRRRRRRRRRRROORRRRRRROORRRRRRRRRRRRRRRROORRRRRRRRRRRRORRORRRORRRRRRRORRORRRRRRRORRRROROORRORORRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRROORRRRRRRRORRRORORRRRRRORORRRRORRRRRRROROORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRROORRRRRRRORRRORRRRRRRORRORRRRORRRRRORRRORRRRRRORRRRRRRRRRRORROOORRRRRRRRORRRRRRRRORORRRORRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRROORRORRRORRRRRRRRRRROORRRRRRRRRORRRORRRRORRRRRRRRORRRRRRORRRRRRRRRRROROORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORRRROORRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRORORRRRRROORRRRRRRRRRRRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRORRORRRRRORRRRRORRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRRORRRORRRRRRRRORRRORRRORRRRRORRORRRRROORORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORORRRROORRRRRRORRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRROROORRRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORORRRRORRORRRRRRRRRORRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRROOROORRRRRRRRRORRRRRROORRRRRRRRROORORRRRRRRORRRRRRRRRRORRRRRORRORRRRRRROROORRRRRRRRRRRRRORORRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRORRRRRRRORRRRRRRRRRRROORRRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRROORRORRRRRORRORORORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRORRRRORRORRRRRORORRORRRRRRRRRRRRRRRRRRORRRRRRRORRRORORRRRRRRRRRORRRRRRRRRORRRRRORRRORRRRORRRRRRRRORRRROORRRRRORRRRRRRRORRRRRRRRRRRORRORRORORRRRRRRRRRORRRRRRRRORROORRRRROORRRORRRRRRRRRRRORRRRORRRRRRORORRRRRRORRRRRORRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRORRRRRRRORRRROOORRRRRRRRRRRORRRORRRRORRORRRRRRRRRORORRRRRRRRRRRRRRORORRRRORRRRRRRRRRRROORRORRRRRRORRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRROORROORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROOORRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRROORRRROORRRRRRRRRORRORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRROORRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORROORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRORRORRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRROORRORRRORRRRRRRRRRRRRRORRRRORRORRRRRRRORORRRRRRORORRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORORRRRRRORRRORRORRRRRRRORRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRROORRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRORRRRORRRORRRRROORROORRROORORRORRRRRRRRRRRRRORRORRRRORRRRRRRRRRORRRRRORRRRRRRRRORRORRRRRORRRRRRRRRRORORROORRORRRRRRRRRORRRRRRRRORRORRRRORRRRORRRROORRRRRRRORRRRRORROOROORORRRRRRRRRRORRORRRRRRRRRORORRRRRRRRRRORRRRORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRROORROORRORRRRRORRORORRRROROORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRRORRRRORORORORRRRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORORRRRRRRRRROORRORRRORRRRRRRRORROORRORRRORRRRRORRRRRRORRORRRRORRRRRRRRORROORRRRRRRORRRRRRRRRRORORORORRORRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRORRRRORRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRROOORRRRRRROROORORORRRRRRRRRRORORRORRRRRRRRRRORRRRRRRRORRORRORRRRRRRRORRRRRRRRROORRRRRRRRORROORRRRRRRRRRRRRRRROOORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRROORRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRORORROORRORRRRRORRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRORRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORORORRRORORRRRRRRRRRRRRRRROORRORRORRRRRRRRRRRORORRRRRRROOROORRRORRRRRORORRRORRRRRRRRRRRORRRRRRROROORRRRORRRRRRRRRRRORRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRORORRORRRRROORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRORRRRRRRRRORRORRRRRROORRRORRRRRRRRORRRRORRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRROORRRRRORRORRRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORORRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRROOORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROORORRRRORRRRRRRRRRORORRRRORRRRORRORRORORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRORRRRRRRRRRRORRRRRORRRRRRORRORRRRROORRRRROORRRORRRRRORORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRROOORRRRRRRRRRROORRRORRORRRRRORRRORRRRRRORRRRRRRRRORRRRRRRRRRRROORRRRRROROROORRRRORRRRRRRRRORRRORRRRRORROORRRRRRRRRRRRRORRRRRORRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRROORORRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRRORRRRRORRORRRRRRRORRORRORORRRRRRORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRROORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORORRRROORRRRRRRRORRRRRRRRRRORRRORRRORRRORRRRRRRRRRRORRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRROROOORRRRRRRRROORRRORRRRRRRORRRRORRROROORRRORORRRRRRRRRORRORORRORRRRRRRRORRRRORRRRRORRRRRRRORRORRRRRRRORRRORRORRRRRRROORRRRRRRRRRRRRRRRRRORRORORRRRRRRRORRRRRRRRORRORRRRRRRROORRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRORRRROOORRRRRRRORRRRRRRRRRRRRRORRRRORROORRRRRRORRRRRRRRRRRRORORRRRRRRRORRRORRRORRRRRRRORROROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRORRRRRORORRRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRORORORORRRRRRRRRRRRORORRRRRRRORRRORRRRORRRRORRRRRRRRRRORORRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORORRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRROORRRORRRRRRRRRRRROORORRORRRRRORRRRRRRRRRRRORRRORRORRORRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRORRROORRRRORRORRRRORRRRRRRRRRORRORRRRRRRRORROORRRRRROORRRRRRRRRRRRRROORRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRORRRRRROOROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRROORRRRRRRORRRORORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRORRORRORRRORORRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRRORORROORRRRRORRRRRRRRRRRRORRRRORRRRRROORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRORRORRROORORRORRRRRORRRORRRRRORRRRRROORORRORRRRRRORRRRRRRORROORRROORRRRORRRRRRRRRRRRRRORRRRRORRRRRRRORRORRRORRRRRROORRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRROROORRRRRRORRROORRRORRRRRRORRORRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRORRRRORRRORRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRROOROORRRORRRRRRORORRRRRRRRRORRRRORRORRRRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRORRRRRORROORRRORRRORRRRRRORRORROORRRRRORRROROOORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRORORRRRORRRRRRRRRRRRRORRRRROORRRRRORROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRORRRORRRRRRORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRORORRRRRRRRRRRRRORORORRRRORRRORRRRRRORRRRRRRRRRRRROORRRORRRRRRRORRRRRRRRROORRRRRORRRRRRORRRRRRRRORRRRRRRRRRRORORRRRRRORRRRORRRORORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRORRRRRROORRRRRORRRRRRORRRRORRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRORRORRORRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRORORRRRROORORRRRRRRRRRRRORRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRORRRORRORRORRRORORRRRRRRRRRRRRRRORROOORRRRRRRRRRRRRRRRRRRRROORRORRRRRRORRRRRRRROORRRRRRRORRORRRRRRORRORRRRRRRRRRRORRRRRRRROORRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRORRRRRRRORRRRRRRROORRORRRRRROOORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRORORRRRROORRRRRRRRRORRRRRROORRRRRRRRRORRRRRRORRRRORRROROORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRORRRORRRRORRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRROORRRRROORRORRRRRRRRRRRRRRRORORRORRRORRORRRRRRRRRRRORRRRRORRRRRRRRRORRORRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRORRRORRRORRRRRRRORORRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRORRORRRRRORORRRRORRRRRRRORRORRRRRRRRRORRRRORRRORRRRRRRRRRRRRRORRRRRORRORRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRORRROOORRRORRRRRRRRRRRRRORRROROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRROOORRRRRRRRRRRRRRRORRRRORRRORRRORRORRRRRORRRROOORRRRRORRRRRRORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRRORRRORRRRRRRORRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRROORRRRRRORRRRROROORRRRRRRRRRRROORRRRORRORORORRRRORRRRRORRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRORORRRRORRRRRRROORRRRRORRORRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRORORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRROOORRRORRRRRRRORRRRRRRRRRRORORROORRRROROOORRRORRRRRRRRRRRRORRRRRRRRRORRORRRRRRROORRRRORRRROORRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORORORRRRORRRRRRRRRRRRRRRRORRRRRORRORRRRRRORRRRRRRRORORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRROORROORRRRRRRRRRRRRORRRRRRRRRRORROORRRRRORRRRRRRORRRRRRORRRRRRORRRORRRRRORORORRORORRRRRRRORORRRRRORRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORROORRRORROORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRORRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROOORRRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORORRORRROROORRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRORRRRRRRRRRORRRRORORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRROORORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRRROORRRRORRRORRORRRRRROOORORORRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRORRRRROORRRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRROORORRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRORRRORRROORRORRRRORRRORRRORRRRRRRRRRORORRRRRRRRRRRRORRRRORRRORORRORRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRORRRRORRRRORRRRRRRRRRRORRRRRRRROORORORRORRRRRRRRRORRRORRRRORORRORRRRRROOORRRRRORROORORORRRRRRORRRORRRRRRRORRORRORRRORRRRRORRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRORRRRRORRRRRORRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORRRRRRROORRRRRROORRRRRRRORRRRRRRRRRRRRRRORRRORORRRRRRRRRRRORORRRRRRRRORORORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROOORRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRORRROOOOROOOORRRRRRRRRRRRRRRORROROROROORRRRRRORRRRRROOOORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORROORRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRROORRORRRRRRRRRRRRORRORRORRORRRRRRRRRRRRRRRRRRRORORRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRORRRRRROORRRRROORRRRRRRRRRORRORRRRRORROROORRRORRRRRORRRRRROORRRORRRRRRRORRRRRRORRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRORRRRROORRRRRORRRRRRRORRRRRRRRRORORRRORORORRRRORROROORRRRRROOORRRRRRRRRRORRRRRRRRORRRRRORRRRRRORRRRRRRRORRRRRRRORRORRRRROORRRRRRRRRRRRRRORRRRRRRRROORORRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRROOORORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRORRROORRRRORROORORRORRRRRRRORRRORRORRRRRRRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRORRRRORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRORROORRORORRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRORRRRROOORRRORRRRRRRORRORRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORORRRRRRRORORRRRRRRRRRRRRRRRRROOORRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRROORRRRRRRRORRRRRORRRRRORORRRRRRRRRROORRRORRRORRORRRRRORRRORRRRRORORRRORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRORROROORRORRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRORRRRORORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRRORRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORORRRRORRRROORORRRRRROROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRORRRRRRORRRRORRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRROROORRROORRRRRRORRRRRRRRRRRROROORORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRRRRRRRORORRORORRRRRRRRRRRORRRRRRRRORRORRRRRRORORRORRRRRRRROOORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRORRRRORRORRRRRRRRRRORRRRRRRRORRRORRRRRRRORORRRRRRRRRRRORORRRRORRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRORRRORRORRRRORRRRRRRRRRROORRROORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRORRRRRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRRRRRORORRRRRRRRORRRRRRRRORRORRRRRRROROORRRRRRRRRRRRRRORORORORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRORRRRORORRRRORRROROORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRRRRORRRRRRORRRRRRRRROORRRRRRORRRRRRORRRORRRORRRORORROORRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRRRRORRRRRORORRORORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRORRRRRRRRRRROOORRORRRRRRRRRRRRROROORRRRORORORRRRRRRRROORRRRRRORRRRRRORRORRORRROORRRRRRROROROORRRRRORRRRRRRROOORRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORORRRRRROROORRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRROORRRRRRORRORORORORRRRRRRROORRRRRRRORORRRRORORRRRORRRORRRRRRRRRRRRRRRORRORRRORRRRRRRRRORRRRRRRRRRORRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRROORRRRORRORRRORRRRRORRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRORRRRORORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRORORRRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRORORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRORRRORRRRORRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORROORRRRRRRRRRRRRORRRRRRRRROROORRRRROOORRRRORRRORRRRORRRRRRRRRORORRRRRRRRRRORORRRRRRRRRROORRRRROORRRRRRRRRRRRORRRRRORORRORRORRRRRORORORRRRRRRRRRRRRRRORRRORRROROORRRRRRRRRRRRRRRRRRRRRRRORORRORORORRRRRRORRRRROOORRRRRRRRORRORRRRORRRRRRRRRROROORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORORORRRRRRROROORRRRRRRRRRRRORRORRRRRRORORORRORRRRRRRORRRRORRRORRRRORORRRRRRRRRRRRRRRROROORRRROROORROORRRRRRRRRRRRRRRRRRRORRRRRRROROOOORRRRROORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRORRRRRRRRRRRORRRRRORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROORRORRRORORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRORRRROOORRRORRROOORRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRROORRRRRRORRRORRRORRRRRORRRRRRORORRORRRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRORRORORRRRRRRRRRRRRRRORRRRRRRRORORRRRORORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORORRROORRORRRRORRRRRRRORRORORRRRROROORRRORRORROORRRRRORRORRRORRRRRRRRRRROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORORROORRRORORRRROROORRRRRRRORRRRRRORRRRRRRRRRORRRRORRRRRORRRRRRRRRRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRRORRRRRRORRRORRRORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRORRORORRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRORRRRORORRRORRRRRRRRRORRORRRRORRRRRRRRRORRORRRORORORRRRORORRORRORRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRORORRRRRRRRRORRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRROORORORRRRRRRRRRRRRRORRRRRRRROORRRRRORROORRRORRRRRRRRORRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRORORRORRRORRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRORRRRRRORRRRRORRORRRORRRRRRRRRRROORRRORORORORRRRORRORRRRRRRRRORRROOORRRRRORRRORRRRRRRORRORRRORRRRRRRRRRORRRRRRRORORROORRRRRRRRORRRRRORRRRRORORRORRRRRRORRRRRRRORRRRRRRORRRRRRORRRRORRRRRRORRRRRORRRRRRORRRORRRRRRRRRORRRRORORRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRORORRRORRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRROOOOORRRORORRRRRRRRORRRRRORORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRROORORRRORRRRRORRRRRRRORRRRRRRRRRRRORRRRORROOROORRORRORRORRRRORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRORRORRRRRRRRRRRRRRROORRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROROORRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRORRRRRRORRRRRRRRORORORRRRORRRRORRRRRRRRORRRROORORRRORRRRRRRRRRRRRRRRRORRORRORRRROOOORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRORORRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRORORRORRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRRRRORRORRRRRRRORRRORRRRRRRRORORRRROORORRRRRRRROORORRRRRRRRRRRRRRRRORRRROORRRRRRORRRRRRROORRRRRRRORRRRRRRORRORRORRRRRRRRRRRRRORRORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROROORRRRRRRRORRRRRRRROORRRRRRRRROORRRRORRRRRRRRROOORORRRRRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRRORRRRRRRRRORORRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRORRRRRRORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRRRRRRRRORRORRRRORRROROORRROORRRROOORRRRRRRRRRRRORROORRORRORRORRRRRRRRRRRRORRORRRRRRORRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRORRRRRRRRRRRROORRRRRORRRRRORRRRORORORRROROOOORORORRORRRRRRRRRORRRORRRORRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRROOROORRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRORRRRRROORRRRRORRRRORRRORRORRRORRRROROORORRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRROOORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRORRORRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRORRORRRRRRRRRRORRORORRRRRORRORRRRRRRRRRRRRRORORRORRRRRRRRRRRRRORRRRRRRRRORRRRORRORRRRORRRRRORRRRRRRORRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRORORORRORRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRORORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRRORORORROORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRRRRRRRRORROORRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRORORROOORRRRRRRRRRORRROORRRORRROROORRRRRRRRRRRRRRRRORORORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORORRRRORORRRORRORRRRRRRRRORRRORRROORRRRRRRRRORORRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRROORRRRRRORRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRORRRORRRRRRRRRRORRRORROORRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRORRORRRRRRRROOORRRRRROORRRRORRRRRORORORRRRRRRRRRROOOORRRRRRRRRRRRRRORORRRRORRRRORROORRRRORRORRRRRORRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORORORRORRRRRRORRRROORRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRROOORRRRORRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRROROORRROORORROORRORROORRORRRORROORRRRRRRORRORORORRRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRRORRRRORRRRRRORRORRRRRRORRRRORORRRORROORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRORRORRRORRRRRORRRRRRORRRRRRRRROORORRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRORORRRRRRRRRRORROORRRRRRORRRRORRRORRRORRRORRRORRRRRRRROORRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRORRRRRRORRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRORRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRORROORRRROORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRROROROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRORORRRRRRRORRRRRRRRRORRRORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRROORRRRRORRRRRRRORRORRRRRRRRROORRRRRRRRRRORRRORRRORRRRORORRRRRRORRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRROROROORROORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRORRRORRRRRORRRORRORRRRORRRRRRRORRRRRRRORRORRRRRORRRRRRORRRORRORRORRRRORRRRRRORRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRORORRRRRRORRORRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRORORRRRRRRRORRRRRRRRORRRRRRRRRORRORRRROORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORROOORRRRRRRORORRRRRORRRRRRRRORRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRORRRORRORORRRRRRRRRORRRRRRRRRRRRRORRRORRORORRRROORRRRRRRRRORORRRROORRRORRRRRRRRRRORRRRRRRRRRORRRRRRRROORRRRORRRRRRRRRRRRRRORORRRRRRORRORRROORRRRRRRRRRRORRRRRRRRRORRRRRORRRRORORRRRRRRRRRRRRORRORORRRRORRRRRRORRRRRRRRRRORRRRRRROORORRRORROORRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRORRRRORRRRORRRRRRORRRRRROROOORRORRORORRORRRRRRRRORRRRRRRORRORRRRRRRORRRRORRRRRRORRRRRRRORORRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRROORORRRRRRROORRRRRRRRRORRORROORRRRRORRRROORORRRRORRRRRRRRORRRRRORRORRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRORORRRORRRRRRRRRRRORRRORRRRORRRRORORRRRRRRRRRRRRRORRORRRRRRRRRRRORORRRRRRRORRORRORROORRRRORRORRRRRRRRRORRRRRRRORRRRRORRRRRRRROORRRROORRRRRORRORRRORRRRORRRRRRRRRRORRRRRRRROORRRRORRRRRRRRRRRRRORRRRROOORRRRRORRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRORRRRORRRORRRORRRRROORRRRRRRORORORRRRRRRROORORRRORRRRORRRRRRRORRRRRRRRRRRORORRRRRRRORRRRORRRRRRRORRRRRRORRRRRORRRRROOORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRORRRRRRROOORRRRRRRRRRROORORRRRRROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRROORRRRRRORRRRORRROORRRRRRRRRRRRRORRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORORORORRRRRRORORORRRORRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRORRORORORRRRRRORRRORRRRORORRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRROROORRRORROOOOROROORRRRRRORRRRORRRRORRRRORORRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORROOORRRRRRRRRRRRRRORRRRRRRRROORRORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORORRRORORORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRORRORRORRRRRORRRRRRRROORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORROORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRROORROORRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRORRORRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROORORRRRORRRRRORRRRROORRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRORRRORRRRRRRORRRORRROOORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRROORORRRRORRRRRRRRRRRRORRRORRRORRRORORRORORRRROORORORRRRRROOORRRRRRRRRRRRRRROOORORRRRRORRRRRRORRRRRRRRRORRORRRORRRRRRORRRRRRRRRRRRORORRRORRRRRORRRRRRORRRROORRRRRRORRORRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORORORRRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORRORRROOORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRORORRRRRRRRRRRORROROORRRRRRROROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRROORRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRORORRORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRORORROORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORROROORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRORORRRRRRRORRORRRRRORRRORRROORRORRORORRRORRORRRORRRORRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRORORORORRRRRRRRORRRRRRRRRRRRORRRORRRRRRRORRRRRORRRRRRRRRRRORRROORRRRRRRRRORRRRRORRRRRORORRRRRORORRRRRORRRRRRRRRRRORROORRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORORRRRRRORRRRRRRROORRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRROORRORRRORRRORRRRRORRRRORRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRROROORRRRORORRRRRRRRRRRRRORRRROORRRRRRRORRRRRRRORORRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRORRRRRORRORORRRORRRRRRRRRRRRORORRRRRROROORRRRORORRRRRRRRRRRRRRRORRRORRRRORORRRRRRRRRRRRRORORRRORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRORRRRORRORRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORROORRRRRRRRORRORRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRRRRRRRRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRORRORRRRRRRRRORORORRRROORRRRRORRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRROORORRORRRRRRRRRRRRORORRORORRRROORRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRORRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORORRRRRRRORRRRRRRRROORRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRRRORRRRRRRRRRRORRRRRORRORORRORRRRRRRRRRRRORORORORRRRRORRORRRRORRRRRRRRRRRROORRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRORRRRORRROORROORRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRORRRRRRRRROOORRRRRRORRORRRRRRRORRRRRRRRRORRORRRRRRRRRRORORRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRRORRRRRRRROORORRRRRRRRRRRRRRRRROORRRRRRRRRROOOORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRORRORRRORRRRRRORRROORROORRRORRRRORRRRRRRRRRRRRRRRRORROORRRRRORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROROORORRRORRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRROORRRRRRRORROORRRRROORRRROORRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRROORRRRRORRRRRRRRORRRRORRRROOORRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRORRRROORRORRRORRRORRRORRRRRRORRORRRORRRRRORRORRRRRRORRRORRROORORRRORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRORRORRRORRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRROORRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRROROOORRRRRORRRRRRORORRORRRRRRRRORRROORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRORRRORRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRORRROORROORRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORORRRROOROORRRRRROORRORRRRRRRRRRRRRORRORRRRRORORRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORORORRORRRRRRRRRRRRROORRRRRORRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRORRRORRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRROORROORRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRORORRRRRORRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRROROORRRORRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRROORRRRRRRROORRORORRRRROORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRROORRRRRORRRRRRRORRORRRRRORRRRRRRRRRRORORRRRRORRRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORORRRRRRRORRRRRRRRRRRRRRRRRRROROOORRRORRRRRRRRORORRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRORORORRRRRROOORORRRRRRRRORRRRRRRRRRORRRRRRRRRRROROORORRORRRRRRRRRRRRRRRRRRRRROOROOOOORRRRRRRORRRRRRRORRRRRRRRRORRRRORORRRORRRORRRRRRRRROORRRRRORRRRRRORORRRRRROORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRROORORRRRRRRRRRRORRRRRRORRRORROORORRRROORRORRRRRRORRRORRRORRRRRORRRORRORRRRRRRORRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRROORRRORORRRRRRRRORRRRRRRRORORRRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRORRORRORRRORORRRRRORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORORRRRRRRRRRRRRORRRRRRORRRORORRRORRRRRRRRORRRRRRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRORRROORRRORRRRRORRRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRROORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRROORRRRROORRRRORRORORRRRRRRRORRRRRRRORRRRRORRRRRRRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRORRORRRORRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRROORRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRRRRORRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRORRRRORRRRRORRORRRRRRRRRRRRRROOORRRRRRRRORRRRRRORRRRRORRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORORRRRRRRORRRRRRRRRRRORRRORRRORORRRRRRRRRORRROORRRRRRRRRROOOOOORROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORORRRRRORORRRRRORRRRRRRRRRRRRRRRRORRRRROOORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRRRROROROORRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRORRRRRRRORRORORORRRRRRORORRRRORRRORROORRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRORRORRRROROORRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRROORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRORRORRRRRORRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRORRRRRRRRRRRRRORRRRORRRRRRRRRORORRRRRRRRORRRRRORRORORRRRRRRRRRRRORRRRRRRRORRROORORRRORRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRORRRRRORRRORRRRRRROORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRROORRRORRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRROORRRROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRORRORRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRORRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRORRORRRRRORRRRRRRRRORRRRRRORRRORRORORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRROORRORRRRRRRORORRRRRRRRRRRRRORRRRRRRRORORRRROOORORRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORRRRRRRORRRRRRORROORORRORRRORRRRRRRRRORRRROROOORRRORRRRRORRRROORRRRRRRRRRRRRRORRRRRRROORRRORRRRRORRRRRRRRRRORRROOORRORRRRRRRRRRORRRRRRORRRRRRORRORRRRRRRRROROOORORRRRRRRORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORORRRROORRRORRRRRRRORRRRRRRRORRRRORRRRRRRRRROORRRRRORRORRRRRRORRROORRRRRRRRRRRRRRRRORORRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRROORORRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRORRRRORRRRRRRRORRORRRORORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRORRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRORRRORRRRRRROORRRRRRRRRORRRRORRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRORORORRRRRRRRRRORRRRRORRRORRORRRRROORRRORRRRRRRRRRRRRRRRRRORRRRRORRROORRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRORRRORROOROOORRORRRRORRROORRRRRRRRRORRRRORRRRRRRRROORRRORRRRRRORRRRRROORRRRRRRRRRRRRRRRORRRRORORRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRORORORRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRROORRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRORRORRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRORORRRRRORRRRRRRRRRRRRRROOROORRORRRRRRRRRRRRORRRORORRORRRRRRRRRORRRRRRRRORRORRRRRRRROORRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRORRRRORRRRROORRRRRRRRRRRRORRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRORROORRORORORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRORRRORRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRROOORRRRORORRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRORRRORRRRRRROORRRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRROORROORRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRRRRORORORORRRRRROORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRORORORRRRRRRRRRROOORRRORROORRRRRRRRRRRORRRRORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRRORRRRRRRRRORORRRRRRORRRORRRORRRRRRRRRRRRRRRRRORRORRRRRORRRRRRORRRRROORRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRORRORRRRRRRRRRORRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRORORORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRROROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRROORRRRRROORRRRRORRRRRRORRORRRRRRRORRRORORORRRRORRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRORRORORORRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRORRORORRRORRRORRRORRRRRORRORORRRORRRRRRRRRRRRRRORRRRRORRRRRRRORORRRRRRRRRORRRRRRRRRRRRRORRROROORORRRRORRRRRORORRRORRRRRRRRRRRORRRRRRRROORRRRRORRORORRRRROORRRORORRRRRORRRRRRRRRRRROORORROOORRRRRORRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRORRRRRRRORRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRROORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORRORROROORRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRORRRRRRORRORRRRORRRROORORORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRRRORRORORORRRORRRORRRRRORRRRRROOOORORORRORRRRORORRORRRRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORROORRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRORRORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRROORORRRRORRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRORRRRORRROOOORRRRRRRRRRRRRRRORORRRRRRRRRRRRORRROORRRORRRRRORRORRRORORRRRRRRRRRRRORRORRRRORRRORRRRRRRORRRRORRRORORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRROORRORRRORRRRRRRORORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRROORRORRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORRRRRRORRORRRRORRRRRRORORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRORRRRRRRORORRRRRRRRORORRORORORORRRRRRORRORRRRRRRRRRRROOOORRORRRORORRORRORORRRRRRRORRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRROORRRRRORROORRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRRRRRRROORRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRORRRORORRRRORRRORRRRRRORORRRORRORRRRRRRORRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRORORORRRRRRRRRRORRRRORRRRRRRROOOROROROORRRRRRORORRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORORRRRROORRRORRRRRORRRRRRRORRRORRRRRRRRRRRRORORRRRRRRRROORORRORRROORRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRROOROROORRRORRRORORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRROORRORRORRRRRRRRORRRRRRRRRRRORRRORRORRORRRORRORRRROORRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORORRRRRRRORRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROOORRRRRRRRRROOOORRRRRRRRRRRORRRRORORRORRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRROORORRORRRRRRRRRRRRRRRRRRRORORORRRRRRRRRORRRORRRRRORORRRRRRORRRRRRRRRRRRRRRROORRRRRRROORRRRRORRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRROORORRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRORRRROORRRRRRRORRRRRRRORRRRRORROORRRRRRRRRRRRRRRORRRRRROOORRORRORRRRORRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRORRRORRRRORRRRRRORRORRORRROORROORRORRRRRRORRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRROORRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRORORRRRRRRORRRRRORRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRORRRORORRORRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRORRRRRRRORRRRRORRRORRROROORRRRRRRORROORRRRROORRRORRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRORORRORRRORROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORORRRORRRRORRRRRRRRRRRRRORRRRORROOROORRRRROORRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRROROORORORRRRRRRRRORRRRRORRRRORRORRORRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRRORRRRRRRRRRORRRRROROOROORRRRRRRRORRRROORRRORRORRRRRRRORORRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORORORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRORRRRRRORRROORRRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRROORORORRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRORRRRRRRRRRORORROROOORRRORRRRRRRORRRRRRRRORRORRORRORRRRRRROORRRROOOOORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRORRRORRRRORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRORORRRRRORRORRRRRRRORROORRRORRRRRRRRORRROORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRORORRRORRRRORRRRORRRRRORRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRORRRORRROORROOORRORRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRROORRORRRORRRRRRRRRRROORRRRRRORORRROOORORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRRRRORRROORRRRRRRRRRORRORRORRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRORRORRRRORRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRORRRRRORRORRRRORRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRROORRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROROORRORRRRRRRRRRRRRRRRORRRRROORRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRROROORRRRRORRRORRRRRRRRRORRRRORROORRRRRRORRRRRRRORORRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRROORRRORRRRRRRRRRRRRRORRORROORRORRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRORORRRORORORRORRRRRORRRRORRRORRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRORRRORORRRRORORRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRORORRRRRRRROORROORRORRRRRRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRRRROORRRRORRRRRRORRRRRORRORRRRRRRRRRRRORORORORRRRRRRRRRRRORRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRORRRRRRRRORRRORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRROORRRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRORRRRROORORRRRRRRRORORRRRRRRRRRRRRORRORRRRRRRRRRRRRROORORRRRRORORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRORRRRORRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRORRRRRRRROOORRRRRORROOOOORRRRRRRRRRRRRRRORRRORRRORRORORRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRORRRRRORRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRROORRRRRRRRRRRRRRORRRRRRRORORRRRRRRRORRRORRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRORORRRRORORRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRORORRRRRRORRORORRORRRRRRRORROOORRRRRRRRRORROROROORRRRRRORRRRRRRRRRRRRORRRRRROORORRRRRRRRRRORRRORRORORRRORRRRRRRRRRRRRRRRORRRRRORRRRRROORRRRRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRROORRORRRRORRROORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORORRRRRRROOOORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORORRORRRRORORRORRRRRRORRRRRRRRRRRRORORRRORORRORRRRRRRRRROORRRORORRORORRRRRRORRRRRRRROORORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRROORRRRRRRRROROORRRRORORRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRROORRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRRRRRRRORORORRRRRRRRRRRRROORRRRRORRORRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRORRRRRRRORRORRRRRRRRORORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRORORROROORRORRRRRORRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRORRRORRRRRRRRORRRRRRRROORRRRRRRRORRRRRROOORRRORRRORRRORRRRRORORRRRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRORORRRRRRORRRRROROORRRORRRRRRRRRRRRRRRRORORRRORRRRRRRRRRORRRRRRRRRRORRRRRRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRROOORRRRORORRRORRORRORORRRRORRRRRRRORORRRORRRRRRORORRORRRRRRROORRROORRRRRORORRRRRRRRRRRRRRORRRRRORRRRORROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRORORRRORRORRRRRRORORRRORRRRRORRRRRORRORRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRORRORRRRORRRRORRRRRROROORRRRRRORRRRRRRRRRORORRRRRORRRRRRRRRORRRRROORRRORRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRROOROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROOOORRORRRORORRRORRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRORRRORRRORRRRORORORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRROORROORRRRROORRORRRRORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRORRRORRRRRRORRRRRRRRRRRORORRRRRRRORRROORRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORRRRRRRORRRRRRRORRORORRRRRORRRRRORORRRRRRORRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRROORRORRRORRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORORRORRRROORRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRORORRRRRRRRRORRRRRRRORRRROORRRRRRRRRRRRRRROROORRRRRORORRRRORORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRROORORORRRRRRRROORRRROROOORRRRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRORRRRRRRRRRRORRORRORORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORORROORRRRORORRRRRORRRRORRRRRROORRRRORRRRRRRORRORRORORRRRRRORRRORRRROORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRORRRRRRORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRORRORRRRRRRRRRRRRRROORRRRRRRRROROORRRRRRRRRORRORRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRORRRORORRRRRRRRORRRRRRRRRRRRRRRROORRORRRRRRRRORRRRRRORRRRRRRRRRRRRORORRRORORRRRRRRRRRORRORRRRRRRRRRORRRRRRRRORRRORORORRRRRRORRRRRRRRORRRRRRRORRORROORRRORRRRRROORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRROORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRROORROOORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORORORROORRRRRRRRRRRRRRRRRRRORRRORRORRRRORRRRRROORRRRRRORRRRROORRRRORRRRRRORRRRRRRRORRORRRORRORRRRRRRRRRRRORRRROROORRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRORRROOOORRRRRRROORRRRRRRRORRRRRRRRRORRORORRORRORRRRRRRRRRORORRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRORORRORORRRORRRORRRRRRRRRRORROORRRROROROORORRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRORORROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORORRRRRRORORRORRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRORRRRORRRRROORRRRORRRRRORORRRRRRORRRORRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRRRRRRRROORRORRRORROORRRRORRRRRRRORRROOROORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRORORRRRRRRORRORRRRRORORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRORORRRRRRRRORRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRORRRRROROORRRRRRRORRRORRRRORROOORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROOOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROORRRORRRRROORRRRROROROORRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORRRRRORRRRRRRROORORRRRRRRRRRRRORRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRROORRRRORRRORRRRRORRRRORRRRRRRORRORROORRRRRRRRRORRROORRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRRROOORRRRRRRRRRRRRRRRORORRRRRRRORRORORRORRRRRRROROROORRRRRORRRRRRRORRRRRRRRRROOORRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRORRRRORROORORORRORRORRRRRORRORRRRRRRRRRRRRROORRRRRRRORRORRRRRRORORRRRRRRRRRORRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORRORRORORRRRRRRRORRRRROORRRORORRRRRRRORORRRORRRRORRRORRRORRRRRROORRORRRRRORRRRRRORRRRORRRRRORRRRROOORROROORRRRRRRRRRORRRRORORRORRRRRRRRRRRORRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRORRRORORRRROORRRRORRRRRRRORRRROROORRORORRRRRRRORRRRORRRRRRRRRORROOORRORRRRRRRRRRRRRRRRRRRRRRRROOROROORORRRRRORORRRORRRORRRRRROROORORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRORRRROOORRRRRRRRORORRRRRORRRRRRRROORRRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRORORROOORRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRROORRORRRRRRORRRRRRROOORRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRRROORRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRORRRORRRRRRRRRRRORRORRRROOORRRRRORORRORRRRRRRRRRRRRRRRRORRORRRRRRORRORRORRRORRROOORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRORORRRRRRRRRRRRORORORRRRRRORRRRRRRRRORRRRRRRRRRRRRRROORRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRRRORRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRORORRRRORRRRORROORRORRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRORRRRRRROORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRROORRRORRRRRRRORRRRRORRRRRRORRRRRROROORRRRRRRORRRRRRORRRRORRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRROORORRRRRORRRRRRRRRROORRRORRRRRORRRRRRRRRRORRRORRORRORRRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRORRRRRORRRRRRRORRORRORRRRRRRRRORROORRORRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRORRRRRRORRRRROORRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORORRRRRORORRRRRRORRRRRRORRRRRRRRRRORRRRRRRRROORORORRRRRRRROORRRRORRRORRRRRRORRRRRRORORRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRROORRRRRRRRRORRRRRRRORORORRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRORRORRORRRRRRRRRRORRRRRRORRRRRRRRROROORRRORRRRRORRROORRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORROORRRRRRORRRORORRRRRRRRRRORROORORRRRRRRROORRRRRRRROORRRRRRRRRROORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRORRORRRROOROORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRROOOORRRRRRRROOROORRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRROORRRRRRRRRRORORRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRORRORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRORRRRRRRRORRRRORRORRRRROORRORRRRRRRRRORORORRRRORRORRORRORRRRRRRORRRRRRRORRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRORROORRRRORRROORORRRORRRRRORRRRRRRRRRRORRRRRRRRRRRORRORRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRORRRRRRORRRRRORRRRRRRRORROORRRRRRRRRRRRROORRRRRORROORRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROOORROORRRORRRRRORORRORORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRORRRRROORRRRORRRRRRRRRROORRRORRORRRRRRRRORRRRRRRRRRRRRRROOROORRRORRRORRRRORRRORORRRRRORROORORRRRRRRRORRRRRRRORRRRRRORRRRRORRRROORRRRRRRORRRRRRRRROORRRRRORRRRRRRRRORORRRRRRRRRORRORRRORRRRORRRRRRRORRRRRRRRORRROORRORRRORRRRRORORRRRRRRRRRRRRRRRROORORRRRRORRRRRRRRRORRROORRRRRRRRRRORRROROORRRRORRRRRRORRORRRORROORRRORRRROROORRRORRRRRRRORRRRRRRRRRRRROORRRORRRRRRRRORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRROOORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRORORRROOORRORRRRRRRROOROOORRRRRRRRRRRORORROOORRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORROORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRORRRORRRRRRRRRORORROORROORRRRRRRRRRRORORRRRRRRRORORRORRRROORRRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRORRRRRRRROORRRORRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRORRRRRORRRRRRRRRORRRRORRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORROROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRROORRORRRRORRRORORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRRRRRORRRRORRRRRRRROORRRROORRRRRRRRRRORRRRRRRORRORRRRRRRRRRROORRRRRRRRRORRRRRRRRRORRRORRRORRRRRRRROORRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRORRRRRRRRRRRORORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRROOOORRORRRRRRRRRORRRRORRRRORORRRORRRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRORRRORORRRRRRRRRRRRORRRRRRRRRORRRRORRRRORRORRROORRRORRORRRRRRRORRORRRORRRRRRRRRRORRRRRRRORRRRRORRRRORRORRRRORRRRORRRRRRRRRRRRRRORROORRRRORORRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRORRROORRRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRROROROROORRRRRRORRRRRRRRORRRORRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRROOORRRRRRORORORRRORRRRRRRRRRORRRORORRRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRRROORRORRORRRRROORRRORORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRORRRRRRRRRRRRROORRRORORRRRRRRRRRRORRORRRRRRRORRRRRORRRRRRROOORRRRRRRRRRORRRRRRRRROROOOORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRORRORRRRORRRORRORORRRORRRORORRORRRRORRRRRRRRRRRRRRRORRRRRORORRRRORRRORRRROOORORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRORRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRORRRROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRORRRRRRRRRORRORRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRROORORRRORRRRRRRRRRRORRRROORRRRRRORRRRORORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRORRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRORRRORRRRRRRRORRRRORRRRRRRRRORORRRRRRORORRRRRRRRRRRRORORORRRRRORORRRRRRRRRORRRRRRRRRRORRORRRRRRRRORORRRRRRRRRORRRRRRRRORORRRRROORRORRRRRRRRRRRRRRORRRRRRRROORRORRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRORRRRROOOORRRORORRRRRRRRRRRRRRRRRRORRORRRRROROOORORRRORRRORROORORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRROOORRORRRRRRRORRRORRORORRRORRRRROROORRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRORRRORRORROORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRROORRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRORRRRORRRRRRRRRRRRORRORORRRORRRRORORRORRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRROOOOORRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRORRORRRRRRRRRRRROORRRRRRRRORRRRRRRROORORRRRRRRRRRRROORRRROORRRRRRRRRRRRRRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRORORRRORRORRRRRRROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRROORRRRORRORRRRRRRRORRRRRRRRORRROORRRRRRRRRRRRORRRROORRROORRROORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORRORRRRRRRRORRRRRRRRRRORRROOORORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRORRORORRRRRRRRORORRRRRRRRORRRORRRRRRRRORRRORRRORRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRORRRRRROORROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRORRRRRRRRROOORRRRRRRORRROORRRRRROORRORRRRRRRRRRRRORRRRORRRROORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRORORRRRRRRORRRORORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRRROORORRORRRORRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRORORORORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRROORORRRRRORRORRRRRORRRRRRORRRORRRRRRRRORRRRRRORORRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRROORRRRRRRRRORRRRRRRRORRROORRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRORORRRRRRRRRRRRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRORRRRRRRRRRRRRORRORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRORRRRRRRRORRORRRRRORRORRRRRRRRRRRRRORRORORRORRRRROROORRRRRRRRORRRRRRRRRRRORORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRORORRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRROORRRRRORRORRORRORRRRRRRRRORRRRRRRROROROORRORRRRRORORRRORRRRRRRRRRRRRORRRRRRRRORRRORRRRRORORRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRORRRRRORORRRORRORRRRRRRRRRRRORRRRORROORORROOROORRRRRRROOROROORRRRRRRRRRRRRORRRRRRRROOROORRORRRRROORRRRRRRORRROORRRRRRRRRRRORRRORRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRORRRRRORRRRRROOORRRRRRRRORRRRRORRRRRRRORRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRRORROORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRROORORRORRRRRRRRORRRRRRRRRRRROORROORRRRRRROOORRRRRRRORRRRRRRRRORRORRRRRRORRRRRRRRORROORRROORRRORRRRRRRRRORORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORORORRRRRRRORRRRRRRRRRRRRRRORRRRORORRRRORROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRRRORRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRROORRORRORRORRRRRRORRRRRORRRRORORRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRORORRRRRRORRRRRRORRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRROORRRRRRORRRRRRORRRRRORORRRRRRRRORORROORRRRORRRRRRRRRRRRROORRRORRRRORORRRORRRRORORRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRRORRRRRRORRORRRRRRRRORRRRRRRROROORRRRRRROORRRRRROORRRRRRORORORROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRORORRRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRRRRRRRORRRROORRRRORRROROOORRRRRORRRRRRROORORRRRRRRRRRORRORROROORRRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRORORROORRRRRRRORRRRROOROROROOORORRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRROORRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRROROOORRRRRRRRRRRRRRRRRRORRRRRRROORORROORORORRRROORRRRORRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRROOORRRRRORRRRRRRRRRRRORRRRRRORRRRRRORORRRRRRRRRRRRRROORRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRORRRORRRRRRRRRRRRORORRRRRRORORROOORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRORRORORRRRRRRRRRRRRORRRRRRRRROORRRRRRRRORRRRRRRRRRORRRRRORRORRRRRORRRROROORRRRRRRORROROOORRRRRRORRORRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRROORRRRRORRRORORRORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRORORRRRRRRRRRRRORRRRORRRRRRRRRROORRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRORORRRORRORRRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRORRRORORRORRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRROORRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRORORRROORRRRORRORRORRORRRRRRRORRRRRRRRRORRRRRRRRRRRORRRORRRORRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRRRRORRORORRRRRRRRRRRORRRRRRRORORRRORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRRRRRRRRORORRRRRORRRORRRORRRRRRRRRRRRRORRRRORRRRRROROORORRRRRORRORRRRORRRORRRRRRORRROORRRORRORRRRRRRRROORRRRORRRRRRRORRROORRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRORORRRRRRRRRRRRRRORRORROORRRRRORRRRRRROORRRRRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRORRORRORRRRRORRRORRRRRRRRRRRRRRRRRRRRROOORRRRRORRRRRORRRRRRRRRORROORRORRRRORRORORRRRRRRRORRRRRRORORRRRORRORORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRRRRORRRRRROOORRRORRORRORRRRRRRRRRRRRRROOROORORRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORROORRRRORRRRRRRRORRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRORRROORORRRRORRRRRRRORRRRRRRORRRRORRORRRORRRRRRRRRRRRRRROORRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRROORRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRORRRROROROORRRRRRORRRRRRRRRRRRRRORRRORRRRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRROORRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRORRRRRORRRRRRRRRRRRRRROORRRORROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRROORRRRRRRRRRROORRRORRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRORRORRRORRRRRRRORORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRORROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRROORRRRRRRRRORRRRORRRORRROORRRORRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRROOORORRRRORRRORRRRRRRORORORROORORRORRRRRRRRRRRRRROORORRRRRRRRRRORRRROOORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRRRORRRROORRRRROORRRRRRRRRORORRRRRRRRRRRRRORRRRRRORRRRORRRORORRRORRRORORRORRRRRRRORORRRRRRRRRRRRRRRRRRRROORRRRRORORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRROORRROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRORRRRRRRRRRORRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRORRORRRRORRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRORRRRRORRRRROORRORRRROORRRRRRRRRRRORRORRRRRRRRRRRRORRORRROROORRRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRROORRROORRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORORRRORRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORORRRRRRRRORRRRRRORRRORRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRORRORRRORRRRRRRRRRRRRRORRRRRRRRRRRROORORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORRRRRORORORORRRRRRRORRRORRRRORRORRRRRRRRRORRRRRRRRORORRRRRRRRRRRORORRRRRRRRRRRRORRRROORRRRRORRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRORORORRRRRRRROORORRRORRRRRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORORRRRRORRRRRRORRRRROORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRORRRRRRORRRRRRRRORORRRRRORRRRRRRORRRRRRORRRRRRRRORRRRRRRRRROORRRORRRROORRRRRRRRRRRRRRRRRORRORRRRRORRORORRORRRRRRORRRORRORRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRORORRORRRRRRRRRRRRRRRRRORRRRORRRRRRORRROORRRRRORORORRRRRRRRRRRORRORRORRORRRRRRRRRRRRRRORRRRRROORRRORORRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRROORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROORORRRROOORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRROROORRRROROORRROORRRORRORRORROORRRRRRRROORORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRROORRRRRRRRORRORRRORRRRRRRRRRROORRRRRRRRRORORRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRORRRRRRRROOORRRRRRRRRRRRRRRORRRRORRRRRRRRORRRORRRORORRORRRRRRRRRRRRRRROORRRRRORRRRRORRRRRORRORRORRRRRRRORORRRRRRRORORRORRORRRRRRRRRRRRRRRRROORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRROROORRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORORRRRRRRRORRRORORRRRRRORROORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRORRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORORORRRRRORRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRROROOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRORRRRRRROORRRRRRRRRRRRRRRRRROROORRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRROORRRRRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRORRORRRRORRRORRRRRRRRRRORORORRORRRRRRRRRRRRORRRRRRRORRRRRRROORRRRORRRRORRRRRRRRORRRRRRRRRRRRROOORORRRORRRRRORRORRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRROORRRORRRRRORRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORORRRRRRRRRRORRROORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRRORRRRORRRRRRRRRRRRRRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORRRORROORRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRORROORORRORRRRRRRRORRRORRRRRRRRRRRORRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRROORRRROROROORRRRORRRRRRORRRRRRORRRORRRRRRRRRRORRRRRRRORRORORRRRRRRORORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRORRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRORRRRORRRRORORRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRORROORRRRRRRRORRRRRRRRRRRROROORORRRORRRORRRRRRRRRRRORRRRRORROOOORRORRROROORORRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORORRORRRRRORRRRORRRRORRRORRRRRRORRRRRORRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRROORORRORRRRRRRRORRRRORRRRORRRORORRORRRRRRRRRORRROORORRRORRRRORRRRRORORRRRRRRRRRRRORRRRRORRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRROORORRRRRRRRRORRRRRRRRORRRRRRORRRRORORRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRORRORRORRRRRRRRRRRRRRRRRRORRRRROOROROORRRORRRRRRRRROOORRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRORORRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRORRORRRORRRORRRRRRRRRRRRRRRRORRORRRRORRROOORRRRRORRRRORRORRORROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRROOOORRRORRRRRRRORRRRRRRRRRRRRORORRORRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRORRRRRRRRRRRRORORROORRRRROORRRRRRRRRRRRRRRRRROORRORORRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRORORROOORRRRRORRRRRRRRRRRRRORRRRRORRROORRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRORRRRRORRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRROORRROORRRRRRORRRRRRRRRORORRRRRORRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRROORRRRRRRORORORRRRORRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORORRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRROORORRRROORORRRORRRRRRORRORRRRRRRRRRRRRRROROORORROROORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRROOORRRROROORRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRROORRRRORRRRORRRRRORRRRRRRORORRRRORRRRORRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORORRRRRRRORORRRORRRRRROORRORRRRRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRRORRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRORRRRRORRRRRRRRRRORORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRROORRRRRRRRRRORROORRRRORORRORRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRORROORORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORRRRRRRORRRRORRRRRRRRRORRRRORORRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRROORRORRRRRORRRRRROOOORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRRRRRRRRROROROROOORRRRRRRORRRRRRRRRRRRORRRRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRROORORRRORRRRRRRRRRRRORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRORRRRRORRORRRRRRRRORRRRORRORRRRRORORROORRRRRRORRRRRRRROROOORRRRRRRRRRRRRRORRORRORRORRORRRRRRRRRRRORRRRORORROORRRRRRRRRROORRRRRRRRRORRORRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRORRRRRRRRRRRRRRROOORORRROORROORORRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRORRRORRRRRRRORRRRROROROORRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRORORRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRORRRRORRORRRRRRORRRRRORRORRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRROORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRORRRROOORRRORRRRRRRRRORORRORRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRORORRRRRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRORORRRRRORRRRRRRRRRRRRROOORRRRRRRRROORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRORRORRRROORRRORORRRRRRRRRRROORRRORRRRRRRRRRRRRRRRORORRRRORROORRORRRRRRRRRORRRRORRORORORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRORRROORRRRRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRRRRORRRROORRRRRRORRRRRRRRRRORRRORRRRRRRRORORORRRRORRROROROORRRRRROORRRRRRRRRRORRRROOORRRRRRORORROOOOORRRRROORRRRRRRRRRRRRRORRRORRRRRRRRORROORRRRRRRRORRRRRRRRRRRRRRORROORRORORRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRRORRRRRRROOORRRRORRRRRRRRRRRRRRRRRRORORRRRORORRORRORRRRRRORORRRRORRRRRRRRRRRRRRRORRRRRROROORRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRORRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORORRRRORRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRROOOORRRROORRRRRRRRRRRRORRRRRRRORRRRORRRORORRRRRRRRRORROORORRRRRRRRRRORRRRRORRROORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRROORORRRRRRRORORRRRRRRRRRRRRRRRRRRORRRORORRRRRRORRRRORRRORRRRRROORORROORRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORORRRORRRRRORRRRRRRRORRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRRORRORORRORRROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRROOORRRRRRRRRRRORRRRORRORORRRROORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRORRRRRRRRRRRRRORRROOROORRROOORRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRORRRORRRRRRORRRORORRRRRRORRRRORRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRROROOORRRRORRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRORRRRRRRRROOROORROORRORRRORRRRRRRROORRRRRRRRRRRRRRRRROORRROORRRRRRORRRRORRRRROORRRRRRRORRRRRORORRORRRRRRRRORRRRRORRORORRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRORRRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRROORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRORRRROORRRRRRRROROORRRORORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRROORRRRROROORRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORORORRRRRRRRRRRRRROOORRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRROORRRROOOORRRRRRRRRRRRRRORRRROORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRORORORRRRROORRROORRRRRRRRRRORRRRRORRRRRORRRRRORRORRRRRRRRRRRRROORRRRRRRRRRORRORRRROORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRROROORRRORORRRRRRORROROORRRORRRRRRRRRROROOORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRORRORROORRRRRRRRRRRRORROOORRRRRRRRRORROORRRRRRROORRRORRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRORROORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRROOORORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRROROORORRORRRRRRRRORRRRRRRRRRRRORRORRORRRRRRRRRRRRROORRRRRORRRRRRRORRRRRRRRRRORORRRRRRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRORRORRRRORRRRRRRRRORORRRRORORRRRRRRRRRRRRRRRRORORRRRRORRRRRRORRRRRORRRRRRORORRRRRRRRRRRRORRORORRRRRRRORORRORRRRRRORORRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRORRRRRRRRRORRRRRRRRORRRORRRRRRRRRORRORORRRRRRRRRRRRRORORORORORRRRRRRRORRRRRRRRRORRORRRORRRRRRRRRRRRORRRORRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRROORRRRRRRRRROOORRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRORORRORRRORRRRRORRRORRRRRRORRRORRORRRRRORRORRRRRORRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRORRRRRRRRROORRRRRRORORRRRRRRRRORRRRRRRRRRRORRROORRRORRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRRORORRORRORRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRORORRRRROORRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRROORRRRRRORRRRRRRRORRRORRRRRRRRORRRRORRORRRORRORRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRROORORRRRRORRORRRRORRRRROORRRRRRRRRORRRORRRRORRRORRRRRRRRRRRRRRRRORORRRRRRORRRRRRRORRORRRRRRORRRRRRRRRRRRRORRRRRORROOORORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRROOROROOROORRRRORRORORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRRROORRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRROORRRORRRRRRRROROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRORRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRORRORRRRORRRRRRRRROORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRORRRRRRRRRRORRORRRRRRRRORRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRROORRRRROOORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRROOOORRRRRRRRORRRRORORRORRRRRORRRRORRRRRRRRORRRRORORRORRRRRRRRRRRROROOORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRROOORORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORORRRORRORRRRRROORRORRRRRRRRRRRRRORORRORRRRORORRRRRRRRROORORRRRRRRRRRORRROOORRRORRRRORRRORRRRRRRRRRRRORRORRRRRRRRORORORRORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRORRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRORORRROORRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORORRRRRRORRRRRORRRRRORRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRRRORRORROROORRRRRRRRRROOORRRRORRRRRRORRRRRRRROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRORRROORRRORRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRROORRORRRRRRRRRRRRRRRRRRRRORRORRORORRRRORRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRORRRRRRRORRRRRORRRRORRORRORRRRRRRRORORRORRRORORRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRORRRRRRRRORRRRROORRORRRRRRRROORRRRRRRRORRRRRRRRRRRROOOORRORRORRRRRRORRROORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRRRORRORRRRRRRRRRORROORRRRRRRRRORROORORRRRRRRRRRORRRRRORRRORRRRRRRRRRORORRRRORRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRROORORORORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRORRRRRORRRRRRRRRRRRORORORRORRRRRRORRRRRRRRRORRRORRORRRRRRORORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRROORRRORROORORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRORORORRRRRRRORRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORORRRRROORRRRRRRROORRRRORRRRRRRORRORRRRRRRRRRROORORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRORRRRORRRRRRRRRORRRRORRORRRORRRRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRRROROORRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORROORRRRORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORORRRRRRRRRORRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRROOORRRRORRRRRRRRROORRORRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRORRRRRRORRRRRRORRRORRORRORRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRORORRRRRRRRRRRRRROORRRRROORRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRORROORRRRRRRRORRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRORRORRRRRORRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRORRRROORRRRRRRRRRRRORORRRRROORRRRORRORRRRRROORRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROORRROORRRRRRORRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRORRRROORRRRRORRRRRORRROORRRRRRORRRRORRRRORRRORRRRRRORRORORRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRORRRRORRORRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRROORRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRORRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRORRORROROORRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRORRRRRRORRORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRORORRORRRORORRORRRRRORORRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRROOORRRORRRRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORORORRRRORRRRRRORRORRRRRORRRRRRORORRRRRRRRRRRRRROROORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRROOOORRRRRORRORORRROOROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRORORRORRRRORORRRRROROORRRRORORRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRROORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRORRORRRORRRORRORRRRRRRRORRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRORRORRRRRROOORRROOORRRRRRRRRORRORRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRRRRRROORRRRRRRRORRRRORRRRRORRRRRRROORRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRROORRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRORORRRRRORRROORRRRRRRORRRRRRRRRROORORRRRRRRORRORRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRORRORRRRRORRRRORRRORORRRRRORORRRRRRRRRRRRRRRRRRRORRORRRORRORRRROORRRRROORRRRRRRRORRROORRORRRRORRRRRRRRRRRRRRRORRRROOORRORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORROOORRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRRRORRRORORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRORRRROOROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORORRORRRRORRRRRORRRRRRRRRRRRRORRRRRRRRORRORRORROOORORRRRRRRORRORRRRRRRROORRORRRRRORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRORRORRRRRRRORRRRRRORORRRORORRORRRROORRRRRRRRRRRRRRRRROORRROORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRROORRORRRRRRRRORRRRRRRRRRORRROROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRORRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRROORRRRRRRRRRRRORORRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRORRRRORROROORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRORRRRORRRRRRORRRORRORRRRRRRRRRRRORRORRRROORRRRRRRRRRRROOOOORRRRRRRRORRRRRRRRORRRORRRRORRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORORORRRRRRORORRORRROORRORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRROORRORRRRRORRROORRORRRORRRRORRRRRRRRRRRORROROORRRRRRRRROROORROOORRRRORRRRORRRROORRRRRRRRRROROORORRRRORRRRRROORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRORRORRRRRRORORORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRORRRRRROOORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRORRORROORRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRROOOORRRRRORRRRRROORRRRRRRRRRRORRORORRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRROORRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORORRRRRROORRRRRRRRRRORORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRORRRRRORRRRORORRRORRORRRRRRRRRRRRRRRRRRRRORRORRROROORRRRRRRORRRRRRORRRRORRORRRORRRRORRRRRRRRRRROORROORRRRRRORORRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRORRRROORORRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRORRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRROROORRRORRRRRRRRRRRROORRRRRRRROORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORROORRORRRRRRRRRRRRRRRRORORRRRORRORORROORROORRRRRRRORORRRORRORRRORRRRRORRORRRRRRRORRORRRRRORORRORROORORRRRRRRRRORRRRRRORRRRRRRORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRROORRRRRRRRRRORRRRRORRRRRRRORRORRORRORRROOORORRRRRRRRRRRORRRRRORRORRROORORRORRROORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRORORORRRRRRRORROORRRRRRORRRRRRRORRRRRRRRRORRRORRRRORRRRRORROROORROORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRRRRRRRRRORORORRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRORRRRORRRRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORORORORRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRORRRROORRRRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRROORRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRORRRROORRRRRRRRORRRORRORRRRORRRRROORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRROORRRRRRROORRORRRRRRROOORRRRORRRRRRRORRRRRRRORRROORRORRRRRORRRRRRRRORRRRRRRRRRRRORRRRRORROORRRRRRRROORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRORRRRORRRORRORRRRRRRRORRORORRRRRRRROORRRORRRRRRRRRRRRORRRORRRRROROROORRRRRRRRRORRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRROORRRRRRRORORRRRRORRRORRRRRRRRRRRRRRORRRRRORRRRRORRORORRROOORRRORRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRROOORRRRRORRRRRRRRRRRRORRROROORROORRROOROORORRRRRORORRRORRRRRRRRRRRORRRRRRORRORRRRRRRRRORRRRRRRORRROROORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROOORRRRRRRORRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRORORRRRRORORORRRORRRRORRRROORRRORRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRROORORORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRROORRRRRORRRROROORORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRORRORRRORRORROORORRRORRORRRROROORRRRRRRRRRORRORORRRRRRROORRORORRORRRRRRORORRRORRRRRRRRRROORRRORRRRRRORORRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRORRRRRRRORRRORRORRROROORROORRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORORRRRRROORRRRRRRORRORRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRORRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRORORORRORRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRORRRRRRROOORRRORROORRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRRRRORRRROOORRRRRRROOORRRRRRRORRRRRRRRRRRRORRRORRRRRRRORRORRORRRRRRORORRRRRRRRRRRRRRRORRORRRORORRRRRRRRRRRRRRRORRORRORORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRORRRRRRORORRRRRRRRRROORRRRROORRRRORRRORORORORRORRRRRRRRRORRRRORORORRORRRRORRRRRRRORORRRRORORRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORORRROORRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRORORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRORRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRORRROORORRROORRRRORRRORRRRRRRRROORRRRRRRRRRROORRRRRORRRORRRRRRRRRRRRRRRRRRRRRROOORORRORRRRRRORRRRRORRORRRORRRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORROORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRROORRRRRORRRRRRRRRRRRRRRRRRRROROROORRRRORORORORRRRRRRRRRRORRRORRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRORRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRROROORRROORRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORRRORORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRORORORRRRORORRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRROORRRORORORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRORROORORORRRRRRRRRRORRRRORRRRRRRRRROOOORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRROROORRRORORRRRRROORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRORRRRRROOORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORORRRRRROORORRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRRRRORROOORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROOORRRROORRORRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRORROORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRORRROOORRRRRRRRRRORORRRRRRRRRRRRRRRRRORRROOORRORRROROROORRRRRRRRORORORRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORORRROORRRRORRRRRRRRRRORRRRROORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRORRRRRRRRRRRRRRRRRRORRORRRORRRORRROORRRRRRROOORRRRORRORRRRRORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRROOORRRRRRRRROORRRRRRRRRORORRRRRRRRRRRRRRRORRORRRRRRORRORRRORRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRORRRRORRRRRRRORORRRRRRORRRRRRRRRRORRORRRROROOOORRRORRRRRRRRRORRRRRRRORRRORRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRROORRRRRRORRORORRRRRRRORRRROORRRRRRRRRROORROORRRRRORRRRRORRRRORRRRORROORRRORRRRRRRRRRRRRRORRORRRRRRRRORORRRRORRORRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRROORORRRRRORRRRRRRRORRORRRRRRRRRRORRRORRRRRRRRRRORRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRRORRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRORRRORORRRRORRRRRORRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRROROORRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRORORRORRORRRRRRRORRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROROORRRRRRRRRRRORRRRROORRRRRROORRRRORRRRRROORRORRRRRRORRRRORRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRORORRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRORORORRRRRORRORRRORRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRROORRORRRROROORORRRRRRRRRORRORRORRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRORRRORRRRRRORRORRRRRRORORRRRRRORRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRORRRRRRRORRORRRRRRRORRRRRORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRORRROORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRORRRRRRRRORRRRRORORRORRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRORRRRRORORRRRRORORRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRORRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRORORORRRORRRRORRRRRORRRRRRRRORRRRRORRORRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRORORRRROROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRORRORRRRRORORRROORORRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORORRRRRRORRRRORRORORRRRRRRRRRORRRORRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRORRRRRRRRORRRORRRRRRRRRRRRRRRRRORRORORORRRRRORORRRORRRRRRORRRRRRRROORORRRRRRRRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRORRRRORRRORRORRRORRRRORRRRRRRROORRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRORORORORRRRRRRRRRRRORRRRORRRRRORRRORRORRRORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRORORRRRRRRORRRRRROORRORRRRRRRORRRRRRROORRRRRRORORRRRRRORRRRROORRRRRRORRRRRRRRRRRRRORRRRRORROORRRRRRRROROORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRORRORRRRRRRRORRRRRRORRORRRRRRRRRRROROORRRRRRRRRRRRRRRRORRRROOORRRORRORRORRRRRRRRRRORRRORRRRORRRRRRRRRRRORRRRRRROORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRRRRRRRROROORRRRORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRROORRRRRORRRRRRRRRRORRORRRRRRRRORRRRORRORORRRRRRRRORORRRRORRRORRRRRRRRORRRRRRRRRORRRRRRRRRRORORRRRORRRRRRROORRRRORRRRRRORRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRORORRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORROORRRRRORRRRRRRRRRRRRRRRRORRRRRRRROORROORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRORORORORRRRRRRRORRRRRRRRRRRRRRRROOOROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRROORORRRRORRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRORORRRRRORRRRORRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORORRRRRRRRORRRRRRRORRRRORRRRRRRRRORORORRRRRRRRRORORRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRROORRRORRRRRRORRRRRRORRORRRORRRRRRRORRRRRRRRRRRRRORRRORRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRROORROORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRORROORORORRRRORRRRORRRROORRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRORRORRRORORRRRRORRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRORRRRROORRRRRRRRRRRRORRRORRRORRORRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRORORORRRRRRRRRORRRRRRRORRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRRRROORRORORRORRRRRRRRRRRRORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRORRRRRRRORRRRRORRRRRRRRRRRRRROORORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORROORORRRORRRRORRRRRORROORRRRRRRRRRRRRORORORRRRRRRRORRORRRRORRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRORROORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRRORRRORRORROORRRRORRRORRRRORRRRRRRORRORRRRRRRRRORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRROORRRRRRRRRRRRRRRORRRORORRRORRRORRRRRRORRORRRRRRRRRRORRRRRRRRRROORRRRRRRRORORORRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRORRRRRRRORRRRRRRRORRRRRRRRRRORORRROORRRRRRRRRRRRRRRRORRRORRORRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRROORRRRRRRORRRRORORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRORRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRRRRRORORRRRRRRRRRRRRRRRORORRROOORRRRRORORRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRRRRORROORRRRRROORRRORRORRRRRRRRRRRRRORRRRRRORRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRORRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRORRRORRRRRRRORRORRRRORRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRORORRRRRRRORRRRRRRRORRORRRRRRORRRRRRRROORORRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRORRORRRRRRORRORRRRRORRRRRRORORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORORRRRRRRRRRORRRRORRRRRRRRROORRRRRRRRRORORRORRORRRRORRRRRRRRRRRRRORRRRRRROROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRRORRRRORRORRRRORRRRORRRORRRORRRRRRRRRORRRORORORRRRRRRRRRRRORRRRRORRRRRRORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRORRORRORRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRROORRROORRORRORRRRORRRRORORRRRRRRRRRRRRORRRRRRRORRRRROORRRRRRRRRRORORRORRRORORRRORRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRORORRORRRRRRRRORRRRRROROROORRRRRRRRORRRRRRRRRRRRROROORRRRRRRRROORRRRRRRRRRRRORORRRRRRORORRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRORORRORRRRORRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRORORRRORRRRRORRRRRRRORRRRRRRORRORRORRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORROORORRRRROORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRORRRRRORRRRRORRRORRORRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRRRRORRRRORRRRRRROORRORRRRRORORRRORRRORRORRRRRRRRORRRRRRRRRRROORRRRRRRRRRRROROROROORRRRRRRRRRRORRROORORRRRRRRORRRRORRRORRRRRRRRRRRRRRORRRORRORRRRORRRRRRRRRRORORORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRORRRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRRORRRRORRRRORRRRRRRRRRRRRORRRRRRRRORROORRRRRRORRORORRRORORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRORORRRRRRRORRRORRRRROOORRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORORRORRRORROORRRORRRORRRRORRRRRRRRRRRRORRRORORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORORRRORROORRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRORRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRORRRRORRROOORRRRRRRORRRRRRORORRRRRRRRRRRRRRRROORRRORRROROORRRRRRRRRRRRRRRORRORORORRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRORRRORORORRRRRRROORRRRRORRRRORRRORRRRRRRRRRROROORRRRORRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRROROORRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRORORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRORORRRRORRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRORRRRROOORRORORRRRRRORRRORRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRORRRORRORRRRRRRRRRRRROORRRRRRROORRRRORRRRRORRRORRRRRRRRORORRRRRRRORRRRORRRRRRRORRRORORRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRRRRRRRORRRRRORORRRORRRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRROORRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRORORRRORRRRRRORRRRRRRRRRRRRRORRORRORROORORRRRRRORORRRRRRRRRRROORRRRRRRRRORRRRRORRRRRRRROROORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRROORRRRRRORRRORRRORRRORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRORRROORRRRROORRRRRRORROORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORORORRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRORORRRRRRRRRRORRRRORRRORRROOORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRORRRRRRROROORRRRORRRORRRRORORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRORRRRRRORRRORRRORRORRRRRRORRORRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRORORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRROORRRRRRRRRORRRRRRRRRRRRRRRRROORRORORRORRRRRRORRRRRROORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRORRORRRRRRRRRRORRRRRRRORRRRORRORRORRRRRRORORRORRORROOORRRRRRRRRRRRRRRRRRRRORRRRORRORRRRORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRROORRRRRRORROORRRORRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRORRROROORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRRROORRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRORORRORRRRRRRRRRRROORRRRRROORRRRORRRRRRRRORRRRRRRORORRRRRRRRORORORRRRRRORRORRRRRRRRRRORRRRORRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRORRROORRRRRRORRRORRRRRORRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRORORORRRRRRRORRRRRRRORRORRORRRRRRRRRRRRRRRRRROORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRRRORRRORRROORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRORRORRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRORRRRRORRRORROOROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRRRORRRRRRORORRRRORORORORRRRROORRRORRRRRRROORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRORRORRRRRORRORRRRRRRRRORRRROORRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRORRORRORRRRORORRRRROOORRRRORRROOORORRORRRRRRRRRRRRRORORRRRRRORRORRORRRRRORORRRRRORRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRROOORRRRRORRORRRRRRRROOORRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRROORRORRRORORRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRROORORRRORRRRRRRRRRRRROORRRRRRRRRRRRORRORRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRROROORRRRORRRRRORRORRRRRRORORRRRRRRRRORRRRROORORRRRRRRRRRRROORRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRORRROOORRRORORRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRROROORRRRRRORRRRRROORRRRRRRRRRRORRRRRRORRRRRRRORRORORRRRRRRRROORORRRRRRORRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRORORRRORRRORRRRRRRRRORRRORRORORRRORRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRROORRRRRORRORORRRRRRRRRRRRRORRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORORRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRROORRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROORRRRRORRRORRRORRRORRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRORORRORRRRRRRRRRRORRRRRROROORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRRROORRRRRRRORRORRORRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRORRRRRORRRRRRRRRRRRRRROOROROORORRRORRORRRRRRRRRRORRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRROORORRRRORORRRORRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORORORRROORRRRRRRRORORRRRORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRORORRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRROORORRORRRORRRRRRRRRRRRRRRRRRORRORRRORRRRRRRROORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRROROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRROROORRRRROORRRROORROROORORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRRORRRRROORRORRRRRRRRRRRROORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROOORRRRRRRRRORRRRRORRORRRORRRRRRRRRROORRRRORRRORRORRORRRRRRRRRRORORROORRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRROORRRRRRORRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRROORRRRRRORRRRRORORORRRRRORORRRRRORORRRRRRORRRRRRRRRORRORROORORROOORRRRRRRRRRRRRRRRRRRRRROOOOROORRRRRRRRRRROROORROROORORRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRORRRRRRRORRRROORRRRRORRRROORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRORRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRORRRRRRRORORRRORRRRRRRRRORRRRORRRRRORRRRRRRRRRROOOORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRORRRROORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORROORRORRRORRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRORORRRRRRRRRRRRRRORRRRRRORRRRRORRORRRORRRROORRORRRRROORRRRRRRORRRRRORRORRRRRRRRRROROORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRORRRORRRRRORRRROORRRRRRRRRRORORORRRRRRORRRROOORRRRORRRRRRORROORRRRRRRRRROOORRRRRRRORRRORRRRRRORRRRRRROROORRRRRRRRRRRRRRRORRRORRRRRRRRORORRRRRRRRRRRORRRRRORRRRRRORORRRRORORRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRROORROORRORROORRRORORRROORRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRROORRRRRORORRRRRRRRRORRRRRRRRRORRORRRRRRRRRRORRRRRRRRROROORRRRRRRRRORRRRRROORRORRRROOORORRRRORRORRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRRORRRRRRRORRRORRRRROROOORRRRRRRRRRRORORRORRRRRRRRRRRRORRRRRORRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRROOORRRORRRRRRRRRRRRRORRRRRRRROORORORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRROOOORRRRRRRRRRORRRRRRRRORRORRRRORRRROORRRRRRORORRRRRRRRRORRRRRRORORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRORRRROORRRORRRORRROORRRRRRRRRRRRRORRRRROORRRRROROORRRORRORRRORRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRROORORRRROORRRRRRRRRRRRRRORRRRRRRRRRROOORORRRRRRRRRRRRRORRRRRRRORRORRORRRRORORROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRORRRRRRRRRORRORRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRRORROORRORRRRRRRROOORORRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRROORRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRORRRORORRRRORRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORRRRORRRRRORRORRORRORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORORRRRRORRRRRRRORRRRORRRRRRRORRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORROORRORRRRRRRRRRRRORRRRRRRRRRRRORRRORRORRROROORRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRORRRRRRRORRORRRRORRRRRORRRORRRRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRROORRRRROOOORRRRRRRRORRORRRROORRRRRRORROORRRRORRRRORRRRRRRRRRROORRRRRRRRRRRRRRRORRORRORRRRRRORRRRROORRRRRORRRRORRORRORRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRORRRRORRRRRRROOORRRRRRRRRRRRORRORRORRRRRRRRRRRRRRORRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRROORRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRORRORORORORRRRRORRRRRRRROORORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRORRRROORRRRRRRRORORRRRRRRRRRRRORRORRRRRRRRRRRROORRORRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRROORRRRRORORORRORRORRRRRRROORORRORRRORRORRRRRRRRORRRRRRORRRRRRRRORRORRRRORRRORRRRRRORRORRRRRRRRRRRORORORRRRRRRORORRRORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORORROORRRRORRRRRRROROORRRRRRORRRROORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRORORRRRRORRRROROOROORORRRRRRRORROORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRORORRORROORRRROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRROORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRORRRRRRORRROORORRRRRRORORORRRROROORRRRRORRRRRRRRRRRRRROORRRORRRRRRORRRORRRRRORRRROORRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRROORRRRRORRRRORRRRRRRRORRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRROORORRRRORRORRRRRORRRRRRRRORRRORRORRRRRRORRRRRRRRORRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRROROORRRRRORRORRRORORRRRORRRRRRRROORRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRORRRRORRRROORRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRROORRRRRRRROOORRRORRRORRRRRRORORRRRRRRRRRRRROOORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRORORORORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRORRRRRRRRRRORRRRROOROORRRORORRRRRRRRRRROORORORRRROROORRRRRORRRRRRRRRRRRORRRRRRRORRRRORRRRRORRRORRRRRRRROORRRRRRRRORRROORRRROORRRORRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRROORRRRRRRROORRORRRORORRRRRRROROORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRORRRRRRORRRRORRRRORRRORRRORRRRORRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRRRRRRRRORRRRRORRRRRORRRORRRRRRRRRRRORRRORRORRRRRRORORRRRORRORRRRRRRORROORRRRRRRORRORRRRRORRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORORRRRRORRRRRRRRRORRORORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRROOORRRRRROORRRRRRORRORRRRORRRRRRRRRRRRRORRRRRROORRORORRRRORRORRRRRORRRRORORRRRRRRORRRRRRRRRORRRRRRRROORRRORORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRORRORRRRRORORRRRRORRRRRORRRRRRRRRRROORORRRRROORRORRRORRRRRRORRRORRRRORRRRORRRORRRRORRRRRRRRRRRORRRRRRRRORRORRRRRRRRORRRRRRORRORORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRORRRRRRRORRRRORROROORRRRRRORRRRRRRRRROORRRRORRRRRRRORRORRORRRRRRRRRRRRRRORRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRORRRRRRROOORRRRRRRRRRRORORRRRRRRRORORRORRRRRRRRORRORRORRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRORORRRORORRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRORORRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRRRRORORORRRROORROORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRORRRRRRROROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRROORRRRRRORRRRRRRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRORRORRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRORROOOORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRROORRRRRRRRROORRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRROORRRRROORRRRRORRRRRRRRRRRRRRROORRRRRORRRRRRRRORORRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRORORORRRRRRRRRRRRRRORRRRORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRORRRORRRRROOORORROROOORORRRRRRRRRRRRRORRRRRRRORRORORORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRORRRRRROORRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRORRRRRRORRRRORRRRORRRRRRRRRORRRORRORRRORRRRRRRRRRRRRRROORRORRRRRRRRORRROORRRORRRORRRRRRORRRRRRRORRRRROORRRRRRORRRRRRORRRRRORORORRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRROOORRORRRRROORRRORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRROROORRRRRORORRRRRORORRRRRRORRRORRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRORRRRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRROORRORRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRORRORRRRRRORORRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRORRRRRRORROORRRRRRORRRROORRRRRRRRRRORRROORRRRRRRORRRRRORRORRORRRRRRORRRRRORRRROORRRRRRRRROORRRRRRRORRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRORRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRRRRRRRORRRRRRORRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRRRRRORRRORRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRORRRROORRRRRRORRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRORRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRORORRRRRRRRORRRRRRRRRRORRORRRRRRRRORORRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRROROROORRRRRRRRRORRRORRRRRRRRRORRRRRRRRRORRRRRRRRORROOORRRRRRRORRRRRORRRORORRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRORRRRRRRORRRRRORORRRRORRRRORORRRROORRORRROROORROORRRRRRRRRRRRRRRRRORRRRRRRRROORRRRORORORRRORRRRORRRRRRRORRRORRRROORRRRRROORORORRRRRRRRRRRRRRORRRRRRRRRRRROROORRORORORRRRRORRRRRRRORRROROORRRRRRORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORORORORRRRRRRRRRRRRRRRRRRRRRORRRORROOORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRORRRRORRRRRRRRRRRRRRROOORRRORRROOORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRRORORRROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRORRRORRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRORRRRORRROOORROOORRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRORRRORRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRORRRORRORRRRRORRRORRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRORORRRRROROORRRORRROORRRRRRORRRRRROORRRRRRRRRRRRRRRRROROOOORRRRRRORRRORRRRRRRRRRRRRRORRRRRRORRRORRORRRORRRRROOORRRORORRRRRRROORRRRRRRRORRRRRRRRORRRRRROOORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRORRRRROORRORRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRORRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORORRRRRRORRRORRRRRORRRRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORORRROORRRRORORRRORORRRRRRRRRORROOORRRRRRRRRROOROORRRRRRRRRRRRORORRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRORRRRORRRRRORRRRRRRRRRRROORORRRRROORRRRORORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRROORRRRRORRRRRRRRORRRRORRORRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRORORRORRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRORORRRRRROORRRRRRRRRRRRORRRRROORRRRRRRORROORRRRORRRORRROORRRRRRRORORRORRRRRRRRRRRRRROORRRRRORORORRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRROORRROORRORORORRRRRRRRORRRRORRRRRRRORORRRRRRORRRRRRRRRORRRRRRROROORRRRRRRRRRRRORRRRROROORRRRRRRRRORRRRRRRROORORRRRRRRRRRRRRRRRRRRRORORRRORRRRRORRROORROORORRRRRRRRRRRORRRRRRRRRRRRRRORRRRROORRORORORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORORRORRRORRRRRORRRORRRRRRORRRRRRORRRRRRORORRRRROORRRRRRRORRORRRORRRRRORRORRRRRORRROORORRORRRRRRRRRRRROORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRORRRRRRROORRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRORORRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRROOORRRRROOORRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRORORRRORRRRORRRRRRRRRRRRORRRORRRORRRRRRRORRRRRORRRRRORRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRROORRRROORORRRRORRRRORRRRRRRRRRRRRRRRORRORRRORORORRRRORRRRRRRRRORRRRRRORRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORROORRRRORRRRRORRRRRRORORRRORRORORRRRRORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRORORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRORRRORRRRORRRRORRRRRRRRRROORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRROORRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRORRORRRRRORRRRRRRRORORRRRRRRRRRRRRRRRORRORORORRRORRRRRROORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRRRRRRORORORRRORRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORROORRROORORRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRORRRRRORORRORORRRRRORRRRRRRRRORORORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORORRORRRRRRRRRORRRROORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRROROORRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRROORRRRRRRRRORRRRRRORRRRRRORRRORRORORORORRRRRRRRRRORRRRRRRORRORRRRRRROOORRRRRRRORRORRRRROROOORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRRRRRRRRRROORRRORRRRRRORRRORRRROORORRRRORRORRRORRRRRRRRROORRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRROORORRRRRRRRRRRRORRORRRRRORRRRRORRRRRRRRRROORRRRROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRROORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRROORRROORRRRRRRRRORRRRRRRRRRRRORRORROOOOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRORRROOOORRRORRRORRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRORRRRRRRORORRRORRRRRRRRRORRRORRORRRRRRRRRRRRORRROORRRRRORRRRRRORRRRRRRRRORRRRRORRRORRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRORRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRORRRRRORRRRRRORORRRRRRORRRRRRRRRORRORRORRRRRRRRRRORORRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRORRRRRRRRORORRRRRRRORRRRRRRRORRORRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROROORRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRROORRRRROORORRRRRRRRRRRRROORRROORORRRRRORRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRRRRRRROROORRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROROORRRRORRRORRRRRRRRRRRRRRORRROORRRORRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRORRRRRORRROORRRORRRROORRRRRRRRRRORORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRORRRORRORORRRRRRRRRRRRROORRRRRRRORRRRORORRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRROORRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRROORRORRRRRORORRRRRRRORRRORRRRRRRRRRRORRORROORRRRRRRRRORRRRORRRRRRRRRORRORROROROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORORORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRORRRRRRROORRRORRRRRRRORRRRORRORRORRROORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRORRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRROORRRRRORRRRRRORROORRORRRRRRRRORRRRRORRRORRRRRORRORROOROORRRROORRRORORROORORRORRRRRRRRRORRRRRRORRRRORRRRRRRORRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRORRRORRORRRRORRRORRRRRRORRRRORRRRROOORRRRRRRRORRRRORRRRRORORRRROORRRRRRRRRRRRROORRRRORORRORRRRRRRROORORORORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRROROORRORRRRRRRORRRRRRRRORRRRRROORRRORRRORROROORORRRRRORRROORRRORRRRRRRRRRRRRRRROORRORORRORORRORORRRORRRRRRORRRRRRORROOOORRRRRRRRRRRROORORRORRRRRRRRRRRORRRORORORRRRRRORORRRORRRRRRRRORRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRROORRRRRORORRRROORRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRORRRRRRRRORRRRRRRRORORORORRRRRORRORRRRRRRORRRORRRRORRORRORRRRRRRRRRRRRRRRRRORRRORRRRRORROOORORRRRRRRRORRRORRRORRRRRRRRRRRROROORRRRRRRRRRRRRRRRORRORRRRORRORORRROORRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRORRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRORORRRRRRORORRRRORRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRORORRORRRROROORRRROOORRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRRRORRRRORRRRORRRRRRRRRRORORRRORRROORRRORRORRRRRORRRRRRRRRRRRRRROROORRRRORRROORRRRRRRRRRRRRORRORROROORRRRRORRRRRRORRORRRORRRRRORRROORORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRRRROOORRRRRRRRORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORROOORRORRRRRRRROORRROORRRRRRRROOORRRORRRRRRRRRRROROORRORRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRORRRORRRRRRRRRRORORRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRORRRRRRRRORORRRROORRRRRRRRRRRRRRRRRRRRROROORRRRORRRRRRRRORRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRROROROORRRORRRRRRRORORRRRRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRORRRRORRRRRORRRRRRRORORRRRRRRRRORORRRRRRRRRRRORRRORROORORORRRRRRRORRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRORRORORORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRRROOORRRRROOOOORRRRORRRRRRRRRORRRRRRRORRRRORRRRRRRRRORRRRORRORORORORRRRRRORRRRRRRRRRROROORRRRORRRRORRRRRRORORRRROORRRRRRRRRORRRRORRRORRRRRRRORRORORORRRRRRRRRORRORORRRRRRRRRRRRORRRORORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRROOOORROORRRRRRRRRRRRRORRRRRRORRRORRORRORRRRORRRRORRRRRRORRRORRRRRRRRORRRRRROORRRRORORRROORRRRRRRRRRRORRRRORORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRORORORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROORRROORRORRRRRORORRRORRRORRRRORRRORRRRRRORRRORRRRRRRRRRRRRORRORRORORORRORRRRRRRRORRRRRRRORRRORRRRRORRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRORRRORRRORRRRRRRRRRRRRORRRORRRRORORRRRORRRORRRRRRORORRRRRRRRRRRRRRRRRRRRORRORRORRRRORORRRRRRRRORRROORRRRRRRRORRRORRRRRRRRORRRRRROORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRORRORRROORRRRRORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORROROORRRRRRRROOOORRRRRRORRORRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRORRRORRRRRRORROORRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRORRORROORRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRORRRRROORORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRROOORRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRORRRRORRRRORRRORORRRRRRRRROORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRORRORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORORORRRRRRRRRORRRRORRRORORRRORRRRRROORRRRRRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORORRRRRORRRORRRRRRRRRRRRRRRRRRRRORROORORRRRRRRORRRORRRRORORROORORRORORRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRORRORRROORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRROROOORORRRRRORRRRRRRORRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRROORRRRRRRRRRRRRORRROORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRROOORRRORRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROROOORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRROORRRRORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRORRRROORRRRORRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRORRRRORRRRRORRRRRRRRORRRRRRRRRRROORRORRRRORROORRRRRRRORRRRORORRRRORRRORORRORRRRRRRRRORRORRRROOORRRRRORRRRORRRRORRORRRRRRRRRRORRRRRORROROORRRRRRORRRRORORRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRORRRRRRRRRRRRORRRRRRRRORRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRROORRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRROORRRORRRRRORRRRRRRRRRRRRRRRRRRRRORROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRORRORORRRRRRORRRRRRRRRROROORRRORRRRRRRRRRRRORRRRRORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRORROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRROROORRROORORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORROOORROORRRRRRRRROROORRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRROROORRRRORRRRORRRRRRROORRRRRRROROORRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRORORRRRRRROORRRRRORRRRRROORRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRORROOORRRRRROROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRORRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRORRRRRRORRROORRRRRRRRRROORORORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRORORRROORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORORRRORRORRORORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRORRRORRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORORRRRORRORRRRRORORRRRRRRRRRORRRRRROOORRORRRORRRRRRORRRRRRRRRRRORRRRRRORORORRRRRRRRRRRORRRRRROOORRRORRRROORRRRRRROROORORRRRRRRRRRRRRRRRRRRORORRRRORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRROORRRRRRRRORRRRORRRRORRRRRRORRRRRRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORORRRRRORRRRRRRRRRRORRRRRRORORRRRRRRRRRRRROORRRRORRRRRRRRRORRRRRRORRORRRRRORRRRROROORORRRRRORRRORORORRRORRORRRORRORRRRRRRRRRRORRRRRRORRRRRRORORORRRRRRRRRRRRRORRRROORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORORRRRRRORRORRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRORORORRORORRORRRRRRRORORRRRORORRRRROORORRRRRRROORRRRORRRRRRRORROOROORORRRROROORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORORRRRRROROORRRRRRORORRRRORRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRROROORORRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRORRRRORRORRRRRRRRRRRRRRRRRORORROOORORRRRRRRORRRRORRRRROORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRROROOORRRORROORRRORRRRRRRRORRROROOROORRRRRRRRRORRRORRORRRRORRORRRRRRRRRORRORRRRORRRORRORRORRRRORRRRRROOORRRRRORRRRRRRRORRRORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRRRORRORRRRRRRRORRRRORRRORRRRORORRRRRRRRRRRRRORRORRRRRRORORRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRROROOORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRROORRRORRRRRRRORRORRORRRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRORROORRRRRRORRRRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRORRRRRRORORRRRRRORRRRRRRROORRRORRRORORORRRRRORRORORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRROORRRRRRRRRRRRRRRORRRRRROORORORRRORRRRRORRORRRRRRRRRRRRRRRRRRRORRORORORRRRRRRRRORRRRRROORRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRROOORRRROORRORRRORRRORRRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRROORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRORORORRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRORRRRROORRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRORORRRRRRRRORRRRORRRRRRRRRRRROORRORRORRRORRRRORRRRRRRRORRRORROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRORORRRRRRRRRRRORRRRRORRRRORRRRORRRRRROORRRRRRROOOORRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORORRRORRRRRRRRRRROORORROOORRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRRRRORRRRORRRRROORRRORRRRRRRRRRRORRORRORRORRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRORRRRRRROOORRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRORORORROORORRRRRRRORRROOORRRRRRORROORRRRRRRRRROORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORRRRORRRRRRORRRRRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROORRRORORRRRRRRRORRRRRRRRRRRRRRORRRORRORRRRRRRRRROORRRRORORRRRRORRORRRRORRRRRRRRRORRROROOORRRRRRRRROORORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORRORRRRRRROORRRRRRROORRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRROORRRORRRORORRRRRRRROROORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRORORRRORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRROORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORROORRRRRRRRRRORRRRRORRRROORRRRRRRORRRRORRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORROROORORRRORRROOORRRRRRRRRRRORRRRRRORRRRORRRRRRORORRRRRRRROORRRRRRORRRRRRRROORRRROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRORRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRORRRRRRRORRRRORRRRRROORRORRRRRRRRRRRRRORRRRORRRRROROORRRRRRRORRRRORORRRRRORRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRORRORRORRRRRRRRRRRRORRRORRRORRRRRRRRROORRRRRRROORRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRRRRORRRRRRRRRORRRRRROORRRROORROORRRRRRORRROORRRRORRRRRRRRROOOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORROOORRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRROOORROORRRORRRORORORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRORRORRRRRRORRRRRORRORRRRRRROROORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRORRORRRORRRORORRRRRRRRRRORORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRORRRRRRRORRRRRRRORRRRRRRORORRRRRRRRRORRRRRRRORRRRORRORROORRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRORRRORROORRRRRRRRRRRRRRRRRRORRRRRRRROORRORORRRRRRRRRRRRRRRRRRORROROORRRRRRRRORORRRRRRORRRROORRRRRRRRRRRRORRRRRRRORRRRRORRRORRRRRROOORRRORRRRRORRRRRORRORRRRRRRRORRRROORRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRRRORRRRRRRRRRRRROORRRRRRRRRORORORRRRRRRORRORRROROORRRORRRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRORRORRRRORORRRRRRRRRRRROORRRORRRORRRRRRRRRRORRRRRORRRORRRRROORRROOORRRRRRRRORRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRORRRORRRRORRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRROORRRRRRORRRRORRRRRRORRRORRRRRRRRRRRROORRRRORRRRROORRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRROORRRRRRRRRROORRRRRRRRRRRRRRRORRRORRRRRORRRRRRORRRROORRRROORRRRRRRORRRORRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRORORRRRRRRRRRRORORRRRRRRRRRRRORORRRORORRRRRORRRRRRORRRRRROORRRRRRRRRRORRRORRRORRRRRRRORORRRRROORRRRRRRRORORRROOORRORRRORORORRRORRRRROORORRRRRRRORRORROORRORRRRRRROORRORRRRRRORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORORRRRORRORRRRROORRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRORRRRRRORRORRRRRRRRROORORRRRRRRRRRORRRRRORRRRRRORRRRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRORRRRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRRRRRRROORRRRRRORRRRORRRRRRRORRRORORRRRRRRRRRRRRRORROOORRRRRRORRRRORORRRORRORRRRRRRROORORRRRRRRORRRRRRRRRRRRRRRRORRORORRRORRRORRRRRRRRORRRRRRRRRRORRRRRRORORRRRRRRRRRORORORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORORRRRRRRRORRRRRRRRRORRRRRRRRRORRORRRORRORRRRRRRORRRRRORRORRRRRRRROORRRRRRRRRRRRORORRRRRRRORRRORRRRRORRRRRRRRORRRRORRROORRRRRROORRRRRRROORRRORRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRORORRORRRRRRRRRRRORORRRRRORRORROORRRRRRORRRRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRORORROORORRRRORRRRRRRRRRRORRRORRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRROOORRORRRORRRRRRORORRORRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRORRRORORRRORRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORORRRORORRRORORRRRRORRRRORORORRRRRRRRRRRRORRORRORRRRROOORRRRORRRRORRRRRRRORRRRRORRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRROOORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRORRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRORRORRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRORRRRRRRRRRROORRRRRORRRRROORRRRRRRRRRORRRRRRRRRRORORRORROORRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRORRORRRORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRORORORRRRRRRRRRORRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRORRRRRORRORRRRRRRRRRRORRRROORRRRRROORRRRRROROORRRRRRRRRORRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRORRORORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRROORRORRORROORRRORRRORRRORRRRORRRRORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRORORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRROORRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORORORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROROOORRRRRRRRRRRORORRRRRRRRRRRRORRORRORRRORRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROOORRORORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORORRORRRRORRRROORRRORRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORORORORRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORORORRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRORRRROORRRRRRRRRRRRROORRROORRRRRRRRRRRRORRRROORRRORRRRRRRORRRRRORORRRRRRRORRORRRRORORRRRRRORRRORROORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRORRORRORRRRRORRRROORRRRRRRRRROORRRRRRRRORRRRRRORRRRRRRRORRRRRRORORRRRRROORRRRRRRRRRORRORRRRRRRRRRROOORRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRORRRRROORRORRRRRRRRORRRRRRRORRRRORORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRORRRROROOORRRRRRRRRORRRRRRRRORROORRRRRRRRRROORORRRORORRRORRRRRRRRRRRRRRRRRORRRORRORRRRORORORRROORRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRORRRRRORRRRRRRRRORRORORRRORRORRRRRRRRORRRORRORRRRRRORRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRROORRRRORORRRRRROOORRRRRRORRRRORRORRRRRRRRRRORRRRRRRRRORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORORRRRORRRRORRROORRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORRORRRRRRRRRRRRRRRROOORORRRORRORRRRRRRORRRRRORORRRORRRORORRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRORRRRRRROORRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRRORRRRORRRRRRRRORROOORRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRRRORRORRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRROROOROORRRORRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRRRORORRRRRRRRRORRRRRORRRRORRRRORRRRRORRRROROROOORRRRRRRRORRRRROORRRRRRRRRRRRRORRRORRRRORRRRRORRRRRROROORORRRRRRRRRORORRRRROORORORRRRRRRRRRRRRRRROOORRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRRROORRRRRRRORRRRRRRRRRRORORRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRORRRROORRRRRRRRRORRRRRRRRRRRRRORRROORRRROORRRRROORRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRORORRRRRRORORRRRRRRRRRRRRRROOORRRRORRROORRORORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRROORRORRORRRRRRROORRORRORRRRRRRRRRRRRORORORRRRRROORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRORROORRRRORRRRRORRRRORROORRRROORRRRRRRRRORRRRORRORRRRRRRRRRROORROORRRRORRRRRORRRRRRRROOOORROOORRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRORORRRROORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORROORROROORORRRRRRORRRRRRRRRORRRRRRRRRORRRORRRRROOROORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRRRRORRRORRRRORORRRRRRRORRRRRRRORRORRRORRRRORRRRRRRORORRRORORRORRRRRRRRROORRRORRRRRRORRRORRRRRRROORRORRORROOORROORRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRROORORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRROORRRORRORRRRORRRROROORRRRRRRRRRRRRRROORRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRORORRORRRRRRRRRORRRORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROORRRORRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRORRRORRRRRORRRRRORRRRORROORRRORRRRRRRRRRORRRRRORORRRRRRRORRRRRRRRRRROROORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRROORRRORORRORRRRRRRRORRRRORRRRRRRRORORRORRRROORORRRRRRRORRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRORRORRORRRRRRRRRRRRRRRRRORRRROROROORRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRORRROORRRRRRRRRRRRRRORRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORORORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRORRROOORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORORRORRRROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRORORRRRRRRORRORRRRRRRRRRRRORRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRORROORRRRORRRORRRRORRRRRRORRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRORRORRRRORRRRORORRRRRORRRRORRRRRRRRRRORRRRORRORRRRRRRRRRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORORORRRORRROORRRRRRRRRRORRRRRRRRRRRROROOOROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROOORRORRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRRORRROOORRORRRRROORRRRRRRRORRRRORRRORRORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRRORRRORRROORRRRRRRRRRORORRRRRRRRRRRRRRORROORRRRRRRRORRORRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRORORRRRRRRORRORRRORRRORRRRORRRRRRRRORRRRRRRRRRRORRORRORRRRORRRORRORRRRRRRRORRRRRORRORRRRRRRRRRRRRORORRORROORRRRRRORRRRORRRRORRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRRRORRRRRORRORRRRRORRRRRORRRRRRRRRRRROORRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRORORRORRROORRRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRORRRRORRRRRRRORRRRRRRRRRRRRORRRRROROORRORORRORRRRRRRORRRRROORRRROORRRRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRORRRRRRRRRRRRRORRRRRORRRORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRORRRRRRORRORRRRRRORRRORRRORRRRRRORRRRORRRRROOORRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRORORRROROORRRRRRRROORRRRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRORRRRRRRRRRORORRRRROROORRORRRRRRORRRRRRRORRORRRRRORRRRRORORRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRORRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRROORRRRRRRROORRRRRRRRORRORORRRORRORRRRRRRRRRRRRRRRRRRROROORRORRRORRORRRRRRRRRRORRRRRRRRRORROORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROOORRRRRRRRRRRRRRRRORRRORRRRRORRRRORRRRRRRRORORROORRRORRRRRRRRRROORRRRRRRRORRRORRRRRRORRRRORRRRRRORRRRRROORRRRORORRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRORRRRRRRRRRRROORRRRRRORRRRRORRRRROORRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRROROOORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRORRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRROORRORORRORORORRRRRRRRROORRORRRRRORRRRRRRORRRORRRROORRRRRRRRRORORRRRRRRORRRRRRRRRRORRRRRORORRRRORRRRRORRRRRRRORRORRRRRRORRRRRRRORRRRORRRRRORRRRRRRRORRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRORRRRRRRRORRRORRRRORRRRORRRORRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRORRRORORRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROOORRRRRRORRRRRRRORRORRRRRRRRRRROORRRRRORORORRRRRORRRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRROROROORORRRRRRRRRRRRRRRRORRROROORRRRRRRORRRRRRRRRRORORRRRRORRORRROROROORRRRRRRRRRRRORORRORRRRRRRRROROOORRRRORRORRRRORRORORRRRRORRORRRRRORORRRRRRRRRRRRRRRORRRRRRRORRRORRORRORRRRRRRRRORRRORRRRRORRORRRRORRRRORORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRRRORRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRROORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRROORRRRRRRRRRRRORRRRROORRRRRRRRRRRORRRRRRRRRRRORORRRRRROORORRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRROROOORRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRORRRRRRRRRRORORRORORRORRRRRRORRORRRRRRORRRRROORORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRORORRRORORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRORRRORORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRROOORRORORRRORRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRORRRRORROOROORRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRROOROORRRRRRORRRRRRRROOROORRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRORRRRRRRRRRRRROORRRROORROORRORRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORORRRRRRORRRRRRRRRRRRRRORORRORRRRRRRORRROORRRORRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORROORORRRRORRRRRRRRRRRRRORRRROORRORRRRRORRRRRRRRRRRRROORRRRRORRRRORRRRORRRRRRRRRRORRORRRRRRRRROORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORORRORRRRRORORRRRRROORORORRRROORRRORRRRORRRRRORRRRRORRRRORORRRROORRRRORRRRRROORRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRRRRRRRROORRRRRRRORRRRORRRRRRORRRRRRRRORRRRRORRORRRRRORRRRROROORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRROORRORRRRRRRRRRRORRRRRRRRRORRRRRORRORRORRRRRRRRRRRRRRRRRRORORORORRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRORORRORRRRRORRRRRRRRORRRRORRRRRRRRRRORRRROORRRRRRRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRROORRORORRRRRRRRRRORRORRRRRRRRRRRRRORRRORRRRORRRRRRRRRRORROORRRORRRRRRORORRORRRRRRROROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRROORRRORRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRORORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORORRRRRRRRRRRRRRRRORRROORRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRROORRRRORRRORRRRRROORRRROORRRORRRRRRRRRRORRRRRORRORRRRRRORRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRORRRORRRRRRRRORORRRRRRRRRRRORRRRRORRRRORRRRORRRRROORRRROORRRRROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRORRRRRORRORRRRROORRRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRRROORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRORRRRRRROORROROORRRRRRRRRRORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRORRRRORRRROORRRRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRORRRRRORRRRRRORRRRRORRRROROOORRORRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRORRRRORRRORORRORRRRRRRRRRRRRRRRRRORORORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORROROORRRRORRRRRRRRRRROORRRRRORRRRRRORRRRRRRRRRORRRROOOORRRRRRRRROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRORORRRORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRRORRROORORRRRRORRRRRRRRRRRRORRRRRORORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRORORORRRRORRRORORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRROORRRRORRRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRORRRRORROROORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORROORRRRRRRRRRORRRRRRRRORORRORRRRORRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRORRORRRORRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRORRRRRORRRRRRRRORRRRRORRRRRRRRRRRRORROOORORRRRRORRRRRORRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRORORRORRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRROORRRRRROOORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRROORROORORORRROORORRRRRRRRORRRORORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORORRRRRRRRROOORRRRRROORRORRRROORRORRRRRRORRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRROORRRRRRROORRRRRORRORRRRRRRROOROORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRROORRRRROOORRRRRRRRRRRRRRRRORRRRROORRRRORRRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRORRRRORRRRRRRRRRRORORRRRRRROORRRRRRORRRORRRRRRRRROORRORRRRRRRRRRRRRRORRRRRRRORRRORRRORRROORRRRRRRRRROORRORRORRRRRRRRORRRROORRRRRORRRRRRRRORRORRRRRROROROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORORROORRRRRORRRRRORRRRRORRRRORRRORRRRRRRRORRORRRORRRRRORRRRRORRRORRRRRRRRRORRORORRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRORORRORRRRRORRRRORRRRRRRRRRRRORRRRRRRRROORORRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRRROOORRRRORROORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRROROORRRRRRRRRORRRRRRRRORRORROORORRRRORRRORORRRRRORRORRORRRORRRORRRRRRROOORRRRRRORRRRRROOOOORRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRORRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRRRORROORRRRRRORRRRRRROORRRRRRRORRRRRRRRORRRRRROOORRRRRRRRRRRRRRRROORROORRRRRRRRRRRRRRORORRRRORORRORRRORRRRRRRRRORRORRRRORRRORRRRRRRRRRORRRRRRRRRRRRROROORRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRORRRORRROORROORRRRRRRRRRRRRRRORRRRROORRRRRRRRORRRRRRORRROORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRORORRRORRRRRORRRRORRRRRORRORORRRRRRRRRRRORRRRRRRRRRORORRRRRRORRORORORRRRRRRRRRRRORRRORRRRRORRRRRORRRROROORRRORRRORRRRRRRORRORORRRRORRRRRRRRRRRRRRRRRRORORRRRRROOOORRRRRROORRRRORRRRRRRRRRRRORRORRRRRRRROORRRRRRRRRRRRORROOORRRRRRRRRRRRRRRRRRRRRRORORRORRORORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORRRRRROROORORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRROORRRRRRRRRRRORRRORRRRRRRRRORRRRROORRRRRRRRRRORORRORRRRRRRROORRORRRRRRRORORRORRRRRRRRRRORRORRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORORRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRORRRRORRRROROOORORRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRORORORRRRORRRORRRRORRRRRRRRRRRRRRRRRORRRRORRRRRROOROORRRORRRROORRRRRORRRRROOOORRRRRRRRRORORRROORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRORRORRRROORRRRRROROORRORRRRRRORRRRORORRRRRRRRRRRORRRRRRORORORRRRRRRRRROORRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRORRRRRROROORRORRRRRORRRRRRRORRRRRRRORRRORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRORRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRORRRRRRRRRORRORRRORRRRRRRRRORRRRRRORORORRRRRRRRRRRRRRRORRRRRRRORROORRRRORRORRRRRRORORRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRORORRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRORRRORORORRRRRORRRRRRORRRRRORRRRRORRRRRRORRRORRRRRORRRRRRRRRRRRRRROOORRRRRRRRROROROORRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRORRRRORORRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRROORORRRRRRORRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRORRORRRORRRRRORRORRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORORRRRRRRRRORRRRRORRRORORORRORRRRRRRORORRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORROROORRRRRRRRRRORRRORRRRRORRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRROOORRRRRORORORORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRROOORRRRRRRRORORRRRRRRRRRRORRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRORORRRRRRRRRRRORRRRORRRORRRRROORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORORORRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRORORRRRRORRRRRRRRRRORRRRORRRORRRRORRRRRORRROORRRRRRRRORRORRORRRRRRRORRRRRRRROROORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRORRORORRRRROORRRORRRRRRORORROOROORRORRORRRORRRRORRORRRRRRRRRRRRRROORRRRORRRRRRORORRRRRRROORRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRRORRORORRORRROROORRRRRRRRRRORRORORRORORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORORRRRRRRRRORRRROROORRRRRRRRRRRRRROORRRRRRROORRRRORRRRORRRORRRRRRRRRRRRROROROORRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRORRRRRROOROORRRORRRRRRRRRRRORRRRRRRRRRROORRRRRRRORRRRRRRRORRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRORRORRORRRRORORRRRRRRRROORRRRRRRRRRRROOOROORORRRRRORRRRRRORRRROROORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRROOORRRRORRRRRRORRORRRRRRRRRRRRRORRRRRRRRORRRORRRROORRRRROOOORRORRORRRRRORRORRRRRRRRORRORRRRRORRRRORRRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRORRORROORRRRRRRROORRROORRRRRRORRORRRRORORRRRROORORORRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRROORRRORRORRRORRRRORRRROORRRRRRORRRRRORRORRRRRRRRRORRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRROOORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORRRRRRORRRRRRRRRRRRORRRORRRRRORORRRRRRRRORRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRORORRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRORRRRORRRRRRRRRRORRRRRRROORORRORRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOOORORRRORRORORRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRRRRRRRORRORRROORRRRRORRRRRRRRRRRRRRRORRRORORRRRRORRORRORRRRRRROOORRORRRRRRRRRRRRORRRRORRRROORRRRRRRORORRRRRRRRRRRROORRORRRORRRRORRRRRRORRORRRORORRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRROOORRORROORRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRORORRRORRRRRRRRRRRRRORRRORRORORRORRRRROOORRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRORRRRRRRRRROORRORRRRRRORRRRRRORRRRRROROORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRORORRRRORRRRORRRORRRRRRRRRORORRORRRRRRORRRRRRORRRRROORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRORRRRRORORROOORRRRRRRRRRRRRRRORRROORRRRRRRRRRRRORORRRRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRORRRRRORRRRORRRRRRRRRRORRORRRRORRRRRRRRRROORRROOORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRROORORRRRRRRRORORORRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRROORRRORRORRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRRRRRRRRRORORRRRRRRORRORRRRRRRRRRORRRRRROROROORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRORRRRRORRORRRRROOORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRORRORRORRRRRRRRRRRRORRRRORRORRORORRORORRRRRRORRRRRRORRRRRRORRRRRRRRORORRRRRRORORRRRRRORORRRORRORRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORORRRROOORRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRORORRRRRRRRRRRRRRORORRRRRORRRORRRRRRRRRROROORRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRROORORORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORROORORRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRORORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRORRRRRROORRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRROORORRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRORRORRRORRRRRRRORRRRORRRRRRRRRRORRORRRORORRRRRRORROORRRRRORRRRRRRRRORRRRROOORRRRRRRRRORROORRRRRRRRRRORROROORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRORROORRRROORRRORRRROORRRRRRROROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRORRORRRRORRRRRRRORRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRORRRORORRRRRRRRRRORRRRRRORRRRORRRRRRRORRRORRRRRORRRRRRORRRORRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRROORORORRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRORRRRRORRRRRRROOORRRRRRRRRORRRRRRRRRRRORRRRROORRRRRRRRRRRORORRRROROORRRRORRORRRRRRROORRRRRRRRRRRRROOORRORORRRRRRRORRRRRRRRRORRRORRRRRORORORRRRRRRRRRRORRRRRORRRRRRRRRORRORRRRRORRROROROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRROORRRRRORORRRRROORRRORRROORRRRRORORRRRRRORRRRRRORORRRRRRRRRRRRRRRORROORORORORRRRRRRORRROORRRORRRROORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORORRROORRORRRORRRORRROORRORRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRORORRRRRRRRRRORORROROORRRORRRRRRRRRRRRRORROORRRRORRRRRRRRRRRRRORRRRRRRORROORORRRRRORRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRRRORORORRRORRRRRRORRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRROROORRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRROORORRRRRRRRROORRRRRRORORRORRRRRRRRRRORRRRORRRRRORRRORRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRORRRRRRORRRORRRRRORRORRRRRRORRRRRRRRRRORRRRRROORRRORORRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRORRROORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRORORRRRORRRRRORRRORRRRRRRRORRRRRRRORRRRRORRRROORRRRRRRRORORRRRRROORORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOROORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRORORRORORORRRRRRRORORRRORRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRROORRORRRRRRORRORRORRORRORRRRRRORORRRRRORRRRRRORRORRORORORRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRORORRRRRRROOORORRRRRRORRRRRRRRRRRRRRORRRRRRORRRORRRRORRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRROORRRRRRRRORRRRORRRRRRRRRRRRORRORRORRRRORRORRRRRRRRRRRROROORORRROOORRRRRRRRROOORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRROORROORRRRRRRORORRORRRRROOROORRRORRRRRRRROORRRRRORORORRORRRORORRRRORRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRORORORRRRORRRRRORRRRORORRRORRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRORRRRRROORRRRROOROORRRRRORRORORRRORORRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRROORRRRRRRRRRORRORRRRRRORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRORRRRRORRRRRRRRRORRORRRRRRRRRRRROOOROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRROROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRROROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRROORRORRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROOORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORROORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRRRRRRORRRRRORRRRRROROROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROORRRRORRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRORRRORRORRORRROORRORRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRORRRRORRRRRRORRRRRRRRRRROORORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRORRRORRRRORRRRRRRORORROORRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRORRRROORRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRROORRRRRRRRORRRRRRORRRORRRRRROROORRRRORRRRRRORRRORRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRROROORRRRRRRRRRRRRORRRRRRRRRORRRRORRORRRORRRROORRORRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRORRRRRRRORRRRRRRRORRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRORRROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRRORRORORRRORRORROORORRORRRRRRRRORORRRRORRORRRRRRORRRRRRORRRRRRRORRRRRROROORRORRRORRRRORRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRROORRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORORROORRORRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRORRORRRRORRRORRRORRORRRRRRRRORRORRORRORORRRRRRORORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRORORRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRORRRRROROROORRRRRORORRORRRRORRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORROOORORRRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRRRORRRORRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRRRRRRORRRRRORORRORRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRORRORRROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRROORRRRRORRRRRRORRRRRRRRRORORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRORORORRROROOORRRRRRRRRRROROORRRRRRRRRROOROORRRRRRRORRRRRRRRRRORRROORRORRORORRRRRROROORRRRRRRRRRRRRORRRRORRRRRRORRRRRORRRRORRRRRRRRRRORRRORRRRRRRRORRRORRORRRORRRRORRRRRRORRRRRRRRORRRRRRROORRRRRRORORRRRORORRORRRRRRORRRRRORORORRRORRORRRRRRRRRRRORRRRORROOOROORRORRRRRORRRRRRRORRRRRORRRRRRRRRRRROORROORRRRRRRRRRRORRROORRRRRORRRRRRORRRORRRRRORRRRRRORRRRRRRRRRRORRRORRRROORORRROORORRORORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRORRRORORRRRRRRRRROORRRRRRORRRRRRORRRORRRRRRRRORRORRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORORROOORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRRRRRORRRRRRORRRRRRRORRORRORRRORRRROORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROOORRRRORRRORORRRRRRRORRRRRORRRRRRRORRORRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORORRRRRRORRROORORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRROORORRRORORRRRRROROORRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRROOORRRRRORRORORRORRRRRORRRRRRRRRRRRORRRRRRORRORRROOORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRORRORRRRRRORRRRRORRRRRRRORORRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORRRRRRRORRRRRORRRORRRRRRRRRORRRRRRRORRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRRRRRROORRRRRRRRRRRORRRRRORRRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORORORRORRORRRORRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRORRORROROORRRRRRRRORORRORRROORRORORORRORRRRRRRRRRRRORRRRRRRRRRRORRORRRORRRRRORRRRORRRORRRRORRRRRORRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRORRRRRRRRRROORRRRROORRRORRRRRRRRRRRORRRRORRRRRRRRROROORRRRRORRRRRRRRRRRRRRRORROORRRRRRRRRORRRRORRRROOOROROORORORRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRORORRORRRRORORRORORRRRRRRRRORRORRRRRRORRRRROROOROORORRRRRRRRRRRRORROORRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORORRORRORRRRRRRRORRRRRRORRRRRROOORRRRORORRRRRORRRRRRRORORORRORRRRRRRRRORRRRRRRRRRORORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRRRROROORRORRRRRRRRRRRRRORRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORROORRRRORRRRROOORRRRRRORRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRORRORORRRRRRRRRRROORRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROOORRRRRRRRRORRRRORRRORRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORORRRORRRRRRRRRRRORROOORRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRORRRRRRRRRRORRRRRRRRRRROORRORRRRRRRRORRRRRORRROOORRORRORRRRROORRRORRORRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRROORRRRRRRORRRRORRRRORRRORRRRRORRRRORRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORROOORRRRRRORRRRORRRRRRRRRRRORRRRORRRORRRRRRORRORRROOORORRRRRORRORRRRRRRRRRRRRRORRRRRRROORRRROORORRRRRRRRORRORRRRRRRRRRRROORRRORORRRRORRRRORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRROORRRRRRRRRRRRRORRRRRRORRRORORRRRRRRRRROORRRORRRRRORRRORRORRRRRRRRRRRRRRRRRORRRRRRRRORROOORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORORRRRRRORRRORORRRRRORRORRRRRRRRRRRRRRORRRRRORORROORRORRRRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRORORRORRRRRRRRRRRORRORRRRORRORRROROORRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRORRRORRORORRRRRRRRRORRRRORRRRRRRRRRRRRORORRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRROORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORORRRROROOORRRRORRRORRRRRRRRRRRRRRRORRRRORRORRORRRRRRROOORRORRRRRRROORRRRRRORRRRRRRRRRROROROOOORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRROORRORRRRRRORRORORRRRORRRRORRRRORRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRROORRRROROORRRRRRRRRORRRRRRRROORRRRRORRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROORORRRRROORRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORORRRORROORRRRRORRRORORORRROROROORRRRRRRRRRRORRRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRORRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRORROOORRRROOORRRRRRORRRRRRRRRORROROORRROROORORRORORROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRORRRORORORRORRRRRRRRRRRRRRRRRRORRRROOORORRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORROORRRRORRRRRORRORRRRRORORORRRRRRRRRRRRRRRRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRROROORRRRRRRRRRORRRRRRRRROROORORRROORRRORROORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRORRRORRRRORRRRRRRRRRRORORRORRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRORRORRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRORRRRRROORRRRORRRORRRRRRORRRRRRRRORORRRRRRRRRRRRRRORORRRRRROOORRORRRRRRRRRORRRORRRROOORRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRORRRRORRRORRROORRRRRRRORRRORROORRRRRRRRRRRRRRRRORRRORORRRROOORRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROROORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRORRRORRRORRRORRRRRRRRORRRRRORORORRRRRRRRRRRRRORORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORORRRORRRORRRRRRRRRRRORRRRRRRORROROORRRRORRRRRRRORRRRRORRROOORRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRORRRRRORRRRRORRRRORRRRORRRRORRROORRRRRRRRRRRRORRRRRRRRRRRORRRRRROORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRORRORRRRRRRRRORRRRRRRRORROORRRRRRRORRRRORRRORRORRRRRRRRORRRORRRRORRRORRRRRRORRRRORORRRORRRRRRORORRRRRRRRRORRRRRRRRRRRORRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRORRRRRRORORRRORORRORRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRRRORRRRRRROORRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRORRRRRORRRORRRRRORROORRORORORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRROORRRRORRORRROOORRRROORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRROORRRRRORRRROORRORRRRRROORRRRRORROORRRORRRRRRRRORRORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORORORRORORRORROORRRRRRRRORRRRORRORRRRRRORRORRORRORRROORORRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORROORRRRRRRORRRORRORRRRRRRRRRRRRRRRRRROOORRRRRRRROOORRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRORRRRRRRORRRORRRRORRORRROROORRRRRORRRRRRRRRRROORRORRRORRRRRRRRRORRRRRRROORRRRRRORRRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRORRRORRRRORRRRRRRRRRRRORRORRRRRRORRRORRRRRORRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORORRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORORRRRRORRRRRRRRROOORORRRRRRRRRRRRRRRORRRRORRRORRROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRROOORRORRRRRRRRRRROROROORRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRRORRRROROOOORRRORRORRRRORRRRRRRORRRRRRORRRORRRRRRORRORRRRRRRRRRRRRRRRRRORRORROORRRRRRRRRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRORRRORRRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRRRORORRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRORORRORRORRRORRRRRORORROROORRRORRORRRRRRRRRORRRRRRRRRRRRRRORRROORRRRRRRRRRRRORRORORRRORRRRRRORRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRORRRRORORORRORRORRRORRRORRRRRRRRRORRRRRRRRRRRRRRORRRORORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRROORRRRRRRRRRRRRRRORRRORRORRRORRRORRRRRRRORRRRRRRROROORRRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRORRRRORRRRRORRORRORRRRRRORORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRROORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORORRRRRRRRORRRRRRORRRORORRRRRORRRRRORRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRORROORORRRRROORRRRRRRRRRROROORRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRRRORRROORRRRRRRORRRRRRRRRRORRRRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRROOORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRROORRRORORRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRROORRRRRROORRRRRRRRORRRRRRRRRROORORRRRORRORRRRRRRRROOOOORRRRORORRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRORRROORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRROORRRROROORRORRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRROROORRRRRORRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRORORRORRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRROOORRRORRRRRRRRRRRORRRRORRRORORRORRRORRROORRRRORRRRRORRRRRRRRRRRORRRRRRRRRORRRRRORRORRORRRRORRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRORORRRRRRRORRRORRRRRRRRROORRRRORRRORRRRRRRORRRRRRRRRORORRRRRRRORRORRRRRRROORRORRRRRORORORRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRORROOORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRORRRRRRRROORROORRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRORRRRRRORRRORRRRRRORRORRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORROORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRROORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRORORORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRORRRRORORROORROOORORORRRRRRRRRRROOORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRROOORRRORRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRRORRRRRORRRORORRRORORRRRROOORRRROORRRRRRRRRRRRRRORRRROORRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRORRRRRRORRORRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORORORRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRORRRRORRORRRRRRRRRRRRRRRRRRRORRRROROOORRRORRRRROORRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRORRRRRRORRORRRRRORRRRRORRRRORRORRRRRRORRRRRRRRRRRRRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRORRRRRORORRRRRORORRRRRRORRRRRRRRRRRRORRRORRRRRRRRROORRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRROORORRRRRORRRRRORORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRRORRRRRRORRRRRRROORRRRRORRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORROORROORROROROORRRRRRRRRRRRRRRRRROOORRRORRRORRRORRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRORRRRRRRRRORRORRRRRRRRORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRROROORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORROOORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORORRRRRRRRRRRRRRRRORRORORRRRRRRRRORORORRRROOORROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRROORRRRRRRRORRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRORRRORRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRROORORORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRROROROOOORRRORRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRRRRORRRRORRRRRRRRRRRRORRRRRORRRRROOORRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRORORRRRRRRRRORRORRRRRRORRRRRORRORRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRORORRRRRRRRRRRORORORRRORORORRRORRORRORRORRRRRRRRRORORRRRORRRRRRRRRORORRRRRRRRRRRRRORRRORRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRORRRRRRRRORRRRRRRRRORRRORRRORRRRRRRRRRRRORORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRORRRRRRRRORRORRRRRRORRORRRRRRRRRRRRORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRORRRRRORRRRORORRRRRROROORORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRROORORRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRORRORRRRRRRRORRRORRRRRRROORRRRRRRROORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRORRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRROORRRRORRRRORRRRRRRROOORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROORRRRRRRROROORRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRORRRRRRRROORRRRORRORRRRRRRRRORRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRROOORRORRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRROOORORORRRRRRRRORORRRRRRRRORORRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORROORRRRRRRRROOORRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRROROROORRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRROORRRRORRRRRRROORRRRRRRRRORRRRRRRORORRRRORRRRRRRRROORRRRRRRORORRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRROORORRRRRORRORORRORORRRRRRORRRRROORRRRRRORRRRRRRRRRORRRORRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRORRRRORRRRRRRRROROORORRORRRRRRORORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRRRROORRRRRORRRRRRORRRRRRRRRRRRRRRORRRRORRORRRRRRRORRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRROOROORRRRRRRORRRROROORRRRORRRRRORRRRORORRRORRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRRRORRRRRRRRRRRRORROORRRRRRRRRROORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRROOORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORROORRRORRRRRORRRRRRRRRRRRRRRORRRRROROORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRROROROORRRRRRRORRROORRORRRROROORRRRORRRROORRORRRORRRRRRRORRRRRORRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRORRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRORORRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRORRRRORRRRORORRRRROORRRRRRRORORRORRRRRROORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORROOORRORRRRRRRORORRORRRRRORRRRRRRRRORRRRRRRRRRRORRRRROROORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRORRORRRRRRRRRROORRRRORRRRRRRRRRRRRORRRRORROORORORORRRORORRRRRRRORRRRRRRRRRROORRRORRRRRRRRROOOROORRRRRRORORRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRORORRORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRROROORRRORRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRROORRRRRRRRRRRRRRORRRRORROORRRRORRRRRRRRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRRRROORRROOOORRRRORRRRRRRRRRORRRRORRRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRRORRRRRRRRORRRRRRRRRRROORRRROORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORORRRRRRRRRRRRORRRORRROORRRORRRRRORRRORRRRRORRRRRORRRRRRORRRORRRRRORRRORRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRORRRRRRRORRRRRORRRRORRRRRRRRORORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRORRRRRRORRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRORRRROORRRORRRRRRRORRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRROOROROORRROORRRRORRRRRRROORRRRRORRORRORRRRRRROORRORRRRRRRRRRRRROORRRRORRRRRRRRORROORRRRRRRRORRRRRORRRRRRRRRRORRRRRRRORRRORRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRORORRRORRRRORRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRORRRRRORRRRORRRROORRRRRORRRRORRORORRRRRRRORRRRRRRRRORORRRRORRRRRRRRRORRRRRORRORRRRRRRORORRRORRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRORRORRRORRORRRRORORRRROROORRRRRRRRRRRRRRRORRRORRORRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORORRRRRRORRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROROOOROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROOOROOORRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORROOORORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRORRRRORRRRRRRRRRRORORRORRRRORRRRORRRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRROORRRRRRRORORRRRRRRRROORRRRROROORORORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRROORRRROORRROORORRRRORRRRRRRROORRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRROORRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRROOORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRROROORROORRORRRORORRRRRRRRRRORRRRRRRRRROORRORRRRRORRRRRRRORRRRRRORROOROORRRROORRRORRORRRRRORRRRRRRRRRRRRRORRRRRROORORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRORORRRORRRORRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRORRRRRRORORRRRRRRRRRRRRRORROORRRRRROROORRRRRROORRRRRRRRRRORRRRORORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRORRORRROORRRRORRRORRRRRRRRORRORRRRRRRRRRRORROOORORRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRORRROORRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRROORRRROORRRRRRRROORRRRRRRORORRRRRRRORORRRRRRORRRRRRRORRRRRRRORRRRRRRRORRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRORRRRRRORRRRORORRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRORRRORROORORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORROORRRORRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRROORORRRRORRORRRRORRRORRRORRORRRRRRRRRRORRRRORORRRORRRRRRRROOORRORRRRRRRRORRRRRRRRRRORRRRRORORRORRRRORRRRRORRRRRRRRRORRRRRORRRRORORRRRRORRORRRRRRRRRRRORRRRRRROORRROORRRRRRRRORRRRRRRORRRORRRRRRRORRORRRRRRRRRRRRROORRRRRRRRRORORRRRRORRRORRROORRRRRRRORRRRRRRRRORRRRRRRORRRRRORRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRORROORRRRORRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRORORRRORRROORRRRRRRORRRRRRRRRRRRORRRRROORORRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRORRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRROORRRRRORORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRORRRRROORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORORORRRRRRRRRRRRRRRROORRRORRORRRRORRRORORRRRRRRRRRRRRRORRRRORRRRRORRORORORRRORRRRRRRRRRRRRRRRRRORRRORROORRRRORORORRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRROORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRORRRRRRORRRRRRRRRRRRRROORRORRRRROROORRORRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRROOORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRROOORRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRORRRRROROORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRROORRRRORORRRRRRRORRRRORORRRRRRRORRRRRRRRRRRORRRRORORRRRRRRORRROORRRRRROOORRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRORRORRRRRRRROORRRRRRRORRRORRRRRRRRRRRRRORRROORRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRORRRORORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRORRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRORROORRROORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORORRORRRRRRRORRRRRRORRRRORROORRRRRRRRRRRRRRRRRRRRORRRORRORROORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORORRORORORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRROORRRRRRORRORORRRORRRRORRRRRRRRRRRRROORRRORRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRROOOORORRRRORRORRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRRRRRORROOROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRROOORORRRRORRRRRORRRRRRRRRRRRORRRRORRORRRRRROOORRRRROORORRRRRORRRROORRRRRORRRRORRRORRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORORORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRORRRRORRRRORRRRRORRRORRRRRRROORRRRRRRRRORRRORRORRRRRRRRRRRRRRRORRORRORRRORORRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRORORRRRRRRORORRRRRRRORRRORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRORRRRRORRRORRORORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRORRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRRRROORRRRORORRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRROORRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRORRRRRRRRRRROORRRRRRRRORRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRROROOOOOORRRRRRRRRRRRRORRRRRRRRRRROOOOROORRRRRRRRROORORRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRROORRRRRROORRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRORORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRORRRRROORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRORRRRRRRORRRRRRRRORRRROROORRRORRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRORRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRORRORRRRRORRRRORRRRRORRRRRRRRRRRRRROOORROORRRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRROORORORRRRRRRRRRRORRRRRRORRRRRRRRRORRORRRRRROORRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRROORRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORORORRRRROORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORORRRRORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRORORRRORRRRRRRRORRRRRORRRRRRRRORRRORRORRRORRRRRORRRRROROOORRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRORORRRORRRRORRRRRRORORRRRRRRRRORRORRROORRRRRRRORRRRORRRRORRRRRRORRRORRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRORRRORRRRRROORRRRRRRRRRRROORRRRORRORRRRRRRRRRRRROORRRRRRRRRRRRRRROORRRRRRRORORRRRRRRRORRRRRORRRRRRRROOORRORRRRORRRRORRRRRRRRRRORORRRRRRORORRRRRROOROORRRRORRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRROOOORORRRRROORRRRRRRORRORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRORORRRRRRRRRRRRORRRRRORRRRRRORORRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRROORRRRRRRRRRORRRRORRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRORRRRRRRRRRRRORORORRRRRORRRRRORRRORRRORRRORORRORORRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRROOORRRRORRRORRRRRRRRRRRRRROROORRORRRRRORRRRRORRRRRRRRROOORRORRRRRORRRRRRORRRRORRRRRRRRRRORRRRRRRRRRORRRRRORRORRORORRRORRRORRRRRRRORRRORROORRRRRRRRRRRORRRRROROROOOORORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRORRRRROOORRRRRRRRRRRRRRRRRORRRRRORRORRRRROORRORRRRRRRRORORRRRRRRRROORRORRRRRRRRORRRORRRRORRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRROORORRRORRRRRRORORORRRRRRRRRRORRRRRRROORRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORROORRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRORRRRORORRRRORRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRORRRRORRRRRORRRRRRORRRRRRRRORRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRROROORRRRRRRRRRRRRRRRORRRRRROOORORORRORORRRORRRRRRORRRRRRROORRRRORRRRRORORRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRORORROORRORRRRRRRRRRRRORRRRRRRRRRRRORRRRORORROORRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRORRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRORRRRRRRRORRORORRRRRORRRRROORRRRRRRRRRRRRRORROORORORRRRORRRRRRRRRORRRROROOORRRRRRRRRRRORRRRRORRRRRORRRRORRRRRRORRRRRRRRRROORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRROORROORRRRRORRRORRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORRORORORRRRRRRRRRORRORORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRORORRORRORORRRRRRRORRRORORORRRRORRRRRRRRRRRRRORRRRRORRORROOORRORRRRRRRRRRROROORRRRRRORRRRRRRRORORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRORRRORRRORRROORRORRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRORRRORRORRRRRRORRORRRRRRRORRRRRRRRRRRRRROROROOOOORRRRORRRRRRRRRORORRRRORRORRRRRRRRORORRRRRRORRRRRRRORORRRRRRRRRRORRORRRRRORRRROOROORORRRRORORRRRORRRRRORRRRRORRRRRRRRORRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRROROOORORORORRRRRRRRRORRRRORRRRRRRRRRORRRRRRORORROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRROORRRRRRROOORORRRRRRRRRRRRRORORRORRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRORRRORRRROORRRRRRORRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRRRRRRROOORRRRRRORRRORRRRRRRRRRRRRROORORRROORRRROORROORRRRRRORRRRRRRORRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRORRRORRRRRORORRRRROORRRRRRRRRRRRORRRRRRORORRRRORORRROORRORRRRRORRRORRRRRRRRRRRRROROORRRRORORORRRRRRRROORORRRRRRRRORRRORORRRRRRRROOORRRRRORORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRROORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRORRROORRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRROORRRRRRORRRRRRRRRORRORRRRORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORRRROORRRRRORRRRORRROORRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORORRORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRORRRRRRORRORORRRRRRRRORRORRRRRROORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORORORRORORRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRORORRRORORRRRRORRRRRRORORRRRRRRRRRRRORRRRRORRRORRRRROOORRRRRRORRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRRRRRORRRRRRRRORRRORRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRORROORRRRRRORRORRRRRRRRRRRRRRRRORRORRRRRRRRORRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRRRRRRRROORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRRRORORORRRRRRRRRORRRRRRRROROORORORRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRROROORRRRRRORRORRORRRRORORRRRRORRRRRRRORRRRRRRRORRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRROOORRRRRORRRORRRRRRORRRRRRRRRRRORRRRORORRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRORRRORRORRRRRRRRRRRROORRRRRRRRRRROORORRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORORROORRRRRRRRORRRRRRRROORRRRRRRRRORRORORRRRRRRRRORRRRRRORRRRRRRRRRORRROORRRRORRORRRRRORRRRRRRRRRRRORRORRRRORRRRRRRRORRRRRORRRRORORRORRRRRORRRRRRRRRRRRROORRORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRRRRRORORRRRRRRRRRORRRRROORRORRRRRRRRRRRRRORRRRRRRRROROORRRRRRORRRRRORRRRRRRRRRRORROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRORRRRRRORORRRROORRRORRRRORRORRRRRRRORRRORRRRORRROORRRRRORRORRORRRRRRRORRRRRRRRORRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRORORRRRRRRROORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRROROROORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRORRRRORRRRRORRRRRROORRRORRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRORRRROORRRRRRRRRRRRRRORROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRRORRORRRRRRRRROORRRRRRRRRRRRROORORRORRRRRORRROORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRROORRORRRRRRRRRRORRRORRRRORORRRORRRRRRRRRRRROORORRRRRRRORRRRORRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRORRRORORRRRRRROORRRRORRRRRRRRRRRRRROORRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRRORRRORORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRRRORRRRRRRRORRRRRRORRRRROORORRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORRRRORRRRRRRRORRRROROORORRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRROORRRRRRRRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRORRROORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORRRRORORRRRRRRRRRRRRRRORORORRRRORRRRRRRRRRRRORRRORRRORRORRRRRORRRRORRRORRRRRRRORRRORRRRRRRRRRORORRORRORORRRRORRRRRRRRRRRRRORRORRORRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRORORRORRRRRRRRRRRRRORRRRRROORRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRORRRRRRROORRRRRRRROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRORRRRORRRRORRRRORRRRORRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRORRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRORRRRRRRRRRRROORRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRROORRRRRRRRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRRRRRORORRRORRRRRRRORRRRRRRROORRRORRORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRROORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRORRRRORRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRORRRORRRRROORRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRORRRORORORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORORRRORRRRRRRRRRRRRORRRROORRROORRORRRORORRRRRRRRRRRRRRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROORRRORORRORRRRORRRRORRRRRRORRRRRRRRRRRORORORRRRRORRRRRRRRRORRROORRRRRRRRRRRRRRRRORORRRORRRRRRRRRRORRRRRRORRRRRROORRRORRRRRRRRRORRRRRORRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRRRRROOOORRRORRRORRRRRRRRRRRRRRRRORRORRORRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRORRRRORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRORORORRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRROORORRRRORRRRROORRRRORRRRROORRRRRRRRRRRROROROORRRRRRRORRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRORRRRRRRRRORRRROORRRRORRRRRRRRRRRRRORRRRORRRRORRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRROORRORRRRRRRORRRROORRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRROORORRRORRRORRRORRRRRORRRRRRRORORRORRRRRRRRRORRRRRRORRRRORRORROOORRORRRRRRRRRORROORRRRRRRRRRORRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRORORORRORRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRROORRRRORRRRRRRRRRRRRRRORORORORRRRRRORRRRORRRRRRROORRRRORRRORRRRRRRRORORRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORORRRRRRRROOORORRRRRORRRRRRRORRRRRRRROORORRORROORRRRRRRRRRRRRRRRRRRROROORRRRORRRRRORRRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRRRRORORRORRRRORRRRRRRRORRRORRRRRRORORRRRRRRORORRRROORRRRRROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRROOORRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRORORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRROROORRRRRRRRRROORORRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORORRRRROORRORRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRROOOROORRRRRRRRRRRORRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRORRORRORRORRORORRRRRRRRORRRRRORRRRRRRRRRRROORORRRRROROORRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRORRRORRRORRRRRRRRRRROORRRRRRRRRORRRRRRRORORRORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRRORRRRORRRRRRRORRRORRRRRRRRRROROORRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRORRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRROORRRORRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRORRORRRRRORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORORORRRRRORRRORORRRRRRRORORRORRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRORORRRRROORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRROORRRRORRRRRRRRRRRRORORRRORRRRRORRRROORRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRROORORRRORORRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRORRORRRRRRORORRRORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORRRRRRRRORRRRRRRORORRORRRORORRORRORRRORORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORRRRORRRRRRRRROOOROORRRRORRRORRRRRORROORRRRRORRORRRRRRORRRRRRRRRRRRRRRRORORRRRRORRRRRRRRORRRRORRRRRORRORRRRRRORRORRORORRRRRRRRRRRRORORRRORRRRORRORORORRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRORRRRORRRRRRRRRORRRRRRORRROORRRRORRORRROROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRRRRRRRRORRROROOOORRRRRRRRRRRRRRRRRORRRRROOOROORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRROORRROORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRORRRRRRRRORORRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORORORROORRRRRRRRRRRRRRORRRORRRRRORORRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORORRRRRRRORRORRRORORRRORORRRRRROORRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRROORRORRRORRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOORRROORORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRORRORRORRRRRRRRRRRRRRORORRRRRRRRRORORRRRRRRORRORRRORRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRORRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORORRRRRROORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRROORRRRRRRRROROORORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRORRORRROOOORRRRORRRRORORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRORRORORRRRRRRRRRORRRRRORORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRROOORRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRROORRORRRRRRORRRRRRRROORRORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRRRRRRRRORRORRRRRORRRORORRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRORRRRORRORRRRRORRRRRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRORRRROORRRROROORRRRORRRRRRROORRRRRRORRORORRRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRROORORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRORRRRRRRORRRRORORRORORRROORRRORRRRORRRRRRRRRRORRRORRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRORROORRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRRORRORRRORRRRRRORORRRRRRORRRRORROORRRRRRRORRRRRRRRRROOORRRRRROORRRRRRRORRRRROORRRRRRRRRRORORRRRRRORRRRRRRORORRRRRRRORRRRRORRROROORRRRROORRRRRRRROOORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRORORRRRRORRRRRRRORRRRRORRRRRORRORRRRRRRRRRORRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRORRRRRRRRRRRRRROOROOORRRRRRRRORRRRRRRRRRRRORRRRRRRRORORRRRRROOORRRORRRRORRRRROORRRRRRRORRRRRRRORRRORRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRROORRRORRRRRRORRRRORORORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRROROORRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORORRORRRRRRRRRRRRRRORORRRRRRRORORRRRORRORRRRRRRRORRRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRORRRRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRORORRRRRRRRRRRRORORRORRRRRRRORRORRRORRRRRORRRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRORRRORRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRORRORORRRROORRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRORRRRRRRRRRRRORRORRORORRROORRRORRRRROROORRRRORORRRRRRORORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRORRRRRRORRRRRORRRRRRRORORRROROORRRRRRORRRRORRRRROORRRRRRORRRRRRRRORRORRRRRORRRORRRRORRRRRRRRRRRRRRORRRRORRRRRRROORORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRORRRRRORRRRRRRRORRRRRRRRORRRRRRRORRRRROOOORRRRRRRRRRORRORRORRRORRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRROORRRORRRRORRORRRRRORRRRRRRRRRORORRRRRRORRRRRRORRRRRRRRRRORRRRRRRORORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORORRORRRORRRRORORRRRORRRRORRRRRORRRORORRRRRRRRRRRRRRROOORRRRORRORRRRRORRRORRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRORRRRRORORRORRRRRRRRORRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRRRRRRRRRORRRRRRORORRRRRORORRRRRRRRRRRRRRRRROROOROORRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRROORRRORRRRRRORRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRRRRRORORRORRRORRRRRRRRORRRRRRRRRRRORRRRRRRORRROORRRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRROORRRRORRRRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORORRRRRRRRRORRORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRORRRORRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRORRORORRRRORRORRORRORRRRRORRRRRRRRRRORRRRRROORROORRRRRRRRRRRRRRROROOORRRRRRRORRRRORRORRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORORRRRRRRORRRRRRORRRRRRRRRRORORRRROORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORROROORORRRRRRRRRRORRRORORORRRRORRRRORROORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRORORRORORORRRRRRORORRRRRRRRRRORORRORRRRRRRRRRRRORORRRRRRRRROOROORRRRRRRRORRORRRRRRRRORRRRRORROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRORRRROOORRRRORRRRRRRRRRORRRRRRRORRRORRRRRORRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORORRORRRORRRRRRORRRRRORRRRRRRRRRRRRRORRORRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORORRRRRORRRROORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRORRRRROROROORRORRORRORRRRRRRRRRRRRORRRRRRRRORRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRROROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROROORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRORRORRORRRORRORRROORRRRRRRRRRRORRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRROORRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRROOORRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRORRRRRRRRRRORORRORRROORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRRRRORRRORRRRRRRRRORRRRRRRORRROORRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRORRRRRRRRRORRRRRORRRRRRROORRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRORRORRORRORORRRROORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRORRRORRRRRRRRRORRRRRRORRORRRRORORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRROORORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORROROOORORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRORRRRRRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRORRROOORRRORRRRROORRORRRRRROORRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRORORRRRRRRRRRRRRRRRRORRRRRORRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRORRRRRRRORROORRRROROORORRRRRRRRRRORRRRRRRRRRRRRRROORROORRRRRORRRRORORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRORRRORRORRRRRRRORRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORORRRRORRRRORRRRORRORRRRORORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRRROROORRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRORRORRRORRRRRRRRRORRRRRRRRRRRRRRRORORRORRRRRRRRORORRRRRRORRRRORRORRRRORRRORRRRRRRORRRRRRORORORRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRORRROORORRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORORRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRORRORRRRRRORRORROORRRRRRORRRORROORRRRRRRORRORRRRROOORRRRRRORRRRRRRRRORRRORRRRRRRROROORRRORORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORORRORRRRORRRRRORRRRRRRRRRORORRORRRRRRRRRRRROORRRRORORRRRRRRRRRORRORRRRRRRRRRRORRORRRORRRRRRRRRRRRRRORORRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRORRRROORRRRORORRRROROORRORRRORRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRRORRRRORRRRRRORRRROORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORORRRRRRORRORRRRRRORRRRRRRRRORRRORRRRRRRRRRRORORRRRRRROORRRRORRORRRRRRORRORORRRORRRRRRRRRRRRRRORRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRORRRRRRRORRROORRRRRORRRRORRRRORRRRRRRRORRRRRRROORRRRRRROORRRRRRRRRRRRRRRRROROOORRRRRRRRRRORRRRRRRRRRRRORROROORRRRRRRROORRRRRORRORORRORORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRORRRROORRRRRRRORRRRRRORRRRORRRORROOROORRRRRRORORRROORRRRRRRRRORROROOORRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRORRRORORRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRROORORRRRRRRRRRORORORRRRRRORRROOROORRRRRRRORRRRRRORORRORRRRRRRORRORRRRRRORROORRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRORORRRRRRRORRRRRRORRRORRRRRRRRRRORRRRRRROORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRORRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORROORRRRRRRRRRRRRRRORRORRROORRRRRRORRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRORORORRRRORRRRRRRRRRRRORROROOORORRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRORRORRRRRRRRRRRRRRORORRRRRRRRORRRORRRRRRRRRRRRORRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRORRRORRRRRORRRRRORRRRRRRRRROORRRRRRRORRRORRRRRRRRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRROORRRRRRRRRORORRORRRORRRRRRRRRRRRRORORRRRRRRRRORRRORRRRORRRRRRRRORRORRRRRRRRRRRRRRRORRRORRORRRRRORORRRRORRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRORRRORRRORORRRRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRROORRRROORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRORORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRRRRRRRRORRORRRRORRRORRROROORRRRRRRROORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORROORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRROORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORRRROORRORRRRRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRORRORORRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORORRORRRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORORORORRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROOORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORORRRRRRRRRORRROORRRORRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRORRRORRRRRORRORRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRROORRORRRRRRORORRRORRRRORRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRORRROOOORROOORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRORRRORRRRRRORRRRRRRRRRRROORORRRRORROORORRRRORRRRRRRORRRRRRRRRRRORRORORRORRORROROORORRORRRRRRRRRRRRRORORRRRRRRRRRRRRORROORRRRORROORRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRROORRRRRORRRRRRRRRRRRROOOORRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRRORRRRRRRRRRORRRRRRRRRRRORROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRROORRRRRRRORORRRRRRRRRRRRRRRROORRRRROORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRORRORRORORRRRRRRRRORRRRRRRRRRRORORORRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRORROORRRORRRROOORRRRRRRRRRRRRRRORRRRRRORRORRORRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRORRRRRRRROORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRORRRRRRRRRRORRRRORORRRRRRRRORRRRRRROORRRRORRORRRRRRORRRRRRRRRRRRORROORRRRRRRORRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRRRROORRRRORRRROORRRRRROORRRORRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRORRROROORRRRORRRRRRRRROORRRORRRRORRRRORORRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRRRRRROROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRROORRRROORRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRROORRRRRRORRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRROORRRRRROORRRRRRRRRRORORRRRRRORRROORRRRRORRRRRRRRRRRRRRRRRRRRRRROORORORRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRRROORRORRRRRORRRRRRRRRRRRRRRRROOORORORRRRRORRROORORORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRORRRRORRRRRORRRRRRRRRRRRRRRORORROORRRORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRORORRRRRRORRRRRORRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROOOORRRRRORRRRRRRRRRRRRORORORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRORRORRRORORRRRRRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRORORORRRRRRRRRRRRRRRRRRRORORRROORRRRRORRRRRRRORRRRRORRRRRRORRRRRRRRORRRRRORRRRORRRRRRRRRORRORRROORRRRRRRRORRORRRRORRRRRORROORRORRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRORRRRRORRRRROORRRRRRRORRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRORRORRRRRRRRRRRRORRRRROORRORRRRRRORRRRRRORRRROORORORRRORRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRROORRORRRRORRRROORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRORRRRRROORRORRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRORRRRORRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRORRROORRRRRRORRRRRRORRRORRRROORRROORRRRORRRRRRRRRORRRRRRORRRRRRORRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRROORORRRRRRRRORORRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRORORRRRRRORRRRRRRRRRRORORRORRRRRRRRRORRRRRORRRORRRRRRORRRRRRRRRORRRRRRORRRROORRRRRRORRORRRRRRORORRRORRRRRORRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRORRRRRRRRRRORORRRRORRRORORROORROORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRROORORRRRRRRORRRRORORORRORRRORRRRRRROORRRRRRRORRRRROORRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRROROORRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRRORRRRRRRORRRRRRORROORRRRRRRORRRROORRRORRORRORRORRRRRRRRRRRRRORRORRROORORRRRRORRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRROOORRRORRRRORORORRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROORRRRRORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRROORRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRORRRRORRORRRRRRORRRRRORORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRORRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRROORRRRORRRRRORRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRORRRRRRRRRRRRRRORRRRRRRRRORRRRORRRORORRRRRRRROORRRRRROORORRRRRRRRRRROORRRRRRRRRRRRORRRRRROORRRRROORRRRRRRRRRORRROORRRORRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRROROORRRRROORRRORRRRORRRRRRRRORRRRRRRRORRRRRRORRRRORRRRRRRRRRRORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRROORRRRRRORRROORORRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRORRRORRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRROORRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRORORRRRORRRRRRRROORORRORRRORRRRRRRRRRRRORRRORRRRRRRRRORRORORRRRRRRORORRRRRORROORRRRRRRRROORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRRRRORRRRRRRROOORORRORORORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORORRRRRRORRRRRORORRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRORRORRORRORRORRRORRRRRORRRRRRRRRRORRRRORRRORRRRRRRRORRRORRRRRORRORRORRRORRRRRRRRRRRRRRROROORORRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRORRRRRRORORRRRRRRRRRRRRRORRRORRORROORRRORRRORRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRORRRRORRRRRRRORRRRRORORRRRRORROORRRRRRRRORRRRRRRRORRORRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRORRRROORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRORRRRRORRORRRRORORRRRORRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRORROORROORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRROROROORRRRROOORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRR\n"
  },
  {
    "path": "challenge1/tests/mon10a.out",
    "content": "405963\n"
  },
  {
    "path": "challenge1/tests/mon10b.in",
    "content": "1000000 17\nOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOROOROOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOROOROOOOROOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOROOOROOOROOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOROORROOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOROROOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOORROOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOROOOROOOOOOOOOOOOROOOOOOOOROOROOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOORROROOOROROOROOOOOOROOOOOOROOOROOOOOOROOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOROOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOROOROOROROOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOROOOROOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOORROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOROROOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOROROOROROOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOROOOROOROOORROOOROOOROOOROOROOOOOOOOOOROORROOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOORROOROOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROORORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOROOOOROOROOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOROOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOROOOOROOOOROOOOORORROORROOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOROOROOOOOOOROOROOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROROOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOROOOROOROOOOOOROORROOROROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOORORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOROOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOORORROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOROOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOROOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOROOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOROROROOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOROOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOORROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOORORROOOOOOOOOOROOORORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROROOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOROOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOROOOROROOOOOOOOROOOOOOROOOOOOOOOROOROOOOOOOROOROOOOOOOROOROOORROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOROOOROOOOOOOOOOOOROOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORORROOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROROOOROOOOOROOOOROOOOOOOOOROOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOORROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOROOOOOOROROOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORORROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOROOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOORRROOOOOROOOOOOOOOOOOOOOROOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOROORROORROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOROOROOROOOOOOOOOOOOROOROOORROOOOOOOOOOOOOOROOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOROROROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOORRROROOOOOOOOOOOOOOROOOOROOOROOORROROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOROOROOROOOOOOOOOROOOOROOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOROOOOOOOROOROOOOORRROOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOROOOOOOOOOOROOOOROOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOROOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOORROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOORORROROOOROOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOROOOOOOOORROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOORROOROOOOROOOOOOOOROOOOOOOOOOOOOOROROOOOORROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOORROOOOOROOOOOOOROROOOROOOOOOOOOOOOOOOOOOROROOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOROOOOOOORROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOROOOOOROROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOROOORORROOOOOOOOOOOOOOOROOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOROOOOOROOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOROOORROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOROOOROROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOORORRROOOOOOOOOOOOOOOOOOROOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOROORROOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOROOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOOOROOOOOOROROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOROOOOROOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOROOOROOROOOOOOOOOROROOOROOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOROOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROROOOOOOOOOOROOOOORROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOROOOROOOROOOOOROOORRROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOROOOROOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOROOOOROOOROROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOROOOROOOROOOOORROOOOOROOOOOOOOROROOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOORROOOOROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOROOROOOOOOROOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOROOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOROOOOOOOOROOOOOOORROOOOOOOOOROOOOROOOOOOOOOOORROROOOOROOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOORROOOOROOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOORROOOROOROOOOROOOOOOOOOOOOOOORRORROOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOROOOROOOOORROOROOOOORROOOOOORROOOOOOOOROOROOOOOOOROOOROOOOOOOROOOROOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOORROOOROOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOROOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOROOOROOOOORROOOOOOOOROOOOOOOROROOOROOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOORROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOROOROOOOOOROOOOOOOROOOOOROOORROROOROOOOOOOOOOOOOOOOORORROOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOORROOOOOOOOOROOROOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOROOOORROOOOOOOOOOOOOOOOOOOOOOROOORROOROORROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROORROOOOOOOOOROROOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROROOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOROOOOROOOOOROROROOOOROROOROOOOOOOOOOOROROOOOOOOOOOROOROOOOOOROOOOROOROROOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOROOROROOOOORROOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORRROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOROOOOOOROOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOROROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOORORRROOROROOOOROOOOOOOOOROOOROOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOROROOOOOOROOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOORROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOORROOOOOOROOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOORORORROOOOOOOOROOOOOOROOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOROOOOROOOOOOROOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOROOROOROROOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOROOOOOOOOORROOOOOOROOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROROOOROOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOORROOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOROOOROROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOROOROOOROOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOORROOOOOROOOROOOOOOOROROOOOOOOOOOOOOOOOOROOROOROOOOOOOOOROOOOOOOOOOOROORORROOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOROOOROOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOROOOROROOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOROOROOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOROOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOORORROOOOOOOOROOROOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOROOOOOOROOOOOOROOOOOOROOROOROOOOOOOROOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOORROROOOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOROOOOOORROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOORROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOROOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOORROROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROROOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORROOOOROOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOORROOOOROOOOOOROOOORROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROROOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOORROOOOOOOROOOOOOOOORROOOOROOOOOOORROOOOROOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROORRROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOROOOOROROOOROORROOOOOOOOOOOOORROROROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOROROOROOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOORORROOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOORROROROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOROROOOOOOOOORROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOROOOOOOOORROOOOOROOOROOOOOOOOOORROOOOOOOROOOROOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOROROOROOOOROOOOOOOOROOOOOOOROOOROOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOROOORORROROOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOROOOOOORROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOORRROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOROROOOROOOOOOOROOROOOOOOROOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOROROOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROORRROOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROROOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOORRROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOROOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOROROOOOOOORROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOROOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOORROOOOOOOORROOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOORROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOROROOOOOOOOROOOOOOOOOOOOOOORROORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOORROOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOORROOOOOOROROOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOROOROOOOROROOOOOOOOROOOOOOOOOOOOROOROOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOROOOOOOOOOOOOOROOROOROOOOROOOOOOOROOOOOOOROROOOOROOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOORROOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOORROOOROROOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOROOOOOOROOOOROROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOROOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROROOOOOOOOOOROOOOOOOROOOROOORROOROROOOOOROORROROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOROOROOROOOROOOOOOOOOOROOOOOOROOROOOOROROOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOORROOOROOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOROOOOROROOROOOOOOOROOOOOOOROROOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOROOROOOROOOOOOROOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOORRROOOROOOROOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROORROOOOOOROOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOROOOOOOROOOOOOOOOOROOOOROROOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROORORROOOOROOOOROOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOROOOROROOORORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROROOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOORORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOROORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOROROOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOORROOOOOROOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOROOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOROOOROOOOOOOOOROOROOOOORROOOROORROOOOOOOROOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOROOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOROROROOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOROROOORORROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOROOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOROOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOORORROOOOORROOOOOOOROOOOOOROOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOROROOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOROOOOOOOOOOOOOOOOOOOROOROOOOROOROOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOROOROOOOOOOOOOOOOOOOROOOOOROOOROOOOOOROOOOROOOOOOOOOOROROOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOROROORROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOROOOROOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOORROOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOORRRORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOORORROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOORROOROOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROROORROOOOOOOOOOROOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOORROOROOOROOOROROOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOORROOOROOORROOOOOOOROROOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOORRROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROROOOOOROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOROOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOROOOOOOOOROOOOOOOOOOORROROROOOOOOROOOOOOOOOOOOOOOOORROOROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOORROOOOOOOOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROORROOOOOOOOROOOROOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOORROORROROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOROOROROROROOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOORRRROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOROOROOOOROOOOOOOOOOOOOROOOOOOROOROOOOOROOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOROOOOROROOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOROOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOROOORROOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOORROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOORRROOOOROOOOOOOOOOROOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOROOOORORORROOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOORRROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOROOOOROOOOOOOOOOOROROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOROOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOORROOOOROOOOOOOOOOOOOOOOOROOROOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOROOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOROOROOOOOOROOROOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOORROOROOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOROOOROOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOORROOOOOROOROOOOOOOOOOROOOROOOOOOROOOOOOOOROROOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROORROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOROOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOORROOOOOOOOOOROROROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOROROOROROOOOOOOOOOOOOOOROOOOROORROOOOROOOROOOOOOOOOOOOOOOORORORROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOROOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOORROOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOROOROOROOOROOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOROOOOOROOROOOOOOOOOOOOOOROOOORROOOOOOOOOOROOOOOOOOROOOOOORORROOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOORROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROROOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOROOOOROOOOOOOOORROOOOOOOOOOOOROOOROOROOOOORROOOOOOORRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOROOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOROOROOOROOOROOOOOOROOOOOOROOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOROROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOORROOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROROOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOROOOOOOORROOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROROOOOOOOROROOOOOOOOOOROOOROOROOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROROROOOOOOOOOOOROOOOORROOOOROOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOROOROOOOOROROROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOROROOROOOOOOOOOOROOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOROOORROOOOOOOOOOOOOOOOOOROOOOOOOROORRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOROOOROROOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOROOOOOOORROOOOOOROOOOOOORORROOOOOOOOROOROOOOOOOOOOROOOORROROROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOORROOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROROOOOOROOOROOOOOOOOOOOROOOROOROOOOOROOOROOOOROROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOROORROOROOOOOOOOOOROOOOOOOOOOROROOROOOOOOOOOROOOROOOROOOROORROROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROROOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOORROOOOOOOROOOORROROOOOOOROOOOOOOOOOOOOOOOOROORROOOOOOOROOOOROOOOOOOORROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROORROOOOOORRROOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOORROOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOORROOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOROROROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOROOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOROOROROOOOOOOOOOOOOOOOOOROOOROORRRROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOORROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOROROOOOOOROOOOOOROOOOOOOOOOOOORORROOOOORROOROOOOOOROOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOORROOROOROOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOROOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOROOOOOOOOOOROOOOOOOROOOOROOROROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOROOROOOOOOROOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORRROOOOOOROOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROROOOOOROOROOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOROOOOOOOOOOOOOOOOROORROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOROOOROROOORROORORROROOOOOROOROOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOROOOOROOOOOOOROOROOOOOOOOOOOOOOOOOROOOOORROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROROOOOROOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOROOROOROOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROROOOOROOROOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOORROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOORROROROOOROOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOROOOOOROOOOOOOOOROOOOORROOOOOOOOOOOOOORROOOROOOOOOOOOOOROOOORRROROOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOROOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROROOOOOOROOOOORROROROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOROOROROROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOROOOOOOOROROOOOOOROOOOOOOOROOOROOOROOOOOOOOOOOROOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOROROOOOOOOOOROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOROROOROROOOOORROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOORRROOOOOOOOOOROOOOROOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOROOOROOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOROOOOOOROROOOOOOOOOOOOOROOOROOOOOOOOOOORROOROOORROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOORRROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOROROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROROROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOROOROROOOOOROROOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOROROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOORROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOORROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOROOOOOROOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOROOOOOOOOROROOOOOOORRROOOOOOOOOOOOOOOOROOOOOOOORRORROOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROROOOROOOOROROROOOOOOOROOROOROOOOROOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOORROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOROOOOOOROOOOOOROOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOROOROOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROROOOROOOOOROOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOROOOOOOOORROOOOOOOOROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOORROOOROROOOROOROOROROORROOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOROOOOOOOOROOOOOROOOOOROROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOORORROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOROORROOOOOOROOOOROOOOOOOORROOOOOROOROOOROOROOOOOOORROOOOOOOOOOOOOOORORRROOOOOOOROOROOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOROOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOORROOOOOOORROOROOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROORROROOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOROOOOROOOOOROOOOOOOOOOOROOOOROOROROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROROOOROOOOOOOROOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOROROOOROROOOOROOOOOOOOOOOOOOOOROOROOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOROOROOORROOOOROOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORRROROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOROOOOOOROOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROROOROOROOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOROOROOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROOOOOOOROOOOOOOOOOOOOOOOORORROROOOOOROOOOOOOOOOOOOOROOROOOOOOOROROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOROOORROOROOOROOOROOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROROOOROOOORRROOROOOOOOOOOOROOOOOOOROOOROOROOOROOOOOOOROOOOORROOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROROOOOOROOOOOOOOOOOROOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOROOOOOROOROROOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOROOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOROOROOROOOOOOOROOOOROOROOOOOOOOOORORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOROOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOROROOOROOOOOOOOOOOOROOOOOOOOROOROROOOOROOOOOOOOROORORROOOOOOOOOOOOOOOOROOOOROOROOOOOOOROOOOOOOOOOROOROOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOORROOOROOROOOOOOOOOOOOOORRROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOROOOOOOOROOOROOROROOOOROROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOROOOORROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOROROROOOOOROOOOOOOOOOOROOOOOROOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROORROOOOOOROOOOOOOROOOOOOOOOROOOROOOOROROOROOOOOOOOOOROOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOROOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOORROOOORROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOROROOOOROOOOOOOOROOOROOOOOOOOOOOOOORORROOOOROOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOROROOOOOOOOOOOOOROROOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOORROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOROOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOROOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOROOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOORRROROOOROROOOOOROOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOORROOOROOOROOORROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOROOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOORROOOOOROOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOROROROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROROOOROOROOROOOOOOOOOOOOORRROOOOOOOOOORROOROOOOOROOOOOOOOOROROOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOROOROROOOOOOOOOOOOOOORROOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOORROOOOORROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOROOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOORROOOROOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROROOROOOOOROOOOOOOOOOROOOOOOOROOOROOOOOROOOOOOOOOOOROROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOORROOOOROOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROORROOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOROOROOOORROOROOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROROOOOOOROOROOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOROOOOOOOOROOOOROOROOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOROOORROROOOOOOOOOOOOOOOOOOOOOROOROORORRROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOROOOOOOROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOROOOOOOROOOROROOOOOOOOOOOOOOROOROROOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOORROOOOOOOOOOROOOROOOOOOOOOOOROOOROOOOOORROOROOOOOROOOOOOROOOOOOOOROROOOOOROOOOOORORROOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOORROORROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORORORORROOOOOOORRROOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOROROOOROOROOOOOOOROOROOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOROOORROROOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOORROORROOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOROOOOOOOROOOOOROOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOORROOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOROOOOOOROROOROOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORRROOROOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOROROROOOOROOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROROOOOOOOOOROOOOOROOOOOROOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOROOROOROOOOOOOROOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOROOOOOOROOOOROOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROROOROROOOOOOOORROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOROOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOORROOOOOOORROOOOOOOOROOOOOOOORROOOOOOOOOOOORROOOOOOOOROOOOOOOORROOOOOOROOOOOOOROOOOOOOOOOOROOOOROOROOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOORROOOROOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOROROOOOORROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOROOROOOOOROOROOOOOOOROOOOOOOOROOOOOOORROROOOOOROROOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOROOROOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOROROOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOORROROOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOROOOROROOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOROOOOROORROOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOOOOOOROOOOOROOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOROOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOORROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROROROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROORROROOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOORORROOOOOOOOROOOOOOOOOOOOORORROOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOROOOOROORROOOOOOOOOROOOOROOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOROOOOOOOOROOOORROOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOROROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOROOORROOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOORROOOROOOROOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOROOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOROOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROROOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOORROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOORROOROOOROOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOORROOORROROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOROROOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROROROOOOROROOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOROOOOROOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOORROROOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROORROOOOOOROOROROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOORROOOROOOROOOOOOOOOOROOORROOOOOOOOOOROOOOOOOROOOOOROROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOORROOORROOOOOOOOOOOOOOROOOOOROOOROOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOORRROOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOORRROOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOROOOROOOOOOOOOOOROOOROOOOOROOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOORRROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOOOOROOROOOOOOOOOOOOORRORROOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOORORROOOOOOOOOOORORRROOOOOROOOROOOOOOOOOOOOROOOOOOOOOROOOOROOROOOROROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROROOOOOOOROROOOOOOOOOROOOOOOORRROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOROOROOROOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOORROOOOOOROOROROROOOOOOROOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOORROOOOORROOOROOOOOOOOOOOOOOOROOROOOOOOOOROOOORROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOROOROOOOOOROOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOROOOOOOOOOROOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOROOOOROOROOOOOOOOOORRROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOORROOOOOOOOORROOOOOOOOOROROOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOROOORROOOROOOOOROOOROOOOOOOOROOROOROOOOROOOOOOOORROOOOOOROOROOOOOOOOOOOOROROROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOORRRROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOROOOROOROOOOROOOOOOOOROOOOOOROOROOROOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOROOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOORROOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOROOROOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOROROOOROOOOOOOROOOOOOOOOOOOOROOROOOOROOOROROOROOORROOOOOOOOOOOROOOOROOOOOOOOOROORROOROOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOORROOOOROOROOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOORROOROOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOORRROROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORRROOOOOOOOOROOOROOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROROOOOROOOOOROOOOOORROROOROOOOOROOOOOROOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOORRROOOOROOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOORROOOROROOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOROOROROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOORROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOROOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOROOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOORROROOOOOOOOOOOOOOOOROOOOOOROROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORORROOOOOOOROOOOOOOROOOOOOOOOOORRRROOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOROOROROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROROOOOOOROOOOOOOROORRROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOROROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOORROROOOOOOOOOOOROOROOOROOOOOOROOROOROOOOOOROROOOOOROROROOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOROOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOORORROOOOOOOROOOOOOOOROROOOOORORROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOORRROOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOOOOOORROOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOROOROOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOORROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROROOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROROOOORROOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOORROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOROOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOORRORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOORROOORORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOROOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROROOOROOOOROOROOROOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROROOOOOOOORROOOOOOORORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROORRROOOROOOOOOROROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOORRROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOORRROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOROOROOOOOOOOOOOOROOROOOOORROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOROOROOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOROOOOOORROOROOOOOOROOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOROROOROOOOOOOOOOROOOROROROOOOROOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOROOOOROOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOROOOOROROOOOOOOOROOROOOOOOOOOOROROOOOOOOOOOOOOROROOROOOOOOOOOOOROOOROOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORRROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROROOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOROOOOOORROROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOROOOOOOOOROOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOROOOOOROOROOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOORROOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOROOROROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOORROOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOORROOOOOOORRROOOOOOROOOOOOOOOOOROOOOOORROOROOOOOROOOROOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOORROROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROORORROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOORORROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROROOROOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOROOROOOOOOOOOROOOOOOROOROOROOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOORORROOOOOOOOOROROOOOOROOOOOOOOOOOOROOOOOROROOOOOOOOOOOOROOOORROOOOOOOROOOOROOOOOOOOROOOORORROOOOOOOOOOROOROOOOOOROOOROOROOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOORORORRROOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOROOOROOOOOROOOOORROROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROROOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOORROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOROROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOROROROOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOROOROOROOOOOROOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOROOOORROOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROROOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOORORROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOROROOOOROOOOOOOOOOOOOROOROOORORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROROOROOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOROROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOORROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOORORORRROOOOOOROOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOORROOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORRROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOORROOOOOOOOOOOROOOOOOOORROOOOROOROOROOOOORROOOOOOOOOOOOOOORROOOOOOORORRORROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOROROOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOROOOOOOOROROOROOROOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOORROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOROOROOOOOROROROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOROOOOOOOOOOORROOROOOOOROOOOOOOOOOOOOOOROOROOROROOOOOROROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOROROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOROOOOOOOOORROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROROOOOOOOOOOOOROOORROOOOOOOROOROOOOOOOOOOOROOOROOROOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOROROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOROOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOORROOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOORROOOOOOOROOOOOROOOOOOOOROOOOOOOOROOOOOROOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROROOOOOOOOOOOOOROOROOOOOROOOOROOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOROOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOROOOROOOOOOROOROOOOORROOOORROOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOROOOROOROROROOOOOOORORROOOROOOOOROOOOOOOOOROOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROROOOOOROOOOROOOROOORRROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOORRROOOROOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOORROOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOROOOOORROOOOOOOOOROOOOROOOOOOOOROROOOOOOOOROOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOORRROOROOROOOOOOOOOOOOOROOOOORROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOROOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOROOOOOOROOOOROOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROORROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOORROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOROOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOORRROOOOOOOROOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOROROOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOORROORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOROROOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOORORROOROOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOROOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOROOOOROOOOOOOOOOOOOOOROOROOOOOOOOROOROOOOOROOOOOOROOROOOOOOOOOROOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOORROOOOOOOORROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROROOOOOOOOROOOOROOOOOOOOROOOOROROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOORORROOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOROORROOOOOOOOOROOOOOOOOROOOOOROOOOOOOROOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOROOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOROOROROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOROOORROOOOOOOOOOOOOOROOOOOOOOOROOOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOROOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOROOOOOROOOOOOOOROOOOOROOROROOOOOOOOOOOOOOOOOOOOROOOORORROOOOOOOOORROOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOROOROORROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOORROOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOORROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOORRROOOOOOOOOROOOOOOOOOOOOOOROOORROOOROOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOROOOOOROROOOOROOROOOOORROOOOOOROOOOOROOROOOOOOOOOOOOOROOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOROOOROROOOROOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOROORROOOROOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOROOOOOOOORROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOROROOOORROOOOOOROOOOROOOOOROOOOOOOOOOROOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOROROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROROOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOROOOOOROOOOROOROOOOROOOROOOOOROOOOOROOORRORROROROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROROOOOROOOOOOROOOOOOOOOOOOOOOORROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOORROOOROOOOOOOOROOOOOORORROOOROOROOOOOOOOOORRRROOOOROOOOOROOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOROROOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROORROOOOOOOOOORRROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOROOROOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOORROOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROROOOROOOOOOOOOROOOOOOOOOOORORRRROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOORROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOROOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOROOOOROOOOOOOOOOROOOOOOOOOOOOOROOROOOROROOOOOOOOOOOORROOOOROOOOOOOOOOROROOOROOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOROOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOORROOROOOOOOOOOOOOOOOOORROOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOROROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOORORROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOROROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOORROOOOOOORROOOOOOOORROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOORROOOOOOOOOOOOOOROROOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROROOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROORROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOROOROOOROROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOROOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOROOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOROOOOOORROROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOROOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOROOROROOOOORRROOOOOOOOOROOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROROOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOROOOOROOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOROOOOOOOROOOOOOOOOOOOROOOOROOOOROOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOROOOROOOOROOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOROROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOROOOROOOOOROOOOOORROOOOOOOOOOOROOOROOOOOOOOROROOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROROOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOORROROOOOOOOOOROOROOOOROROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOROOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOROOOORROOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOROOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOROOOOOORROOOOOOOOOOROOOOOOOOOOROOOROROOOOOOOROOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOORROOOOOROOOOOOOROOOOOOOROOOOOOOOOORRROOOROOOOOOOOOOOOROOOROOOOROOROOOROOOOOROOOOOOOOOOORROOROOOROOOOOOOOOOOOOOOOOROOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOORROOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOROOROROOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOROROOOOOOOORROOOOOOOOOROOOOOOOROOROOOOOOROOROOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOROOOOROOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOROOOOOOOORROOOOOOOOOOOOROOOOOOOOOOROROOROOOOROOOOOOOOOOOOOOOOOOOOOORORRROOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROROROORROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOROOOROOOOOOOOOROOOOROOROOOOOOOOOOROOOOOOOOOOOOORORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOORROOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOROOOROOOOROROOOOOOOOOOROOOOOROOROOOOOOOROOOOROOROOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOROOOROOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOROOORROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOROOOROOOOOOOOOOOROROOOROOROOOOOOROOROOROOOOOOOOOOORROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOORROOOOOOORROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOORROOROOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOROOROOOOOOROOOOOOOOOROOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOROOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOROROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOROOOOOROOROROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOROOOOOOROOOOROOOOOROOROOOOOOOOROOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOORRROOOOOOOOOROOOROOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOROOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOORROOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOORROOOOOOOOROORROOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOORROOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOROOOROOOOOROOROOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROROOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOROROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOROOORROOOOOOOOOROOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOORROOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROORROOOOOOOOOOROORROROOOOOOOOOOOROOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOROOOOOOOOOOOOOROROOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOROOOOORROOROOROOOOOROOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOROOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOROOOROOOOOOOOOOROOOOOOROOROROOROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOORROOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOROORROROOOOOOOOOOOOOOOOOOOOOOOOOORROORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOROOORROOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROROOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROROROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROROOROOOOOOOOOROOROOOORROOOOOOROOOROOOROOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOORORROOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOORROOOOOOROROOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOORROROOOOOOROOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOROOROOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOORROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROROOOOROROOOOOOOOOROOOROOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOROOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOROROOOOOORROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOROROOROOOOROOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOORROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOORROOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOROOOOOOOROOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOORROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOROOORROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOROOOORROOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOROOROOORROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOROOOOOOROOOOOOOOOOOOOOOOOORROROOOOOOROOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOORROOOOOROOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOROOOOOOOOOORROOOOOROOOROOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOROOOOROOOOOROOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOROOOOOROOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOROOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOROOOOORROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOROOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOOROOOROROOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOROOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOORROOOROOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOROOOOOOROROOOOOORROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORRROOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOORROOROROOOOOROOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOORROOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOORROOOOOORORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROROOOOROOOOOOOOOOROOROOOOOOROROORROOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROORROOOOOORRORROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOORROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOORRROOOOOROOOOORROOOOOOOOOOOOROOROOOROOOOOOOOROOOOOOROOOOOOROOOOOOOOROOOOOORORROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOROOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOROROOROOOOOOOOROOOOOOORROOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOROOOOOOOROOOOOOROOOOROOOOOOOOROOOROOROOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOORROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOORROOOOOOROROOOOOOOROOOOROOOOOROORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOROOOROOOOOOROOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROROROOOOOOROOOOORROOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROROOROOOOOOOOROOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOROOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROROOOOOOOROOOORRROOOROOOOOROOOOOOROOOOOOOOROOOOOOOOOROOOOOOROOOOROROOOOOOOOOOOOOOOROOOOOOROOROOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOORROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORRROOOOOOOROOROOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOROOOOOOORROOROOOROOOROOROOOOOOOOOOROOOOOOROOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORORRROOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOROOOOROOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOROOOOOOROOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOROOOROOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOROOROOOOOOOOOOOOROOOOOOROOOOOOOOOROROOOOOORROOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOROOROOOOORROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOROOOOROOOORROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOROOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOROOOOROROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOORRROOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOROOOOOROOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOORROOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOROOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOORROOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOROOOROOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOORRROROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOROOOOROOOOOOROROOOOOOOOROOROOOOOROOOOOROOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOROOROOOOOOOROOOOOOROOOOOOROOOOROOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOROOOOOROROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROORROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOROROOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOROOORROOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOROORROOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOROOOROROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOORRROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOORROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOROOOOOOOOOOOROOOOOOROOORORROOOOOROOOOORROOOOOOROOOROOOOOOOOOOOOOROOOOOOOOROROOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOROOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOORRROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROORROOOOROOOOOOROOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOORROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOROROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOORROOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOROROOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOROOOOOOOROOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOORROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOROOOOOROOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOROOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROROROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOROOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOROOORROROOOOOOROROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOORRROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOROOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOROOROOOOOOOOOOOOOROOROOOOOOOOORROOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOORROOOOOOOOROOOOOROOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOROOOOOROROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOROOOROROOOOOOOROORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOROOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOORORROOOOOROOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOORROOOROOOROOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOROOROOOOOOOOOOOOOOOROOOOORROOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORRROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROORROOOOOOOROOOROOOOOOOOOROOOORRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOROOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOROOOOOOROOOROOOOROROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOROOOOOOOORORROOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOROROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOROOOOOROOOOORRROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOROROOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOROROROOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOROOROROROOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOROOOOOOOORORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOROOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOROOOOOOOROOROOOOOOOROROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOROOOOOOOORROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOROOROOOOOOOOOOOROOOOOOOROOOOROOROOROROOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOORROOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOORROOOROOOOOOOOOOOORROOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOROOOOOOOOOOOORROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOORROOROOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOORROOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOORORROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROROOOROROOOOOOOOOOOOOOOORROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOROOOOOOROOOROROOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOROORORROOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOROOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOORROROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROROOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOORROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOORROOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOORRRROOOOOOOOOOOOOROOROOOOROOOOOOOOOOOORORROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOORROOOOROOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOROROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROROOOOOOOOOOOOOROOROOOOOOORRROOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOORROOOOROOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOORROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOROOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORRROOOROOOORROOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOROOOOOOOOOOORROROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOROROOOOOOOOROOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOROOOROOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOORRRROOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOROOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOROOOOOOOOROOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOORROOROOOOOROOOORROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOORROOOOROOOOOOOROOROOOOOOOOOOROOROOOOOOOOOOROOROOOOOOOOOOROORROROOOROOOOOOOOOORRROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROROOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROROOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOROOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOROOOOOOOORROOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOROOOOROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOORRROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROROOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOROROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOROOROROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROROOROOOOOOOOOOOROOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOROOROOROOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOROOOOOROOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORORROOOOOOOOROOOOOOROOORROOROOOROOROOOOOOOOOOOOOROOOROOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOORORRRROOOOOOOROOOOROOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOROOOROOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOROOORROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOROOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOORORROROOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOROOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOROROOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOROOOROOOOOOROOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOROOOOOROROOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOORROOOOOROOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOORORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOROOOOOOOOOOROROOOROROROOROROOOOOOOOOOROOOOOOOOOOOOROOOROOOOROOOOOOROOOOOOOOOOOOOOORROROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOROOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOROOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOORROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORORROOOROROOOOOOOROOOROOOOOOOOOOOOOOOROOOOOROROOROROOOOOROOOOOOOOORROOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOORROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOROOOOOOOOROROOOROOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOORROOOOROOOOOROOOOOORRROOOROOROORORROOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOROOOOOOOOROROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROORROOOOOOOORROOROOOOROOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOROROOOOOOOOOOORROOOOOOOROOOROOOOROROOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOORROROOOOOOROOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOROOOOOOOROOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOROROOOOOOOOOOROOROOOOOOROOOOROOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOORRROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROROOOOORROOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOORROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOROOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOROOOROROROOROOOOROOOOOOOOOORROOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOORROROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOROOOOOOROROOOOOOORROOOROOOOROOOOOOROOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOORROROOOROOOOOOOOROOOOROOOOOOOROOROOOOOOOROOOROORRROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROROOOOOOOOROOOOROOOORRROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOROOORROORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOROOROOOOORORROOOROOOOOOOOOOOOOOOOOOOOOORORRROROROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORRROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOROOOROOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOROOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOORROOOORROROOOROOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROROOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOORROOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOROOOOROOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOROROOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOROOOOOOROOOOOOROOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOROOOOROOOOOROROOOOROOOOOOOOOOOOOROOOOOOROOROOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOROROOOOOOROOROOOOOOOORROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOORROOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOROOOOOOOOOOROROOROOROOOOOOOOOOOOOOOOOOOOROOORROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOROROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOROOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORORROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOROOROROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOROOOORROOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOORROROOOOOOOOOOOOOOROOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOORROORROOROOOOOOROOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROORROOOOOOOROOROROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOROROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOORORROOROOROOROOOROOOOOORROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOORRROOOOOOOOROOOOOROOOOOROOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOORROOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOORORROOOORROOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOROROROOOOOOOOOOOROROOOOOOOROOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOROOOOOOOOORORORROOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOROOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOROOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOROROOOOOROOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOORROOOOOOOOROOOOOROOOOOOOOOOOOOROOOROOOROOOOOOROOROOORORROOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOORROOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROORRROOOOOROOROROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOROOOOOROOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOROOOOOOOOOOOOOOOOOROORROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROROOOOOOOOOROOOOOOOOOOROOOOROOROOOOOORROOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOORROOOORRROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROORORRROOOOOROOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOROROOOOOROOOOOROOOOOOROOOOOOOOOOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOROOOROOOOOOOOOROOOOOOOROOOOOROOROROOOOOOOOROOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOROOOROOOOOOOOOOOROOOROOROOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOORRRROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOROROOOOOOOOROOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOORRROOOOOOOOOOOOOOROOOOOOOOOOOOROOORROOOOOOOOOOOOORROOOORROOOOOOOOOOOOOOOOOOROOOOOOROOOOORROOOOOOOOOOOROOOOORROOOOROROOOOROOOROOROOOOOORROOOOORROOOOOOOOOOOOOOOOOOOROORROOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOROOOOOROOOOOOOOOOOOOORROOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOROOOOROOORORROOOOOOOOOOOOORORROROOOOOROOROOROOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOROOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROORROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOROOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOORROOOOROOOROOOOOOOROOOOOOOOOROOOOOOOOOROOROOOORROOOOOOOOROORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOROOROOOOOOOOOOOOOOOOOOOOOORROOOORROOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROROOOOOOOOOROOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOROOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOORROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOROROOOOOOOOROOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOORROOOOROROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOROOROOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOROOROOOROOOROROOOOOORROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROORROOOOOOOOOOOOOOROOOOOROOOOROOOOOORROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOORRORROOOROOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOROROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOROOOOOROOOROOOOOOOOOOOROOROOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOORROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOROOOROOROOOROOOOOOOOOOOOOOOORORROOOOOOOOOOOOOROOOORRROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOROOOROOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOROROOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROROOOOROOOROOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOROOOOROOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOROROOOOROOOOOOOOOOROOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOORROOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOORORROROOOROOOOOOOOOOOOOOOOOOOOORORROOOOOOOOORROOOOOROOROOOOOROOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROROROROOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOORROOOOROOOORROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOROORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROROOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOORORROROOOOOROOOOOOOOOOOROOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOORROOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOROOOOOOROOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOORORROOOROOOOROOROROOOOOOOROROROOOOOOOOOOOOOOOOOOOOROOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROROOOOROOOROOOOOOOOOOOOOROROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOORRROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOROOOOROOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOROOOOOROOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOORROOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOROOOOOROOOOOOOOROOOROROOOOOOOOOOOROOOORROOOOROOOOOOOOOOOOROOOOOOOROROOROOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOORROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOORROOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOORROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROROOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOROOOOROOOOOROOOOOROOOOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROROOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOORROOROOOOROOOOOROROOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORORORROOROOOROOOOOOROOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOORROROOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOORRROOOOOOOOOOOROOOROOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOROROROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROROOOROOOOOOOOOOOOOOROOOROOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOROOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOROOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOROROOOOOOROOOOOROROOOROOOOOOOOOOOROOOOOOOOOOOOROOOROOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOROOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOORRRROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOROOOOORRROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOORROOOOOOOOOOOOOROOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROROROOOOOOOORROROROOOOOOOOOROOROOOOROOROROOOROOOOROOOOOOOOOOOOOROROOOOOROOOOOOOROOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOROOOOROROOOOOOOROROOOROOOOOOOOROOROOROOORROOOOOROOOROOOOOOOOOORROOOOROOROOORRROOOOOOOOOORROOOOOOOOROROOOOOOOOOROOOOOOOOOOOOROOOOOORRROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOROOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOROOOOROORROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROROOOOROOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOOOROOOROOOROROOOOOOOOOOOOOOOOOROOROOOOOOOOOOORROROOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOORROROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOORROOROOOOROROOROOOOOROOOOOOOOOOOOROOOROROOOOOOROOOOOOOOOOOOOOOROROOOORROOOOOOOOOROOOOROOOOOOOOROOOOOOOROOOOROOOOOOOOOOROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOROROOOOROOOOOOOOOROOROOOROOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOROOOOROOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOORROOOOOOOOOOROOOOOOROOOROOOOOROOROOOOOOOOORROOOOROROOOOOOOOROROOOOOOOOOROOROORROOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOORROOOOROOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOROOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOORROOOOOOOOOOOROOROROOOOOROORRROROOOOOOORROOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROROOOOOORROOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOORROOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOORRROOOROOOOOOOOOOOOOOOROOOOOOROOROOOOOROOOROOOOOOOOOOOOOOROORROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOROOOOOOOOOOROOROOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOROOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOROOOOROOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROROOOOROOOOOOOOOROOROOOOOOOOOOOOORROOROORROOOOOOOOOOOROROOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOROOROOOOOOOOOOOOOOOOORROROOOOOOOOOOOOROOOOORROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOROROOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOROOOOROORROOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORRRROOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOROOROOOOOOOOOOOROOOROROOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOORRROOOOOOOOOOOOOOOOORRORRROOOOOOOORROOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOROOOOOOOORORROOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOORORORROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOORORORORROOOOOOOOROOROOOROOORROORROOOOOOOOOOOROOROOROOOOOROOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOROOROOOOOOOORROOROOOOOOOOOOOOOOOOOOOOROOOOOOOORRRROOOOOOROOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOROOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOROOROROOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOROORROOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOROOOOOOOOROOOOOORROROOOOOOOOOOOOOOOORRROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOORROOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOROOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOROOOOROOOOOOOOORRROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOROOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOROROOOOOOOOOOROOROOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOORROROOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOORRROOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOROOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOORROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOROOOROOOROOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOORROOOOOOOROOOROOROOROOOROOOOOOOORROOOOOOROOOOOOOROOOOOOOOROOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOROOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOORROOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOORROOOOROOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOORROOOOOOORROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROROROROOOOOOOOROOOOOOOOOOOOORROOOROOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOROOOROOOOOOOOROOOOOOORROOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOROOROROOOOOROOOOROOOOOROOORORROROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROROROOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOROROROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROROOOOOROOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOROOOOOOOOROOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOROOOOROOROOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROROOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOROOOOOOOORROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOROOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOORROOOOOROROOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOROOOOOOOOROOOOROOOOOOOOOOOOOROOROOOORROOOOOOOOOOOOOROOOOROOROOROROOOOOROOOOOORROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOORRROROOOOOOOOOOOOOOOROOOOOOOOOROORROOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOROOROOOOOORRORRROOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOROOOOOOOOOOOROOOROOROOOOROOOROOOOOOOOOOOROROOOOROOROOOOOOROOOOOROOOROROOROORORROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOROOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOORRROOROOOOOOOOOOOOOOROOOOOOOROORROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOORROROOOOOOOOOOOOROOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOROOOOOROOROOOROOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOORROOROOOOOOOROOOOROOROOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOORROOOROOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOROOOOOOORROOOROOOOOOOROOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOROOOOROOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOROOOROOOOOOOROOORORROOROOROOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOROOOROOOROOROOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOROROROOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOROROOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOROOROOOROOROROOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOROROOOOOOOOORROOOOROOOOOOOOOOROOOOROROOROOOOOOOOOOOOOOOROOOOOOOOOROROOROOOROOOOROOOOROOOOOOOOOOOOOOORROOOOROOOOOOROOOOOOROOROOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOORRRROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOROOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOORROOOROOOROROOOOOOROOOOOOOOOOOOOORORROOROOOOOOOOOOOOOOOOOOOOORORROROOOOOROORROOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOORROOOOOROOOOROOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOORRROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOROOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROROOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOROOROOOOOROORROOOOOOOOOOOOOOROORORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOROOOOOOOOROOOOROROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOROOOOOOOOOOOOROORROOOOOOOOOOORROOOOOOOOOOROROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROROOOROORROOOOOOOOOOOOOOOOOOOOOOOOORRROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOROOOOOROOOROOROOOOOOOOOROOOOROROOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORORRROOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOROOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOROROOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOROOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOORROOOOORROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOROOOOOOOOROOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOROOROOORRROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOORROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOROOOOOOOROOROOOOOOOOOOOOOROOOROOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOROOOOOOOROROOOOOOOOOOROOOOOOOOOOOORROROOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOROOOOOOOROOROOOOOOROOOOOOROOOOROOOROOOROOROROOOOOOOORROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOORROOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOORROROOROOOOOOOOOOOOOOOOOROOOROOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROROOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOROROOOOOOOOOOROOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROORROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOROROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOROROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOROOOOOOOOOROOROOOROROROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOROOOROOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOROOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOROOOOOOROOOOOOOOROOOROOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOROROOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOROROOOOOOOOOOOOOOOOROOOOOOOOROOROORROOOOOOROOOOOOOOOOOOOOOOOOORRORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOORRROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOROROOOOROOOOOOROOOOOOOOROOOROOROOROOOOOOROOOOOOOOOOOOOOOOOOOOORROOOROROOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOORROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOORROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOORROOOOOOROOROOROOOOOOOROOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOORROOOOOOOOOOROOOROOOOOOOOROROROOROROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROROOOOOROROROOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOORROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOROOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOROROOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOORROOOOOOROOOOOOOOROOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOROOOOROOROOOOOROOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOROROROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOROORROOOOOROOROOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROROOOROOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROROOOOOOOROOOOOOOOOOOOOOOOORORROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOROROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOROOOOROROOOOROROOOOOOOOOOOOOOORROOOROOROOOROOROOOOOOROOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOROOOOOORROOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOROOROOOOOOOOOOOOROOOOROOOOOOOOOROOOOOROOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOORORROOOOOOOOROROOOOOROOROOOOOOOOOOOOORROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROORRROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOROOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOORRROOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOROOOOOOOOOOOOOOROOOROOROOOOROOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOROOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOORROROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOROOOROOROOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOORROOOOOOOOOROOOOOOOOROOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOROOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOORRROOOOOROOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOORRROOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOORROOROROOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROROOROOOOOOOOOOOOOOOOROOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOROOOOROOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOORROOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOROOROROOOOOOOOOOROOOROOOOROOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOROOOROOROOOOROOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOROOROOOOOOORORROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOROOOROROOROROROOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOORROOOOOOOOROOROOOROOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOROOOOOROOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOORRROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROOOOORROOOOOOORROOOOOROOOOOROOROOOOOOOOOOOOOROOOOOOOOOROOORRROOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOROROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOROOOROOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOROROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROORROOOROROROOOOOOOROOOOOOOOOOOROOOOORROROOOOOOROOROOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOROROOOOOORROOOOOROOOOOOOOOOOOORORROOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOROOROOOOOOROROOROROOOOROOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOROOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOORROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOROOOOROOROOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOROOOOOROOROOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOORROOOOOROOOOROOROOOROOOOOOOOOOOOOOOOROOOROROOOORROOOOOOOOROOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOROOOOOOOROOOOROORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROROOOROOOOOOOOOOOOROOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOORORROOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROORROOOROOOOOOOOOOOOOOOOOOOOOORRORROOOOOOOOROOOOOOOOOOROOROROOROOOOOOOOOROOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOORROROOOOOROOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOORORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROROOOOOOOOOOROOROOOOOOROROROROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOORROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOORROOOOOOORROOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROORROROORROOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOROROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROROOOOROOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOROROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOORORROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOORROOOOOOOOOROOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOROOROROOOOOOOORRORORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOORORROOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOROOOROOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOROOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOROOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOROOROROOOOOOOROOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOROOOOOOOOOROOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOORROOOOOROOROOOOOOOROOOROOORROOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROROOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOORROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOROOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOORROOOROOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOROOOOOOROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROROOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOORROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOROOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOROOOOOOOOOROOROOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOROOOOOOOOORRROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOORROOOOROOOOOOOROROOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOROOOOOOOROOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOORROOOOROROOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROROOOOOROOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOROOOROOOOROOOOOOOOOOOOOORROOOOOOORROROOOOOOOOOOROOOOOROROROROOOOOROOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOORROROOOOOOOOOOOOOROOOOORRROOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOORROOOROROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOORROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOROOOOOOROOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOROOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROROORROROROROOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOROOOOORROOOOOOOOOOOOOOOROOOOROOROOOOROOROOOOOOOOOROORROOOOOOOOOORROROOROOOOOOOOOOROOROOOOOOOOROORROOOROOOOOOOOOOOOROROOOOOOOOOROOROORROOOOOOOROOOOROOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOORROOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOROOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOORROROOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORRRROOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOORORROOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOORROOOOOOOOOOOOOOOORROROOOOOOROOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOROOOOOROOROOOOOOOOROOOROOOOOROORRROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOORROROROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOORORORROOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOROOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOORROOOOOOOOOOOOROROOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOORRROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOORROOOOOOOOOORORROOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOROOOOROOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOROOOOOOROOOOOOROROROOOROOOOOOOOOOROROOROOOROOOOOOOROOOOOOOOOROROOOOOOROOOOOOOOOOROOOOOOOOOOOOORROROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOORRROOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOORRROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOROOOOOOOOOOOROOOROOROOOOOOOOROOROOOOORROOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROROOOOOOOROROOOOOOOOOOROOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOORORROROROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOROOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOROOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOROOORROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOROOROOOOOROOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOORRROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOROOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROROOOOOOOOOOROOOOOOOOOOOOROOROOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROROOOOOOOOOORROOROOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOORROROORROOOOOOOROOOOOROOOOOOOOROOOOOROOOOORROOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOORROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORORROOOOOOORROROOOOOOROOOOOOOROOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROROOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOROOOOOROOOOROOOOOOOOROOOOOROOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOROROOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOROOOOOOOOROOOOOOORROOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOROOOOROROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOROOOOORROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOROOOROOOOOOROOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOORROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOROROOOOOOOOOROOORROOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOROOOROOOROOOOOOOROOROOOOOOOOOROOOOOOROOOOOOOOOOORROOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOROOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORRROOOROOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOORROOOOROORROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORRROOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOROOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOORROOOOROOOOOOOOOROOROOROOOOOOOOOOOOOOOROOOOOROOOOROOOOOOORORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOORORROOOOORROOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOROROOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOORROOOOOOROROOOOOOOOOOOROOOOORORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOROOORROOOOOOOOROOOOOOOOOOOOOOOROOOOOROROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOROOROOORROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORRORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROORROOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOROOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOORRROOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOROOOOROORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOROOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOROROROOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOORRROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOROOOOORROOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOORRROOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROROROOROOOOOROOOOOROOOOOOOORORROOOROORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOORORROOROOOOOOOOROOOOOOOOOOOOOOOOORROOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOROROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOORROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOROOOOOROOROOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROORROORORROOOOROOOROROOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROORORROOOOOOOOOOOOROOORRROOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOROOOROOOOOOOROOOOOOOOOROOOOROOOOROOROOOOOOOOOROOOOOROOOOROOOOOROOOOOOOROOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOROOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOOOROROOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOROOOOROOOOOOROOROOOOORROOROOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOROOOOOROOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOORRROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOROOOOROOOOOOROOOROOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOORROROOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORORROOOOOOOOOOOROOOOOOOOROOOROORORROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOORRRROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOROOOROOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOORROOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOORROOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOROOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROROROOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOROOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROROOOOOOOROOROROOOOOOOOOOOOOOOOOOOOROROOROORROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROROROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOORRROROOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOROOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOORROOOOOOROOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOROROOOOROOOOOOROOOOOOOOROOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOROROOOOOOROOOOOOOOOOOOOOOOOOORROOROOOOOOOROOOOOROOOOORROOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROORROOOOOOOORRROOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROORROOOOOOOOOOROOOOOOOOOOOOOOORRORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOORROOOOOROOOOOOOOOOOROOOOOOOOOOROOROOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOROOOOROOOOOOOOOOOROOROOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOROROOROOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOROOOOOROOOOOOOOOOOOOOOOOOOROROOROOROOOOOROOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOROROROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOORROOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOORROOOROOOOOOROROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOROOROOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOORROOROOOOOOOROROOOOOOOROROOROROOOOOOOROOOOOOROOOROOORORROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOROOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOROOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROROOOOOOOOOOOROROOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORRROROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOROROOOOOOOOOOOOOOOOOOOROOOOOOOROORROROOOOORRROOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOROOOROOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOROOROOOROOOROOROOOOOOOOOOOOOOROOOOOOORROOOOOOOROOOROOOOOOROORROOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOROOOOOOROROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROROROOOOROOOOOOOOOROOOOOOROROOOOOOOOROOOOOOOROOOOOOOOROOOOOROOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOROOOROROROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOROROOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOROOOOROOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOROOROOOROOROROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROROOOROOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOORROOROOOROOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOORROOOOROOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOROOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOORROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOROOROOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOORORROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOROOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOORRORROOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOROOROOOOOOOOOORROOOOOOOOOOOOOROOOOOOOROOROOROOROOOROOOOOOOOOOOROOOOOOROOOOOOOROROOOOOOORROOOOOOOOOOROOROOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOORORROOOOROOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOROORROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOORROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOROROOROOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOORROOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOORORROOOOROOOOOOOOOOOOOOOOOOOOOOROOROROOOROOOOOOOOOOOROOOROOROOROOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROROROOOOOOOOOOOOOOOORORROOROOOOOOOOOOROOOOOOROROROOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOROOOROOROROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOROOOOOOOOOOOORORROOOOOROOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOROOOOOOOOROOOOOOOOOOORROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOORROOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROROROOOOOOOROOOOOOOOOOROROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOROOOROOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOORROOOOOOORORROOOOOOOORROOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOROROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOROOOROOOOOOOOOROOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOORROOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOROOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOROOROROOOOOOROROOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOROROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOORROOROOOOOOOOOOOOOROOROOOOROOOOOOOOORROOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOROOOOOROOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOROOOOOOROROORRROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOORORROROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROROROOROOOROOOOOROOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOORRROOOROOOOROOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOORRROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROROOOROROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOROOOROOOOOOOOOOROOROOOOOOOOOOOOOROOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOROOOOROOOOOOROORORROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROROOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOROROOROROOOOOOOOOOOROROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOROORROOOOROOROOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROORRROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROROOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOROOROROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOROOROOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOROOORROOOOOROOOOORROOOOORROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROROOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOROOOROROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOROROOROROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOROOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOROOOOOROOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOROOROOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROROROOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOROOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOROOOOOOOOOORROORORROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROORROOOOROOROOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOROOOOOORROOOOOOOOOOOROOOOOOROROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOORORROOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOORORROOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOROOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOORROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOROOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOROOOOROOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOROOOOOOOOOOOOOOOORROOOOOOOORROORORRROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROROOOROOOOOOROOOOOOOOROOOOOROOROOOOROOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOROOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOROORROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOROOROOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOROROOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOROROOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOROOORROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROROROOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROROOOOOOOROOOOOOOOOOROOOOROROOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOROORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOROOOROOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOORROOOOOOOORROOOOOOROOOOOOOOORORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOROOOOORROOOOOOOOOROOROOOOOOOROORROOOOOOOROOOOOOROOOOOOOOOOOOOROROROROOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOORROOOOOOROOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOORROOOOROOROOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOROOOOROOORROOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOROOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOORROOOOOOOOOOOOOROOOOROOOOOROOOROOOOOOOOROOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOORROOROROOOOOOOOOOROROOOOOOROOOOOOOOOOROOOOOOOOOOOROROOROOROROOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOROOOOROOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOROOOROOOOOOOROOOOOROOOOOOOOOOROOOOOOROOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOROOOOOOROOROOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOORRRROROROOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOROOOOOROROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROORROROOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOROROROOOROROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOROOOOOOROOROOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOROROOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOROOOOOROOOROOOOOOROOROOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOROROOOOOOOOOOOORROROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOORROOOOROOOOOROOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROROOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOROROOOOOOROOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROORROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROORORROOOOOOOOROOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOROOOOOROROROOROOROOOOOOOOOOOOROOOOOOOOORROOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOORROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOORORROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOROROOOOOOOROOORROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROROOOOROOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOROOOOOROOOOOOOOOOOOROOOROOROOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOROOOOOOROOOORROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOROROROOOOOOOOOOOOOOOOOOROROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROROOOOOOOROROOOOOOOOOOROOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOORROOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOROROOOOOROROOOOOOOOOOOOROOOOOORORROOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOROOOOOOOOROOORROOOOOOOROOOOOOROOOOROOROOROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOROOOOOOROOOOOROROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOROOOOROOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOROOOOROOOOOOOROOOOOORROOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOROROOOOOROOROOOOOOOOOOOOOOROROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOORROOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOROOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOORRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOROOOOROROOOOOOOOOOOOOROOOOOOOOOORROOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOROOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOROOOOROOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROROOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOORORRROOOOOOOOOROOOOOOOOOROROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROROROOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOROOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOROOOOOOOOOOOOOROOROORROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOROORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOROOOOOROOOOOOOOOROOOOOROOOOOOOOORROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOROOOOROROOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOORRROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROROOOOORROOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOROOROOOROOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOROOROOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROROORROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROORORROOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOORROOROOROROROROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOROOOOROOOOOOROOROOOOROORROOROOOOOOOOOOOOOOOOOOOOOROOOROROOOOOROROOOOOOOOOOOOROROOOOOOOROOOOOOROOROOOOOOOOOROOOOOOOOOOOOOROOOOOROOOROOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROORROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOORROOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOROOROOOOORROOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOROROOOOOOOOOROOOOOOOOROOOOOOROORROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOORRROOOOOOOOOOOROOOOOOOOOOOOOORROOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOROOOOOOOOOOOOOROOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOORROOOOOOOORROOOOOOOOOOROOOOORORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORORROOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOROOOOOOOOOOORROOROOROOOOOOROOOOOOOROOOROOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROROROOOOOOROROOOROORRRROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOORROROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOORROOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROORRROOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOROOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOROOOOOOOOOROROOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOROROOOOOOOOOOOROOOOORORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOROROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROROROOOROOOROOOOROROOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOROOOROOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOROOOOOOROOORROOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOROOOOROOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOROOOOOOOOOORORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROROOROROOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOOOROOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOORORROOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOROROOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOROOOOOORROOOROOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOORROOOOROOOROOOROROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOROROOOOOOOOOROOROOOOOOORORROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOROOOOOOOOOOROOOOOOOOOOOROOOORROROOOOOOOOOOOOOORRROOOOOOOOOOOOROOOOOOOOOOROROOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOROROOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOROOROOOOOOOOOOOOOOOORROORROOOOROOROOROOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOROROOOOROROOORROROOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOROOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOROROOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOORROOOOOOOROOROOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOROOOORROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOROROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOROOOOOOOOOROROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOORROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOROOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROROOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOORRRROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROROOOROOOOOOOROROOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOROOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOROROOOOOOOOOOOOOOOROOOOOOROROOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROORROOOOOOOROOOOOOOOOOOROOORROOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOORROOOOOOORROOOOOOOOOOOOORROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROROOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOORORROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOROOROOOROORROOOOOROOOOOOOOOOOOROOOORORRROOROOOOOOOROOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOROOROOOOROOOOOOOROOOOOOOOOOOOROOOROOROOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOROOROOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOORROOOOORORROOOOROOOOOOOOOOOOROOOOOOOROOOOOOROOROOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOROOOOOOROROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROORROOOOROOOOOROOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOROOOROOOOROOOROROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOORROOOROOOOOOOOOROROOOOOROROOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOROOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOROOROOOOOORROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOROROOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOROROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROROOOOOOOROROOOROORRROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOROROOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOROROOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOORROOOOOOOOOROOOOOOOOOROOROOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOORROOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOROORROROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOROOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOORROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOROOROROOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOROOROOOOOOOOOOROOOOOOOOOOOROOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOROOOOROOOROOOOOOOOROOOOOOOOOOOOORROORROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOORROOROOOOOOOROOORROOOOOOOOORROORROOROOOOOOOOOROOROOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOROOROOOOOORROOOOOOORROOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOROOOOOOOROOOOOOOOORORROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOROOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOORROOOOOROOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOORORROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOROOORROROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOROOOROROOOOOOOOOOOOROOOROOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOROOOOOOROROOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOROORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOORROOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOROOOROOOOROOOOOORROOROOOOOOOOOOOROOROOOOOOOOOROOROOROOOOOOOOROOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOROOOOOOOOROOROOOROROOOOOOOOOROORROOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOORROOOOOOOOROOROOOOOOROOROOOOORROROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROROROOOOOOOOROOOOOOOROOOROOOOROORROOOOOOOOOOOOROOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOROOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOORROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOROROOOOOOOOOOOOOOROOOOOOOROOROOROOOOOOOORROOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOROOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOORROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOORROOOOOROOOOOOOOROOOOOOOOOOOROOROOOROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROROOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOROOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOROOOROOOOOOOOROOOOROOOOROOOOOOOOOROOOOOOOOOOROROORROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROROOOOOOOOOOROROOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOROOOROOROOOROOOOOOOOOOOORROOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOROOOOROOOOOOOOOOOOOOROOOOOROROOROOOOOOOOOROOOOOOOOOOOOOOROOROOROOOROOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOROOROOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOROOOROOOOOOOOOROOROROOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOORROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOROROOOOOORROOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOORROOOOOOORROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOORROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOROOOOOOROROOOOROOOOOOOOOOROOOROOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOROOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOROOOOOOOOROOOOOOROROOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOROOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROROOOOOOOROOOOOOOOOROOORROOOOROOROOOOOOOOOOOOORROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOROOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOROROOOORROOOROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOORROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOROOOORROOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOROOOOOOOOROOOOOOOOOROOOOROROOOOOOOOROOOOOROOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOROOOOOOOOROOOOROROOROOOOOROOOOOOOOOOOROOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROROOOOROOOOOOOOOOROOROROOROROOOROOOOOOROOOOOOOOORORRRROORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOROOOOOOOROORORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOOOOORROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOORRROOOOOOOOOOORROOOROOOOOOOOOOOOOOOROOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOROOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROROOOOROROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROROOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOROOOOOOROOOORROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOROOOOOOROOOOOOOOORROOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORORROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOORRORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOROOOOOROOOOOROOROROOOOOROROORORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOROOROOOOROROROOOOOROOOOOROOOOOOOOOOOROOOOOOOROOOOORORROROOOOOOROOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOROOROOOOORROROOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROROOOOOOOOOOROOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOORORORROORROOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROORORROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROROROOOOOOOOOOROOROOOOOROOOOOOROROROOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOROOOROOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOROOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOROOOOOOOOROOOOOOROOROOROOOOOROOROOOOOOOOOOOOOORROOROOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORORROOOOOOOOOOOOOROORROOOOOROROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOORROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOROOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOORROOOROOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROROOOOROOOOOOROROOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOROOOOROROOOOOOOROOOOOOOOROOOOOOOOOORORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROROOOOOOOOOOOOOROOOROOOOOORROOROOOOOOOOOOOOOOOOROOOOROOROOOOOOOOROROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOROROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROORROOROOOOOOOOORROOOOROOOOOOOOROOOOOOOOOOROOOOOOOROOROOOOOOOOROOOOOOOOOOORROOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOORORROOOOOOOOOOROOOOOOOOOOOOOOOORORROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOORROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOROOOROOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOORORROOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOORROOOOOOOORRROOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOORROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOORROROOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOROROOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOORRROOOOROOOROROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOROROOOOOOROOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROORROOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOROOOOOOROOROOOOOOOOORRROROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOROOOOOOOROROOOOOOROROOROOOOOROOROOOOOOROOOROOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOORROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOROOOOOOOOOROOORROOOOOROOOOOOOOORROROOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOROOOORROOOOOOOOROOOOROOOOROROOOOOROOROOOOOOOOOOORROROOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOROOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOROOORROROOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOROOOOOOOOORROROOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOROROOROROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROROOOOOOOOOOOROOOROOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOROOROOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOROOOROOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROROOOOOOOOOOOOOORROOROOOOOOOOOOOROOOOROROOOOOOOOOROOOOOOORROROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOORROOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOORROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOROOOOOOOOOROOROROOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOROOROOOROOROORRROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOROOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOROOOORROOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOROROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOORROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROROOOOORROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOORROOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOROOROOOOOOROOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOROOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOROROOOOROOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOROOOROOOROOOOROOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOROROOROOOOOOOOOOOOOOOOOOOOOROOROOROOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOORROROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROROOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOORROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOORROOOOOOOOORRROOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOORROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOROOOOOOOOOROOOROOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOROOOROOOOOOOOROOOOOOROOOROOOOOOOOROOOOOOOOROOOOOOOROROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOORROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROROOOOOOOOOOROOOROOOROOOOROOOOROOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOROOROOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOORROOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOROOOORROOOOOOOROROOOOOOOOOOOROOROROOROROROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOROROOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOORROOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOROROOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOROOOOOOOOROOOOOOOOROOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOROOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOORROORROOOOOOOROOOOOOOROOOROOOROOROOOOOOOOROOOOOROROOROOOOOOOOOOROOOOOOOROOOOROOOROOROOOROROOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOROOOROOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOORROOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOROOOROOORRORROOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORRROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOORRORROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOROOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOROOOOOROOOOROOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOORROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROROOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOORROOOORROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORRROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROORROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROROOOROOROOOOOOOOROOOOOOOOOOORORROOOOOOOOROOOOOROOOOOOOOROOOOOOOOROROOROOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOOROOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOORRROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOORROOOOOOROOOOOOOOOOOROOORROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOORORORROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROORROOOROROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOORROOROOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOORROOOOOOOOROOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOROOROOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOORROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOROOORROOOOOOOOOOROOOOOOOOOOOROROORROOOOORROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOROOOROOOOOOOOOOOROOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOORROOOOOOOOROOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOORROOOOOOOOOROOOOOOOOOROOOOOORORROOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOORROORORRROOOOOOOOOOOROROOOOOOOOOROROOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOROOORROROOOOOOOOOOOROOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOROOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOORROOOOOOROOOOOOOROOROOOOROOOOOOROOOROOOOROOOOOOOOOROOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROROOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOROOOOOOOROOOOOOORROOOOOOROOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOROOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOROOOOROOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOROOOOOOOROOROOOOOOORROOOROOROOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOORROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROROOOOOOOOROROOOORROOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOROOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOORRROOOOOOOOOOOROOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOROROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOROROOOROOROOROOOOOOOOOOOOOOORORROROOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOROOOROOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROORRROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOROOOOOOOOOROROOOOOOOOOOOORROOOOOOOROOOOOROOOOOOOOOROOOROOROOOOOOROROOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOROOOROOOOOOOOOROOOOOROOROOOOOROOOOOOOORORROOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOORROOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOORROOOOOROROOOOOOOOOROOOOOOOOOOOOOOORROROOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOORROOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOORRROOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOORROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOROOOOOROOOOOOOROOOORROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOROROOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOROOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOROOOROOROOROROOOOOOOOOOOOOOROOOOOOOROOROOOOOOOROROOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOROOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOROOOROOOROOOROOOOOOROOOROOOOOROOOOOOORROOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOROORROOOOOOOOOOOOOOOOOOOOOOORROROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOORRROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOROOROOOOOOOOOROOOOOOOOOROOORROOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOROOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOROOOOOOOOOOORROOOOOOOOROOOROOROOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORRROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOORRROOOOROROOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROROOOOOOROOOOOOOROOOOOROOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOORROOOOOOOOOROOOOOOOROORORRROOOOOOROROOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOROOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOROOOROROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOROOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOORROOOOOROOROOOOORROOOOOOOOOOOOROOOOOOOORROOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOROROOOOOOOOOROROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOROROOOOOOOOOOOROOROOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOROOROOROOOOOOOOOOROOOOOOOOOOOOORORROOROOOOOOOOOOOOOOOOORROOROOROOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOROOOOOOROOOOOOOOOOOROORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOROOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOROOOOOOROOOROOOOOOROOOOOOROOOOROOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOROOOOOOOROOOOOROOOROOOOROOOOOOOOOOROROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOORRROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOROOOROOOROROROOOOOOOROOOOOOOOOORROOOROROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORRROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOROOROOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOROOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROROOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOROOOOOOOROOOOOOOOROOOROOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOORROORROOOOORROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOORROOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOROOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOORRRORROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOROOOOOORORROORROOOOOOOOOOOOOOOOOOORROOROOROOROOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOROOROROOROOOOOOOOOOOOOOOROOROOOOOOOOOROOOROOOROOOOOOOOOOOOOOOROOOOOOOROOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOORRROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOROOOOOOOOOOOOOOORROROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOROOOOOROOROOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOORROROROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROROOOOOOOROOOOROROOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOORRROOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOROOOOOOOOOOOOOOOOOROOROOROOROOOOOOOOOOOROOOOOOORROROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOROOOROOORROOOOOOOOROOOOOROROOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOORROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOROOOOROOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOROOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOROOOROOOOOOOOOOROOOOOOOOOROOOOOORORROOOOROOOOOROOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOORROOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOROOORORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOROOOROOOOOOROOOOOOOOOOOOOOORROOROOOOROROOOOOOORROOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOROROOOOOOOROOOOOORROOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROROOOOOOOOOROOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOORROOOOOOOROOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORRROOORROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOORROOROOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORRROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOROROOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOROOOROOROOOOORRORROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOROOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOROOOOROROOROROOOOROOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOROROOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOROOOOROOOROOOOOOOROOOOROROOOOOOOOOOOOOOOOROROOROOROOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROROOOROOOROOOOOOOOROOOOOOOOOOOOOOROOROROOOOOOOROOROOOOOROOOOOOROOOROOROOOOOOOOOOOROROORROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOORROOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOROOOOOROOROOROOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOORRRROOOOOOOOOOOOOOOOOOOROOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOORROOOOOOOROOOOOOOROOOOOOOOOOOROOROOROOOOOROOOOOOOOOOROROOOOOOROOOOOOOOROOOOOOROOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOROOOROOOOOROOOOROOOOROOOOOOOOOOORRRROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROROOOROOOOORROOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOORROOOOOOOOOORROOOOOOOOOOROOOOOROOOROOORROOOROOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOROOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOROORROROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOROOOOOROROOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOORORROOOOROOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROROOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROROROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOROOOOOOOOROOOOROOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOROOOOOOOROROOOOOROROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROROOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOROOROOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROROOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOROROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOROOROOROOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOROOOOOOOROOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOROOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOORROOOOROOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOROOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOORRROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOORROOROOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOROOOOOOROOROOOOOOOROOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOROOROOOOOOOOOROOOOOORRROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOROOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOROOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOROOOOOOOOOOOOOORROROOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOROOROROOOROOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORORROOORORORRROOOOOROOOOOOOOROOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOORROROOOOOOOOROOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOROOOOORROOOOOOOROROROOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOROOORROOOOOOOROOOOROROOOOOOORRORROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOORROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOROOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOROOOORROROOOOROOROOOOOROOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOROROOOOOROROOROOROOOOOOOOOROOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROROOOOOOOOORRROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOROOOOOOOOOOOOOOOROOOOOROOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOROOROOROOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOORRROOOROOOOROOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOROOOROOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOORROOOROOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOROROOOOOOROOOOOROOOOROOOOOROOOOOOOROROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOORORROOOROOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOROOOOOORROROORROOOOROOOOOOOOROOROROROOROROOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOROORROOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOROOOOOOROOOROROOROOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOROOOOOOROOOROOROOOOOOOOOOOOROOOOROROOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOORRRROOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOROOORROOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOROOOOROORROOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOORORROROOOROORORROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOORRROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOORROROOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOORROOOOOROOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOROROOOOOOROOOROOOROOOOOOROROOOOOOOROOOOOOORROROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOROOROOROOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROROOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOROOOOROOOOOROOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROORRROROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOORROOOOOROROOOOOOOOROOROOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOORORORROOROOOOROOOOOOOOOOROOOOOOOOROOROORROOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOROOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOROROOROROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOORROOOOOOOOOOROROOOOOOOOOOOOROOOROOOOOOOOROOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOROOOOOOROROOOROOOOOOORROOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOROOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOROOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOORROOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOORROOOOOOROOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOROOROOOOOOOROOOOOOROORROOOOOOOOOOROOOROOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOORROOOROOOOOOOOOOROOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOROROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOORROOOOOOOROOOOOOOROOOROOOOOROOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOROOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOROOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOROOOOOOOROOROOOROOOOOOOOOOOOROOROOOROOOOOOOROOROOOOOOOOOOOOOROOOOROOOOOOOOROORROROOOOOROOOOOOOOOOOOROOROOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROORROOOOOROOOOOOOOOOOOOOOOROOOOOOOORORORROOROOOOOROOOOOOOOOROOOOOOOOOOOOOOORRROOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOROOOOOOROORROOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOROROORROROOOOOOOOROOOOOOOOOOORROOROOOOROOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOORROOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOROOROROOOOOOOROOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOROOOOOOROROORROORROOOOOOOOROORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORORROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOROOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOROOOOOROOOOOOOOORORROOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOROOOOOROOOOOOROOOOOOOOOOOROOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOROOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOORROOOOROROOOOOOOOOOOROOOROOOOOROOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOORROOOOOOOROOOROOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOROOOOROOOOOOOOOOOOOOOOOOOROROROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOROOOROOROOOOOROOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOORORROOOOROOROOOOOOOOOROOOOROOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOROOOOROOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROORROOOOOOOROOOOROROROOOOOROOOOOOOOROOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOORROROOOROOOROOOROOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOROROOOOOOOOROORROROOOOROOOOROROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOROROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOROOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOROROOOROOROROOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOROROOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOROOOOOROOOOOROOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOROOROOOROOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOROOOOOROOOROOOOOROOOROOOOOOOOOOOOOROOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOROOOOOOOOOOROOOOOROOOOROOORROROOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOROOOOORROOOOOOOOOOOOROOROOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOROOOORROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOROOOOROOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOROOOOROOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOROOOOOOOOOOOOOOORROOROOROORROOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOROROOOOOOOOOOOROOORROOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOROOOOOOROOOOROROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOROOOOOROOROROOOOOROOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOROOOROOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROROOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOORROOROOROOOOROOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOROOOOOOOOOROOOOOOOROOROROOOOOOOOOOOROOOOOORROOOOOOOOOOOORROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOROOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOROOOROOOOOROOOOROOORROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOROOROOOOOOOOOOOOOOOORROOOOOOROOROOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROROROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOORROOOOOOOOOOROROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROROOOOOOROOOOOOROOOOOOOOOOOOORROOOOOOOOOOROOOROOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOORROORORORROOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOORRROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROORROOROOOOOROROOOOOOOOOROOORORRORROORROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOROOOROOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORRROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOROOOORROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOROOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOROOROOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOROOORROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOORROOOOOOOORRROOOOOOOROOORRROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOORROOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOROOOOOOOOROOOOOROOOROOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOROOOOOROOOOOOROOROOOOROROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOORROORROOOOOOOOROOOOOOOROOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOORROOOORROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOROOOROORROOOROOROROOOROOOOOOROOROOOROORROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOROOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOROROORROOOOOOOOROOOOOOOOOOOOORROOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOROOOROOOROOOOOOOROOOOOOOOOOOROOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOROOROOROOOOOOOROOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOORORROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROORROOOROROOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOROROOOOOOOROOOOOOOOOROOROOROOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOORROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOROOROOOOOROROOOOROOOOROOROOROROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROORROOOOOOOOOOOOOOROOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOORROOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOROOOOOOOOOROOROOOOOOOROOOOOOOOOOOOROROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOROROOOOOROOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOROROOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOORRROOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOROROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOROOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOROOOOOOOOROROROOROROOOOOOOOROOOOOOOOOROOROROOOOOOOOOOROROOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROROROOOOROOOOOROOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOORROOOOORROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOORROOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOROROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORORROOOOOOOOOOROOOROOOOOOOORROOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORRROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROROOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROROROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROORROOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOORROOOROOROOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOROROOROOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOROROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOROOOROOOOOOOORRROOOOOOOOOOOOOOOOROOROOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOORROROOOOROOOOOROOOROOOOOOOOOOOROOOOOROOOOOOOROOROOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOROORROROOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOROOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOROROOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOROOOOORRROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOORROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOORORROOOOOOOOOOORROOOOOOOOOOORROOOOOOOOORROOOOOOOOROOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOROOOOOOROROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOROOROOOOOOOROOOROOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROROOOOOOORROROOOOOOOOOOOOROOOROOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOROROOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOORROOOOOOROOOORROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOORROOOOOOORROOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROROOROOOOOOOOORROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOROOOROOOOOOOROOOOOOROOROOOOOROOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOORROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOORROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOROOOOROOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOROROOROOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOROOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROROOOOROOOOOOOOOOOROOOOOOOOOOROOROOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOROOOOOOOOOROROROOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOROOROOOOROOOOOOOOROOOOOOOROOOROOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOORROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOROOOOOOOROOROOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOROOROOOROOOOOOROROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOORORROOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOROOOROOROOOOOOOROOROOOROROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOORRROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROROOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOROOOOROOOROOOOOROOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROORROOOROOOOOOOORORROOOOOOOOOOOROOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOORRROOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOROOOROOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOORORRROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOROOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOROOROOROOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOROOOOOROOOROOOOOOOOROOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOORORRROOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOORROOORROOOOROOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOROOOROOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOORROOOROOOOOOOOOORROOOOOOOOOOOOOOOROOROOROOOROOOOOOOOOOOORROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOROOOROOOOROOOROOOOOROOOOOOOOROOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROROOOOOROOOROOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOROROOOOOOOOROROOOOOROOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOROOORROOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOROROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROROOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOROORROROOOROOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROROOOOOOROOOOOROOOOOOOOOOOOOOROOROOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOROROOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOROOOOOOOORROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOORROOOOOOOOOOOOOOOROOROROOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOROOOOOOOOROOROOORROOOOROORROOOROOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOORORROOROOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOROOORRORRROOOOOOOOOOOORORROOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOORROOOOROOOOOOOOOOORROROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOROOOOOROOOOROROOOOOOOOOOOOOROROOOOROROOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOORROOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROROOROOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOROOOOOOOOOOOOOROOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOROORRROOOROOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOROOORROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOROOOROOOROROOOROOOOOOOOOOOOORROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOROOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOROOROOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOROOOOOOORROOORROOOROOOOOOOROOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOROOOROOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOORROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOROOOOOOOROROOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROORROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOROOROOROROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOROOOOORROOOOOOOOOOOROOOROOOROOOOOOOOOOOOROOOOORROOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROROOOOROOOOOROOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOROOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOORROOOOOROOORROOROOOOROOOOOOROOOOOOOOOOROOOOOORROOOROOROOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOORROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOORROOOOROOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOORORRROOOOOOOROOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOORROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOORORROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOROOOOOOROOOROOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOROOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOROOROOROOOOOOOOROOOOOOOROOOOOOORORROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOORROOOOOOOORROOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOROOORROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOROROOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOROOROROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOORROORROOOOOOOOOOOOOOOOOROOOOOOOOOROORROOOOOOOOOOOROOOOOOOOOROOROOOOOOOOROOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOORROOOROOOOOROOROOOOOORROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOROOOORROROOROOOOOOOROOOOROOROOOROOOOOROOOOOROOOOOORROOOOOOOOOOOOROOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROORROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOROROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOROROOOOOOOOOOOOOROOOOORROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOORRROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOROOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOORROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOORROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOROOORROOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORRORROOOOOOOOOOOOOROOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOROOOOROOROOOOOOOOROROOOOOORROOOOORROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOROOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOORROOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOROOOROOOOOOOOOOORRROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOORROOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOORROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOROROOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOORROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOROOOOOOROOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOORROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOORORORROOOOOOOOORROOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOROOOROOROROOOORORROOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOROOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOROOOROOOOOROROOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOROORROROOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROORROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOROOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOROOOOOOROOOOOROOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROORROOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROROOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOROOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOROOOOOOROOOOOOOROROOORROOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOROOOOOOOOOROOOOOOOOOOOOROOROROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOORRROOORROOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOORROOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOROOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOROOOOOOOOOOOOOOROOOORROOOOOOOORROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOORROORROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOORRROROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOROROOOOOOOOOOROOOROOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOROOOOROOOROOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROROOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOROOOOROOOOOOOROOOOOOOOORORROOOOOOROORROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOROOROOOOORROOOOOOOOROOOOOOOROOOOOOOOOORORROOOOROOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOROROOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOROOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROROOOROOOOOROOOORROOOROOROOOOOOOOOOOOOROROOOOOOOOROORROOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOROOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOROOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOROOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOROOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROROOOOROOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOROOOOOOOROOOOOROOROOOOOOOOOOOOOORROROROOOOOOOOOOOOOOOOOOOOOORORROOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOORROOOOROOROOOOOOOROOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOROOOOROOOROOROOOOOOOOOORORROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOORROOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOROOOOOROOOROOOOOOOOROOROOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROROOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOORROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOROOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOORROOOROOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOROOOROOOOROOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROROROOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOROROOROOOOOOOOROOORROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOORROOOOOOOOOOOOOOOOROOOORORROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOROOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOROORROOOOOOOROOROOOORROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROROROOOOOOOOOROOROOOOOOOROOOROOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOROOOOOOOOORORROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOROROOOOOOOOOOOOOORROOROOOROOOOOOOOOOOOOOOOOOOORROROOROROOOOROOOOOOOOROOROOOROOROOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOROOOOOOOOROOOOOOOOROOOOOROROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOROOOROOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROROOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOROOROOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOROOOOOROOOROOOROOOROOOROOOOOOOORORROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOROOOOOOOROOOOOOOOOROOOOORROOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOORROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOORRRROOROOORROOROOOOOOOOOOOOOOOROOROROOOOOOOROOOOOOROROROOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOROOOOOOOOOROOOOOOOOROOOROOOOOOOOOOROOOROOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORORROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOROROROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOROOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOROOROOOOOOOOOOOROOOOOOOOOOOOROOROOROOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOOOOOROOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOORROOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOROROOOOOROOOOOOOROOOROOOROOOOOROOROOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOORORROOOROOROOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOORRROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOROROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOROORORROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROROOOROROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROROOOOROOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOORROOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOROOOOROOOROROROROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOORORROROOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOROOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOROROOOOOOOOOOORROROROOOOROOROOOOOOOOOOOROOOOOOOOOOOROROOORROOOROOOOOOOOOROROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOROROOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOROOORROOROOOOOROOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOORROOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOROOROORROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOORROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOORROOOOOROOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOROOOOOROOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOROOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROROOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOORROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOORROOOOOROOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOROOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOROOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOORORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOROOOOOOROOOOOROOOOROROOOROOOOOORROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOROROOOROOOOOOOOOOOOOOOROORROOOOOOOOOOOOOROOOOROOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOROROROOOROROOOROOOOOOOROOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROROOOOOOOOORROOOOOOOROOOOOOOOOORORROOOOOOROOOOOOOOOOOROOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOROOOOOOOOOOOOOOOROOROOORROOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOROROOOROOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOROOROOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOROOOOOOOOOROROOOOOOOROOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOROOOOOOOROOOROOOOOOORROOROOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROROOOOROOOOOOOOOOROOOORROROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOROROOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon10b.out",
    "content": "37260\n"
  },
  {
    "path": "challenge1/tests/mon10c.in",
    "content": "1000000 3\nOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRRRRROOORRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRRRRROOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRRRRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRRRRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRROOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOORRRRRROOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRRRRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRRRRROOORRRRRRRRROOORRROOORRROOOOOORRROOORRRRRRRRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOORRRRRRRRRRRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRRRRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRRRRRRRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOORRRRRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOORRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRRRRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOORRROOORRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRRRRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRRRRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOORRRRRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRRRRRRRROOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRRRRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon10c.out",
    "content": "1000000\n"
  },
  {
    "path": "challenge1/tests/mon1a.in",
    "content": "17 3\nOROOOOOROOOOORRRR\n"
  },
  {
    "path": "challenge1/tests/mon1a.out",
    "content": "12\n"
  },
  {
    "path": "challenge1/tests/mon1b.in",
    "content": "14 2\nORROOOOOOORROO\n"
  },
  {
    "path": "challenge1/tests/mon1b.out",
    "content": "12\n"
  },
  {
    "path": "challenge1/tests/mon1c.in",
    "content": "12 6\nOORROROOROOR\n"
  },
  {
    "path": "challenge1/tests/mon1c.out",
    "content": "0\n"
  },
  {
    "path": "challenge1/tests/mon1d.in",
    "content": "20 2\nRRORRROROORRROORRRRO\n"
  },
  {
    "path": "challenge1/tests/mon1d.out",
    "content": "3\n"
  },
  {
    "path": "challenge1/tests/mon2a.in",
    "content": "30 3\nOORROOOOORRROROOOOOROOOOOOOROR\n"
  },
  {
    "path": "challenge1/tests/mon2a.out",
    "content": "24\n"
  },
  {
    "path": "challenge1/tests/mon2b.in",
    "content": "33 4\nORROOOOOOOROORROROOOROROOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon2b.out",
    "content": "30\n"
  },
  {
    "path": "challenge1/tests/mon2c.in",
    "content": "29 3\nRRRRRRRRRRRRRRRRORRRRRRRRRRRR\n"
  },
  {
    "path": "challenge1/tests/mon2c.out",
    "content": "0\n"
  },
  {
    "path": "challenge1/tests/mon3a.in",
    "content": "993 7\nOOOOOROOOOOOOORORROOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROORROOROROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOORROOOROOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROORROOOROOROORROOOROOOOOOOOOOOOOOOOOOOOOROROORORROROOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOROOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOORROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOORROOOOOROORROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROROOOOOOORRORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon3a.out",
    "content": "960\n"
  },
  {
    "path": "challenge1/tests/mon3b.in",
    "content": "1243 1242\nOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon3b.out",
    "content": "1243\n"
  },
  {
    "path": "challenge1/tests/mon3c.in",
    "content": "421 3\nRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRR\n"
  },
  {
    "path": "challenge1/tests/mon3c.out",
    "content": "0\n"
  },
  {
    "path": "challenge1/tests/mon3d.in",
    "content": "1835 4\nROOORRRORRRRRORRRRORRROOORORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORORRORROORRROORORRRRRRRRORROORRRRRRRRRORRRRRRORRRRRRRRORRORRRORRRRRRRRRRRRORRRRRROORORRRRORRROORORRROORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRROORRORRROOORRRRORRRRRRRRRORRRRORRORRORRRORRRORROORRRORORORRRRRRRORRRRRORRRRRORRRRORRRRRRRORRRORRORRRRRRORRORRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRORRRRRRORRORORRORRROORRRRRRRRORRORRRRRORRRRORRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRRRRORRORRRRORORROROROROROOORRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRORROORRRRORRRRRRRRROORROORRRRRRRROORORORRORRORRORRRRRRROORRRRRRRORRRORRRRRRORRROROORRRRRRORROORRRRROOROORRRRRORRRRRRRRRRORRRRRRRRRRORRRORRRRORRRRRRRRRRRRORRRRRRROOORRRRRRRRORRRORRRRORRRORRRRRRORRORROOROOORRRRRRRRRRRORORRRRRRRRRRORRRORRRRORRRRRROROORORRRRRRROROORRRRRRRRRROORORRRRRRRRRRRORRRRRRRRROORRRRORORRRRRRRRRRRORRRRRRRRRORRRORRRROORRRRRRRORRRRRRRORORRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRORRRRRORRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRRORORRRRRRORORROROORRRORRORRORRRRRORRRROOORRRRRRORORORRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRRRRRRRRORORRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROOOOORRRRRORRRROROROORRRRORRRRRORORORORORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROROORRORRRRORRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRRRROORRRRRRRRRRRORRORRRRRORRORRRROOROOORRRRORRROORRRRRRRRORRRRRRORRRRRRRRRRRORORRRRRORORORRRRRORRRRRRRRROORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORORRRRRRRORRRRORRRRRRRRRRRORORRRRRORRRRORORRORORRRRRRROOORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRORRRRRRORRRRRORRRRRRRRRORRRRRROORRRORRRORRORRRRRORRRRRORRRRROORORRRRRORRRRRRRRRRRRRORORORRRORORRRROROROORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORRRRORROROROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRROOORORORRRRRRRRRRRRRRORRRRORRRORRRRRROORRRRRRRRRROORRRRORROORRRRORRRRRRRRR\n"
  },
  {
    "path": "challenge1/tests/mon3d.out",
    "content": "5\n"
  },
  {
    "path": "challenge1/tests/mon4a.in",
    "content": "32311 15\nOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOROOOROOOOOOOOROOOOOROOROOOOOOOOORORROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOROOOOOOORORROOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOROOROROOOOROOROROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOORROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOROOOOORRROOOOORROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOORROOOOOROOOOOOOOOOOROOOROOOROOOOOOOOOOOOROOOOOOOOOROOOOROORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOROOOOOOOOOOOOORROOOOOOOROOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOORROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOROOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOORROOOOOROOROOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOROOOOOOOOOOROOOROOROOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOORROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROROOOROOOOORORROOOOOOROOOOOORRORRROOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOORROORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOROOOOROOOOORROOOOOOOOOOOOROOOOOOOOROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOROOOOOOROROOROOOROOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOROOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOROROOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOROOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROOOOOROOOOROOOOOROOROOROOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOROOOOROROROOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOROOROOOOROOORORRROOOOROOROOOOROOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOROROOOOOOROOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOORRROOROOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROROROOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORRROOOOOOOROOOOORROOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROROOOOOOOOOOOOOROOOOOOROOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOROOOOROROOOOOOOOOROROROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOORRROOOOOOOOOOROOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOORROOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOORORROOOOOROOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOORRROOROOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOROROOOOOOOOOROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOROOOOROOOOOROROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOROROOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOORROROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOROROOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOROROOOOOROOOOOOOOOOROOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOROORORRROOROOOOOOOOROOOROOOOOOOROOROOROOOOOOOROOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOROROOOOOOOOOROOOOROOOOOOOOOROOOOOROOOOOOOROOOROOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOORROOOOOOOOORROORROROOOOOOROOOOOOOOOOOOROOOOOOOROROOOOOOOOOROOOOOROOOOOROOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOORROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOROROROOOOOROOOOOOOROOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOROOOOOROOOOOOROOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOROOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOROROROOOROOOOOROOROOOOOOOOROOOOOROORROOROOOOOOOOOOOOOROOOOOOOOOOROOROOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOROOOOROOOOOOOOOOORORRROOOOOOOOOOOOOOOOOOOROOOROORROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOROROOOOOOOOROOOROROOROOOROROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROROOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOROORROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOROROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOORRRORORROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOROROOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOORORRRROOOOOOOOOOOOROOOOOOOOOROOOOROOROOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORORRROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOROOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOORORROOOOOOROOROOOOOOROOOOROOOOOOOOOOOOOROOOROROOOROOOOOOOOOOORROOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOORROOOROOOOOOROOOROOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOROOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOROOOOOOOROOOROOOROOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOROROOOROOOOOOOROOOOOOOOOOOOOOROOOORROROOOOOOOOROOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOORROROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOORROOOROOROROOOOOOOOOOOOOOOOOORROROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOORROOORROOROOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROORROOOOOROOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOORORROROOOOOOOOOOOOROOROOOOOORORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOROOOOOOROORROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOROORROOROROOOOOROOOOOROOOOROOOORORROOOOOOROROOROOOORROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOROOOOOOOOOOOOOOROOROOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOORROOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOROOROROOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOROROOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOROORROOOOOOOOOROOROOOOOOOOOOOOOROROOOOROOOOOROOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOROOOOOOOOOROOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOORROOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOROORROOROROOOOROOOROROOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOROOOOOOOOORORRROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOORRROOOOOOOOROOOOOOOOOOOOOOOORRORROOOOOOOOOOOOOROOORROROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROROOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOORROOOOOOROOOOROROOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOROOOOOOOOOROOOROOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOROOOOROOOOOROOOOOOOOOOOOOROOOOROOOOOOOROOROOOOOOOOOOORROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOROOOOOOROOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOROROOOOROOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOROOOOOOOROOOOROOROORROOOOOOOROOOOOOOOOOOOROOROOOOOOOOROOOOOROOOOOOOOORROROOOOOOOOOROOOOOOOOOOOOOROROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOORROOOOOOOOOOOOROOORROOOOOOOOOOOOROOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon4a.out",
    "content": "10032\n"
  },
  {
    "path": "challenge1/tests/mon4b.in",
    "content": "21243 1242\nOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon4b.out",
    "content": "9944\n"
  },
  {
    "path": "challenge1/tests/mon5a.in",
    "content": "140313 3\nROOROOROOOOOOORRRROROOOOOOROOOOOOOORORRROOROORRROOROROROOOORORROOOOOORORRRRRRRROOOOOOOORROOROOOORORRORORROOOROROROOOOORORORRROOOOROOROOORRROROROOROROORRORRORRRRROOOROOORORROOROOOROOROROROOROOOOOORORRORORORROOOORORROOROOOOOOOROOOOROOOOOOOROOROORRROOOORROOOROOORORRROOOOORROOORROROROOOOOOOORRROOROOOOOOOOOOROOOOOOOOOORORROOOOOOOOOOOROOOOOOORORROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORROOOOOOOOORROOOOORROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROORORRROROROORROOROOORORORROOOORROOORORROOOROOOROOROROROORROOOOROROORROORORORRRROOROORORRORROORRRRROOROOOOORORRRORRROOOOOOOROROOOOOORROOORORORRRROROOOOROOORRRRRROOROROROOOROOOOOOOROORROOROOOOORROROOOOROOOOROROOROOOOORROOOOOOROOOROROROROROOOOROOOROOOROOOOOOOOROROOROOOOOOOOROROROROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOROOROOOOROOOOOORROROROORRROOOROOOROORORRROROOORROROOOROOOOORORROORROOOORROOOOOORROOOOOROOOORORORRRORORRORROORORRRRORROOOOOOROORROORRROORORRROROROOOOORROORROOOOOOROOOOROOROOOORRROROOROOOORRROOOOOOORORRORROORROOROROOOOOORROROOORRRORROORRRROOOOOROOOORORROORRROROROOOOOROROORORROOOOOOROOOOOORORROOROOROOOOOOROOOOOOOOOOOORROOOOOOROOOROORROOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOORROOOOORRROOOOOROOROOOROOOOOOROOOOOOORROROROOOOOROOOOOOORROOOORORROOROOOOOOOOOOOOOOROOROOOOROOOROOOROOOORORRROROOOOROORRROORRRRROORORORORROROOOOOOORROOOROOOROOOOROOOORROOROORRROROROOORORORROROOOOOROOROOORRRORROORORRORRROORROOORROORRORRRROROOOOOORORROORRROROORROOOROOROOOOOORORROOOROOOORORROOOORRROOROROOOOROOOOROOORROOORORORRROROOOOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOROROOOROOOROOOROOOORORROOOOROOOOOOOROROROOOOOOOOOOOOOORROORROOOROORROOOOOORROOOOROOOOOOOOOOROOOOROORORORROOOOROOROOOORRORROROORRROROROOOOROOORRRROOORRROOROROROOROOROOOOORROOOOOROOROOOOROOROOOOOORRRRROOROROORRROOROROORORRRROOORRORROOORROORORRORORROOOOOROOORORORROROOROOOOOOORORRROOROOORORROOOROOROOOROOORROOORROOROOOROOROOOOOROOOOOROOOOOROOOROOOOOOORROOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOROOOOOROOOOROOOROROOOOOOOROOOOOOOOORROORRORORROORROROOORROROROOOOOROOROOORRORRROROOOOOROORORORRRROROOOORROOORRRRROOOROORRROROOOOROROOOROOORORORRRRRORORRROOOORROOOOOOOROOOOOROROORROOORRROOOOROOORROROROROOOOORROORORRRRROOOROOOOROOOOOOOROOOORORROROOOOOOORRRROROOOROOOOOOOOOOROOOOOOORROOROOOOOOOROOOROOOOOOROOORROOOROOROOROOOOOOOOOROOROOROROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOROOOROROOOOOOROOROOOOOOOOORORROROOOOOOOORRORRRORROOOROOOOROOROOORROOOROORROOROORRROOOOOROROOROORROROOOOOOOROOORORRROORROOROOROORRRROORROOROORORRROROOOORORROOORRRROORORRROOROROOOOOORRRRORRORRORORORRRORRROOORRROOORROOOROORORRROROOROORRRRORRRRRROOOORROORRRROORRROROOOOORRRROOROORORROROOROROOOOROOROOROORRROOROOOOOOROOOOOOOOROROOOOOOORRROOROOROROOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORRROOOOROOROOOOROOOOOOOOOOROOOOOOOOOOOOOOORROROROOOROORORROOROROOOROOOROOOOOORRRORRROROOOOROROOOOORROROROORROORROOOROOORRRROOOROORORROOORROOORRROORRRROOOORROROROOOORROROOOROROROOORRROORRROROOORROOOOOROORROOOOORRROROOROROOROOROORROROROOROOROORORRRROORRRROROROORROOOOORRORORORORROOOOOOROOOOOOOOOOOOOOROROROOOOOOOOORROOOOOOROOOOOOOOOOORROORROOOOROOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOROOOOROOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOORRROOOOOOORROOOORORROOOROOORROOROOORRROOOOOOOROOOOOOOOROOOOOROOOOROORROROOORORRRRRROORRROOOOOROOROROORORORORROORROOOORROORORRRROOORROORROORROROOOOOOORRRROOROORRRROORRORORROROORRROORORRROOORORRROOROOROROOOROOOROORROORRRROROORRORROOOORROOROROROOOROOOOROOOOOORROOOOOOROROOROOOOORROOROOORROROOOOROOOORROOOOOOROOOOOOROOOOOOOOOOOROOROOOROOROROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOROOOOOROOOOOOROOOROOOOOOOOOROOOROOOROOOROOORORRORROOOOOROOOOOOOOOOROOOOOOROORRORRROROOROROOOOROROOOOROOROOOOOOOOOOOROROORROOORRRROORROOOOROOORORROOOOOOOOROROOOOOORRROOROROROROROOOOROOOORROOORORROOOOOORRRRRORORRRROORORROROROROOORRRROOROOROOROROOOOOROOROROROOROOORRORROROROORRRRRRRROOORRROOOOOOOOOOOOROOOORROOROORORROOOOROROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORRRROOOOOOOOROOOOOROOOOOOOOOOOOOOROOOROROROOOOORORROOOOOORRROROOROORORROROOROOOROORRROROOROOOORORROOOOROOORRROROORRRRRRRROOOOOOORROOOOROOROOOROOOOROORORRRROROOROROORRROOROROORRRROROOROROORRRROOROOROOORORORRROORORORROOOROROOOOROOROOROORORRRORRRRRORRROROOOOOOORRROROOOROOOOROOORRORORRRROOOORROOORROOOROROOOOOOOROROOOOORROOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOROOOOOOOROOOOOOOOOROORRRROOOOOOOOOOOROOROOOOOORROROOROORROOORROOORROOOOOROOOROORORORRROOORRRRRORRROOOOOOOOROOOROOOORRROORORORRORROORROOROOOROROOOROORROORRRRROOOOOOORROOROOOORROOROROROROROORRROOOROORORROOROROOOROROORROOOOORROOORROROOOROOOORRRROOOORRORRORROOORROOORRRROOOROROOORRROOROROORRORROOOOROOOOOOOOORORROOOROOOOOOOOOOROOROOROOORROROOOOORORROOROOOOOOOOOOOOOOROOOROROOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOROOOOOOOROOOROOROOOOOOOOOOOOOOOOOORRROOOOOORRRROOOOORORROOOROOOOOOOOROROOOOOORROOOROOROROOORRRRROOOORROROOOOORRRORROORORORORRORROROOOROROOOORRRRRROORORROOOROORRRRRORRRROORRORRRRRROOOROROOOORRORROOROOROOROROROORROOROROOROOOOOOORORRORRRRRROOOOROOOOROROROROOORROOROOROROROOROOOORROOROOROROOOORRROROORROOOOORRRROROOOROROOOOOOOOROOOOOOROROOOOROOOROOOOROROOOOOOOOOROOOOOROOROOROOORORRRROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRROOOOOOOOOORROOOOOOOORROOOROOROOOOOOROOOOOOOORROOOORROOOOOORRROORORROOOROOOOROOOOOOROOORORRORROROOOOOROROOOROROORROOOOOOORRRRORROOOROROOOOOOOOROOROOOOROOOORORRROOOOROOOROOORRORRROROROORROORRRRORROOROOROROOOORRORRRROROOOORRROROOOOORORORROOROOROOOOOOOOOORROROOROOOOOOOROORROORRRROOOOOOOROROOROROOROORROOOROOROOROOOOOOOOOOOOOOOORRROROOOOOOOOOOOROOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOORROOORRROOOOOOOOROOOOOOOOOROOROOROOOOOOOOOOORROROOROOROROOOOOROOOROOROROOOROORORORROROORROOROOROOOROOOOROOOOOOOOOOROOROOOOROORROOOOOOROROOOOORROROROORORROOOORROROOOOOOOROROOOORROROROOOOOROROOORRRRORORORROOOOOOOOOOOROOOROROOOROOROROROOOOOOORRROOOROROORROOOOOOOROROOORROOOOOOOOOOROOOOOOOOROROOOROOROOORROOOOORROOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOORROOOROOROOOOOOROOOOOROOOOOOOOOOOROORROOOORROORROOOOOOROOOOOOOOOOOOROOROROOOOOOOORROOORORROOOROOOROORRROOORORRROOOOROOOROROOROOROOROOROROOOORORORRRRROORROOOROOOROOORROOROORRROORROROOOROOORROOROOOOOOOOROOOOOOOOOROROORRORRROOORORRRROOOOORRROROROOOOOROOOOORRROOROOOORORRORROOROOROORRROOROOORROROOOOROOORROOROOOOOOOORROOOOOOOOROOOOOOOOOOOROROOROOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOROOOOORROOOOOROOORROROOOROOOOOROOOOROOROROOOORROOROOROOORRORROOOOOORROOROOROOROOOROORORRORRRRROOOORRRRRROOOOORROOOROOOROOOOOOROOOOOROORORORRRROOROORROOOORORORRROOOOOORRRRRRORROROOOOOOROROOROOOORRRRORROOOOROORORORRRORRROOOOOROOOOOORROOOOOROOOOOOOROROROROOOOOROOOOROOOOOROOOROOROROROOOOROROOOROROOOORROOOOROOORROROOOROOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOORRROOOOOOOOOROOOOOROOOROOOOOOOOOROORORORROOROOOOOOROOOOROOOOOOROROOOOOOORRRROOOOOOORROOROROOOORROROOOOOROOROOOROORORROROORROOOOORORRROROROOOORRRRRRROOROOROORROROOROROORROROOORROOROOOORORRORORRRORORROOROOOOOORRROOORROROROOOROROROORROROOORROOOOOOOOROOORRRROOOROROOOOOOROOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOORROOOOOOOROOOOOROROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROORROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOROOOOORORROOORROROOOOOOROORROOROROOOOOROORORRORRRORORORORORROROROORORRROOOOOOROOOOOOOOORORROOOROORROOOOOROOOORRRRORORRRRRRRORRROOORROORRROOOOROOORORROOOOOOORRROOOOOROORROOROOOOORRRROROOOOOOROROROORORORROOOOOORORRRRROOOOOOROOOOORROOROORORORRORRORROOOROOOOORROROOOORRROOOOOROOOOOOOOOOOOOORROROORROOOOOROROOORRROROROOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOROOOOOOOOROOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOROROOOOOOOOOOOOOOOOOOOOROOROOORORROOOOOOOOORROOOOOROROOOOOORROOROOOOORORORROOROOOOOOOOROROOROROORROOOOOROOROOOOROOOOOOOORRRRROOROROOOROORORORROROOORRRRORROORROOOORORRRRORORRORRRRROROROOORRRROORRRRRRRROORRORROROOORORROORORRRRROROORRORROOOOORRROOOROORORROORRRROOROOORRROOOOROOOORRRRORROOROOOROORORROOROROOOOOOOOOOOORROOOOOOOOROROOOOOOOOOROORROOOROOOOOOROOOOROOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROORRROOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOROOOOROOOORROOOROOOOROOOORRROROOOOOOOOOOOORROORROOOROROOROOOROROROORORORROOOOORROOROOROOROOROOORORROOOOOOROROROOOORORROROORORRORROOROORROOOORRRRROOROOROROROOOORRORRROOORROOROORRORRROOOROORRRROROORROROOOROROROOOROROOOOROOOROOOOORROOOOROOOOOROOROROOOOROROROOOOOOOROOROORRROOOOORROOOOOOOOOOORROOOOOOOOOORROROOOOOROROOOOROOOROOOORROROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOROOOOOOOOOROOOROOOOOROOOOROOOOOOOOOORROOOOOOOOROOOROOOROOOOOROOOOOOOOROOOROOOOOROORROROOOOOOOOOORRRRRRROROOOORRRRRRORROOOROROROORRRORROOORORRORORORROORRORRORRROOOROOOOORROOORROORRRROOROROROOORORRRROOROOOOOOROROOROOORORORROROOROROOROORRORORROROOORROOOOOORRROORORORRORRROOORORROOORRORORROROOORRRROROORROOOOROROOOOROOROOOOROOOROOORROOROOOOOORROOROOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOORROOOOOOOOOOOOROROOOORROORROOOOOOROOOOROROOOOOROOOOOOOOOROOORROORORORROROORORROROOOOOOOOOOOOOORRRRRRROORROOOOOOORROORRROROOOOOOORROROROOOORRROORRORRRRORRRRORRRRROOOOROOROOROOOOOOOOORROOROROORORRRROOOOOOOORORRRRROORORORRRRORROOOOORRROROROROOOOOORORROORORORRROOORORROOORRRROOOORRORROOROROOROROOROROOOROOROOORORRORORRRROOORRROROOOOOOOORROOOOOOOROOOOORORROOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOORORRRRROOOOOOORROOORORROOOORRRRRORROOROROOROOROOOOROORROOOOOOROORORORROOROOOORRROORRORRROROORRROROOROOROOORROOOOROOOORRORORORORRRORRORRROROORRRRORRORRRORORRRRROROOORORRROORRRORROOORRROOROROROORROROOROORROROOROOOROOOORROOORROROOOOOORROOROOOOORORRROROOOROOOOOOOROROOROORRROORRRRRROOOROOROOOORROOOOORROOORROOOROOOOOOOOOROOOOOOROROOOOROOOOROOORORROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROORROOOROOROOOOOOOORROROOOOORRROOROOOOOOORRRROROOOOROOOOROOROOROOOROORRRRRORROOOORROOOOORRORROOROOOORROOOROOOOOROORROOORRORROORROROORORORRROOORRRRRORRRRORORROORRORORRRROORRRORROORRROORORORRRRROOOOORROOROROROOOROOOOROOOOOORROOOOORORRRORROOOOOOOROOOROOROORRORORRORROROOOROOOORROOROOOOOOOOOOOROROOOOOOOOOOOOROOROOOOOROOROROOOOROOOOROOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROROROOOOOOOOROOOOOOOOROROOORORROOORROOOOOOROROOOORROOROOOOROORRORROOOOROOROOOORRRROOROORROOOOOOOROROROOORORORRROOORRORROOOROOOROROORRORRRRROOROOROOORORRORORORROOORRRRRROROOOOROOORROROOOORRORROROORROORROOOOROOOOOOROOOROROOROORRRRORRROOROOOROOROOOOOOROOOROORORROROOROROOROOOOROOOOOORROROROOOOOORROORROOORROOROOOOOOOOOROOROOOOOOOOOOROROROOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOORROOOOOOROOOORROOOROROOOROOOROOROROROROORRROOOROORROOOOORRRROORROOOOOOROOORRORRORRRROOOROOROOROOOROROOOOROORRRORRORRORRORROOOORROROROOOROOROOOORORRORORROROOORRRROORROOOOORRORORRROOOOOOROROORROOORRROROORRROOOOOOOOORRORRROOROOROORORRRORORRRRROOOROOOORROOROOROOOROORRRORORROOOROOROORORRROOOOOROOOROROROORROOROORRROOOOOOOOOOOOOOOOOOOROROOROOOOROOOROOOOROOOOOOOROOOOORROROROOOOOOOOOOORROOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOROOOOOORROROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOORROOOROOOROOOOROOROOOOOOOROORORROOROOOORRROOROOOROOOOOOROROOOORORROORORRROORORORRROOORORRRRROROROORORRORRRRORRRRROOOOORRORROOOORRROOROORORRROROOROOROORORORRRRRORRRORRORORRROORROOROOOROROOOORRROOOOOOOOROOOOOOROROROOOOORRROOOORROROOOOOOOOOOOROOROOOROROROOORROOROOOROOROOOOROOROOOOOOOOOOOOOORRROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOROOOOOOOOOROOROOOROOOROOOOOOOOOOOOOORORRRROOOOOOOOOOOOOOROOOOROOOOORORROROOORROOOROROOOOOROOROOROOROORRROOORRROORROOROOROROOROOORORRRRRRRRRORORORROROORRRROROOORRRROOOOROOOOROOROROOOOORRROOOOOROROOOROOORORRRORRRORRRRRRROROOROOROORRRROOOOORORRRRRROOOOROORRORRROORRROOOOOOROOOOROOORROROOROOOOOOOOOOORROOOROOROOOOOOOROOOROROOOOOROROROROOOOOOOROOOOOORROOROOOOOOOOOOROROOOROOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOROOOOORORROOROOOOOROOOROOOOOOOOOORROORROROOOOOOOOOORROOOOOOOROOOOOOOOOOOOORRORORORRROOORROOROOROOOROOOOOOOOROOROOOOOOOOORRRROROOROORRROOOROOOROOOORRROOOOOOORROOOOOROROOROOROROOOOORROORORORRRORRRRRRRROOOOORRRROOROOOORROROROORRROOROROORROROORORORROOROOOOOOOROOOORROOROOOOROROOROROOOOOOOROOOOROROOOOOOROOOOROOOOOOROOOORROOOOOOROOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOROORROOOOOOOOOOOOORRROOOORRROOOOROORRROOOOROOOOOOOOOROOOOROROROOOOOOOOOOROOOOOOOROORROOOOROROOOOOOOORROROORRORROOOOORORORROOORROORRORRRORRRORRRORRRROROOORRROOORORROROOROOORROROOROOOROROOOOORORRRROOOOOOOOROOORRRRROOOOORRRORROROOOORORRROORROOORRROOOOOOOROORROOOORORROOOROOOROOOOOOOOROOROOROOROOOROOOROOOOOROOOROOORORRROOROOOOROOOOOOOROORROOROROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOORORORRROOOOOOOOOROROOROOOROOOROOOOOOOOOOROOOOOORROOOOOOROOOOOOROOORROOOOOROOOOOOROOOROROROOOOOORORROROROOORRROOROOROOOOORRRORRROORROROROOOOORORRRORORORRRORROROROROOORROORROOOORROORORROOOOOOOROOOROOORROOROOROORORRRROOROOOROOROOOOORORORROOROOOOROROOROOROROROORRRRRROOOORORRRORRRORROORORROOOOROROOROROROORRORRORORORORROOOROROOOOOOOROOROORRORRRROROOOROOROOOOROOORROOORROROOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOROROOOOROOOOOROOOROOOOOOOOOOOROOOOROOOOOOOOOOOROOOOORROOOOROOOOOROOOOOROOROOOOROORORROOROOOROOOOORRORRORROOROROOROORRRROROOOOOOROOORRORRORORRROOOOOROROOOORRRRRORRRRRROORROORORRRRRORROOOOROROOROORRRRORRORORRORRRRRROROOROOROROOOROOOROORRORRROROORRRRROOROOROROOOROORROORROROOOORRROOOROOORROORORORRRROOOROOROOOROOOORORROOOOOOOOOORRROOOOOORORORRROOOOOROOOOOROOOOOOROROROOOOOROOOROOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOROROOOOORROORROOOOOROOOOOOOOOROOOROOROOROOOOOROOOROOOOOOROROOROORROROORROOROOOOOOROORORRRRRORORRRROOOOOROROROROROOOOOOOROOOROROOROROORRORORRORRRROOROORORROORROOROOOROOORRORROOOOOOOROROROORRRRORORRROORORRRROOROROORORROOOROOORROROOROOOROOROROOORROOROOOORORROROROORRRRRROORROOOORROOOOORROOOORROOOOOOOOROOOOORRROOORROROOOROOOROOOOOOOOOOROOOOOOOOOORORROOOOOOOOORRROOROOOOOOOOROOOOOROOOOOOROROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOROOOOOOROOROOOOOROOOOROOOOOROOOORROOORORRORORORRRORRROOOOROOORROROROOOOOROROOOORROROOOOOORROOOOOROROOROOORROOOOOOORROROROROROROOORORROOROOOOOORROOOOORROROOOOOOOOROOOOOOOOROROOORROROOOOOOOORRRORRRROROOORROOOROROROOROROROOROOOOROOROOOOOORORRRRROOOROROOROOOROORRRORRROOOOOOROROOOROOOOOOOOOORORROROORRORORROROOOROROOOORRRRORROOOOOOROOOROOROROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOORORROOOOOOOOOROORRROROOOOOOOORROOROOOOOROROORRORRORROOOOROROOOOOOOOOOOOOROORRRRROORORRRROOOOORORROOOOOROOOOORRROORRORROOOOOOOOOORRRORRRRROROORRRROOOOORORRROOOROOORORRRRRROORRRROORORRRRORRRROOOROORROOROORROROOROROORROOROOORORROOROOORROORROOROORORROROOROOOOOORRROOOORRRROOOOOOOROOROOOORROROOROOOOOOOOROOOOROORROOOROOOROORROOOOOROOOOOOORROOOROOOOOOOOROOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOROOOOOOOOOOOORROROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOROOOOOORROROOOOROOOOOOOOROOOROOROOOOOOOOOOOOOOOOORROROOROROORROOOORORRRRROOOOROORORORROOROOROORORRROOOOOOROORORRROORORROOOROOROOOORROOOROROOOORRORORRORRORORRRROROOOROORORORRROORRRORROORORORRORORRROORRRROORROOOORORRRROORROOROROOOORROROOORORORRROROORRORROOOOROOOOOOOOROOOOOOOOOORRRRRROOORROOOOOROOOOROOOOOOOORRROOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOROOOOOOROOOOOOROROOOOOOOOROORORROOOOOROOOOROOOOOROOROOOOOOOOOOORRROOROOOROROROOOOOORORROROOOOOOOORORORORROOOOOORROOOOOROORROROROROOORORRRROOOOROROOOOROOORROORORRORORRORRORORROORROOORRRRRORORROORRORRRRORRRROOORRROROOORROOORORRROORRRRRRROOORRORORRRRROOORRRRORRRORROORORRORROORROORORRORROOOROOOOOOORROOOOOOOOORROOROROOROOROOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOORORROOOOROOOOOOOOOOOROOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOROOOROROOROOOOOOOOOOROROOROOOOOOOOOOOOOROOOOROOOOOROOROOOOOORROOOOORRORORROROOOOROOOROOOORROOOROROOOORROROOOOOROOOOOROOOOROROOROOROORRROORRROROROROROOOOOOORROOOOOORORORROOORROOOOORRORRROROOROOOOOOOORRROROOORRORORROROOORRORROOOROOOOOROROOORRROROOORRROOOOOOOORRROOOOORORROOROOOROROOOROOORORROROORRROOOOORROROOOOOROOOOROOROOROOROOOOOROOORORORROOOOOOROOROOORROORROOOOOOOOOOOROOOOOOOOOORORORORROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOROOOOOROOOOROOOOOROOOROOOOOOOROOOOOOOOOOOOOROOOROOOOOOOORRROROOOOROOOOORORROOOOROOOOORORRROOOROORROORROORROROORRROOORROROOOOOOOOOROOOROORROOROOROOROORRROOROOORROORROORRRORRORROOOOOOOOOOORROORORRORRROROOOORROOORRORRRRROROOORRRRRRROOOOOOOOROROOORRORROROORRORROOROOROOOROROOROOROORROOROORRORRRROOOOOROROOOORROROOOOROOOOOOOROOOOOROOOROROOOROOOROOOOOOROOROOORRRORROOOOROOOOOROOOROOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROROOOOOORROOOORROROOOOOOOOROOOORROOOORROORROOROORROROOOROOORORROORRROOOOOORROOOOOOOOROROROOOORROROOORROOOOORROROROOOROOOOORROOORRRORRROORROOROOOORORROOOOOOOROORORROOORRRROORROROOROOOOOOOROROROROROOOOOROROORORRORROOOOROOROOOORRRORROOOROOROOOOOOOROROOOOOOOOOOOOROOOOOORORROOOORRROOOROOORROROOROOOOOROOOORROOOOOOOOOROOOOROROOOOOOOOROOOOROOOOOOROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOROOOOROROOOOROROOROOOOROORRROOOORRROOROOOORORROOOROROOOOOOOOROOOROROOORROOOOOORROOROOOOOORRORORRORORORRROOOROOOOOORROOORROROORORROORORORRRORRRRRRRRORRROORORROOOOOORORORROROOROOOROORORRRRORROOORRRROOROOROROORROOOOORROOOOOROOOROOOOOORROOOROOOROOOROROORORRROROOOOROOORORROOOOOOOOOOROROORRROROOOORORORROOOOOOROOORRRROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOROOOOOROROROOOOOOOOOROORROOOOOROOOOROOOOORROOOROROROOOOOROROOROOOORRRRRORRROORRROOORROOOOORRORROOROOOORORRRRORRROORROOOOROORRROORRRORORRRRROOOOORRORRROORROOROROOORRRORRROOOROOOROOROROROOOORRRROORROOOOOOOOOROOORROROROOOORROROOORRROOORROOORRORRRORROORRORRRROORROOOOORROOOOROROOOORROORROOOOROOROOOOOROOOOOOOOOROROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOORRROOOOORRRROOOOOOOOOOOOOROROROORORROOOOOOOOOOORROROOOOOOOORROOROOORRRROOORRROORRORROOOROOOOORORORORROORROOOOROOORROOOOROOOROOOOOOOROOROROOROOROORORRROOORRROOOROOORROROOOOOROOORRRRRORROROOOOORRORRRORRROORORROROOORROOROOORORRROOOROOOOROROROOOOOOOOORORRROROORRRROOOOROOOOOOOOOROOOOOROOORROROROOORRROOROOOROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROROROROOOROORROOOOOORRROOOORRROOROROROROOOOOOROOORRRROOOOOROOOOROOOOROORORRRROORORROOROOOOOOOROROROORRROORROOORROORROOROOORRROOORROOOOOROOROOROORRROOROORORROOORROOOROORRROOROOROOROORRROOROORROOROROOROOOOORRROOORROOOOROOOROORORRROOORROROOORRROOOROOOOOOOOROOOROROOOOOOOOROOROOOOOOOOOOOROOOROOOOOOORROOROOOROOOOOOOOROOOOORROOOROOOROOOOOOOOROOORROROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOROOORROOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOORORRROOOOROROOOROOOROOROOOROOOOOROOROROOOOORORRORRRORRRORRROORRRRORORRROOOOOORRORORROROOOROOROORORRRRROROOOOOROOOOOOROOORROROROOROOORORORROORROROOORORROOOROOOROOROOOOROOOOROORORRRORRROORROROROORRROOROOROOOROOROROOOOOROORORRRROORROOOOOOOROROOORRROOOOOOOOOORROOOOOOOROOOOOOOOROORRROOOOOOOOROOOOOOOOOOOOOOOROROOOROOOROOROOOOORORROOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOROROOORROOROOOOORROROOOOOOOOOOROOROOOOROOROOOOOROORROOOORRROORROOOOOOOOOOORORROOROORRORROOOOOOROROOOROOOOROORRROOROROOROOROROOOOOOOOOOOOORORROOROORROORROORORROOROOORRORRROOOOOORRROOROOOORRRROROORROOORORROOOOOROROOOOOORORROORRORRROOOROOOOROOOROOORROOOOOOROOOROOROOOOOOOORRORORRROOOROROOROOOOOOOROOOOOOOOOOROROOOOOOROOROOOOOOROOOOOROOOOOOOOOOORROROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOROOROOOOOOOOOOORROROROOOOOOORORROOROORROOOOROROOOOOOOOOROOOOROOOROOROOROOOOROROOOOOROOROOOROOORRROROOROOOOOOOOORORRROORRRRRRORROOOOOOOORORRRORRRROORROOOOOOOOOOOORRRROOOROOORRRROOORROORRRROROOOROROOOROOROOORRROOOROROROORROORORROOOROORRRORORRROROROOOOOORRORORORRORORRROOOROOORRORROOOORROOOOROORORRRORRRORORORROROORRRROOOROOOROROOOORORROOOOOOOROOROOOOOOOOOOOOROOOOOROOOOOOOROOOROOOOOOROOORROOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOORRROOOOROOOOOOOROOOOOOOOROROROOROOOOOROOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOORRROOOOROROOOOOOORROROROOOORORORROROROOOOOOOOROROOOOROORORROROORROROROORORRROORRORROOORORRRRORORORRROOORROOOOOORRORROROOORRRRRORROOROROORRRORORROOROORRROOOOOOROROOORRRRRRRRROOORORRROOORROOOOOOOROOOOOORRRROOROOOROOOOROOOORRROROOOOOOOOOOOROOORORROOROOOOROORROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOORORROOOOOOROOOROOOROOOROOOOOOOORRRROROOOOOOOROOOOOOROOOOROOROOROORROOOOOROOROOORROOOROOOROOORORORRRROROOORROOOOOOROOORROROOROOROOOOOOROORORRORORRROOOROOROOORRRRORORROROOROOROOOROOOOORORROOROOORORRRROROOOORROROROOOOORORORRRORRROOROORRRORROORORROROORRRROOOOOROROOOOROOOOOORORRROORORROOOOOOOOOROROOOROORROOORRRROOROROOOROOROOOOOOOOOOROOORORROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROORROOOROOOOOOORROOOOOOOORROOOOOROOORROROROROOROROROOORROOOOOOOOOOROROOROOROOORRRROOOOOOROOOROROORROOOOOORRROOOOOROOOORRORRRORORRRRROORRROOORRORROORROOOOOROOOOROOOOOOROROORROORRRORRRROOROORRORRROORROOOOROOORROOROOOOORRRRRORRRRRORORRORRRORROOOOOORROROOORRROOROORORRRRORROOROROORROOOORRORORORROORORROROROOOOOOORROOOOOOOOROOROOOOOOORROOOOOOOOOOROOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROROOOOROROOORROOOOOOOOROROOOOROORORORROOROOROOOROOOOOOOOOORROORORRRROOOOOOORROOOROROORRRORROOOOOOORROOORRRRROOOOORRRROROROOORROOORORRRROROOOOOORRROOOOROOROOOOOROOOROROROORRROOOORRORRRROROROOOORROOROORROOOORRRORORORRRRRRROORORROOOOOOOORROROORROOOROOORRRRRORRROOOOORROOROOOOROOOROOOOOOOROROOROOOOOOORRORORROOOOOOORRROOOROORROOROOOOOOOORRORROOOOOOOOROOOOOROOROROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORRROOOOROOOOOOOOORROOOROOOORROOROOROROROOOOROOORORROORRROOOOOROROOROOOOOOOOOOOROORORRRROROOOOROORROROOOROROOORRRRRRORORORORRRRORROROOOOOROOOOROOOOOOROROOOOOOORORORRRRRROOROROOORRROROROROOOROROROOOROOOROOOORROROORROROROROROROOOOOROROOOORORRROOOORORRROOORROOOOROOORRRROROOROROORROOOOOOOOOOROORRROOOOROROOOOOOROOOOOOROOOOOOOOOOOOOOOROROOOOOOORROOOOROOOORROOOOROOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOROOOORROOOOOOOOOOOOOOOROOROOOOOOOROOOORROOOOOORROOOOOOROORROROOORORORROOORRROOORROORRROORORROOROORROOOOOORRROOOORROORROOROOOORRRROOOROOROORROOOOROOORORROOORRRORORROOOORORORRRRRROOROORROROORROORRRORRRORORRRROROROROOORRRRROROORRORRRRORRRRROORORROOORORRROROORROOOOOROOORRROROOOOOROOOOOROOOOOOOOROORORROROORROOOROOOOROOOOOOOORRROOOOOOOOOOOOOROROOOOOOORRRROROOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOORRROOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOORRRORORORROOORROROOORORROOOOROOROOROOROOOROROOOORROROOROROORRROROORROOORORORORROOOORRRROROOOOOOOROORROOROROOOORRRROOOOROORROOORORRROROOOOOOORRORRROOROOOOOROOOROROORRORRROORORRROOROOOOOOOOOOROOOOOORROROOROOOOOOORROOOOOOOOROOOROOOOOORRROOOOOOROOOOOOOROOROOOOOORROOOOOOOOORRROOOROOOROOROOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOROOOOOROOOOOOOOOOROROOROROOROROOOOOROROOROROOOOOORRORROORROOOORORRRRROORRRROROOOOOOOORRROOOOOOOOROORRORRORROOOOOROOROORROORROOROOORRORRRORRORRRROOROOORRORORROROOROROROOOORORRRRROOORRROOOOOOROOOOORRRORROORRRRRORROORRORROROOOROROORRORROROROOOROOOROORROROROOOOROROORORORROOOOOORORORROOOROOOROROOOOOOROROOOOOOOOOOOOOOROOOOOROORROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOROOOOOOOOROORROOORRRROOOROOOOOORRROOORRROOOOROOOOOROOOROOOOOROOORRRRRRRORORRROROOROOOORROOOOORROROOOOOROORRRRRROOORROOROROOOOOORRRORROROORORORRRORROOORROORRRROOOROOOOOOOROOROORRROROORROROOORORRRROOOOOORRRRRORROROOOOROOROOOROOROOORROROOOOOOOROOROORORRROOROORROORROOOORRROOOOOOOROORROOOROROOROOROOOOOOOOOOOOOOOOOOOOORROOOOOROOOROROOOOOOOOROOOOOOROOROROOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOROORROOOOROOOOOOOOOOOOOOOOOORRROOOOOROOROROOOOROOOROOOROOOOOOOOOORROOOOOOROOROOOROROROROOOROOOORORROOOOORORORORRROOORRRRRROOOOROOROORRRRROOORROOOOORORROROORROOOOOROOORRROORROORRORRORRROOROROOOOROOOOOOOORORROOOOOOROOOOOOOOOOROOOORORRRRROORRRRORROOOOOORORROOOOROROROORRORRORROROOROOOOROOOOROOROOROOOOOOOOOOORORRROOOOOOOROOROOOOROROOOOOOOOOOOOOOOOOOOOOOROROROORROOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOORROOOOOOOOOOOOORROOOOROOOROOOOOOOOOOOOOOOROOROOROROOOOOOOOOOOOOOOOOOOORROOOOOOOOORROOOOOOORRROOOOORRORRRRROROORROROOOORRORROROROROOOORRORORORRRORRROOOORRROROROOOOORROORROROORRRROORRORROROOROROOOOOROROORROOOORORRORORROROOOOROORRRORRRORORROOOOOORRRROROOROOORROOOOORORRRROOROROOROOROOOOROOOORRORORORROOROOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOORRROORRRORROOOORROOOOOOOOOOOOOOROOOOOOOOOOROROOOOOROOOOROOOOOOOOOROOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOORROROOOOORROOOOOOOOOORROOOOOOOOOOOOOOOOOOORROOROOOOOROOOOORORROORRROOROOOOOROOROOOOOROOORRORRROOORORRROROOOROORRRRRROOOOORORROOOOOOROOORRRROOORRORRRROOROORRRROROOOROOROOOOOOOORRROROOROOOROORROORROOOROORRROROORRRRRRROOROOOOORROOOOROROORROORRROOOOOROROROOOOOOOORORROOOOOOOROOOROOROOOOOORROOOROORORROOOOOROROOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOORROOOOOOOROOOOROOOOORROOOROOOOOOOOOOOOOROOOOOOOOORROOOROOOOROOOOOROROROROROOOORRRROOOOOOROOOORRROOOORORROOROOOOOOORORORROROOROOOORORRORRROOOROOOOORROORROROORRRROOROROOORRRROOOORROOORROOOROROOOORROOOOOROOROOOROOROORRROORORROOROOOOROOROOROORRORRROROROORRROOROORRRROROORROOOROOORROOROOROOROROOOOOOROROORRORROOOOOROOROROROOROOROOOOROORROORRROOOOOOOOOOOOOOOOOOOOOOOOOOROROROROROROROOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOORROROOROOROROROOOOROOROOOOOORRROROOOROOROORROROOOOOOOOROROOOOROOORRRORROROOOORRROROOOOROOORROROORORORRRROORROROOORRRRROORRORRRRORRRRRORRORRROOORORROORROOORORRRRROROROOOROROORROOROROORRORORORROOOORRROORRROOORROOROOOOOOOOOOOOORROORORROORRRRRROOOORORRROORRROORROOOOOOROOORROROROOOOOOROOOOOOROOOOOOROOROOOOOROOOOROOOOOOOOOOORRROOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOROOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOROORROOOOOROOOOOOOOOOROOOOOOOOORRORROOOORROORROOORRROOROOOROOOOOOOOOOORROOOOOOROOOOROROOOROOORRORORRORRRORROOOOOOOOOOOOOOROROOOOOOOROOOORORORORRRROOOORRORRRROOOROOOOOROROOROOROOROOOORORRORROOOOOORROROOOORRRRRRORROROOORROROOOOROROOOOOROOOOROOOOROORRRRRRROOOOOOOOOROOOORORROOOOROROOOOOORROOOOOROOROOOOOROOOOOOOOORROOOOROOOOROOROOOOOORORROOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOROOORROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOROOOROOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOROROOOOROOORROOOROOOOOOOOOOOOOOOOOROOROOOROOORRROOOORORRRROOOROOROOOORROOORROROOORROOOOOOROOORROORROROROOORROORROORRRROOROOOOOROOORRRORORRROORROOROOROOOROORROOROOOOOOOORORRRROOOOORROOOROORROOORROORRORRORRRORRRORORROROROOOROROOROOOOOORRRORRRORRRROOORROOOORORORRORORRRRRROROORROOOOOROOOOROOOOOROOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOROOOOORORROOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOORROOOROOOOOOOOROOOOOOOOOOROOOROOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOROOOROOORRROOORROROOOROOORORROOROOROOOOOOOOORRROROOROROOOOOOROOOOOROOOROORORROROROORORORORORORORROORRRORORRORRRRORROROORRRROORRRORRORORORRORRRORRRORRRORORRRRRORROROOROORRROOROORRORROOOOORRROROORORRRROORRROOOORORRRORROORRROOOOOOOOOOOROOOOOOOROOOOROROROOOROROOOOOOOOOOOORROROOOOOOOOORORORRROROOOOOOROOOROOROOOOOOOOOROOORRROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOROOOOOORROOOROOORRRRROOOOROOOOOOROOOROOROOROOOROOROOOOROOROOOOOOOOOOOOOOOOROOROOOROROOOOOOOOOOOOOOOROOOOROOOOOORORORROOOOOORROROROOOROOOROORRROORROROORRRROOORRORRRROORRROROOORROORROOOOOORROOROORRRRRRORORORRORRRROROOOORRROROROROROROOORRORROOORRORROOROOOROROOOROOOROOROROOOROROOROOROOROOROOROOROOOOOOROOOOOROOOOROROOORROOOOOOOOOROOROOROOROOOROROOOOOORROOOOROROOOOOOOOOOOOOROOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOORROOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROROROOOOROROROOOROORRORROOOOROOOOOOORRROORRORORRROOOOOOROOORROOORROROOORROORROOROOORROORRROROROORRRORROROOORRRORROORROORRRRORROOORRORRRROOORORROOORRORROOOOOOOORRORORROOORROOOOOROOROORORORROOROOOROOROOORRROOORORRORRROROOOROORRROOROOOROOOOOOOOOOOROROROOOOOOOOOOOOOROOORROOOOOORROOORRROOOROOOOROOROOROOOOROOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOROROOOOOOROOOOOOOOOOOROROOOROROOOOOOROROOOOORROOORROOOORROOROOORRROROOROOOROOORRRROOROOORROOROOROOOOROOOROROOROOOOOOOORROOOOOOROOORORORRRRRRORRRROOORROROORORORORROOORORORRRRRRRRRRORRROORRORROROOOOOOOORROROOOOOROORORROORRROROOROORRRROOORRORROOOORRRRRRRRROROOORRORROOROROROROOROORRORORRRROOORROOOROOROORRORORRORROOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOROOOOOOROOOOOROROOOOOOOROORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOORROROOORROOOROORROOOOOOOOOOOORROROORRORRORRRORROOOOROOOOOROROOOOOROOORORROOOOOROORORROOOOOORRROOROROOOROOOOOROOOROORRRRROOORRRORRORORROOORRORRROROOOROORORROOOOOROOOROOOOOORROORORRRRORORORRRRRORRRROOROOOOOORROOROORRROOOORORORROOOOOOROROORRRORORORORORROROOROOOORORROROOOOOOROOOOOROOOOOOROOOOOOROOOOOOOOORORROOOORROOOROOOOOOOOOOOOOOOROOROOOOOOOOROOROOOOROOOROOROOOROOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOORRROOOORRROOOOOOROOOOOOOROROROOROOORRRROOOORRORRROROROOOROROROOOOROOROROORROORROOROROROROOORORORROROOOORROOOOOORRORROOROOOORROOORRROOOOOROOROROOOOOOOROOROORROOOORROROOOROOOOROORRORROORROOOOOROORRRRROROOROOOORORRROORROOOROROROOOOOROOOORROORROOROOOOROOROOORROOOOOORRRROOOOOOROOOOOOORROOORROOOOOOOOOOOROOOOOOOOORRROOOOOROOOOOROOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOROOOOOROOROOOOROOOROOROOOOOORROOROOOOOROROOOOOROOOROOROROOOROORRRROORORRRRROOOROORROROORORROOOOROROORORORRROOOOOOORROORRRRORORROOORROOOOORORORRORROORRROOOOORORROORORRRORRROOROOOOOOOOROORROOROOORRRROORORRROOORORRROOOOOOROORROORROOOROROOOOOOROOROOOROOOROROOOOOOOOOOOOORRRRROROOOROROOOROOOOOOOOROOOOOOOOOOROOOOROOOROOOORROOROOOOOROOOOOOORROOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOROOOOOOOOOOOROOOOOOOOOOOROORRORORORRROOOROOORROOOOROOROORRORROORRORROOOORRRROOOROOORROORRRORORROROROOOOROORROORROORROOROOORORROROOOOOROROOOROOROOOOORROOROOROROORRROOORROOOOOORORRRORROOOROOORROORORROOROROOORRRROOOORRROROROORRROROOORRROORRRROOROOOOROOORRORORROOOOOOOOOOROROOORORROROORROOOOOOOROOROOOOOOOOORORROOOOOOOOROOOROOOOOOOOROOORRROOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOROROOROOOOOOOOOOROOOOOOOOOOOOROOOOORORROORORORROOOROOOOOOOORORROOOOOOOOOOOOOOOROROORRROOROROOROOOOOOORRROROOORRROORROOOOOOOORRROOOOROOOOOOROOOOOROORORRRROORRORROOROOOROOORRRRORRRROORORRROOROOROOORORORORORROOOOORORROOORROROOOOORORROROOROROOOOOOROOOROROOROOOORRORROOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOROOOROOORORROOOOOOOORROORROOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOROROROROOOOORROOOOOOOOOROOOOOOOOOROOOOOOROOROOOROROOOROOROROOROORORROORORRROOOROOOORORROOOOOOORRRORORROROORRORROOOOORRRROOOOROORRORROOOOOOOOROROOOROOROORRRROOORROOROROROROOROOOORROORROROORRORRROROOORORRORORROROOOOORORRROORORRROORRORRROROOOORROORROORORRRORRORRRRORRRRROOORRRORROOOROOOROOOOOOOOOROORRRORRRRRROORORRROROROOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOORROORROOOOOOOOOOOOOOOOROOOOOROROOOOROOOOOOOOOOOOOOOOROORROOOOOOORROOOROORROOOORROOOOORRROOORROOROOOORORROOOOOOORORRRORRROORROOOOOROOOOOOOORRROOOROROROORRROOOOOORORROROROOORORORROORROORORROOORROOOOOOOOROOROORORRROOOROORROROROROORRRROROROOOOOOROOOORORROROORROORORRORROROROOOORROOROROOOOOOOROOROROROORROROROROORORRRROOOOORRRROOORRROOOOOOOOORORRROOORRRORROORRRRROOOROORROOOOOOOOOOROROOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOORRROOOORROOOROOOORORORROOOOOOOROOROOROROORROROOOOROOOOORORORROORRROROROORROROROOOOORRRRROOROOROOROOROOOOORRORRORORROROOORRORRROOOOOOORORROOOOOORORRROORRRORRROOOOOORORRRORROOROORROOOOORORRORROOOROOOROORORRORORRORRORRRROOROOORROOOOOROOOROOROROOORRRRROROORROROOORORRROOOOOORROOROOOOOOOOOORROROOOROOROOOOORROROOROOOOOROOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOROORROOOOOOOOOOOROOROOOORROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOORROORORORORROOROROROOOROOOOOOOOOOROOOOROOROOROOOOORRRRROOOOOOOROOOOROOOROOROORRROROROOROOOORROOORRRROROOOOOROROORROOOORRORORRRRROROORRRRRRORRROOOOOROOOOOROOORRRORORRRRRROOROROORROOROOROOROOOOROORORORRROORROORRORRRROOOOORRROORROROROOOORRROOORRORROROROROOOOROOOOOROOOOOROOOOOORORRROORROOOOOROOOOROORROOOROOOOOOOOOOOOOOROOOORROOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOROOOOOOOOOOOORRROROOOROOOOOOOROOOROOOOOROOOOOROOROOOOOROROOOOOOOOOOOOOORROOOOROROROROOOOOOOOOORROOOROOROROOROORRROOOORORORORORRROOOROOROOOOROROORROORROOOOOROOOOOROORROOOOORORROROOORRROROOROOORRORROOOOORORORROOOORROOROOORRRRRORRRROOOROROOOOORROOOOROOOOROOROROOROOOOOOROOORORROROOOORROORRORORORRROOROROOOOOOROROOOOOROOORROOOROOOOROOOOOOOOOROROOROOOOOROOOOROOORROORROOORROOOOROOOOROOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOORROOOROOROOOOOORROOOORROOOOORRORROOOOORORROOOOORRROOOOOORORROOROOOOOOORORRROOOROOORRRROROORROOOOOOORROOOROOOOOOORRORRROOOOROROORRROOOOOORROOOOROOORRROROORRRORRRRROOOROOOOOROORRORORROOOORRORROROORROROORORORRRROOOOOROOOOORROOOROORROOOROROROOOOOOROOOOROOOROORORORRRORRROROOORROOOOORRROOROROOOOOOROOROORROROOOROOOOOOOORROOOOOOOOOROOOOOROROROROROOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOORROROROOOOROROOOOROOOOOOOOOORRROROOOROROORROORRORRRROROOOOOROOOOOOOOROOOROOOROROROOOOOOOOOOOORRROOORORRRROOOOROOOOOORRRRROOROOOOORROORRORORORROROOORORROOOROOOOOROOOOORROOROROROOOOORROROOOOORRORRROOOORRRRRORRORRROROOROROROROORROROOOOOOROROROOOOOROROOOOOROROOOOOOOOOOORORORORROROOOROOOOOOROOOOOOOROROROOOROOORROROOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOORROOOOORROROOOROOOOROOOOOOOOOOROOORROOROORORROOOOROROROOOORRROOORORORROOOROORRRORRORROORRRROOOOOROOOORRROOOORORRORORROOOOOROOOROORROOROORRORROOORRROOOROORROOOOOOOORRRRORORROORRRROORROOOOOOORRRROOOORRRORROOOOROOOROOOROOOROOOOOROOROOROROOOOOOROOOOOORRRROROOROOOORORRROOOROOOOORRRORORORORROOOOOOOOOOOOROOORORRRRROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOORRROOOOOROOOOOOOROORRRORROOORRORRORROROROOOROOORRRROROORRRRROOOOROOROORORROORRORRROROROOOOORROORROOROOOORRRRRROOROOROROOOOORROOOOROOROOROOORRROROOOOORROOORROOOOOROORRROROORROOORRORRORRORRROOOOROORROROOROOOOOOOROROOORROROOROORRRROROOROORROORROOOORROROOOOROORORORROOOOOROOOORROOOOOOOROORROOROOOROROROROROOOOOROOOROOOOOORORROOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORORROOORROOOOOOROOOOOORROOORROOOOOOOOOOROOOOOOOOROOOROOROROOOROOOROOOROROROROOOOORORORRROOOOOOROROOORROROOROOROOROOOROROROOROOOOORORRRRRROOOOOROOOOOROOOOOOOOORROOORRORRRORORROROORRRORRROOOOORROOROOROROOORRORRROROOOOOOROOROROORORRRRRRRROROORROROOOOORROOOOROROOORROOROROROOOOORROOOROOOOORROOOORRROOOOOROOOOOOOOOOOROROOORORRRORRROOROOOROOORRROROOOOOOOOROROORORORRRROROOOOOOOOOOOOOOOROOROROOROOOOROROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOORROORRROOORRROOOOOOOOOOOROOOROOOOOROORRORROROROOOROOROORORROOOORRRRORRRRRORRORROROORROOOOOOORORRORRORROOOROOROOOORORORRROORORRROOROORORROORROOOOROOOROORORRORROOROOORRRRRRRORRORORRORROOROOORRORORRROROOROORRROOOOOORORRROOOROOOOOROROROOOOOROOOORROORRRROOROORROROOROROOOROOORROROOOOOOOROOOOOOROORRROORROOROOOROOOOROOORROROORROOOOROOOROOOOOOORRROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORORROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOROROOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOROOOOOOORORORROOORROROOOOOOOROORORROOROROOORRROORORROOOROOROROOOORROROOOOOOOOORORORRROROOOOORROOOOOOORRRORRRORRRORRRROOOOROOOROROROOORRORROROROORRORORRROORROOOOORRORRROOORROOOROROOOORORROROOOOORRORROORORROROOOROROOORRORRROOOOROROOROOOOROOOROROOROORROROORORROOOROOOOOOROOROROOROOOROOOOOOOOOROOROOOOOOOOOOOOOOOOROOOORROOOOOOOROOOOOOOOOOOOOOROOOOOOOORRROOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOORRROOOOOOOOOROOOROOORROOOORROOOOOOROOROOORROOOOOOOOOOOOROORORORROROOORROOROOROOOOROOORORORROORROOORRRROOROOOORRROOORROOOOOORROOOOOOOROOORRRORRRORORROORROROOORRORROOORRRORRRRRORRROOOOOOORROOOOROROOOORRORROORRROOOROOOORRORORRROORRORRROORORROORORROOOROOROOOORORRORORROROOOOOOROOOROOROROROOOROOROORROOOOORROOOOROORROOOORORRROOROORROOOOROOOOROOOOOOROOROOOOOOOOROOOOOOOORROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOORROOOOOOOROOROOOROROOROOOOOOOOOORROOOROOROOROOOOOOROOORROOOOOROOOOOOOOOOROROOORRROOOOROOOORROOORROORRROOORROOROOOOOOORRROOOOOORRRORRRRORRORORROOOROROOOORRRRROORROOOOOORRRROROOORRRORRRROOOORROOOOROROOORRRRRORROOOOORRROORORRROOOOOOOOOOOOOOROROOROOORRORROROOORROOORRRRROOOOOOORRROROOOOROROOROOOOOROOOOROORRROOROOORROOOOROOOOOOOOROROOOROROOOOOROOOORROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOROOROOOROORROOOOOOOOOOOOOROROOROOOOOOROOOOOOORRROOOOOOOOOROOORRROOOROROROOOOOOOOROOOOOOOOOOOOOOOOOROOROOOROOOOOROOOROOOOROROOROROOOOROOROOROROOOROORRROROOROOOOOOORRRRRORRORORRROORORORRRRORRORRROROORORRRORRORRORROORRROOROOOOOROOOORORROROROOOOOOOROROOOORRRORROOROOROOOOORORRRORORROOOROOOOOOROOOOOOROROOOOROOOOOOOROOOROOROOOOROOOOOOOOOOROROOOOOOROOORROROOOOOOOOOROOOOROOOOROOOOOOOOOROOOROORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOORROOOOOOORROOOOOROOROORORROROOOOOOOOOROROOOROOOOROOORRORRORORROOOROOOOOOOOORROORRORROOOOOOOOOOOROOORRRROOOOOOORRROOROORROORRRORRRORRRROOROORORRROORRORRRRORORROORRRRROROORRRROORRORRROROROROOORRORORRORORRRROORROORRROOOOOROOROOOORORROROOOROROOOOOORORROOOOOORRRRROOOOOOOROOORRROROOOOOOOOOOROOOOOROROROROROORROOOROROOOOOOOROORROOOOOOOOOOOOOOORROOOROOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOROROROORORROOOROOOOROOOOROROOOOOOOOOOORROROROOROROROROOOOOOOOOORORROOROOORORRORRROOOROOOROOOORRROROROOORORORRRRROROOOOROOROOROOOOOROROORRORROOOROOORRRRRROORRORRRROOROORRRROOOORROOOOORORORORROOOOROOROOORORROOORRROORRORROOOORROORRRRROOOOOOOROORRROOROROROOORRRRRROROOOOOORORORORORORROOORORROOOOOOOOOROOOROOOOOOORROOOOOOOOOOROOOOROOOOOOOORROOOOOOOOOORROOOOROOOOOOORRROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOORROROOOOORROOROORROOOOOOROOOOROOROOOOOOOOOOOOROORROOROOROOOOOROROOOROOORROOORORROOROOOOOOROOROORORROROROOOROOROOOROOORRROOOORRROOROOROROOOROOOOROOOOROOOROOOOOROORROROROROORRORROOROORROOOROROROOOOORORORROOROROORRRRRRROROORROOORORRRORROROORROOROROORRRRRRRORROORORROOROOORRROORORRROROOOOOOORORROROOROOROORRRORROOOORROOOOOOOOROOOOORROOOOOORROOOOOOOOOORROOOOOOOOROOOOOROOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOROOOOOORROROOOOOOOOOOROROOROOOROROOOOROOOORROOOROROORROOOROROOOOOOOOORRRRRROROOOORRORROOOROOROOOOORROOOROOOOROROOROROROROOOORRRRRORROORRROOOOOOORROROORROOOORROROOROOOOOOOOROORRROROORORROOROOOOOROROORROOOROOROOROROOOORORRROOOOOROROOORRRROORRROOORRROORORRRRROROROORROOROOOROROOOOORORORROROOORROOOOOORROOROROROOROOOOOOORRROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOROOOROOOOOOOOROOOOOOROOROOOOROOROOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOORROOOOROOOOOOOOOOROOOORORRRROOOOOOOOOOOOOOROOROOROROOROOOOOROORRROOOOROROOOOORORROOOOOROROOOROOOORORORORROROOORRRROROOOOOOROROORROOORRORORRRORRRROROORORROROOOOOOOOOOOOOOORRROROOORROOOROOOOOOORRROOOOOROROOOORROOORORROOROORROOOOORORORORORRROORROOOROOOROOROROOOROROOOOOROROOOROROOORROROROROROOROOROROOORROOOROOOOOOOOOOOOROOOOROOOOOROROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOORRRROOOROORROOOOROOROOOROOOOOOOOOOOOROOROOROOOOOOOROOOROROOOROOOOOOOROOROOOOOOOOOOORROROROORROOOROROROORROROROOOOROOOORRRROORROOROROOROOOOORORRROOOOORORRRRROOOOORORRRRRRORORRORROOOOORRORORROROOOOORRRROROROROORROROORRROOROROROOROOROOOOOROOOOORORRRORROROOOROOORROROROOOORROOOOROOOORRROORRROOOOROOORROOORORORRROOOROORORRROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOORROOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOORROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOROOROORROOORRROROOOOOOORROROOOROOOOOROOOOOROROROROOORROROOROORRROROOROOOOOOOOOOORRORRROOROROOOOROOROOOROOOOOROROOOOOROORORROORORRRORROOOORORROOROORORORRROOOOOOOOOROROORRORRRRRRRRORRROROORRRORRRRRORRORORRROORORROOROOORRROOOORORRORORORORORROOOOROORRRROOOOOROOROOROOOOOOOROROOROROROOOOOOOOROOOOROROOOROOOOOOROOOOOOOOROOORROOOOOOROOROORROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOORROORORROOOOOOOROROOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOORRROROROOOROROROOOOROOOOOROOOOOOROOROOROOROOOOOOOOOROOOROOOOOOOORRRROROORRORRORORORROORRRORROOOOORORROROROORROROOROROORROORRRRRRRRRROOOOOORORROORRRRRORRRRORROROROOROORRRROOORROOROOOROORRRORRRRRRROOROOOOOOOOOORORRRRRRORROOOOOORROROOOROOROOORORRORROOORROOOOOOOOROOOOOORRROOOOOOOOOOROORRROOOOROROOOOOOROOOOOOOOOOOOOOROROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOROORROOOROOOOOROROOOROOORROOROORRRORORROOOOOROOOOROOORRORROROOOROOROOROORRORORORORORRRRORRORORRRRROROROOROROOOROORORRRORROOOROORRORROOOOROOROOOOORRRROROORROOOOROORRORORRRROROORROROOOOROROORROORRORRRROORORORRROROOOOOOORROORROOOOORRROROORRRROOOOOOORRRROOOOOOOROOOROOOOOOOROOROOOOOOOROROOOOROOOROOOOOOOROROROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOORRROOOROROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROROOOROROOOOORROOORORROOOORROOROROOOORROOOROOROOOOOOOROOOOOOOOROOOORROOORRORROOOROROOOROROROROOOOOROORRRROORORRROROROROROOOROOROOROORORROOOOROOOOOROOROORRROOROORRORRRROOOOORROROROOROORROOOOROORORRORRRRORROROOROOORROROOROOOOROOOOOORROROORRROOOROOORORORROOROROORORROOOOOOOOOOORROOROOOOOROROOROORROOOROOORRROOOOOOOOROROROOOOOOOOOOOORRORROOOROROOOOOROOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOROOOOROOOROOOOOOOOOROROOOOOOOROOROOOROROOROOOROROOOORRROOORROOOROOOOOOOOOROORRRRROOROOOOOROOOOORRRRROOOOORORRORRROOOOOOOOORORRORRORRORRRROOROOOOOROOORROOOROOORROOOOOOOOORRRROOORORROOOORRORROOOOROOOORROORROROOORROOORROOROOOOROOOORROOORRROOORROORORROOOOOOOOOOOROOOORRRRORRROOROOROOROOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOROOOOOOOOOOOOOORROOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOORRROOOOOOROOROOOOOOOOROROOROROOROOOOOOORORROOOOOOROOOOOOOOOOOOOOROROOORRORRROORORROOOOORRORORRRRORROOROOROOROROOROROORRRORRORRRROROORRRORROORORROOROORRORROOROOOOOOROOOROOORRRRROOROOROROOOOOOORROORRRRRROROROORRRROOOOROORRRRRROOROROROOOROORRORROROORRROOROOOOOROROOOOROOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOROOROROROOOOOOOOOOOOOORORROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOROOOOOOOOOOROOOOOORRROOOORROOOOOOOOROOOOOOOOOOOOROORRORROROOROROOOOROORORROOOOOOOOOOOOORRORRRROOOOOOROORORRROOOROOORRORRRROOORROOOOROOOOOORRORORORROOORROOORROOOOORRROROROROOORROORORROROOOOROOOOORORROOOOOOOROOOOOROOROOOOROOOROOOOROOROOOROROOROOOOOOOOORRROOOOOORROROORRROROOOROORROOOORROORORROROORROOOROOOOOOOORROROOOOOOOOOROOOROOOROOOROOROOOROOOROOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROROROOOOOOOOOOROORROROOOOORORRROOOOROROROOOROROOROOROOOOOOOOOOORRROORRRRORROROOOOOOROROOOROOOOOORROROOROOOORRROORRRROOOROORRRRORRROOOROOOOOROOROORROOOOOOOORORORORRROORRRRROOROORORRROOROOOORROOOOOROOROROOOOOOROOOROROORORRRROOROOOOOOOOORROOOROROROOOOORORRROOORORRROOROOOORORROOORRRROOROOOROROOROOOOOOOROOOROROROROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROROOOROOOROOOOORROOOOOOOOOOOROOOOOROOOROORRRORROOOOROOROOOROOROROORRRROORORRORROOOORROORRRRORORORROORORORROOOOOOOROOROORRORRRRRORRRORRROOORRRORORROROOORROROROROORROOROROOOROOOOOOROROOOORROOOORORROROOOORORROROOROORRROOORRRRRRROORRRROOOOOOROROROOOROROOROOOOORORROROOOOROOROOROOOOORROORRRROOOOOOOOOORRROROOOOOOOOOOROORROOOOOROOOOOOOOOOROOROOOOROOROOOOOOOOOOOOOOOOROOOOOOROROOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOROOROOOOOOOROOROOOOOROOOOOROOROOOROOOOROROOROOOROROOORRROORROOOROROOOORRROROOOOOORRORRORORRROORRROOOOOROOROOOOOOORORRORRORRRRORRROROOROROOOORORRORRRORROOROOOORROORRRROOORRRROROORORORORRORROORRROOROROROOOOROROORRORROOOROROROOOOOOOOOOROROROOROOOORRORRROOOROOOOROOROOORROOOOROROOOOOROROOOOOROROOROROOORROOOOROOOOROOOOOROOOROROOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORORROOOOROOOOOOROOOROOOOOOOOROOROOOOOOOOROOOOOOOOROOOOOROOROOOORROOOOOOORRRORROOROOOORROOORRRORROORORORRROROOOROOOOOROOOROOROOOOOOOOOROOORRROORRRRORRORROOOOORORROROORORRROOORORRORRRROOROOROOORROROORRORRRRROOOOOOORORORROOORROOROORORORROOROROROOOOOROOROOROORORORROORROOOROROOORROOOOORROOOROOOROOOOOOROOOORRRRROOORORROROORROROROOOOOORROROROOOROOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOROROROOOOOROORORROROOOOROOORRRRROROORROOOROOROOOOOOOOROROROOROOOOOROOROORROOOOORORORORORROROORROOORRORORRROORRROOROORRROROROOOROROOOORRROOROORRROOROOORRROOORRROOOOOROOORORORRROOOOOROOROORRROOOOROOORRRRRRORRRROORRORROOOOOROOOOROOOORORRRROOOOROOROOOOOOOOROOROORROROOOROOOOROROROOROOORROORROOOOOOOOOOOOOOOOOOOOOOOORRRROOOOROOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOORORROOOOOOOOROOOOROROROOOOROROOROOROOOOROOOOROOOORRRROOOOOOOOOOOOOOOOOOOOOOORROOROOROOOOROOORRORORORRRRORORROOROOROOOOOOORORORRROOOORORROOOOOORRORRRORROOOORRROOORRRROROORRROOOROROOROROORROROOROOOOOOORRROOORROOOOORROOROOORROOROOOOOROOORORROOROOOORROORRRRRROOORROROOROORRRROOOOOOROOROOOROROOORROOOOORRRRROOOOOROOOOOROOOOOOOOOOOROOROOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOROOOOOOOOOOROROOROOOOOOOOOOOROOROOOOOOORROROOOOOOROOOOOORRORROOOOOROROOROOOOOOROOOOOOOROOOOROROROOOORRRROROOOOOORROROOOOOOOOOOROROOOOOOOORROOOROOOOOOOOROORORORORRRROOOOORORROOOOOOOOORRROOORRRRRRORORROOOOOOOOOORRROOORROORROROROORRROOOOOORRROOORRRRORRORRROOOOOOORROOOOOOOOOORROOOROOOOROORORORRROROROOROOOORROOOORORROOOOOROOROOROROOROOOOORROOOOROOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOORORROOOOOOROROOOOOROOOOOOOROOOORRROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOROOOOROOROOOOOROOOOOOOOOOOOOOOOOORROROOOOOOOROOOOOOOOROROOOROROOROOOOOOROOOOOOORRRROROOOROROOOOOOORRRORRRRROOOOOOROOOROOOORRORRRORRROOOROORRORROROROORROROROORROROORROOOROROORROOOOORRRRORRRRROOOORRROOOOORRROROOOROOORROOOROOOORROOOOOROROOROOROOOORROROORORRORORORROOORROOOROROOOROOORROOOROOOOOOORROOROOOOOROOROOOOOROOOOORRROOROROOOOOOOOOROOOOOOROOOROOOOOOOOOOORROOOOOROOOOROOOOOROROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORORROROOOOROOOOROOROOOROOORORROOOROORROOOOORRRRROOOOOOORRRORROORORORROOROOROOROROOOOROOROOORRRROOOOROORRRROOOOORROOOROOOROORRROOOOOOROORROOOROOORORRRRROOOOOROORRROORROROOOOOOOOOORORRRRRRRROORORORRRROOOROORRROROOOOOOOOOROOOROOOROOOROROROROOOOOROROOROOOOROOOOORROOOORRROOROOORROOOOOOROOOOOOOOORROOOOROOROOOOOOORROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOROOOROORROORORROOROOROORRORRROROORRRROROROORROROOOOORORRRRRORRRRORROROOROROOROORRRRRORRROORRORROOOOORROORROOOROOORRORRRRORROROROROROOROROROOOOOROORRORROROOOROROOOROOOROORRROOOOROORRROOORRORORORROROOOOOOROROROORORRROOOROOOOOORROROOOOORROROROOOOOOOOOORROOOOROOOOOOOOOOOOOROOOOROOOOOOROOOOROOOROOORROOOOOORORORRRRORRRROOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOORRROOOOROOOOOROROOROROOROOORRRORRROOOROOOROOROOROOOOOOORRROORROOORRROOORROOORROOOORRRROORORORORORRROROROROROOOOORROORROOROROOORRRRORROROORROORRRRRORORORRRORORROOOROORRORORROROOOROROORROORRRRRORRROROOOROOORROOOROORROORORRRRORRRROOOROROORRROOOOOORRRROOOOOOROORRROOORROOOOOOOOOROOOOOOROROOOOOOOOOOOOOROOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOROOOROOOOOOOROOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOROROOOOORRROOOROOOOROOOOOOORROOORRRROOOOROROOOOORROROOROOOOOOOROORORRORRRROOOROORORRROOOOORRROOROOORRORORRRRRROOORRROOORORORORROORORORORROROOROOROOROOORRRRROOOROOOOOROOOOROOOOROORRORROROOORORRROOOOROOROOOORROOOOROOOOOOOROOROROOORORROORROROOORORROOOOOOOOROROROOOROOOOROOOOOOROOOOROOROORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOORORROROROROOOOOOOOROOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOORRRRROOOROOOOOOROOOORRROOOOORROROOROOOOOOROOOOORRRROORORRRROOOOROROOOROORRRRRRROORRROOORROOORROOROOROORROORROOORROROOOROROOOOROROOROROOORRROOOOOOROOOOORRRORRORORORRRRRRRROOOOOORRRORORRORROOOOORORROROOOOOROOOOOOOOROROOOOORORROROOOROOOORROROOOOOROOOROOOROORRROOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOORRORROROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROROOOOOOOOOOOOORROOORORORROOORORRROROROOOROOOOOOROORROROOOORORROORORROOROOORRROORROROROOORORORRRRROOOOOORROOORROORORROOORORROOROORROOROORRROORORRORRRRROOROROROORROORROOROORRRRROOOROOOROOOOOORROORROOOROOROOOOOROORROORRRORORORROROORRROOORROOOOOOORRROROOOROORRRROOOROOORROROOOOROOORORORROOOOOOROOROOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOORROOROOOOOOOROOOOOOROOOROOOROOOROROOOOORROOROOOROOOOOOOOOOOOOROOROOOORROOOOROOOOOORORROOOOOOORROOOOROOOOOOOROOOOOOOOOOROROORORRROOOOORRRROOORRROOORORRROOROOROOROROOOOOORRRORRRRRROOORRORRROOOORRROORORROOORORRRORORORRORRRORORRRRRROOORROOROORORROOOROOROOROROOROOOOOROROOOORROOROOOOROOROROOOOOOOROOOOOOORRRROOOOOOOORROOORROOOOROOOOROROROOOOROOOROOROOOROORORROOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOORROOOOOROOROOOROOOOOROOOOROOOOOOORROOOOOOOOOOOROROOROOOOOOOOOOOOOORROOOOOOORROORORRROOOOOOOORROOOOORORROOOOOOOROOROROOORORRRROOROOOOOOOOOROROOOOOOOOORRORROOROOOOOROROROOORORRRROORRORRRROOROOOROROOOOOOOOROOORRRRRRRROOROOOOORROOORORRROOOOROOORROROOORROROORORROOOROORROOROOOOOORORROOOORROROOOROOOOOOOORORORROOOOORROOROORRRRROOOROOOOOROOOOOROOOOORROOORROROORROROOOOOOROOOOOOROOOOOOOOOOOOORROROOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOORROOOOOOOOOROOOOOOOROOROOROROOOROROOOORRROROOOOOOROOOROOOOORORROROOOOOOROORROROROOOOROOOOOOOOROROOOOOROROORRRROOROORRROOOOROOROROOROOOOOORORROOOROOROOORRRRORROOOOOROROOOORORORRRRROORROROROORRRRORRRROOOOORORRRRORROOORRROOORROOOOROOROOOOOROOORRORRORROOROORROOOROORROOOOROOOROROOOOROOOROOOOOROOOOOOOOROOOROOORROOORRROOOOROROOORORORRROOROROOOOOORROOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOROOROOOORRROORROOOOROOOROOOORROROORROROOROOOOOOOOROOOORRROROOOOOOOOOROORRRORRROOOOOROOOOOORROOOROROOORRROORRRROOROOOOOORROROORORRORRORRORROROOOOOORRRORROOOROROROOROOROOORORROOOOROORRRORROOOOOOOORORORORORROOORRORRORRORROOOOROOOROOROOOOROOROOOOROOOOROORROOORROOROOOORROORROROOROROROOOOOROOOOOOROOROOOOOOROOROOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOROORORROORROOOROROOOROROOROOROORRRORROORROOOOROROOOOOOORROORRROOOROROOROOOOOORROROOOORRORRRRORRRRORRORRORRRRRRORRRROOOOOORROORRORORROOORORRORRROOOORRORROOOROORRRORROROOROROROROOORRORROOOOOOROROROOROROOOOOOROOROOOOOOOOOOOOOOOORORROOOROOROOOOOOROOOROOOROROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOROOROOOOOOROOOOOOROOOOOROROOOOOROORROOOOOOOOOOOOOOROORRROORROOOROOOOROOOORROOOOROORRROOOOOORORROOOROOOORROOOOORROOROOORRRRORROOROOOROOROOROROORRROOROROORRROOOOROOORROROOOORORORRROOOROORORRRORORORROORROROORRORORRRRORORRORRRRRROOOOORROROROROROOORROOOOOOROROORROOROORORORORORRRROOOOOROOOOOOORROOOROORRROOOOOOOOOOOROOOOROORORORROOROOOOOROOOROOOOOOOOOROOORRORROOROOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOROORROOOROOORRRROOOOROROROROOOOOOOOOOOROROORORRROOOOROOROORROOOORRROORROOROOOOORROOOOOOOOOOORRRORRROOOOOOORRRORRORORROOORROORORROOOORORORRRROOOROOOORRORRROROROOOOOOOOOOOORORORROOROOROROOROORORORRROOROORORROOOOOROOROROROOROROORRRRRROOOROOOORROOROROOROOOROOOOORRRROOOROROROOORROROROOORORORRRRROORRROOROOOOOORROROOOOORRROOOOOOOOORROOROOROOOOOOOROOOOROOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOORROROOOOORROOOROOOORROROORROOOOOOROOORROROOOROOOROORORORROOOOOROOOOOOOOOROORRROROOROOROROOOOROOORORORROROOOOOOOORRRRROORRROROORRRRROROOORRORORORROOORRORROOROORORORORROORRORRROOORRRORORORRRROORRRROROROOROROOOOOROORROROOROORRORRRROOOOOOORROOROROOOORRRROOOOOOROOROOOROOOROROOOROROORROOOROOOOOOOOOOOOROOROROOOOORRRROOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOROOOOOOOROOOOOROOROOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOORROOOORRORROROROOOOROOOOORROOORROOOOROOOOOOORORROORRORRORORRRORROOOOOOOROOROOROORROOROOOOOOORRORORRORROOOORRRRORROROROROROROOROOROROORRORROROORORRROORRRROORORORRROOOORORROORRORORORRROOOOOOOOOOROOORRROOOROROOOOORROORRRORROOOOOORRRROORORROOOOOORROROOOOOOOOOROOROROROOOOOOOROOOROOOOOOOOOROOOOOOROOOOOROOOOORROROOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOORROOOOOROOORROOOOOOORRRRROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOROROROOOOROROOOOORORORORRROROOORROORORRROORORROOOOORROROOOOOOOOROORROROOOORORROORROROROOORORROROROROROROOOOORROROOROOORROROOOOOOOOOORROOOOOOORRORRROROOROORRROORROOOOORORRROOROOOORORROOOOROOROOOORRROOROOROROROOROOOOOOOOOROORROOROROOROOOOOOOOROOOOOOROROROORRROOORROOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOROROOOOOOOOROOROOOOROOOOROOOROOROOOROOOOOROOOROOOROORORROOOOOROOOOOORRORROOOROROOROORROOROROOOROOOOOOOOOROORROOORORRRROROOOOOORROORRRORRROOROOROOROOOOOORRRROROOROOROROORRRORROOOOORROOOOOOORRRRRROOOOOOOOOORORORRRROOOOOOORROORRRROOOOOOROROORRRRRRRRORRORORORORRROOOOORRORROROROORROOOROOOOOROROORRROOOOOOORROOOOROROOOOOOOOOOOOOROOOROOOOOOOOOOOROOOROOOOOOROROOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOROORROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROROOOOOROOOROOOOOOOROOOOOOROROOOORROOOOOOOOORROOROORROOOOOOROROOROROORROOOOOROOORROROOROOOOROROOOOOROOROOORORRROROOOROOORROORRRRRRROORRRROROORRRROOOOROOOOORORRORROOORRORRRROORRROOOORORORRORROOOORROORROORORROOROROOROOOROOOROROOOOROORORORROOOOORORROOROOORROOOROROOROOROOOOOOOOROOOOOORROOOOROOROOOOROOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOROOOOOROOOOOOOOOOORORRORROOOROOOOOORRORROOOOOROORRORRRROOROOOORRRROROORROROOROOROOROROROOOOROOOOOOOORRROROORROOOOOOOROOOORRRROOROOOOOOOOORRRROOOOOROOOOOROOOOOORROOROORRORRORRROOOOOORRRROOOORROOOORRROROOOORRORRROOOOROOOOOOOROOROROORRRRORRORRORRRRRROOROORORORRROORORROOOROOOORROROOROOOROROOOROOOOOOROORORROROOOOOOOROOOOORROOOORORROOOOOOROOOOOOOOOOOOOOOOOOOROOROOORROOOOOOOROOOOOOOOOROOOROOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOROOOROOROOOOOOOOORROOROOOOORRROOOOORORRRORROOOOROOOROOORRRORROORORROROOOOROOOOOOOOOOROOOOROOOORRORROORORRORROROOROOORROOROORRROOROORRROROOROOROOOORORROOOOOOOOORRRRROOORRRRRROROOOOOOOROORORORORRROOORRRRROROOROROROOOOROROOOROORROROOORRRRROOORORRROOOOORROOORRROORORRRROOORROOOOROOOOOROROORROROORORROOOOOROOOOOORROOROOORROROOOOOOOOOORROOORROOOOOORRROROORORRRRROOOROOOOOOOOOOROORORROOOOROOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOORROOROOROROOOROOORROOOOOOROOOOROOROOOROORRRRROROOROOOROOROROROOOOOORORROORROOOROOOORORORORROOOOROROROOOROROOORRRROOROORRORRRRROOROORRORRORORRROROORRRRORORROROROOOORROOROOROORRROROOORORRROORRROOORRROROROOOOOORRROROORROROOROORRORROOROOOROOOOOROOORROOROOOROOROOOOROORROOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOORROROOOOOOOOOOOROOOOOOOOROOOROOROOROOROOROOROOROOORROROORROROROOOOOOORROOOOROOORORORRRORROOOROORRROOROOOOOOOOOOROORORORROOOORROOOOOOOROOOORRROOOOOOOOORRRROOOORROOORRROOOOROOOOROORRORRRRROORROOOOOROOORORRRRROOOOOORROOROOOOOROROOROOOROOOORRRRROOOOROROROROOOROOROROOOOROOOOOOOOOOORROROOROOOOOOROOOROROOOOROROROOROROOROOOROOOOOOORROOOOROOOORRROOROOOOOROOOOOOOOOOOOROOORROOROOROOOOOOOOROOOROOOOOOOOOROOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOROOOOORRROOOOROOOOOOOOOOOOORROOOOOOOROOOROOOOORROOOOOOOOOROOOOOOORROOOROROOOOOOOOOOOOOROOOORORORROOOOOOOOORORRROOOROOROROORORROOOORROOOOOOOORROOROROOOOOORROROROOORRROOOOOOOOROOORORORRORRRRRORORORRORRROOROOROORRRROROORRROOOOOROROOOROROOROOOOOOOORORROOOOOOOOROOROROOOOORROOOOOOOOOROORRROOOOOOOROOROOOOOOROOORROOOROOOOROOORROOOOOOOOORROOOROOOOROOOROOOOOOOOOOOOOOOOOOOOROOOROROOORROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOROOOOOROOOORROOOOOOOOOOROROOOROOORORROROOOOOOROOOOROROOOOOOOOOROROORORROOOORRROOOOOOOOOORRROROORROROOROORRORROROOOOORROOROROROOOROROROROOOORROROOOOROROORORORRORORRROROOOOOOOROOORORRROOORRORRRRRROOROORRORROOORORRRRROOOOOOOOROROORROOOROORRRRRROROORRRORROOROOOOROROOROROOROOOORROOROORRRRRORRROORROOOOOOOOORROROOOOOOOOROOOOOOOORRROOROROORROOOROOOOOOOORRROOOOOOOOOOOOOROOOOROOOOOOOROOROOOOOOOROROOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROROOOOOROOOOOOOROOOOOOOOOOOOROOORROOOOOOOOOROOOOOOOROOOROROOROOROOOOOOOOROORROOOOOOROOOOOROROOROOOROROOOROOROOOORORROOOOORORROOROOORRRRROOOOORROOROOOORRROORORROROOOOROOOORROOOOROROROOOOOOROORROOOOOOOOROOOOOROROOORRROOOROORROROROOOROOROROOROOOROROORROOROROOOOOOORRRROOOOOOOOORORROOOOROOOOOOORROOOOOOORORORORORRRRROROOOOROOOROOOOOOROORORROOORRORROROOOOOORORROOOOOOOOOOROOOROOOOROOOOROOOOOOOROROOROOORROOOOROOOOOOOOOOOOOOROOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROROROOROOOOOOROOROOOOOOOOOOOOOOROROROORRROROOOOORRRRROOOORRROOORRORORRRROROOOOROROORORROOROORRORRRORRROOROOOORROOOORROOOROOROOROORRRRROOOORRORORROOOOORORRRROOOOORORROORRORORRROORROOOOOOOOORORORRROOOOOOOOROOOOORORRRROOROORRORROOOORRORORORROROOROOOOOORROROOROOOOOROOOOOROOROOOORROOOOOOROOORRRORRRRROOOROOOORROROROOOOROOOOOOOOOOOOROROOORROOOOOOOOOOOOOOOOROOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOROROOROOOOOOOOOOOOROOROROOROORROOROOROROOOROORRROOOROOROORRRRRRRROOOROOOROROORROOOOOOOOOOORROROROOOOOOOOOOOROOOROORRRORRRRORRRRRROROROOORRROROOOOROOOORRROOROOOOOROOORROROORROROOOOOOROOORROROOOOROORORORORORROROOOOOORORRRRROORORORRROORROORRORRROOOORORRRORROROORORROROROOOOOOOORORROOOOROOROORRRROOROOROROROOOOROROOOOOOORORROORRROROOORROOOOOOOOOOOROOOOOROOOOROOROOOOOOOORROOOOOROOOROOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOROOOOROOOORROOROOROOOROROOOROROOORROOORRROROROROOOOROORROORRROOOOROROOOOROOORORORROOROROOROOOOOOORRROOORRROOOOROOROOROOOOROOORORROORRRROROROORRRORROOOOOORROOOROOOROORRORROOORRRRORRROORORRRRRROOROOOORRROOOORRRORRROROOOOOOOROOORRROOROOROOROORRRRRROOOOOORORRRRRORROOOOOOOOOOOOROOROOOOOOROOOOROOOOORROOOOOOOORORRROOOOOOOOROOROOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOORROOOOOOOOOOOOOOOORRRROOOOOOOOOROROROOOOOOOOROOOOOOROOOORROROORORROOOOOORORRROORROOOROOROORROOOOOOOORRROOOOORORRROROROOOOOOOROOORRRRROOORROROROOOOROORRRRRRROORRRORORRRRRRORRROOORORRRORRRORORROOOROOOROROOOOOOORRRORRORROOOOOORRRRORRORROOROROOORRORRORRORORRRORROOOROORORORRROROROOROOOOOROORRROOOROOROOOOOOOOOOOORRRROOOOOOROROOROOOROROOOOROOOOOOOOOOOOOOOOROROOROOOOOROOOROOOOOOOROOOOOOOOROROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOORROOOOOOOOOROORROOOOROOOROOOOOROOOOOORROOOOOOOOOOOOOOOOOROOOROOOROOROOOOROOOROOOOROROOOOROORORROOOOOOOOROOOOOOORORRRROORORORROOOROORORROOROROORROORORRORRORRRROROROORORRRORORORORROOOROOORORROORORORROOROOROOROROROROOOOROOOROORORROOOOOOOROOROOORORRROOOOROROROROORROORRRORRROOOROOOOOROORORROROROROOORORORRROOOOORORRROOOROOOOOOOOOROORRROOROROOOOOOOOOOOOORORRROROOROORROROOROOOOOOOOOOOROOOOORRROROOOOROOOOOOOOROOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOROOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOORORORROOOOOORROOOOOOROOOOOOORROROOROOOOOOOOOOROOROORROROOOOOOROROROROROOOOORORRORRRRRRROOORORROORORROOOORROOOOOORORROROORRRRRORRORROOORORROOOOOORORRROORRRORROROOOROOOOOOOORRRRROOOOOOROOOOOOROOORRROORRROOROROROORRROORRRROROOROOOOOOOOOOROOOORORROOOORROROOOORROOOOOOOOOOROOORROOROOOOOOROROROOROROOOROOOROOOOOROOORRROOOORROOROROOOROROOOROOORRROROOOOOOOOOOROOORROOOOOOOOROOROOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOROOROOOOROOOROOOROROOOOORRROOORORROROROOOOROOOOOOOOORROOROOORRRORROORORORROORRROROOOOORORROORORROROROROORORORORRRRRRORORRRORRROORROROOOORROROOORROROORROOOROOOORRRRORROOOROOROORRORRRRROORRORORRRORROOOOOOROROROOROORORRROORRROROOOOOROROOROORRRRORROOOOOOORORORROOOOOOOOORRROOOROOOOROOOOOROOOOROOOOROOROROOOOOOOOOOROROOOOOOOOOOORORRROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOORRROOOOOROOOORROOORRROOOROOOOOOOOOOOOOROROORROOOOOORRROOORRROOOORRROOROORORROOOOORORROORRORORRRRRROROORORRORROOOOOORORROOOORORRRORRRORORRORRRORRORROROORRRRRROROOROOROOORRORORROROROROROROOORRRORRROORROROORORRRORORROOOROORORORRROOOOOROOOOOOOOOROROOOROORORROOOORRROOOOOORROORRROROOOOROORROOOOOOOOOOORROORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROROOOOOOOOROOOOOOOOOOORRRROOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOROROROOROORRORROOROOOOOROROROOROROORRRORROROROOOORORORRRRRROOOORRROOOROOOOROROOOOOOOOROORROROORROOOROROORROOOORORRROROORRROOOOROOOOORORROROOOOOOROOROROOOROROOOORORROOORORORROOROROOORORRRRROROROOORRROOOOOOOORRROOORROROOORRROOORORORRROORROOOOORROOOORORORRRRRROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOORORROROOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOORROOOOOOOOROROROOOOOOOOOOOORORROROOOROOROOOORRRORORROOOOOOOOOOOROOORRRROOROORORORROOORRRRORORORRROOOROROOOOROOOOOROOORRORRORROOOORROOOROOORROOROOORRROORRRORRROOORROOORROORRRRORRROOOOORRORRORORRRORRRROOORROROOOROORROROOOOROROOROROORRROOOOROROOOOOROORORROOOOOOOOROROOOOORRROOOROOROROROOORROOROORRROOOOROOOOROORROOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOORROOROOOROOROORROOOOOOOOOOOOOOOOOORORROOOOOOOOOOROOOOROROORRROOOOOORROOROOOOROORORORROROOOOOROOROOROOOOOROOROORORRRROROROOROROOOOORORRROOOORORRORRROOOOROROOOORROOORORORRROOROOOROROORORROOORRROOOOROROOORORROORROOORROROORROROROOROROOORORRRORRORORRORRROROOROORRORRRRRORORRORRORRRROORROROROORROOOROORORORROOROOOORROROOROOOROOOOOOOROOORRROORROROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOROOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROROOOOOOROOORROORROOROOOOOORRROORRROOROROOOOROOROOOOOOOOORRRROOOOOROOOOROOROROOOORORORROOROOORROOROOROOOOROOOROORROROOROROORROOORORRRRRORROROROOOORRORROROOROOROROOROOOORRROOOORRRRORRORRORORORRRRROOROROORRRROORRROROOOORROOROOROORRROOOOORROOROOOOOOOROOOOOOOORORROOOOOOOORRROROOROROOORRROOROOOOORROOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOROOROROOROOOROOOOOOOOROOROOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOROROOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOROOOROOROOORRROOOOOOROOOROOORRRROOOOOOROOORRRROOOOOOROORRRORROOORROOOOOOOOOOOROORROROROROROOROORROOOOROORRRROROORORROOORORROORROORORROOOOROORRROORROROROOROOORORRROOORROOORORROROOOOOROROORROORROOOOROROOROOOROOROOOORORRORROOROOROOOOOORRROORROOORORROORROOOOOOOOROORROOOROOOOROOOOOOOOOOORRRORROOOOOROOOOOROROOOROROOOOROOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROROROOROOOROOOOOOOROORROOOOOOOORORROOROROOOOOOOOOROOROOROOOOOOOROOOOOOOROOOOOOOOOOOOOOORROOOROOOROROROOORROOOROORRROOOOROOOOOROOOOROOORORROOORROOOROOOORRROOORRRRORORORRORRORRROORORORRRORRRRROROOORRORROOORORRORORRROROORROOORORROORRRROROOROROORORORRRRRROOOORORRRRROORROOOOOORROOROROROOORRRRRROORROOROOROROOROOOORRROOORORORRROOROOOOOOOOORRROORORRORROOROOOOOOOOOROROOROOOROOOOOOOOOOOOOROOOOOOOOOOROOROOOOROOOOROOOOOOOOROOOOOOORRROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOROOOOORORORORROORRROOROOOOOOOORROOROORROOROOOOROOROROOOROROOOROOOOROORROOROROOORRORRORORRROROORRRRORORORRRROROORORRRRORORORORROOROOOOOOOOOROORRRRRRORRRROROROOOORRRORRROROOOOOOORROOOROROORROOORRRORRORRORRRRRROROROOOROROORRRROOOROORRROROOOOROOROORORRROOOROROOROOOOROROOOOOOROOOOOOROOOOOOOROOOOROOROOOOROOROOOOOOOROOOORROOOOOROROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOORROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOROOOOOOOROOOOOOOOOOOROOROOOOOOOOOROOROOROOROROOOOOOOOOOORROOROOOOOOOOORRORROOOOORORROOOOORRRROOROOOOOROORORROOOOOOORROORRORROORROROORORORROROORRROROOOOROORROORRRROROOOORORORRRRRROOROROROOORRORROOOOROOOOOROORRRRRRORRROOOORORRRORRROOOORROROOROOROOOORRRRROROROOROOROOOOOOOROROROROROOOOROOOOOOROORROOROROOOOOROROOOORROOOOROOROOROOOROROROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOROOOOOOROOROROOROROOOOOOROOROOOOOOORROROOROOOROOROOOOOROOOOOOROROOORROOOORRROOOORRROORROROOOOROOOROOOROROORORRORROOROROOOROOORRROROROROOOOOOORRRORRORROORROROORRRROOORORORROOROOOROORROOORORROORORORRROROOORROROOORRRROORROROOROOROOROORRORROORRROOROOOOROOOORORRORORROROROOOOORROOOOOROORROOORORROROROOOOORROROROROROROOOOOROROOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOORRRROOOOOOOOOROOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORRORROOOOOOOOOOOOOOOOROOOOOOOOOOROOROROORROOOOROOOOOOOOOOOOROOOOOOOROOOOOOROOOROOOOROORROOOROOORROROOOOOORROOOROOOORROOOOOOROORRRROOROOOOOROROROROROOOROOROROOORORRROOOORRROOOOOOORRROOOROROROORRORORROORRROOOOROOOOOOOORROORRORRRROOOOOOOORORORRRROORROOOOORROOOOORORRROOOORRORROORRROORRROOROOOROORROROOOOORORROORRROOOORROOOOOOORORRROORORRRROOOROROROROOOOOOOROOORROOOOOOOROROOOOOROOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROROOOOOOROOOOOOROOOOOROOOOROROOOOOROOOOOOOOOOROOOOROOOOOOORROOOOOOOOOOROOOOOOOOROOOOROROOROROROOOORROROOOROROOOOORROOROROOROOOORRROOROOOOOROOOOROOOOOROOORRRRRORRRRRRORROORRROORROOROROROOOOOOOOORROOOORROOORROOOROROOOROOORROROOORROROOORORRROROOOROROORRRROOOOOROOOOOOOROOOOOROOORORRORORRRROOOOORROOOOOOROOORROROROOORROOROOOOOOOOOOOOORROOOROOROROOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOORROOOOOOOROOOROOROOOOOOROOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOROOOOOORORROOOROOOOOOOROOOOOROOROOROOOOROOOOOOOOOROOROOOOOOOOORROROOOOOORROROROORORROOROROROROOROROOORORROROOOOOOOROORRRROOROOOOOOOORROROORROORRRRRRORROOROOORRRROORRROORORRROOROOORRORRROROROOORRRROORRROOORRROOORROOROORROORORROOROROOOOOOROOORRRROROROOROOOOROOOROROORORRRRROOROOORORROOROOOOOROROOOOOROOROOOORROOOROORRRROROOOOOOOOOOROOOOOOROOOOOOOOOOOOORROOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOROOOOOOOOOROOOOOOOOORRRORROOROOROOOROOOOOOOOOOOORRRROROOOOOOROORRORROOOOOOROOOOOROOOOOOROOOOROORORROOOOROORROOOORORROROOOROOOOOOORORRROOOOOOROORROROROOORROOOOROOOOORROOOOOOROORORROOOOORROOORORRRRRRORRROOROOOROOROOOOOOOOOORRORROOOOORROOORRRRORRRRROROOOROOORRORROOROOOOOORROOOOOOOORORRRRROROOROORRROROOORROORORORROOOOOOROOOOORRORRRROOOOOROOOOOOROOOOOOOOORRORROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOORRROOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOORROROROOOOOOOROOROOOOROROORROOROOOOOOROROROOROORROOOOOOOROOOOOROROROROOORRRROROOOROOOOROOOOROOOOORROOOOORRROROORORRORRRRROOOOROOROORORROORRORRROORROOOOOOOOOORRROORRRROOOROOOOOROROROOOOROROOROORRORROOORROOOROORROROOOOROORROOROOROORORROOOOOORRRRRORRROORROORROORROOROOROOOROROORORROOROROOOOOOOROOROROOORORRRROOROOROORROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOROOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORRROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOORORORRROROORRORROROORORRROROOOOOROOROOOOROOROOOROOOROOOOOOORRROOOOORRROORROORRORRRROOOOOROOOOOOOOOOROROORRROROOOOOOORRRRROOORORRRORRROORRRORRROORROROOOOOROOORRRRRRRRRORRROROOROOOROOOOOOROOOOOOROOOOORROOOOROOROOOORRROOORROROOOOOORORRROROOOORRRORORORRRROOROORROOOOOOOOOOORROOROOROOOOROOOROOOOOROOROROROOOROOOOOOOOOOOOROOOORRROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROORROOOOORROOOOOOOOOOOOOOOOROORROOROOOOOROROOOOROORROOOOOOORRORRRROORRROROOOROOOOROOOOOROROORORORORROOOOOROOOOOOOOROOOORRROOROORORORRRRROOROROOORRRORRORROOROOORORORROOOOORORROOOOROORRRRROORRRORRROOORORORRROOORRORORROROORRORRRROOORORROORROROORORRRORRRORROOROOROOOOROROOOORROROOORROOOOOROROOOOOROOORRROOOOOORORROOOOOOOOOOOOOROOOOOOOROROOOOOOROOROOOOOOOROOROROOOOOOOOOROOROOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROROOOOOOOOOROROOOOOOOOROOOOOORORROOOOOOOOOOOROOOOORRROROROOOOROROOOOOOOROOOOOOOOOOOOORORRRRORRROROROORORORROOOOOOOROOOOOROOOOORORROOROOOOROROROROOOOORRROROROOROROOOOORRORROOROORORRROROOORORRRORRROORORORRORROROORORROOOORRROOROOOOROOOOROORRROORORORRORORRRORROROROOOOOOOOOOOOOOROORROORORRROOORROROROOOOOOOOOROOOOOOROOOOOOOROOOROORRROOROROOOOOROOOOOOOOOROOOOOOROOROOOROOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOORROOROROROOOROOOOOOOOOOROOROOOROOOORROORRORROOOORROOOOOROOOOOOOOROORROOOROOOROOROROOROOOORORRROOOOORRRORORROROOROOOROROROOOOOORORROOROOROOOOOOOOOOORORRRROROROOOOORRROROOOOROOORRRROORRORRROORROOROOOOOOOROOOROOOOORROOROROORRRORROROROOORORORROOOROOOROORRROOROOOOOOROROOOOROOOOOOROROOOROOOOOOOROOOOOROROOROOOOOROROOOOROOROOOROOOROOOOOROOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOROORROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOORORROOOROOOOOOROORROOOOOOROOOOOROOROOOOROROOOOROORROOOROOOOOOOOROOOOOOOROOOOROOOORROORORRROOOORROOOORROOOOORRRORROOOORORRROOROOOROOOOOROROOOROOORORRRRRRRRRORRROORRROROOROORROOORRRRROOROOORRROROORRRRRRROOORRROROOORRORROROROOOOOOORROOOORRRROOOROOOOOOOROOOOOOORRROROROOOORRROOROROOROOOROOOOORROOROOOROOROORROOOOOOOROOOOOOOOOOROOROROOORROOROOOOOROOOOOOROOOOROOOOOOOOROROOOROOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOROOOOOOOORROOOOOOOORROOOOOOROOOOOOOOOORROOOOOROOOROOOOOROROOOOOOOOOROOOORROORRORROORROOOOORROROROOOORORROOROOROOOOROOOORROOORROOORORROOOOOOOOOROOORRROOROORORROROORORORROROOOORRORROROROOROOORRRORORRRRORORRORRROOOORRRRRRRORRRROOOOROOOOROOORRRORRRRORRORRORRROROOOORRROOOROROOROORROOOROOORORRROOOROOOOOOOROORRORROOOOOOOOORRRROOOOORROROOOOROROOOROROOOOORORROROOROROOOOOOOOOOOROOOORROOROROOROORROOOOOROOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOORRORROOOORROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROROOOOOOOOOOOOOOROOOOOROOOROOOOOOROOORROOOROOOOORROOROOROOOOROROOOOOOORRRRROROORRRRROORRRROOOROOORROOOORRORROOOOOORORRRORRROROOROOOOOOOOORORORRORRROROROOOOOOROOOORRRRROROORRRRRRROOOORROORRROORRROOOORRRRRORROROROORROORRRRORRROOOOOOOORRRROOOOROOOOOROOOOOORRRRRRORROROOOOOOOOROOOORRRORROROOOOOOOOROOOOOOOOOOOOOOROROOROOOOROOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOORRROOOOOOOROOOOOOOORRROOOOOOOROOROROOOOOOOOROOROROOROOOOORROROOOOOOROOORORROORORORRROROOROOROROOOOOORROOOOOROROOOOOROOROOOROOOOOOOROROOORRORORORRRRRRROORROOROROROOORRROOROROOROOROOOOOORROROOOROOROOROOORORRORORROROOOOOOROORRROOOOOROROOOOROOOOOOORROROORROOORRROOOOROROROOROOORROOOOORROOOOROOOOOOOOOORRORROOOOOROOOOOOOOOOOOOROOROOOOOOOOROOROOOROOOOOOOOOOOROOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOORRORROOROOOOOOOROOOOOOOROOOOOOORORROOORRORROOOOOROOOOOOORRRROOROOROOOOOOOOROOOROOOOOOOROOROOOOOOOROORRROORRRROOOOORRROOROROOROOROROORROORRROOORRRORROROORRROOOOOORORRROOOORRROOORORROOORRROORROOOROROORRORORRRORRORRRRRRRRRROORROROOROOOORROOOROOOORORORROOOOOOOOORROOOORROOOOOOOROOOROOROOOOROOOOOOOOOOOROOROOOORRROOOOOROOOOOOOOOOOOOROOORRROOOOOOOOROOOOOROOOOOOOOOROROOOROROOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOROOOROROOOOOROOOOROOROROOORROOOOOROOROOOOOROORROROORRORRRRROROOOROOROOOOOOORROOROROOOOOOORRRRRRROOOORROORRRRORORROROORORROOOOOOORRROROOOOOOOOROORROORRRROOOOOORROROROROOOOROORRRROOOOROOOORORROROOROOOROOORROOORRRORROOORORORRROORROROOORORROOROORRRORRRROORORROROOORROOOOOORRRRROOOOOOOOOORORRROOOOOOOOOORROOOOROOOOOOROOOOOORRRRRROOOOOROROROOOOOOOOOOOOROORROOOROOOROOOOOOOROOOOOOROOOOOROOROOROOOOOOOOROOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOORRROOOOOOORORORROOOROOOOORROOOROOOOOOROOOOORRRROOOORRROORRORORRROOOORORRRORORRROROOOOORRORRORROOROOROORROROORORROOOROROORORORRORORROOROROOOOROROORRRRORRORROOOORRROOROORROOOORORROOROOORROOOOOROOOORORRORRROROORORORROORRORRORORRRROOOOOOOROORRROROOOROOROOOROOROROOOOORROROOORROOOOROOROOOORRORROOORRORORROOROROOROOOOROOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOORROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOROROOOOROOOOOOOOOROOROOOROOOROOOOOOOROROROOOROOROOOOOOROOOOOOORROOROOROOOOOOOOOROROOOROOOROOOORROROROOOOROOOOROROORROOOOOOOOROOOOROROORROOOOOOORRORRORROOORORROOOORORROOOORRROROOOOOOORRROROOOOOOOROOORORROORROOOOROOOOOROOROOOROOOROROOOOROOROOORROOOOROOROOOOOOOORROOOOROORORRORORRRRRROOOROOOOROOOOOOOOOOOORROOOOROORROROOOROOROOOOROOOOOOOOROOOOROORROOOOOOOOROOOOOROROOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOROOOOROROOOOOROOORRROORROOOOOOOOROOOOOOOOOROOORROOORRORRROOORRRROORROROOOOOOORRROORRRRROOOROORRRRROORROOROOOOOOOOOOOROOOROOOOORRRORRROOROOOROOOROOROROORORRRRRORROORRROORRROORRRORROROROORROOOOORRROOOOOOOOOOOROROROOOROOOOORROOOOOORRROOOROOOOORORRROOROROROOORRROOORORRRROROORROOOOROOOOOROOOROROOOOROOOROOORROOOROOOOOROOOROOOOOOORROOOOOROOOOOROOOOROOOROOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOROROROOOOOOOOROOOOOORORROOROOOOOOOROOOROOORROOOOOORORROORROOOOOOOOROOORORORRROOOOOOOROOROOOOOOOORRROOROROORRORROOOROOOROORRROROORRORRRORRORROROOROOOORORROOOOORROROOOROORRRRROOOOOROOROOOROOOORORORORRRROORORORROOOOOROOOOOOORROOOOROORORRROROOOORROROOOOROOROORRRRROOOOOOOOOOROOOOOOOORROOOROORORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROORROROROROOOOOOOOOORROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOROOROOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOROOROOOOOROOOOOOORROOROROROOOOROOOOOOROROORRROOOOOOOOOOOORRROORORROORORORROROROOROROROROOORRORORROOOOORORROROOOOROOOOROROORRRROOORRRRORROOOOORRRRROORROORRRRROOROOORROORORORORRORRORROORRORRROOROORORORRROOOOOOOORORRORRROOOOROROORROROOROOOOROOOOOORROOOROOOOOROOOOROORORROROOOROOOOROOROOOOOOROROORRORROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOROOOOOORROOOOOOOOOOOOOOOOOOOROOOORROOOORRROOOOOOOROROOROOROOORRRRROROOROOROOOOOOORORRORROOOORRORROORROORORORRRORROROROOROOOOOOORRRRRRORORRRROROOOOOORRROROORRRRROROORROORRRRROOOROOOROORRRROORROOORRORORRORORRRORRORORRROOOROOOOOROOROROROROOOROOOORRROOOROORORROOOROOOORROROORROROORROOOOOOROOOOORROOROOOOOROOOOOORORRROOOOOOORROROOOROOOOOOOOOROROOROOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOROOOORRROROOORRROOOOOROROOOOOORORROOROOOOOROORROOOOOORORROOOOOOOOROOORROOOOOOOOOOORROROOOROOORROROROOOORRRRORRROOROROORROOOORRORORRROOROROOROOORROROOROORORRORORROOROOOORRORRRRROOOOOORROORROROORROOROOORROROOORRORRROROROOOOOOOOOOORRROOORROOOOROOORRROORROOOOOORROOOOOROROROORROOOOOROROROOOROOROOOOOOROOOOOOROOOORORROOOOOROOOOOOOOOOOROOROOOOOROOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOROOOOOOOOOOOOROOOOROROOROOROOOOOROOOOOROROOOOOOOROORRROOROOOOOOOOOOOOOROOOOROOOOROOOOOOOROROOROOOORRRRROOOORROOOROROROOOOOOOOORRRROOOOORRROOORRROROOOROORRROORRRROROROROOOROORORRORORORROROOOOROOROROOOORORROROROOROOOROROOOOOOORROOOROROOROROROOROOOOROOOOOORRORORROOOOOOOOOOOOOOOOOROOORRRROOORRORORROOOOOORROORORRROROOROOROORROROROOOOROOROOOOOOOROOOOOOOOOOOOROROOROOOOROROOOROOOROOORORROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOROROROOOROOROOORROOOOROROOOOOOOOOROOOOOOORORROOROOOROOOOROOOOOOROOOORRORRRRROOOROROOOOROOOOOROORORRRRORROROROOROROROOOORROORRROOOOROORRROOROOOROOOORROOORORROORRORROORORORORRRROOORRROORROOROOROORRROORRRRRRRROOROOOOOOOOOORRRROORRRRORROOOORRORROOOROOOROROORROOOOORRORORROOOROOROOOROROROOOOROOOOOOROOOROOROROROOOROROOOOOOOOORROOOOORORORROOROOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOROOROOOOOOOROOOOROOOROOOOOROOOOORRROROOOROOORORRROOOOOOOROOROOOOORROOROOOOOOOOROROROOOOROORRRRORROOOROOOROOOOOROOORRROOROOROORORROOROOOOOOOOOROROOOOORRRRRRORRRRORROORORRRORRRRORROORORRRRRORRRRROOOORRROOROROOOROROOOOOORRROROROOROORROROORRROOOROROOROROOOOOOORRRRROOROROROOOOOOOOOORORROOOOOOOOOOROOROOROOOOOOOOOOOOOOOOORROOORRROOROOORRROOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOORRROOOOORROROROOOROOROOROOOOROROOROROROROOROOORRRORROOOOOROROOOORRRROORRRROORORRROOROROROORORORORROOROORORROOOROROROROOOOROOOOROROORRRORORRRORROROOROORROOORRRROROOOOOOOOOORORRROORRORORRRROOOROROORORORROOOROOOORRROORORORORROORROOOOOOORORRROOORORRROROORORORROOOOROOROOROOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOROOOOOORORROOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROROOOOOOOROOOOOROOOROOOOOOOOOROOROOOOOOOOOOOROOOOOOOORROOOOOOOOORROOOROROROOOOOOROOOOOOROOORORROROOOROOOROOROOOOORROOROOOOOROOOOOROORROROORROOOOORRORORORRROOOOOROOROROOOOROORRORRORRORROOROOOOORRRRROOOORRORORROOORORROOOORRROOROROORORROOROOOOOROOROROROOORROOROOOOOORROROOOOROOORORORROOROOOROOORROOOROOOOOROOOOOOROROOROROOOOOOORRROOOOOROOOOOOOOROOOOROOOROROOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOORROOOOOOOROROOOOOOOOOOOOOOOROOROOOOOORORROOROROOOOOOOOROROOOOOOOOOOROROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOROROOROOOROOOOOOOOOOOROORRRRORRROOROOORROOROOOORRRROOOOROOROOROOOOROOROORRROORRRORRROORROORRRROORORORRORRORRRRRORRROORROROOROOROOOROOORRORRORROOOOOORORROORRORORORROOOOOOOOROROOOROORROOOROORORRROOOOOOOOROORROOROOOOOROOOOROOROOOOOOOROOOROOROROROOOOOOOOOOOOOORROOOOOOOOOROOROOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOROOOROOOROROOOOROOROOOOOOOOROOOOROOORORROROOROOORORROOROOORROOORROORROOOOORORROOOOOOOOOORORRRORROOOOOROOOOOOORRORROROOOROOROOORROOOROROOROORROROOOOOOROORROROORRORRROOROOOOOORROOORRRRROROOOORRRRROOOOOOROOROOOOOOOROOOROOOOORORRRRROOOROORORORROOROOROOOOOOOOOROOOOOOOOORORROROOOOROOOORORROOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOROOOOROOOROROOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOORRROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOROOOOOOOROROOOOROORROORRRROROOOOOOOOOOOOROOOORORROOOOOOOOOROOOOOORROOOOROOOORORRROORRRRRORORROOOOOORRRROOROOOORORRRRORRORROOORRRRORROOROOOOOROROROOOOROROOORRORROORORRORORORRROOOOORRRROOOOOOROROROOROOROOORORORRROOOORRORRORROOOOOORORRROORRRROOOOOOROROROOROOOOOOOROOOOROOOOOOOOOOROOOOOOOROOOOOOROROOOOOOOROORROOOOOROOOROOOORRROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROROROOOOOROOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOROOOOOOROOOOOOOROOROOOROOOROOOOOORORORROROORROROOROOOOROOOROOOOOOOOOOOOOOROOOOOROOOROORRRROROOOROORROOOOORROOOOOOROORORROOOOROOROORRORRRRRORRROOOOOOROOROROOROORORRRROROOROOOOOROOORROORORORROROROOORORRRRROOOOORROOOROOOOROORROROROOOORROOOOROOOOOOORROOOOROORROOOORROROORRRORORORROOOORRORRRRROOROOROOOOOOROOROORROOOOOOOOOROROROOROOROOOROOOOROOOOOOOOROOROOOOOOOOROOOOOOOOOROOORRROOROOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOROOROOOOOOROOOOOOROOROOROOOROOOOOOOOOOOOOORROOOORORROOOOROOOOROROORROOOROOOOOOROOOOORROROOOROOROOOROROROOOORROOOROOROOOOOOORRORORROROOORRRRROROROOOOOORRRORROROORRRRORRRRRRRORRRROROOROROOOORROOOOOOOOORRROORORROROOOOOROROOOOORRRORRORROOROOOROORRROOORROROROOOOOORROOOOOOOROROOOROROOOORROORROROOOOROOOROOROORROOOOOOOORROROROOOORRROOOOOOROOROOOOROROOOOROOOROROOOOOOOOOOROROOOOOOOOOOOOOOOORRROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROROOOROOOOOROOOROOOOOROROORROOROOOROOOOOROOOOOOOOOOOOOROOROOOOOOOOORROOROOOORRROOOOOOOORORROROROOORORORRROOOOOROOOORORROOOOOOOORRORROOOORRRROORROOOROOORRRRORORRRRORORRRRRRRROROOOOROOORRROROOORORRORRORORROOOORORORROROORROROOOOROOROOROROOOOOOOORROOOROOOORROOOROOOOOOOORORRRRORROOROOOOROOOORROOOOOOROOOOORROOOOOOROOOOOOOOOOROOORRROOROOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROROOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOROOROOOOOROOOOOOOROOOOROOOOOOOOOROOROOOOOROOOOOROOROOROOOOOROROOROOOROOOORROOOOOROOOORROOOOROOOOROOROOOOORRROORROOOOOOROROORROOORROOOOOOOOROOROROROOOOORORRORRRRRRORRRRRRROORRRROOOOOOOOORRORORRROOOROOOORROOROORORROOOOROOROOORRROOORROOOROOROOROROOOOOOOOROOOROOOORROOOROORROOROORROOORORROOOROOOOOOOOOROROROOOOOOROOOOOOOORRROOOROOOOOOOOOOOORROOOROOOOROOOOROOOOOORRROOOORROOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOORRROOOOOOOOOOROOOROOOOOROOOORORROOROROROOOROOOOORROOROOOOOROOROROOOOROROORRRROROOOOROOOROOOOROOOROOOOORRRRRRROOROOROROOROOOROOORRROORROROROOOROROOORORROOROOOORROOORROROOORROROOOROOORROORRROORORROOOOROOOOROOROORROROROOORRROROOOROOORRROOOOOROOORRROORRROROOOORRROOROORROOOOOOOOOORORROOOOROROOOOROROROROOROROOOORROROOOOOROROOOOOOOOOROORROOOOOROROOOORRROOOOROOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOROOOOORROROOOOOOOROOOOOOOOOOOOOOROOOOORROOOOOOROORRROOROOOOORROOOOOOOOOOORROORRRRRRORRROROOROROOOORORRORROOOOOORRRORRRRROOOOORRORROOROOORRORROORORRORRORORORROOOROOROOROOOROROROROROOROORRRORRRROROOOOORRORROORORRROOOORROOROROORRROOORROOORROORRRROROOOROROOORROOROROROROOOOOORRRRROOOROROOOROOOOOOROOROROOOOOROOOOOOOOOOOROOOORROOOOOOROROOORROOOROOOROOORROOOOOOROOOOROOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOROOOROOOOROOOROROOROOOOOOOOOOOOORRORROROROROOOOOROROOROROOOOROROOOOOROOOOORORORROOOOOOOOOROOOOROROROOORORORRRROROROROROROOROOORRROORRROROOORRRROORRRORORORROOROROORRORROOOOORROOROROROROORROOROOOOOOORROOROOOOOROOOORRRROOOOOOROROOROOOOROOORROOOOROOORORRRRORORRRRRRROROOOROOOOOOOROOOOOOOOROOROOOOOOROOOOOOOOOOOROOOOOOOROOOROOOOROOOOOOROOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOORROOOOROOROOOOROOOOROOOOOOROROOOOROROOROOROOORROOOOOOOOOOOOOOORROOOOOOROOROOOOROORROORORORRRRROROROOORROROROOOROOOOROOOOROOROOROOROOROROOOORROOORORROROOOOOORROOOROOOORROORRORORRRRORORORROORROOOROORROORROOOOOOORORROROROROROOOORRORRORRORORRORROORROOOOOOORROOROOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOROOOOOOROOOOOROOROOOOOOOROOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOROOOOROOORRROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOORROROROOROOOROOOOOOORRROOOOORROOOROOOOROORROOOROOOROOROOORRRROOOOROROOOROROOOORRORROOORRORRROOOOOROOROOROOOOOROROOOOOORRRRRORRRORRROOROROOOROORRORRRROOROORROOORORROOOOROOOOORORRROROROOOOOOOOROORRROOOOOROOROOROROORRRRROOORRRRRRORROOORORRRROROROOORROORRRROOROOROOOOOROROROOOROOOOORROOOOOOOOORROOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOORRROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOROOOOOORROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROORROOOOOOOROOOOOOOOROOOOOOOROORROROOOROOOORORORROOORRROOORRRORROOOOROOROOROOROOOROROOORROOROOOOOOOOROOOORORRORROORRROOROROORRROORORRRROOOOOROOORRRRROOORROROOORROOROOOORORORROORORROOROORORROORRRORROOORRROOOROORRROOOOORORRORROOOOOROOROOOOROOROOROOOROORORORROORROOORROOOOOORROROOROOOROOOORORROOOOOOOOOOROORROOOOOOOOROOOOOOOOOOOOORROOROOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROROOOOOOOROOROOORORORROOOOOOOOROOOOOROOROROROOOOROOORROORROOROOOROORRORRRRROOOROOORROROROOROROORRRORROORROOOOROOOROOOOOORROROOOORRRRRRORORRORRRRORRROORRROROROOOORRRROOROOORRRROOROOROORROROOOOOROORRROORROROROROROROROROOOROOOOOORROOOOOOORROOOOOROOOROROROOOOOOOOOOOROOROOOROORORORRORROOOORRROOOOOOOOOOOOOORRRRROOOOOOOROORROOOOOOOOOOOROROROOROOOOROORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOROOOOOOOROOOROROORROOOOORROROOROOORRRROROOROORORROOOORRRRORRORORORROOOORRROOROOOOORROOOOROOOOOOORROOOOOOOOOOOROROOOOOOOOOROORORROORROORROORROOROOOOROOROROROROROORROORROOROOOROORROOROOOOORORROOROORROOROOOOOOOOOOOOORRRRRRROOOOOOOOOOOOOOOORRROORRROOROORRRROOOOOOROOORRRORROROROROOOOOOOOOOOOOOOORROOROOOOOOOROOOOROOOOOOROOORORROOOOOOOOROOROOROOOORROOROOOOOOOOROOROOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOROOROOOOOOOOROORROOOROOOOOOORROROOORROOOOROOOOOORROROOOOOOROOOROROOORROOROORRRRRROOORORROOOORROOOOOOOROOOORRORRRRORORROROOOOOOROOROOOROOOOOOOOORORROROOORROOOROOORROOORRRORRORRRRORROOROOROORRROOOORRROOROORORROOORRRRRROOOROROOOOORRROROOOOROOORORORROOOOOORORROOROOROORRORROOOOROOROROROROOROOROORROOOOOORROOOOROOOOOOOOORORROROOOROORRRROOORRROOOOROOOOROOOOOOOORRORROOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOROROOOOOORROROOOOOOOOROOOOOOROOOOOOOOROOROOROOOROROROOROOOROORROROOOOROOORRROROROROOOOROROOOOOOOORRRROROOOROOOROOOOOOOROROOORROOOORORROOOOORROROOORRORROOOORORRRORRORORROOROORRRRROOOORORRORRROORROOOOORORORRROORRRROOOROOOOOOOROOOOROOROOOOORORRORRROROOOORROROORORORORRRROROROROOOOOROOORROOOROOOROROOROOOROOOOOROROOOROOOOOOOOORROOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOROOOOOOOOOOOROOOOOOROOOOOOOOROOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROROOOORROOOOOOOOOOOOOOOOOOOORRROROROOOOROOOROORROROOOROROOROORORRRROOOOROROROOOOOOROROOOOOOOROORROOOOROORRORORORROORORORRORROOROOORORRORRRROORROOOROOOOOROOROROORRRRRORRRORROOOORRRRORORRORORRORRORROOORRRRROROORRORRORROOROOOOROORORROOROOOROORORRRROOOOOORORRRROOOOORRROOROOOOOOOOOOOOORRROOOORRRROORROOORROOROOOROORROROROOOORROOOROOORRRROROOROROOOOOOOOOOOOOOOROOROOROOROOOOOOORROOOOOROOOORRRROROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOORRROOOOORROOOROOOROOOROOOOROROOROOOOROOOOORROOOOOROORRROOOOOROOORROOOROOOOOOOOROOOOOORORRRORORRORORROOROOOROOOOORRORROROROROOROROORROROORROOOROOOROORROROOROOOORRROOROOOOOORORRRORRORORORRORORORRRROROOORRRRORRRRORRROROOOROROORRORROOOOORORRROOOORRRRRRRROROOOOOOROROOOOORROOOOOOORRRRRRROROOOOOOROOOOOROROOROOOOOROOOOOOOOOOOROOOORROROOOOOOOOOOOROROOOOROOOOOOROOOORROROOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOOOROOOOOOOOOOOOOROROOOROOROOOOOOOOOROROOOOOOOOOOOOOROOOOOORROOORORROROORROOOOROOOROOOOOORROROORROOORRRRRRORROROORROOOOOOOORRRROROOOOOORRORRRROOROOROOOOOROOOROROROOOROOORORROOOOOORRORRORROROORORROORORRORORRROORRRORROORROROROORRRROOOOORORRROROROOORORRRRROOOORRRROOOOROOROOOOROROOORRRRRORROOOOOROOROOORROOOOOROROOOOOOOROOOROOOOOOOOOOOROROOROOOROORORROROOROROROORROOROOOOOOROOOROOOOOOOOOOOOOROOROOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOORRROROOOOROOOOOROORORROOOOOOOROOOOOOORORROOORROOOOOOOOOOOOOOORROOOOROOROROOROOROROOOOOOOOOOROOOOOOOOORRORROROOOOOOORRROROROOROOOROOOOORORROROORROOROOOOORRORORRROOORORRORROOOORROORRRRORRROROORROOORROORRORROOORROOROROOOORRORRRRRRRRROROOROROORRROOOOORROOOORORRRRRRORROROOOOOROOOOROORORRORROOROOOOOORROORRORORRRROROOROOOOOORROOOROOOROOROOROOOROOOROOOOOOOOOOOROOOOOOORROOOOOORROOOOORROOORRROOOROOOOROOOOOROOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOORRROROOOROROOOOOOOROROOOOROROOROOROOROOROOOOROOOOOOOOOROOORRRROOROOROOOOOOOOOOOOOOROOROROORRRROOOOORORRRRRROOORORROOOROOROOROROOOROROORORROORORRROOORORROOOOORROOOOROOOORRORRRRRORRORRROROORROOROROORRRROROOROORROOORRORRRORRROORORRROOOORRRORRRRROORROROOOOOROROOOROROORROROOROOROROOOOOOOOROOOORRORRRROORROOROOORROOROOOOOOROROOOOOOOROOROOROROOROOROOOOORROOOOROOOOOOOOOOROOOOOOOROOOOOOOORROROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOROOOROOOOROOROOOOOOOOOOROOOROOROOOROROOOOOOOOROOOOOOOOOOROOOOOOOOOROOOORROROOOOOOOROOOOOOROOORORROROROOOORRRROOORRROOOOOROROOOOROOOROOOROORORRORRORROROOORROOOOOORRROORRORROOORRRRROORORROORORRRORRROROROORRRRROOOOROOROORRRORRRORORORORROROROROROOOORORRROOROROROROROOROROROROOOOOOOORROORRRROOOOOOOOROOROROOROOOROOROOOORROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOROROOOORROOOOROOOOOOOROOOOOOOOOROROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOROOOOOOROOOROOROOOOOOOOOOOOOOOOORROROOROOROOOROOORROOOOOROOOROOOOOOOOOOROROOOOOOROOOOOOROROROOOOOORROORROORROOOOOROOOROOROORRROOROOORRROORRROOORORRORROROROROOROOOOOROOOOOOROOORORRORORRROOOROOOOOOORORRRROROOROOOROOOOOORORROOORORRROOOOROOORRROOOOOORRRRRROROOORRRRORROOOORROROOORRROOROOOOOOOROORRRRORRORROOROROOOOOOOOROROROOROOROOROOOROOOOROOOOOROROOOROOOOORROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOORORROOORROOOOOOROOORORROROROOOOROORROOOOOROROOROOOOORRRROROOOROROOROOORROROOOOOOOOROORRROOORRORORROROORROORRRROOORORROOOOROOOORORORRRORRROOOOORROOOOOOORROOOOOOOROOOOROOORROOOORORRRROROROOORROORRROOOOROOOOOOORROROOORRROROROROROROROOROOOROOOOOOROROOOROROOOOORRRRRROOROOOROOOROROOROOOROOORROOOROOOROOROROOOOOROOOOORRROOOOOOROROROOROOROOROOOROORROROROOOOOOOOOROOROROOOOROOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOROOOOROROOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOORROOROORROOOOROROORROOOOOOROOOOOOROOROROOOOOOROOOOOOOOOROORROOOORROROOOORRRROOOROORRROROOOOORORROOOORRROOOOROOORROROOOOORORORRRROOORORORORRROOORORRRROOROORORROROOROOOORRRORROROORROROROORROORROORRRROOORROOOORORORORORROOOOOOOOROOOORROOOOROOOORORORROROOOOOROOROOOOOORRROOORRROOORORRROOOOOOOOROOOOOROOOROOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOORROOOROOORORROROROOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOROROORROOOOOOOOOROORORROOORRROOOOOOOOROORROOOROOOOOOOOOOORORORORROROOOOORROOORRROROOROROOROOOROOOROROOROOOOOOOOORORRRORROROORORROROOOORRROOOOOROOORORRRRROOORRROROROOOROORORRRROOROROOOORROOOOROOOORROOOOOOOROOORRROOOORRROOORROOOOOOOORORROROORROOROOOOOROORRROOOOOOOOOROOOOOOROOOOOOOOROOOROOROOOOOOOOOROROOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORRROOOOROOOROORROROOOOOROOOOOROOROROOOOROOROOOOOOOOROORORRROOOOOORROOROROROOOOROROOORROORORORRROROROOROOROROORROORORRROOOOOORORRROOOOOROOORROOROOOOROORROORORROROOROROROROROOROOROORROROORROOOROROROROOOROOORRRRORROROOOROROOOOOROORRRRORORROOOOOROOORRRROOOROORRROROOOORORROORROOOORROOOOROROROROOOOOOOOORORROROOOROOOOOOOOOOROOOROOOOOROROOOOOOOROROROOOOOOOOOOOOOOOROOROOROOOOOOROOOOOOOOOOOOOOOROORROOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROROOOOOOOOROROOOROOOOROOOOOOOROOOROROOOROOOOOOROORORROOOOOROOOOROOROOOOROOOOOOOROROOOOOROOOROOOOROOOOORORORORORROOOOROROOOOROROOOOORROOROOROOROROORRRRORROROOOOOOROOROOORORORRRRORRRORRROOORRROOOOOORRROORRROORROOOOOOORROOOOOOORRRORRRROOOROOOORRROORRROOOOROROOORROROOORROOOOOOOOOOOOOOOROOROROOOOORROROROOOOOOORORROOOOOOROOOOROOROORRROROOOORROORORROOOOOOOORORORROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOROOOOORROROOOORROROOOOOOOOROROORRROOOOOORROOOOROOOOROOROORROOOOROOOOOROOROROROROOOOOORRORRRRRRRROOOROROROOORRORROROORORRRORROOORRRRRRORROROORORROOOOOROOORORORRRROROROOORRORORRRORRRRORORORRRRRORORRORROOROORRRROROOROOOOOORROORORRROOOOROROOOOOOORROOORRRRRRRROROOOORROOOOORORROOORRROROOOOOOROOOORROORROROOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOORROOOOROOORORROOOOOOOROOOROOOOOROOOOOOROOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOROOOROOOOOOOORROOOOROOOROOROROORROOOOROOOROOROOOOORROOOOOOOORROOOOOOOOROOOROOROOOOORRROOOROOROROOOORROROROOOORRROOROORORRROOOROOOOOOORROOROOOOORORROROOOROROOOOORRROOOOOORROROOOOOORRROOROROROROROOROROROOOOOOOORROOORRORORROOOOOORROOORRORORRRRORRROOOORROOOOOOROORRRROOOROOORROROROROOROOROOOOOROOORRROOOOROOORRROOOOOOOOROORRORORORRROOOROOROOROOROOOOOORROOOOOOOOROOOROOOOOOOOROOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOORORROOOROOOOOROOOROOORROOOOROOOROOOOOOOOOOOOORRRROOOOOORORROOOROORORROOORROROOOORORORORRORROOROROOROROORROOOOOROOROOOOROORROOROOOOORROOOOOOROOROROOROOOROROROOROROOOOROOROROORORROROORRORROROROOORRORRRORROOROORORRORRROROOORROOOOOOOOOOOOOROOOOOORROOORRRROOORRRORRRORRORROOOOOOOORROOOROOOORORRRROOOOOOOORORRORRRROOOOOOOOROOROROOOOOOOORRRRRRORORORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROORROOOOOOOOOOOOROORROOOOROROROOROOOOOOOORRORROOOOOOOROOROOOOOROORRRRROOOOROROOORORROROORRROOOOROROORRRORORRRROOOROORRRRRORRRRORRRRORRRROORROROORORORRORROOORRORROOORRORORORRRORROORROOROROOOORRROOORROORROOOOOOROROOOORRORORROORRRROOOORORORROOROROROOROORORORRRROOOROOOOORRROROOOOOOROOROOORORRRRROORROOROOOOOOOOOROOOOOOOOOOOOOROOOOORROROOOORROOOOOOROOOROOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORORRROOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOROOOROOOOOOORORRORORROOROOOOOOOROOOOOOOROOROOROOORROROOORRORRROOOOOOOROORORROORRRRORORROOOROOOOOOOOROOORROROOOROOOOROORRORRRROOROOOORRORORRROOORROOROOORROORROOORRRORRRRRROOOORRRORRROORORROOOORROOOROORRRRRORRROOOOORRRRORROOROOOROORROOROOOOOROORROROROOROROOOOOOOROOOORRRRROOOORROOROOOOROOOOOOOOOOOOROOROOOROOOOOOOORRORRROOOOOOOOOOOOOOOOROOORRROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOROOOOOOROOOOORORROOOOOOOOOOOROOROOROOOOROROROOROROOOROROOOOORORRRROOOOOOOOORRROOOROOORORORRRORROROROOOOOOOOOORRRORRORORRORROOROOROOOOOOOORROOOORORORORROORRROOROOROOORRRORORRORRORROROROOORORRRRRROORORORRORRRRORROOOOROOOOOROROOORRROOOOOOROOORROORORROOOOOOOROOOOOROORRRRRORRROORROOROORROOROOOOOOORRRROOROOROOOOOOOOOOROOOOOROOOOORRROORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOROOOOOOOROOOOOOOOOOOOOOOOROROROOOOOOROROOOOOOOOOOOOOOORROOOROROOOROOOORROROROROOOOROORORRRRRORORROROROOROOROORROORORORROOOOROOROOOORRORORORROOOOORORORRRORRROOROROORORRRORROOORORRRORRORRROOOOROORRRORROOORORRROORROOROOROOOROOORORORORORROOOORRRRROOROOOROORRORORRROROOORORROOROOOROOOROOOOOOOOOOOOROOOOOOORORRRROOOOOROOOOOOROOOOOOOOOOOORROROOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOROOORRROOOOOOORORRORROROOOOOOOROOOOROOOORROROOOOOOROORROROOOOOOOOOORORROROOORROOORORROORRROOOORROOOROOOOROOROOOROROORRRROORRRROROROOORROORROOOORRORRORORROOORORROOOROOROOROORROOOOOORORORORORRORORROOOOOOROROROOROROROROOOROOOROOOOORROOOOORROOORRRROROROOOORROOOOOOROOOOOORROOROOORROORROOOOROORROORORRORROOROOROOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOROOORROOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROOOOOOROOOOROOOOOOOOOOROOOOOORROOORRORORRRROOROOOROOOOROOOOOOOROOROOOOROOROORORRROORROOOOORORRROOROOOORROOOROORRROROROROROOOOOROOORROOROORORORROROROROOORRRROOOROROOOOROOROOOROOOORROOROOORRRRORRRORROOROOORROORRROOOOOROOOOOROROOOORORRROOOOOOOORORROOORRORRROOOOOOOOROOORRROOOROROROOOOROOOOOROORRROOOROOOOOROORROOOORROOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOROOOOORROROOOOOOORROROOROOOOOOROOOOROOROOOOOROOOOOROOROOOOROOROORRRRRRRROOOOOROOOORORRROORRROOROOROOROOOORRRROOROOOOOORROORRROOROOOOROOOROROOOOORRROOOROOOORRRROORRRROOROOOROOOOOOOORORROOROORROOOOOROOOOORRROOOROROOROROROOOOOROROOOROOOOOORROOOOROOROORROORRROROORRRORRROOOORORORROORROOOROROROROOOROOOORROROOOORORROROOROOOORRRROROOOOOORRORRRROOOROOOORROOROROOOROROOOOOOOOOOROORROOOOOOOOROROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOROOOOOOROROROROOOOROOROOOOROOROORROORROOOROORRROOROORROOOOOORRRRRROOROROOROOROOROOOOROOOROROROOROROOOOORORRRORRRROROROROOOROROROOOROOOOOROOORRROORRRROOOROOROOOORORROOOROOOROROOOOOORORROORROOOOOOROOOOOOOORORRROOORORRRRORORROROOROOOROOOORROORORRROOOOOOOOROOOROOROROROOOROORRRROOOOOOOOROOOORROROOOOOOROOROORRRROROOOROOOROOORRROOOOORORROOOOROOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOORRROOOOOOOROORROROOOOOORROOOOORROOOROROOROOOOOOOOOOOOROOOOOOOOORROOOORRROOOOOROOROOROOROOOROORROOORROOOOORRROROOOOORROOOORORROOORRRROOORORRORORORRRRRORORROROORROROOOROORRRRRORORRORRRRRRRRRROOROROOROROROOROOOOOOORORRROOOOOROOOOROROORRROORRRRORROOORROOROOOOROOROOOOOOOOROOOOROOOOOROOROOOOOORROOOOOOOOOOOORROOOOOROOORROOROOOOOOROOROOOOOOOROOOOOOOOOROOOOROROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOORROOOOOOOOOORROOOORROOROOOOOOOROOOOOROOOOOOOOOOOROOROROOROOOOOROOOOOOORORORRROORROOORORROROROOOOOOROOOORORROORORRRRRORRRROOROROOORRRORORROOROORRRRRROOOOORRRROOOOROORROOOOOOOROOROOOOOOOOOROORRORORRRRROOOORORORROROROOROROOROOROOOOOOOOOROOOOOROORROORROORROORRORROROROROROOORRORORROOOOORRROROOROORORROORRRROORRORORROOOORORROOOROROOOOORRROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOORRRRROOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOROOROROOOOOOOROOOOROOOORROOROROOOROOOOOROROORRRRORROOOORROROORORORROROOROROOROOOOOROOOOOROOORRROORROOOORROORRORROOOROOROOROORORORRORRORRORRRRORRRROOOOORORORROORROORRORRROROOOOOOROOOROOROOROOORRRRRRORORORORRORRRORROOOOROROORRRORORORRROROOOORORRROROROOOOOOOOOROOOORROROOOROOOOOROOOORROOOOOOOORRORORROORRROOOOOOOOROOOOOOROORRROROROOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOORRRROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOORROROROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROROOOOROOOOOOOOROORROOROROROOOOOOORRRRROROOOOOOORRRROROOOOORORRRROOROOOROROROOORORROROOROROROOOORRORRRROOROOOOOOOOOOOROOOORRROOOOROROOOROROOOOOROROOOORRORROOOROROOOOOROOROROROOOORRORRROROORRORRORROOOORRRROOORROROROOOOOOORRROOOOOORROOROOOROROOROORORROROOOORRROOOROOOOOOOOOROOROOORROOOROROROROOROOOOOOOOROROOOOORORORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOORRROOOOOORROROOROOROOOOROOOOROOOOOROOOOROROOOROOOOOOROOOOOOOROOORROROOORORROORRROOORORRROOOOROOROROROROROOORORROOOROOROORRROOROROOOROROOOROORORROROOORROOOORORORROOOOOOORRROROOORRROOOORRROROOOOROOOORORROOOOOROOOOORROOOOORRRORROOROOORRROOOROOOOORRROOOOOOOOORROROOOROROORRROOROOROOOOROOROOROOOOOOROOROOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROORROOOOOORRROOOOROOOOROOOOORROOOOORRROOOOOOORORROOOOOOOOOROOOROOOOOOOOOOROORRRROROROOOOROOOOOORROORORORRORRORRROROROROORROOROROROORRRROOOOOORORROOROOROOROROOROOOOORRRRORORROOORROROOROOOOOORRRRRRRROOORRRRROORRORRORORROROORRROOOOOROORORROOORORRRORROOOOOOROROOROOOOOOORROOROROOOORROOROORRRRORORORROORORRRRROROOORRRROOOOOOOROOROOOOROOOOOOOOOOROOOOOROOOOOROOROROORROOOOOOOOOROOOOOOOOOOOOOOOORRROOOOROOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOORRRROOOROOROOOOOORROROOOOORORRRORROOOROOORRROOOOOROOROROROOOORRORORROROORRROOOOORRRROOORROOOOROOOOOOROOROOORROOOOROOOROOOOORORRORORRRORRRROOORROOOROORROOROOOOROOOORRRROOORORRRORORROOOOOORRROOORORRRROOORROOOOOROOORROROORORROOROOOROROOOORRROROROROOROROOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOORROROOORROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORORROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOORORROOOOROOOOOOOROOOOOOOROOOOOOROORORORORORRROOOOROOOOOOROOROORROROOROROOOOOORRRROORRORRROROOORROORRORORORROROROROOOROOOORRROOOOROOOOORRRORRORORROORROORORROOORROORROROOOOOOOORRROORORROOORRORORROROOOROOROOOOOOORRROOORRRROOOROOOOOOORRROOOORORROOOROOOOROOROROROROOROORROORROOROORRROOOROOOOROOROROROOROOOORROOOROOOOORROOOROROROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROROOOOROOOOOROOOOOOOOOOOOOOROOOOORROOROOROOOOOOOOOOORORORORRROOOOOROROOROOOOORROOOOOROOROORORROOROOROOOROOORROOOROORORORROORRRORORORROROOOOOOOOOROOORRORRORROROORORROOOOORORRRORRROROORORORROORROORORRROOOOOOROOOOROROOOROORRORRROOOOORROOOORROOOOOROOOOOORRORROOOOROORROROORRORRROORROROORRORROOOORORRRROROROOOROROOOOOROOOOOROORORROOOOOOOOOOOROOORRRROOOOOROOROOOOOOOOOOOROOOOOOOOROOOOROOOOOOOROROOOROOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOROOOOOOOOOOOOOROOOROOOOOOORROOOOROOOOOOOROOOROOOOOROOOOROOORROOROOORROOOROROOOOORROOOORORORROOOOOOOORRRORROOOOOOOROROORROROOROOOOROOOOROOROOOROORRORRRROOOOOORORRRRROOOROOOOOOOOOROROROROROORROORROOOORORRORORROORORRORROROROOROOOOOOOOROOROORROROROOROROROROOOOOOOOROORROOORRORROOOROROOOOOOOORRROOOROOROOROROOOOOOOOOOOROOOORROOOORORRROOOOOOOOOOOOOROROOROOOOOOOOOOROROOOOOOORRROROROROOOOOOOOOOROOORROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROORORROOOOOOOOOOOOOOORROOOOOOOOOROOROOOOROOOROOOOOROOOOOOOOOROROROOOROROOROOOOOROOORRRROOOORROOOOOROORRROORROOOORRRORRORORROOOOORRROOORORRROOOOROOOOORRRRROOOORROORRRRROORROOROOOOOOOOOOOOOOOOOOOORORRRRROOROOOORRROOROORRRORRROOROROOROORRROORRORROOOROORRRROORROOORRRRRRORROOROOOROORRRROORROROROROOROROOORROOORRROROOOROOORORORROROOORRORORROROOOOROORRROOOOOROOOOROOOOOOOOOOROOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOORROOOROROOOROOOOOOROOOOOROOOOOOOOROOROOOOOROOOOROOOOOROOOOOOOROOROORRRRRORORORROROOOOOOOOOOOOOROOROORROOOOOROROOOOOOORROORRRROOOOOROROOOROOOORROOOOOROORROROORRRRRRROOOOORROOOROOOROOOOROROROOROOROOROROOORORRRORRORROROOOORORRRRROOORROORRRORROOROOORRORRRORROOOORRORROORROOOOROOOORRRROOOOOOROOOOOOOORRRRROOOOOOROOORROROOOROOOROORROORROORORORROOOOROOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOROOOOOROORROOORROOROOROROOROOOOOROOORORRORRRORRROOOOORROOROOOORORORRRRRROORROOORRRRORROORROOOORORRROOROROORRROROORRRROOORRRROORROROOOROROOOROROROOOROROROORRRRORORORROORRROOORRRROROROOOORROOORRORRROOORRRROROORROROORRRRRROOROOOORROOROOORROROROOOOOOOOOOOOROROROOORROOOROORROOOOOOROOROROOOROOOROOOOOROROOOROOORROOOROOOOOOOOORROOOOOOORROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOROOOROOOOOOOOOOOOOOORORORRROOOOOOOOOOOORROOOROOOROOROOOOOOOOROROOORROOROOOOORRRORROOROORROOROOORRRROROOORORORROROOROOOORRRORORRROORORORRROOOROOORRORORRROORRROOOROORRRROOROOOOROORROOORRRROORRORRROROOORROROOROROOORORROROOORRORORORRRRROORROROOROOOORORRRORRROOOOOORRROOOROOOROOOOROORORORROOROOOOOROORRROOOOOOOROOROORROOROOOOOOROOOOOROOROOOOOOROOOOOOOOOOROOROROOOOOOOOOOROOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOORROOOOOOROOROOOOOOOOOOOOOROOOOOOOROROOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOROOOROORRRROORROOOOROOOOOOROOORROOOOOOROOOROOOROROOORROOOROOOOOORROOOORORROOOORORRORROROOOOORROOORRRRRRRRORRROROOROOOROOOOORORORROORROOOOOORORORRRRRRROROROOOOROROROOORROOROOOOOROOOROOOROOOROOOOOOROOOOOOROOOOROOORRORRROORRROOOOOOOORROOOROOROOROOOOOOROOOOOROROOOOOOOOOROROOOOOOOROOROOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOORROROOOROOORROROOORRRRROOROROOOORROOROOOOORRRROOOOOOOOOROROOORRROOOOOOOOOOOOOROOOOROROOROOOOOOOROOOROROOOORRORROOORRROOORROORORRROROOROOOOOORORRRROOORORRRROOROROROORRRRROOOOOOROOOOOORROROOOROOROROOOOOOOROOROOOOOOROOOROOOOOOROOOOOOOROOORRROROROOOOOOOOOORROOOOOOOROROORROOROOOOOROORRRORRORROOOROOOOOOOOOOROOOROROOOOOOOOOROROOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOROROOOOOOOOOOOOOOOROROROOOOOROOROOOOOOOOROOOOOOOOROOOOOOROOOROOOOOROOOROROROORORROOOOROOORROOOORROOOOORORRROOOOOOORROORROROOOROOOROROOOOOORROOOOROOOOOORROOOROOOOORROOOROROROROROOORROOROORORROORORORRROROROOOROROROOORRORORORROORORROORRORRORORRROORRRORROOOOOORROOROOOOROROOOOOOOOOOOOOOOOORROOORORRROROOOOORROOROOOROROOOOOOOOOOROOOOOOORROOROOOOOOOOOOROOOOORROOOOOROOOROOROOOROROOOOOOOROOOROROROOROROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOROOOORROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOROROOOOROOOOROOOROOOROOOOOOROOOOOROROROORRORORROOOORROOROOOOOOOROROORORROOORROORROROROOOORORORRRROOROOOROOOOROOORRRROOORRORORORRRROOORROOOORROOROOROOOOOOROOOROOROOROOOOORORRROOOORROROOROROOROOOROORORRRORRROROOOROORROOOROOROOORROOOROOOROORRRORORORORORORRROOOROROORROROROOOOROOOOOOOOOROOROOOORORORROOOOOOOOROOOOOOROOOOOORROOROOROROOROOOOOOROOOOROOROROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROORROOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOROOOOOOOOORRORROOOOOOOOROOOOOORROOORROOOOORORROROOOROORRRRORORRROOORRRRORROROOOROOROROROOROORORROORROOORORRRROROROOOORORROROORORORROORORORROROORROOROOOOROORRROROORRROORRORROOOORROOROOOROOORROOROOROROOROROOOOOOOOOROOORRRORRRROOOORROOOORORORRRRRROOOROOOROOOOOROROOOOROROOOOOOOORROOORRORORROOOOORRORROOOOROOOROOOROOOORROROROOROOOOOROOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOORROOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOORRROOOOOORORROOROOOROOOROOOOOROORROOORORRROOOOORROOOOROOORORRRROOOOROOOORRRROORRROOROOOROROROOORROORORRORROOROROOOOOOOROOOOOROOORROOROROOORROROORRRROROORORRROOORROROOOOORORORRRORRROOOOOOROOOOORRRROOOOROOOROOORROROORRRORRROOOOOOOOORORRORRROOROORRROOOOOOOROOOROOOORROOOOOROROOOOOOROOOOOORROOOOOROOOOOOROOOOOOOROOROROOROOOOOOOORRROOOOOOORROOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOORORRROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOROOORRRROOOORROROOROOORROOOROROOOROOOOOOORROOOOOORORORRROOORORORRRROOOORROOOOOOOOORRORORORRORORRRRROROOROOOORORRRROOORROROOROOOOOOROOROROORRORROOOOOORRRROROROOOORORROORROROROOROOOOOOOROOOOOOOROOORORRRRORRORRROOOOOOOOROOORRROOOROROORRROOROOOOOOOOORRRORROOROOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon5a.out",
    "content": "9120\n"
  },
  {
    "path": "challenge1/tests/mon5b.in",
    "content": "90313 5321\nOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon5b.out",
    "content": "47898\n"
  },
  {
    "path": "challenge1/tests/mon5c.in",
    "content": "42211 7\nRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRROORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORORRRRROOORRRROORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRROORRRRRRRRRROORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRORRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRROORRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORORRRRRORRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRORRRRRRRRRORORRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROOORRRRRRORRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRRRORRRRRRORORRRRRRRRRRRRRRORORRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRORRRRRRORROORRRRRROORRRRRRRRRRRRRRORROORRRRRRRRRRRRRRORRRORRRRRRORORRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRORRRRRRRRRRRRROORRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRORORRORRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRROORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRORRRRRRRORORRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRORRORRRRRRORRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRROROORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRORORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRORRORRRRRRRRRRRRRRRRRORROORROROORRRRRRORRROORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRORRRRORRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRROORRRRRROOORRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORROOOORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRORRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRORRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRRORORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORROORRORRRRRRRORRRRRORRORRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRROORRRRRRRRRRRRRRRRROORRRRRORRRRORRRRRRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRORRRRORORRRRRRRRRRRRROORRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORORRRORRRRRORORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRORRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRORRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORORRORRORRRRRRRRORRRRRRRRRRORROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROROORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRORRRRRRORORRRORRRRRRRRRORRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRORRRRRRRORRRRRRRRRRRRRRORRORRORRRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRORRRORRRRRRRRRRORRORRORRRRRRRORRROORRRRRRRRRRRRRORRRRORORRRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRORORRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRRROORRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRORRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRORORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRORRRRRRORORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRROORRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRROOROORRRRRRRORRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRORRRORRRRRORRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRROROORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRORRRRRRRORRORRRRRROORRRRRRRRRRROORRRRRRRRRRRORORRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRORORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRORRRORRRRRRRRRRRRRRRORORRRRRORRRRORRRRROORRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRORRRRORRRRRRROORRRRRRRRRORRORRRRRRRRRORRRRRORRRRRRORRRRORRORRRRRRRRRRRORRRRORRRRRRORRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRORROROORRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRORRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRORRORRRRORRRRRORRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRORRRORORRRRRORRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRROORRRRRRORRRRRRRRORRRRRRORRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRORRRRROOORRRRRRORORRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRORORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRROORRRRRRRRRRORRRORORRRRRORORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRROROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRORRRRRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRORRRORRRRRORRRORORRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRORORRORRROOORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRORRRRRRROORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRROOORORRRORRRRRRORRRRRRORRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORORRORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRORRORORORRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRORORORRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRRRRRRRORRRROROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRORORRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRORRORRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRROORRORRRRORRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORRRRRRRRRRROORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRROORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRROORRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRORORRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRORROORRRRRRRRRORRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORORRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORORRRRRRORORRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRORRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRORRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRORORRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRRRRRRRRORRORRRRORRRRRRRRORRRRROORRORRRORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRROOROORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROROORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRORRRRORRRRRRRROOOORRRRRORRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRORRRRORORRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRORRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRROORORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRORRORROORORRORORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRORRRORRRRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRROORRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRORORRRRO\n"
  },
  {
    "path": "challenge1/tests/mon5c.out",
    "content": "0\n"
  },
  {
    "path": "challenge1/tests/mon6a.in",
    "content": "125831 152\nOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon6a.out",
    "content": "120258\n"
  },
  {
    "path": "challenge1/tests/mon6b.in",
    "content": "125831 2\nORRROOOROOOOOOOOROROROROOOOORROOROOOORROOOROROOROOROORRRRRORROOORROOROOORRORROOOORROROOROOORRROORROOROOROOORROORORRRRORRORRRRRROROOROROORROOROORRRRROOOOROORORRROORRRRRRORRRORRRRRORRRORROORORROOORRROOROOROROORRORRRRORROROOOOOORORROROOOOOROORROORRROROOROOORORROROOROOOROOOOOOOOROOROOORROOOOOOOOOROORROOORROOOROOOOOOROROOOOOOROOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOROOOOOROROOROOOOOOROROOROOOROOOOROROROOOOOOOOOOROOOOOROORROROOOOROOOROORORORRROORRRROROOROOORORROROORROOOROOOOROOOOROOORROORRRROOROOORRROROROROROOORRORRORRRRRORRROOORRRROOROORRRROORRRROORRORRORRORROROOOOORRRORRORRORRRORRORRRROOOOROOOORRRORRRROOORORORRORROOROOROOOORRROROORRROOOOROROROOOORORROOORRROOOOOOOROOORORORRRORORORROOROOOOROROOOOROOOOOORORROOROOOOOOROOOOOOROOOOROOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOROOOOORORRRROOOOOOOROROOOOOORRORROROORROROOOROOOOOORROOOROOOOROROOOOROOOROORRRROOROROORRROOROOROOOOORROOORRRRRORRORRRRRORROOOOORRRROORROROOROOORROROROORRRRRROOORRRRRRRRORROOOORORRORORORRORROROOORROROOOORRORORORRRRROOOORRRRORRRORRORROOOROOOOOORRRROROORRRROOROOORRROOOROROOROORROROOOOOROOOORORROROOOORROOOOROOOOOOOOROOOOOOOOROOROOROOOOROOOOROOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOORROOOOROOOROOOOOOROOOOOOOOOOOOOOOOORROOORORROROOOOOOOOOOROOOOOOROOROOOOROORROOOROROOORORORORRORROOORORRROOROROOORRORORROORORORRROOORRROROOOOOROOORRRRRRRRORRRRORRRRRORRRORRORRORROOOROORORORRRRROOORORRORRRORRROORROORRORROOORRRORRRORRRROORRROORRORORORRORROOOOROROOOOROORORRRRORRRORORRRRROOOOOROOOOOROROORROOORRROOROROOOOOOROOOOOOOROOOOROOOROOOOOROOOOOOOOROOOOOOOOROOROOOOOOROROORRROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOROOOOOOOOOOROOROOOOROOROROORORRROOOOOOOOOROOOROOOOOOROROOROOOOORROROOOOOOORROOROOOROORORRROORRRROROORROOOORRRROOROROORRRRORRRRORRRORORRRRROROOOORRORROOOOORROORRORRRROROROORROOOORRRROOOOOORROORRRRORRRRORORRRRROOROOOORRRORROROORRRROORRRRROORORRORRROOORORRRROOORRROOOROOORROOORRROOOORRORORRRORORROORROROOOOOOROOOOOOOOROROOOOOOORRROOROOOROORRROOROORRRROOOROOROORROOOOOOOOOROOOOOROORORRROOOOOOOOOOOROOROOROROROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOROROOOOOOOOOOORROOORROOOOOOOOOOOOORORROOOOOOROOROORORORROOOROROOROORRRROOOORRRROOROOROOOOOORORROROOROROOOOORORROOOOOORROOOROORORROROORRROROORORROOOORORRORROOOOOROORORORRRRRRRROROROORRRORORRRRRRRRORRRRRRROORROORORROOORRRRRRRRRRRORROORORROORORORRROROROORORORROOROORROROORORROOORROOOOORROOOROOORROOOROOORROOOOOROORRRROORRROOOROOOOOOOOOOROOOOOOOOOROORROOOOROROOROROROOOROROOOOOROOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOROROOOOOOOOOOOOOROOOOROOORROOOROOOROORORRROOOOOOROROOOOOOOOROROOROORORROOOOOOOOOOOOOOORRROROOORRRRRORROOROORRRORORRRORORROOROROOROOORROORRORRRRROOORRRORRROOORORROORRRRRORRRRRRORRRRRORORRRRRRRORRRRORROOOOORRORORRRRRRROOORRRRRORROOORORRRRRROORORRRRRRROORRORRRROORROOORROROOOORRRRRROROOROOOOOROOOOROOOORROORORRROOOOOORROORRRROROOORRORORROOOORRRRROOOOOROOOOOOOOOOOOROROOROOOOOOOROOOOROROOOROOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOROOORROOOOOOOOOROOOROOROROOOOOOOOROOROOOOOROOOOOROROORROOOOOROOOOOOOOOOOOOORRRRRRROORRRORORRORRORORRROOROORORROROOOOOOOORRRRRRROROORRORORRROORORORRROOROOOORRRORRORRRORORRRORRRRRRORRRRORRORROORRROOOOORRROORRRRRRRRRRRRRROOORRRORROROOOOOOOOORRRRRROORROORRROOROOORROORRRORRRRROOOOROORORRROROOOOORRORORRRRRRORROOOROOROROOOROROROROOOORORORROOORORORROOORROOOOOOOOOOOOOROOROOOOOORRROOOOOOOROROROOOOROOROOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOORORROOOROOOOOOOOORROOOORROOOROOOOOOOOROOOOROORRORROROOROROORRROOOOOOOORORRRROROOOOORROROROORORROOOOOOORORROOORRRRORROROORRRRORRRROROORORRROOROORORORROROOROOOOORORROROORRORRROORRRORRORRROOROOOOOOOORORRRROOROORRRORRRRORRROOOORORRRRROROORRRROORRRROOROORRORRRRORRORRRRRRRORROOOOORRORRROROOROOORROORORRROOORRRROOOOOOOROORROOOOROOOOOOROROOOOROOORROROOOOOROOROOOOROORROOROOROOOOROROOOROOOOROOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOROROOOOORROOOOOOOROOORRROOOOROORROROROOOOOOOORORROOOROOOOOROROROORROORROOOOOORORROOROOORROROORRRRROROROOORROOROOROORRORROORRORRRORRRRRRRORRRRROROORORORRRRRROOORRROORORRRORROROORROOOROROROOORRRRRRORRORRRROOOOORRROORRRRRRRRRROOOOORORRORRORORRRORORRRRROOOOROOOORRRORROOORRRROROOOOROOOOROORROOOOOROOROOOOOOOROOOOOOOOORRRROOOOOOOORORORROROOOOOOROOOOOOOROOOOOOOOROOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOROOROOOROROOOOOOOOOOOOOROOOOOOROOOROOOOOOOOROOOOORROROOOOROOOOOOOOOOROORRORORROORRROOOROROOOORROORORROROOROOROROOOROOORORRRRRORROOORROORRRROOOORRORORRROROOOROROOOOROORRRRRORORROOORORRRORORRRROOROOORRORRORRROOOROOOOOROROOOOOOROROOORROROORRORRROORORRRRRRRROROROOOROOOOORRRRRORRRRROOOOOORROORORRRROORORRROOORORRROOOOOOOOROROORRRRORRRORORROROORROOOOOOOOOOOOOOOOOROOOOROOOOOOOORROROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOROROOOOOROOOOOOOOOOROROOOROROOROOROOORROOORROOOROORRRRRROOOOOOROOOOOOOOOOOOROOROORROORORROOORROROOOOROROORORORRRRROROORORROORRORROORRRRRRRRRRRRORRORRRORRRRROOROORRRRRRRORRROOORRORRROORROORORORRROOORROROORROROOOROOOORORROORRRRRORRORORORROOORROOROORORORROORROOOROOORRORRRRRORRRRRROOOROORROOROOOROROOOOROOORRORORORRRRORROOOOOOOOOOOROORRRRORROOROOROOOROROOROOOOOROROOOOOOOOOOROOORROOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOORROOOOOOOOROORORROOROOORROOOOOOROORROROROORRRORRRRROORRROOOOROOOROOOOOROOROORRORRORRRORORROOORROROORRORRROORRRORRRRROOROOORRRORORRRRORRRRORRRROORRROOOORORORORORRRRRRORRROOOOOORRROROOORORROORROOOROORRRRRRRRORRORRROOOORRRROORRORRRROOOROOROOOROOOOOORRROROORROROROOORROROROROOOOOOOOOOOOOOORRROROOOROORROROORROOOROROOOOOOOOROOOOORROROOOOROOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOORROOOROOOOOROOOROOOROOOOORROOOOOOOOOOOOOOOOOOOROOOORRROOROOOOOOOOOORROOOROOROOOOOOOOROORORRROOROROOOROORRRORROOORROORRORRRRRRROROOORRROOOROROROROROORROOORRORORRORRRRRORRRRORRRROORRRRRORRORRORROORRORORRRRRORROORRORRORORRORRORRRRRRROOOOOOROROROOORORORROOORORORROOOROORROROORRRRORRROOORORRRROROOOOROOOROOOROOROOROROOOOOROOOOOOOOORROOOOOOOOORORORROOOOOOROOROOOOOOOROOOROOORROOOROROORROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOROOOOOOOORROOROOOOOOOOOORROOOOOOOROOOROOROOOORROOORROOOOOROROROORRORROORRROOOOORROROROOOROROOOORORORORROOORROOROROROORROORRORRORRRRROORRROORORROORRROORRRRRRRROORRRRORORRRRORRORORRRROORRRORRORROOORRRORORRORORRROORROORORRORRRRRRORORORORRRRRORROORRRRRORRROORORRROORRRROORRRRRRROORORROOOORRROROOROOOOORROOOOOOORROROOORRRROROROOOOROOOOOROOORROOOROORROOROOOOROOOOOOROOROOORROORROOOOOOOOOOOORROOOOOORROOORROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOROOROROOROROOOORRROORROOOORORROROOROOROOOOOOROOOROROOORRRRORRROOOOOROROOROOROORORRROOROROOOOOROORRORORORRRRRRRRROROOOOORRRRRRRORRRRRRRRRRRORRORRRROROOORROROORRROOOORROORROORRRORRRROORROROOORRRRRRORRROORORRORORROOOOROORRRROOOORORORRROORROROOOOOOOORRROOOROORORRROOOORROROORROOOROOOOORROOOOORROOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOROOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROORROOOOORROOOROOOOOROOROORRORROOROOOORROOOOOOOOROOOOOOROOOROOROORRORRROOOORROOROROOOOORRROOOOROOROROOORRRRRRROORRRRORRRROORORRRRORORRRORROROORRRORRORRRRRORROROOOOROOORRORRRORRRRRROORRORRRROOOOOROORRROORRRROORRRRROOOORRRRRORORORRROROORRRRROORROOOOOROORROROORRRRRRROOROORROOORRRRRORRRROOROROOOOROOOOOORRROOORRROOROOOOOOROOROOOORROOOOOROOROORROOORROOOROOOOOOOROOOOOOORROOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOROOOROORROOOOOOOROOOOOOOORROOOOOOOOORROROOORRRRRROORORRORRROOOORROOROOORRROROOOOROOORRRRROOOOOOORORROORORRROOOROORRORORRRORRRORRORORORRRRROOROORRROROOORROROORRRRRRRRORRRRORRORROROOROOOORRRROOOORROOORORRRRORORRORRRORORORRRRRRRORRORRRRRORORRRROORORROOORROOOROROOROOORRRROOOORORROROOROOOOORROOOROORRRROOOROROORORORROOROOOOROORROROOOROROOROOOOOORORRROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOORRROOROOOOOOOROOOOOOOOOROOOOOOROOROOOORROOOOOOOORORROOROOOOOROOORORRRROOORRORORRRRROORORORRRROORROOOORRORRRRORORRORRRORRRRRRRRORRROORRRORROROOOOROOOOROOORRORRRRRRRRROROROROOOOROOORROROROROOORROOOROOOROORRORROORRORROORRRRROOORRORROROOORRORRRORRROROROROORROOOOROOORRROORRROORRRROROROORORRRRROOORROOOOOROROOORORROOOOOOORORROOOOOOROOOOOROROORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOROOOOOROOROOROOOOOROOOROOOOOROOROOOOOOOOOROOOOOORRROOROORRRROOOOOOROROOOOORRRRORROROOROORRROORRRRRORORORRRRRRORROROOROROOORRORORORROOROORRORROROORRROOORRRORRRRRROOOOORRRRRROOROOORROOORORORORRRORRORRORRRRRORRRRRROOORRROORORRORRORORRRRRORROOOOOROOORRRROROORORORRRRRRRRROORRORORROORROOOROORRORRRROROROROROORORRROOOOOOROORROOOOOOROOOOORORROROOOORORROORROOOOOOOOOOOOOOOROOROOROOORRORROROOOROOOOROOROOROOOROOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOROOOORROORRROOROOOOOOOOOOOROOOOOOOOOOOOROOROOROOOOOOOOORROOOOOOOOOROROORROROROOORROOOOOROORORORORRROOROOROORRRORROROROOOORRORRRRRROROOROROOOOOOOROOOOORROROOORRRRRRRORORROOOROROORRROROROOROOOORORROORRRRRORORRRORORROORRRORRORRROOORRORROOORRROORRORROROOOOROOROOROORROOOORORROOOROORRROORROROOOOROOORORRRRORRROOROORROROOROOORROORRRROOOOROOOOOOOROOOROOORROOOROOROROROOOOROROOOOROOOOOROOOROOOOOROOOROOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOROOOOOOROOROOOROOOOROROROOROOORORROOOOOOOOROORRRORRRRRRORRRORROORORRROORORORRORROORROOOOOORRRROOOOOOOOOROROORORORROROOOOOOOOOORRRRRRORRRRRRRORRRORROOROOOORORORORORROOORORRORORRRRRRRRORORRRRORRRRORRRRRRROOOORRROROOOROROORRROOOOROOOOROOROOROORROOOROROORROROOORROORROOROOOOOOOROOORORORROORROOOOOOOOOORRRROOOROOOOORROOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOORROROOORRRORRROOOROOROOROORROOOOOOORRORROROORRRRRROROROROOORRROOOOORRRRORORRROOROROOORRROOORROORRORROROORRRROROOROOROORORROROOOORORRRORORORRORRROOROROROORRRRRROORRRRROROOOROOORROROROORRRORRRROOROORRRRRRRRRORROORRRROORRRRORRRORRROOOOROORRRRRRRRORRROORRRORORROOOOROROOORRORRROOOORROOROROROORROROOOOOOOOORROORROROROOOORROOOOOOROROORROOOOORROOROOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOROOROROOOORROOOOROROOOOOOOOOROOOOOOOOROROORORORRORRRORROOOORRROROOOOOROROROROROOROOROROOORORORRRRRRRRRORRRROROROORRRRRORRORORORRRORROOOORROORROORORORRRROORORORORORRRRORROOOOORROOROORRORRROROROROOROORRROORORORRRROORRROROOORRRRRROORRRRORRRRRRRRRROORRORROOOOOOROOOOOROROOOORRRROROORORORORRRROOOOOOOROROOROOORRORRROROROOOROOROOOROOROOOOOOOOOOOOOOOOOOOROOROROOOOROOOROOOOROROOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOROOOROOOOOOOROOOOOOROOOOOOOROORORORROORORRRROOOOROOOORORROROOOOOOORORROROORRRORROORRROORROOOROORROORRROOOOOOOOROORROOORROOROROOOOOROORORRRORRRRRRRRRORRRRRRORRRRRRRROORRRRRRRROOORORRROOORRRROROOOOORRORORRRORORRROROORRROORRROROOORROOOROOOOORRRRRORORRORRORRRRORRROROORORRRORROOROOOORRRRORRRRROROORORORRROROORRRORROORORORRORORROROOOROROROOOOOORROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOROOOOOOOOOOOOOOROROOOORRRRROORROROOOROROROROOROROROROOROOOOOOOOOOORRROORROORROOOORORORROOORROOOORROOORRORORRRORROOROOORROOOORRRRRRORROOOORRRORRORORROOORRRORORRRRORRRRRRRORRROOOORORROORRRRRORROROROROORRRROORRORRRRROOOROOORRORRROOROOOORROOOOOROORRRRROORORRRORORROROOOROORRORORORROOROOROOROOROROORROOOROOOOORROOOROROOOOOOOOROORROOOOOROOOORROOOORROOOROOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROROOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOORRORRROOOOROORRROOOOOOOROORROOOOOOOOORRRRROOOOOORORORROOOORROOORRORRORROOOROORROOORRRROOOORROOOROORRRRROROORORRRRRRRORRRRRROROROORRRORORORROORROOOOROORRRRORROOORRORRORRRORORROROROORRORROOROORRORRRRRORROROROORROROORRROOROOOORRRRRORORRRORRRRORRROROORORRRRRROROROROORRORROOORROOOOOORRROORORROOROOOOOOROOOROOROROORROROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOORROROOOOOOOOROOOROOOOROOROOOOORRORROOOOOOOOORRORROOORORROOOOOOOROOOORORRROOROOOOOROOOOOORROOOOORRROOOROOOORRROROOORORORORRROOORORRORRRRORRRRRRROORORRRRRRRROOOORORRROROOOORORRORORRRRRROOROROROOOROOOOORORRORORRRRROROOOORROORRRRRRORORRORRRRRROOOROORROROOROROROOROOROOOOORRROORRRROORORORROORRORRRORRORROROOOORRRORROOOOOOOORRROOOOOOOOOOOROROOOOOOOROROOOOOROROOOORROOOOOOOOOOOOOROROOOROOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOROOOOROOOORROROOOOOOOORRORROOOROOOOROOOOOOOROOORROROROORORORROOROORRROOOROOOROOORRROORORRORORROOORRROOOROORORRRRROOROORRROORRORRORRRRROOROOOOORRRRRRORRRORORORRORRRROORROOOOORRRROORORRORRRRROROORRRRROOROOROOROORRRRORRRRORRORORRRRORROOOROOOOOOORRRROROROOOOOORRROOROORRRROOORROOORRRRORORRORRRRROORRRRROOORRRRRROOOOOOOROOOROOOROOROOOOOOROOOOOORROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOROOORRRROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOORRROOORRROROOORROOORROORROOORRRRRROROOROOROORORRRRROOOOROROOORORORRRORRROOROORORRRORRRROORRRORRRORRROOOOOORROROROROORROOORRRORRROOOOORRRRORRRROOOROROOOORORORRORROORRROORORRRORRRRRRRRORROORROORROROOROROORRRORORORROOROORROOROROOROOROOORORORROOROORRORROORRROORRRRRRORROOOROORROOOORORROOORORROOOROOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOROOOOOOOOOOOROOOOOROOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROROOOROORROROOROOROOOOROROOOOROORRROROROOOOOOOOROROOOOROOORRROROROROROORROOOROOOROROROORORRROOORROORRRRORORRORROOOORORRRRRRRRRRRORRROORORRRROROORORORRROORRRRORRORORRORORRORRORORRROORRRORORROOOROROOORRRROORORORORORORORRRRORRROOOORROOOOROOOROROORRRRRROOROOOORROOOORRROOORROOORORRROOOROOOROROOOORROROOORROOOOOROOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORROOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOORROOOOOROOOROOOROOROORRROOOOOOOOOOOOROOOOOOORRROOROOROORRRROOOROOROOOOOROOROORORRORRROOROOORROROROOORROOOOORRRRRORRRROROORROOROROROOOOOROOROOROOOROORROOROORRRROORORORRORRRROROROOROOOOORROORORRORROOORRRORORORORRORRROORORRORRRRRRRRORROOROORORORRRORORRRRORRRORORROOORRORRRRROROORRORRROROROOROOOOORRRORROOOOOOOROOOROOOROORROOOROOROOOROROORRRROOORROOOROOROORORORROOROOORORROROOORRROOOOOOOOOROOOOOOOROROOOOOROOROOOOOOOOROOOOROOOORORROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOROOOROOOOOOOROOOOOROOOOOOOOOOROROOOOOROOOOROOOOOOOOOROROROORORRROOROOOOOROROROOOOORORROROORRRROOOOOORRRROORRRRROOROOORORROORRRRROOORRRROOORRRRROOORRROORORRRORRORRORRRRRRRRRORRORRORRORRRRRRRRRORORRRROORORRRRORROROROOOOORRRRRRRRROOORRROROROOORRRORROORORRROORROORORRRRRORROOORRORORRORORORROROOOOROORROOROROOOOOROOOROROORORRROOOOOOOOOROOROOOOOOOOOROOROROOOROOOOOOOOORRRROOOOROROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOOORROOOROOOOOORROOOOOOROORROROOOROOROOROOORROOROOORORRRORRORRRRROORRROROOROROROOOOROROOOORORRORROOROROORORROORRROOORRROROORRORRRROROROORRRRORORRRRROOORRORRROORRROROOOROORORRRRRRRRRRRRROOROOOOROORRORROOROORRROOOORRRROROORORRRROOROOOOROROORORRRRROORROOORRROOOROOROORRORORORRROOROOOORRRROOOROORORORRORROOROOOROOORROORROORROOOROOOOOOOORROORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOROOOOOOROOOOOROOOROOOOOOOOOOOOROOORROOROORROROROOORRROOOOORORROOOORRRROOOOOOROOOROORRROROOOORROOOOOOOOOROROORORROOORORRORRRRROORRRORROROOROROORROORRROOOOROROORRORRROOOORRORRRRRRRRROROOOOORROORRRRORRRRORRRRORROROORORRORRRRRORRRRROORORORORRRRRRORORRORORRROORRROOOROOROOOROOOOOOOORORROOROOOOOOORRRRRROOROORORRRORORROOOORRROORRROOOOOOORROORORRRRORORORROOROOROROROROOOORRROOOOOORROOORORROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOROROOOOORROOOORORROOOORORROOROORRORRRORRORRORRRRRORORROROOROOOOROOROOORROROORORORROOORORORROOOORORRRORORRRRORRRORRRRRRRROROORRRRRROROROROOORRRROROOORRRROORRRRROORRRRORROROOORRRRROOORRRORORRRRRRROORRORRORROORROROORORRRORRROORORORROOOOOROROOROOORRRRRROORRRRROROORROROOOORRRROOORROOROORROOOORROORROORROOOROORRORORROOOOOORROROOOOOROORROOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOROOOOOROOROOORROOOOOOROOOROOORROOOOOOORROOOOROOOOOOOOOROOROOROOOOOROROOOOOOOOOROOORRRROOROORROROOOOOOORRRRORORORRORRRRRROROORROOOROOORORRORRRRRRROORRORORRORRRRORORRORRRRRRROOROOORRROORROORRRRRRROROORORORRORRORROORORRRRRROOOORRORRROORORRRROROORRROROROROOOOOROOOOOOROORORRROROROORROROOOOROROOOORRROROORRRRRRRROOOOORROOOOOOROOOOOOOOROOOOOOROOOOOOOROROROOORROOOROROOOOOOOOOOROOOOOROOROOOOOROROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOROOOORRORORROOOOOORRROORROROROOROOROOROOROROOORRRRROOOOOROOOORORROROOOOOOOOROOROOORROOORRORRRRRRORROROOOORRRRORORRRORRORRRRROOOORORRORRROROORRORRORORRRROORRORRORRROOORRRRROROROORRRORROROROOROOORORRORORRRRRORRRRRORRORRORRRRROOORRORROOORRRRRROORORORROOOOROOOOORRRRORORRRROOORRORROOOOROORROOOOORRORROOOOORORROORRROOOOOOOROORROOOROOOROOOOOOOOOROOOOOOOOOOOOORROOOROOOOROOOOOROOOOOOOROOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOROOOROOOOORROOOROOOOROORROROROOOOROOOORRORRORROOORROORROORORORRORRROROOOORRRROOORROOROORORRRRORRRRRRRROOOOROOOOOORORRRRORRRRRRORORROOOOROORRORRROORROOORRRRRRRRROORORRRRORRROORRRRRRRRORORORORRRROROOROOORRRRROORRRROORRRROORROROORORROOORRRORORORORROORORRROOOOORRORROROORRRRRORROOOOOORROOROROOOOOOOOROOOOROROOROORORROOOROORROOOROOOROOOOOOOOOOROOOORROOOROOOOOOORROOOOOOOOOOOOOROOOOOOOOOOROROOROOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOORROOOOOORROOOOOOROOROOORROOOOOROOOROOOROOOOOOOROOROOOORROOOOOOORROOORRRRORROORRRRRRRORRRRORORORORRRORROORORRRORRORORORROOORRRRRRRRRROORROOROOORRRRRRRRRROOROROROROROOORROORRROORRRORRRRRRORRORROROOOORRROORROORORRROOROORORRRORORROOROROOOROOOORROOOROOORROOORORRRRRRORRRROOORRRRORRRRROROORROOROOORRORORROROORORROOROOOOOOORRRROOROROOOOOORROOOOOROOOOOOOOOOOOROORROOOOOOOOROOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROROOORROROOOOOOOOOROOOROOORRRORROOOOOROOORRROOOOOOORROORORROOROOOOOOORRRROOORROORROROORROOROORROOORORORRRORRRORROOORORORORRORRORRROROOORROOORORROROORORRORRRORRRRRRRORORRRRORRRRROROORROORROORORRRORORROOOORROOOORRROORRRRRROOROROROROOROROOROROORROOORRORRRRRRRRORORRROOOOOOROORRRRORROORROOOOORROOOOOROOOROOOOOOOOOROOOOOOOOOOOOORROROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOORORROOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOORROOOOOROOOOROOOOROOOOOROOROROOROOOROROOOOOOOOROOOROROOOOOOROORORROOOOROORRROOOOROORROORRRRROROROORRRROOROROROOROOOOROOOOROORRRRORRRROOOROOROOORRRORROOOOROROORORRORRORROOORRORORRRRRRROORRORORRRRRRORORROORRROOORRORROROORORROORRRROOORRORORROORORRRRRORROOORRROORORRROOOOOORORRRRRRORORRORORORORRRRROROORORORROOOOORRRROROORRORROOOOOOOOROOOOOROROOROORRRROOOOOOROROOOORRROROOOOOORORRRRROOOOOOOOOOOOOOOOROOROROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOORRROOOOOOOOOOOORORORRRROOOOORRROROROOOOOROORORRORROOROROOOROOORROROOORORORROOORROROOROOORRRROORRRRRROORRRRORORRORORRRRRRRROORRRRRORORRROOOOORRRRROOORORRRORROROORROOOORRORRORORRORORRRRROORRRORRRROORRRROOOROROOROOOORROORRORORRRORRRRRRRRORORORROOROOOOROOROOOOOOORORRRORRROOROOOORORROROROOORRRRORROROOOOROROOOOOOOOOOROOOOORROORROOOOOOOOOOOOROOOOROROOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOORROOOOOOOOOOOOOOOROOROOOOOROOOROOOOOOROOOOORROOOOOOOOOOOORRROROOORRRRROOOOROROOOORRRORRORROORORRORROOOOROORORORRORRRRRROROOORRORROOOORORRRRRORRROOORROOOOORROORROROORORRORORRRRRRORROROOOORORRORORORROORRROOOOROORRROOROORRROORORROOROOORORRRRORROOOOORRROORORRROOOROOOORRROOOOOOOROOORROORRRRRORROROORRORRORRRROOOROORROOOOROROOROOROOOOOORRRROOOROOORRROOOORROOOROOROOOROOROOROOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOROOOOOOOORORORROOROORROOOROOOOOOOOOOOROOROOROORORORROOOOOORRRROROOOROOOROORROROORROROOOOORROOOORORORRRRORRROORRORRRRRROORORRORRROOOORROORRRRRORRRRORRROORROOOORRORRRRRORRROORRRRRORORRROOROOROOOORRRRORORRORROROOORRROOROOOORORRROROOROORRRORRORRROOOOORROROOOROROOOOROROOROROOOOORORRRRRROOORORORROOOROOROOROORROORRROORORROOOOOOROOOOROOROOOROOROOROOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOORROOROROORORORROOORROOROROOOOOROOROOOOOOOOOOORROOROROOOOOOOOOORROOOOOROOOOOOOORRORORRRRORORRORRORRRORORROOORORRRRRORROORORRROOOOORORORRRRROORRRRRROROORRRROORRORRRRRORORRRORORRORRRORRRRORORRORRRRRRORRROOORRORROORORRRRORRRORRROORRRROORRRRRORRORRRORRORORRRORRRROOORRROOROROORRORRROORRROOOORRROOOROOOOROROOROOOOOOORROORROROOORORORROOROROOROOOOROOOOROOOORROROOOOOOOROOOROOOOOOOROOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOROOROOOROORROOROROOOOOOOROOORORROORROORROROOROOROOOOOOOORRROORORROROOOOOORROOROROOOROOROOOROOOOOORRORRRRROOOOOROROOOROORRRORRRRORRROOOOOOOOOROROOOORORRROORORRORORRRRRRORRRRORROROOOROOROROOORRRRRORRRRRRRROORRRORORROROORORROROROROOORORRORRRRROOORORRRROROORROOOROOOOOOOOROOOOOROROROOOOROOOROOOORRROROORORROOORROROOROOOOROROOOOOOOOOOORROOOOOOOROOOROROOOOOOOOORROOROOOOOOOOOROOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOORROOOROOOOOROOOOORROROOOOOORRRORROOORROOOOOOORRORRROOOOOOOOROOROOROORRRRORORROOORROROOOOOOORRRRORORROORROROORRRRRRORRRRORORRORRROOROROORRRRRORORRROROOROORROROORORRRRRRRORORRRORORROROORORORRROORORRRROORRRRORROOOROORRROOOORROORORRRRRROROOORRRRRRORRROROORRRRORORROOOORRROROOOORRRRRROROOORRROOOOOROORROROOOOORROOOOOOOOORRROROORRROOOOOOOOOOOOOOROOOROORROOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOORRROOOOROOOOOOOOOROOOOROROOOROOOORORORROOROROORRROOROROOORRROOORORRROROOORRRRRORROROOOOOROOORROROORRRRROORROROROROOROROOORRRORRROORRRROORROROOORORRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRORORRRRROOOOORRRRORRROORRORORRRRRORORRROROOORRRRORRORRROOORROORRORROOROORROOROORRRROROORRRRROROOOOORRRROOOROOORRROROROORRROROROROROOOOOOOOOORROOOROOOOOROORROOOOROROOOOOOOOROOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOROOOOOROOOOOOOOOROROORROROOOOOOROROOOOOOROOOOOROORRORRRORROROOROOORRORROORRORROOOOOORORROORORRORROROOORROORRRRROOORORRRORRRROROORORROORROOOOOORORROROOOORRRORORROORROROROROORRORORRRRRRRRROORRRRROROORROOROORRROOORORRRORRORRRRRORRORRORROROOROOROOORRORROOROROORROORORORRORRROOROROORROOORORRROOROROOOOOOROORRROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOORROOOROOOOORROOOOORORROOORORORROOOOROOOOOOOOOOORROOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOROROOOOOOOROROROOOOOOROOOOOOOROOOOOOOOROOROOOOOOROOOOOOOOROOORROOROOOOROROOOOROOOROROORRROORORRORORROROOROOORRORRRRROOORRRRRRRORRORORRROROORORORORORORRRROROROROOORRRRORRRRROOORORRORRORRRORRROOORRROROORORRROORRORRRRRRRRRROORRRROORROOROROORROORRRRORRROOOOORORRRRRRRORRROORRRROOOORROROOOORROOOROROORROOORRROOORRRRRRORRROORROROOOOOOOOOOOOOORROORROOOOOOOOOROOOOOOROROOOOOOROOOOOOOOOOOROOROROOOOOOOROOOOROOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOROOORROROORROOOOOOORRROROROOOOOOROOROORRRORRRRROOOROOOOOOORROOOOORORROOOROOROORRRROOORORRROOOORRORORRRORORORORRORRORORORRROROROORROORRORRORRORORRRROORORROORRROROORRRRRROOROORORRRRORRROORRORORRORRORRRRRORRRORRRRROROOROORROORRROOORRROORORRRRORORORRRRORORROOROOROORROOROORROORROORROROROORORORROROROOROOOORORRROOROOOOOORROROOOOOORRROOOOOROORROOOROOOOOOOOOOOOOROROOOORROOOROROOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOROOOORROOOOROOROOOOOROOROOOOOORROOOOOORRORROORRRROOROROOORRORROOORRORROOROROOROROOROOORORRORROOROOORRROORRRRRRRROOOORORRORRRORRORRORORRORROORROROORRRRORORRRRROOORRRORRRRRRORRRRORRRORRRRROORORORORRORRRRORORRROORRRORORORORRRORRRRRROROOORORROROOOOROORRRRRORORRRRRROROOROROROORORRROOORORRORRORRRORRROOROOOORORRROROROOOOOOOOOOOROOOROOROROROOOROOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOORROOROOOOOORRRROOOROOOORROROOOROOOOOOROOOROROORRRROOOOOOOOORROOORRRROROOOROORORROROOOOORRORRORROOOOOOORRRORRORRORRRROORROORROORRRORROOROOOORRRORROOROORROORRORORRRRROOOROOOORRRORORRORRRRORRROROOORRORORORRRRROOROORRROOROOOORORRROORORORRROROROORROOOOROOOORORROROOORORROROORRRORRRRROROROOROOROOROORRRRROOORRROOOOORROOOROOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOROOOOOOOOOORRROORORORROOOOOOOROOOOROOOOOOROOROOROOOORRORROOOOOOROOOOORORROORRROOORORORROORORORRRROROOOORRROORRRRORRRROROOOROORORRROROORROOORRROORROROOROORRRORRORRORRRRRRRRROROOOORRRORRROOORROROORRORRORORRROROORRRRORRRRRRORORORROROORRORRORRROOORRRROOORRRROROROOOOORROORROOOOOORORRRROOORRORROORRRRORORROOROOROROOOOOROOORORRORROORROROOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOORROOOOOROROOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOORORROOOOOOOROOROOOOOOROROOOOOOROOROOOOROOOOOROOOORRRROROROROORRRROORROOROOOOOOOROORORRRRROOROOROOROOOOOOOOROROOORROOOROOROOOORORRRORROOORROOOORRORORRORRRRROOOORRORRRRRORRROOOROOORORRRRORRRRRROOORRORRRRORRRRRRORRROROROOORRRRRRRRROORRRRRRRORRORRROOROORRORROOORORRROORROOOROOORRRRRRRROROORRORROOROROORRORROOOORRRORORRORROOOROOORORRROORORROROOOOORRROROOOOOROOROORORRRROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROROROOROROOORRROOOOROOORROOOOOOROOROORROROOOOOORROORRRROORRRORROOORROROROROORORRRORRORORRRORROORRORRORROORROORRORRROORRRROROORORORROORORRRRORRROOOORRORROOROOOROROROORRORRRORROORRRRRRRRRRORROORORRRORRROROROOOOROORRRROORORRRORORRORRORRORORRORRROOORROORRRORROROROROORRRROOOORROOOOROOOOOROROORROROOOROOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROROOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOORROROOOOOOOOOROOROORROOOOOOORRORROROOOOROROROOROOOORROORRORROOOOOOOORRROOORRRROROORRORROOOROROROOROOROOROORRRRRROORRORRORRRRROROROORRROORROORROROORORORRRRORRRRROOOORRRORRRORRORRROORRRRRRRRRROORROOORRROOOORORRRORRRRROOORRROROROROROROORORROOROORRROOROORRRROORROORORRRRRRRRROROROROOORROOOOOORROOROORRRORRORROROOOOOOOORRROROOOOOOOROOOOOORROOOROOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOROOOOOORROOOROOORROOOOOROROOOROROOORRRRORRRROOOROOOORROROOOOOOOORROOORRORRRRORROOOROOROROOROOORRROORRORRRRRORROROROORORORRORROROOORRORROORORRRRRRORRRORORRRORRORRORORROOOROROOORORORORRROROORRRORORRRRRORRRRRRRORRRRORRRORRROOOORRORROROOROROROORRRRORRROOORRRRRROROOOROOOOOROROOROROOOROORORROOOOOROROOOROROOORRROOOOOOOOOOROROOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORORROOROOOOOROOOOOOOOOOOOOROOOROOROOOOOOOOOOROOROROOOOOOROROOOOOORRROOOROROOROOOOORRROOORRRROOORRORRORRROOOORORROORROROOOORROROORROORROOOOORORRRORORORRROROORORRORRRRRRRROROORROOORORRRRRROOORRRORORRRRRORRORORRRRROORORRORROOOORROORRRROORRROOROOORROORRRRRRRORRORRROORRORROOROORRROORRROOOOOORORROOORRORROROROORRRRROOOROROOOROORORRROORROOOOROOOOORROORRROOROOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOORROOOOOOOOOOOOROOROOOOROROOOOOOOORROOOROOROOOOOROOOOOOOOOORROOOOOORRROOOORROOOROROOOOROOOROOORRRORROOORRRROOROROORROOORRRROOROOOROOOOOOORORROOORROROOOROOOROOROOORORRRRRROROOOROOROOROOORRORRRORRRORRRRRORORORROOOOORORORRRROROOOOROORORROORRRROORORRRRRORORORRRROOOROROORROROORRRORORRROOOORRORROROOORROORROROOOOORROOROROROOOOROROOOOOROROOOROOROOORROOOOROOOOOROOOROROROOORROROOROOOROORROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROROOOOOOOOROOOROOROOOOOOROOOROOROOOOORROOOOOOOOROROOOOROOROOOOROROOOOOORROORRRROOORRORORRORRORROOOOOORROOOOORROOOOORROORRRORRORRORRRORROOOORRROORRRRORORRRRRRROORRORRRRRRORRRORRRRRRRRRRORRORROORORRORROROORRROORRORROOROORROORRORRRRORRORRRROOOROOORRRRRROOROOORRRRRROOROROOOROOOOORORROROROOOROORRRROOOORRORRORORRRORRORROOROOROORROOOORROOOROROOOROOOOOOOOROORORRRROOOROOOOOOORORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOORROOOOOOOROOOOROROORROOOOOORROORORRRROOOOROOOOOORRORRROOOOOOORORRRRRORRRROOORRRRRORROOORROROORRORRRORROOORROOORORRORRORRROROOROORROORROROORRRRROOROOORRRRRROROORORORORRORORORROOROOORORRRRROOOOORORORORRRRROORRORROROORROROORRORRORRRROORRRORROORRORRRRROOROROORORORORROOOOROROOOORRORORRORRORORRRROORORRROOOROOROROOORROOOROOOROOROROOROOOOOOOOOOOORROOOROOOOOROOOOOOOOROOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOROOOROOOOOOOOROOROOOORORRROOOOOROOOOROORORRRROOOOOROOOOOOROORROORROOORORROOOORROORROOOOROOOORRORRROORRROOORORRRRORORORRORROORRRORRRRRORRORRRRRRORRRRORRRROROORRRRRRROORORRORORORROORRORRROORRRROROORORROOORORRRRROORORORRRORORORRROOOOOOOOROOORORORRRRRRORRORRRROORRROORORORROROOOOOORRROOROORRRORRRRRROOROOORORORROORRROROROORRROOROOOOOOOOOROOOROOOORROOOOOOOOOOROROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOROOOROOOOOOOOOOOOOOROOOOROOOOOOORROROOOROROOOOOOOROOOOOOROOOROOROROOROOOORROORRRRROOOOOOOORRRORROOOROORROOOOOROORROOOOOOROORRRORRORORORRROOOROORRORRROORROOOOORORORORRRORRORRRORRORRORORORORRRRROORRROROORROOOROORRRROORROOROROORRRRRRRORRORRROROOORORRORRRORROOROOORRRORROOROOROORRRORRROOOOORRRRROROROOROROROOOORROORORROROOORROORRORROOOOOOROORORORROOORROOROROOOOOOOOORROOROOROOOOROOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOROROOOOOOOOOOOROROOROOOROORORORROROOOORROOOOOOOOROOOOROOOOROOOOROORORRRROOOROROROROORRRRRORORROOOOOOROORORORORRRRORORRORROOROOOOORRRORRRROORRRORRORRROOOOOOOORRROOOOOORROROORRRRRRRORRRROROOORRROOROORRRORROOORRRRORRROROORRORRORRORORORRRROOOOORORRRROOOORORRROORROROROOOOOOOOROOROOOOOROROROROROOORORRROOOOOOROOOOROROOOROROOORROOOROOROOORRROORROOROROOOOOOOOOOOOOROOOOOROOOOOOOORROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOROOROOOOOOOROOROOROOOOOORROOOOROOOROOOOOOOOOOOOROROOROORORORROROORROROOOOROROOROOROOROROOOOOOROORORROORRRRRROROOROROOOORRRRROOOOOORROOOROORRRRRORORORORORRORROORRRRRORRORORRRRORRRORRORORROOOOORRROORRORRROOOORROORROOOROORORORRRRROORRRRROROOROOOOOROORRROOORRRRROOORORRORROOORROROOROOROOOOORORRRORROOOROOOOROORORRRRROORROOOOOOOOROOROOOOOOROOOOROOOROOROROOOOROOOORROOOROOOOOOOROOOOOOOOOORROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOROOOROOOOOROOOROOROOOOROROORROOROOOROOOOROOOOOOOROROORRORRRROOOORROROOROROROORROOROOOOOOOOROOOROORORORROOOROOOOROROOORROROROROROORRRRORRRRRRROOOOORORORRROOORRORRROORORRRRORORRORORRRORRRRORRRROOROOOORRRRROORORRRROORORROROROOROROORRORRRRRORROROOOORRRROOOROORRORRORORRRRRROORRORRRRRROROROOOORRRRRRROROOOROORROOOROOOOORORROOROOOOORROOOOOOOORRORORROOORROOOOOROOROOOOROOOOOOOOOOOROOOOOOOOROROOROOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOROOOORROORROOOOORRROORROOOOOOOOOOROROOOOORORRRORRROORRROOOROROOOOROROROOOOOOOOOORROROOOORRRROORROOOORRROORROROORRROOOOROOOORRRORRROOORROROROORRRRORRORRRRRORRORRRROORROORRORRORROROROOOOOOORRRRRRRROORRRRRRRRRORRORRRRORROORORORORORRRROORROORORORRROOROORRORROROOORRROOOOOROOROOOOOOOORROOOOOOORROORRRORRROOOOORRROROORRROROOOOOROROOOOOROOOOOOOOOOOOOOOOOOOORROOROOOOORROOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORORROOOORROOOOOOROOOOOOOOOROOOOOOOROOOROOOOOOROROOORRORORRRRRRROORRRORRROOOOOOORRROOOORORRRRRRORROORROROROROOORORRROOOOROORRRRRRRORRROROORRRRORROORORRORRRRROORROROROOORRROORRRRORROORRORRORRRORRRRRRROOOOROOORRRRRRRRORORRRORRRROOORROORROORRRRORRRORROOOROOORROOROROORROOROROROORRROROROORROROOROORORRRRROROROOOROROOOROOOOORRRRROOOOOOOOOOROOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOROORROOORROOORROROOOOOOROOROOOROOROOOOOOOORRORROOOROOROOOOORORROROOOROORRORROOOORRRORRORRROROOOORORORROOOROOOORROOORORRROORRRORORROOORRRORORRRRRRRRRRORRORORRORORORORRRRRRRROOOORORROROROOORRROOORORRRRORORRORRORRROORROORORRORRRORROORRRORRRRORORRORORROROROOOORRRROOOROROOOROROROROROORROOOOOROROOOROOROROOROOROOOOOORROROROOOOOOOOOROOOOOOOOOROOOOOOOROOROOOOOOOOOOROOOOOROOOOROROOOOOOOOOOOOROROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROROROOROOOOROORRROOOOOOOOOROOROOROOOOOOOROOOROORROOOROOROOOROOOOOORRROORRROROOORORORRROOORORROROORRROORRROORRRRRRROROROOOORORRORRORRORRRRRRRROOOOORORORORRRRROOROOOOOROORORRRRRRORRRRROROORROOOORRRRORRRRORORORRORROROROOORRRRRRRORRRORRROORORRRORRORROOOORROORROOOORROOOOROOORROOORORORRROOROROOOROOROOOOOOROORRORRRROOORROOOROOOROOOOORORROOROOOROOOOOOOOOOOOOOOROOOROOOORRORORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROORROROOOOOOOOOOOOOOOOOOOROROOROOROORROOOOORRROROOOOROOOOOOOOOOOOOOOOROOROOOOOOROROORROORROOOORRROOOOOOROOORRROOORROROROROROROROORRRRROOORORRROOROROORRORRRORRROOOROROROOORRROORRRRRORORORRROOORROOORRRRRRRRRROOOROORORROROOORRRRRRORORRRORORRORRORORRRRRRRRORORRRORORRRRORORORORRROROOOOOROROOROOROOORROROROROORROOORRORRORRROROOOOOOOOOOOOORORROOROOROOORROOROOORROOOOOOROOOOOORROOROOOOOOOOOOOOROOOOOOOOROOROOROOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOORROOOOROOOORROOOOOROROOORROOOORROORRORROOOOOOROORROROOOROROROOOOOOROOROOOOORORRORRRROORRROORORORORRRROOORORRROORRRRORORRRRRRRRRRRRRRORRROORORRROOOOOORRRRRRRRRRORORRRRORRRROOORRRRRRRRRRORORORORROOORRORORROORRRRROOORORRORRRRRORRRROROORORRRRROORRRRROORRORRRROOROROOROROOOOOROORROOOOOORRROROROOORROROORROORRROOOORORROOOOOOORROOOOORROOOOOOROOROOOOOOROOOOOROOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOORROOOOOROOOOOOOOOROOROOOOOORRRORRROOROOOORRROOOROOOOOOOOOOROOOOROOOOOORRORROOROOOROORRRORROROORORRROOROORRORRROROOOOOOOORRRRORORROORORRRRORORROOOROORRROOOOOORORRRROOORRRRRRORRRRRRRROORROORROORRRORORORROORROORRRRROROROORRRRRRRRRRRRROROOROOOOORRROROOOROROORRRORRROOROOOOROOROROORROROROORRORROOOROROROOORRORRORRROOOORRROOOOOROROOROROOOOOOOOOROOOOORROOROOOOROOOOOOOORROROOOROOOOORRROOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOORORROOOOOOOOOOOOOROROOORORROOORORROOOOOOROOOOOOOOOOOOOOROOOOOROOROROROOOOOOROOORRRROOOROOORRROORRRROROOOROORRRRRRRRRRRRRRRRRRRORROOOROOOORORORRROOOORORROROOORRRORORORORORROORRROORORORRROROOOROOOOORRRRRORRRROORROROOROOROOROROOROROROROOROROOROOOOROORRRRRRRROORROROORORROOROOOOORORRROOOORROOROOROOOROOOOOOOOOROORROROROOROOROOOROOOROOOOOOOROOOORRRORROROOOOOOOOOORROROOOOOROOROOROOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOORROOOOOOOOOROOOOOORRROROOROOOOOOOORROROOOOOROORROROOROOOOOOOOOOOROOROROROOORROOORORRROORORORRROROOOOORRROOORRRRRRROOOROOOROORORRROOORRRRORRRRROOORROORRRORRRORROORORRRRRRRROORRRRORRRROORORRRRRRRRRRRROOORRORRROOROROOOROROOROROORRROOROOORROOOOROORRORRORRRRRORORROOOROROOOOOOORROOROROORROOROORRRROOOOOOORRRROORROOROROOOOOOOOOOORROOOROROOROOORROOOOROOOOROOOOOOOROOOROOROOOROOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROROOOOOOOOORROOOOOOOOOORROORRORROOOOOOOROOOORROOOORROORORROOOROOOROORROROROOOORRORROOOOOOORROOOOOOROORRROORRRRRRORRROORRORRRRRROROOOROROORORORORROOROOOROROROROOOOOOORROORORRRRORORRRORRORRRRRRRRROORRRRORROROORRORORORRRORRRRRRORROOOORRRROROROORORRORROROOORRROORROROROOOROOORORRORORRRRRRORORRROOORROOROOROROROOORROOOOORROROROOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORORRROOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROROOOOOOROOOOOOOOOROOOOOOOOOOOOOORROOOOORORROOOROOOOOOOROROOROOOOOORORORORRROORROROOORORRRORRORROORRRRROROORRORROOOROROROOOORROOORROORORRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRORRORRRRRORORRRORRROOROOOROORRROORORROROOOOORORORRORROOOOOORRRRRROROOOORRRRROORRRORRRRRRRORORROORRRROOORRORRROROROOOORRROROROOOOOOOOOOORRRROOOOOROOOOOROROOOOOOOOORRROROOOOOOOOOROOOROOOOOOROROROOORROOOOOOOOOOOOORROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOORRRRROOOOOOROOORORRRROOOROOOOOOOOOORROROOOOOOOOOORROOOOROORROOORROORROORRORRRRRORRORRRRORRRRRRORORORRRORROOROOROROORRRRRROOROROOOROOORROROOOOOOOOORROORRRROROROROORRRRRRRRRORRORRRRRORRRRRRRROORROOORRRRRRROOROOROORRRRORRROROROORORROOOROROROOROOOROORORROORORORROROOOROROOROROROORORROOOROOOOOORROOOOROORRRROOOOOOOOROOROROOROOROOOOROOROROOOROOOOOOOOOOOOROROOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOROOROOOROOOOROOOOOOOOROOOROOORROOOOOROOOROOOROOROOOROOORORORROOOOROOORROORROOROOOOORRRROOOOOOOOROOOOOOROOOOOOORRRORRRRRORROOOROROOOOORRROORRORRORRRRORRROORRRROOORRROOOROOORRRRRORORRROORRORRRRRRRRORRRRRRORRROOOORORRRRRRRORRORORORORORRROROORRRORROORRROORROORROROOROROOORROOOORROROOOOOROOOROROOROOROROROOROOROROORRORROOOOORROROOOOOOORROOOOOOORROOROOOROOOOROOOROROOOOOROOOOOOOROOOROOORROOOOORRROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOORROROOOORORORROOOROROOOOOOOROROORROOORRRORRORROORRROORRRRRRRRRORRRRRRRROORORRRRORRORRORROOOOORROOOORROOORROOORRORRORORORORRROORRRRRRORRRORORRRRORRRRROORRRROROROOORORROROOORRORORRRRRORRRORRORRORRROOROORORRRRRRRRORRRORROOOROOORORRRRRROROOOORROOOORRRRORROROOROOOORORROOOOROOROOROOOROORORROOOOROOOOOOROOOOOORRRRROROOOOOORRROROROROOOOOROOOOOOOOOOOOROROOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOROOOOOOOROOOROOOOOOOROOROOOOROOROOOOORROOOOOOOOORROROORROOOORROOROROOOORROOOROOROOOROOROORROROOROORRRROROOROROROOOOOORRRRROORRRORORROROOOOOOOOROORORROROROOORRRROORRORRRRORROROROORRRRRORRRRRRROORRORORRRRRRRRROOORRROROOORROOOOORRRRORORRORORRORRRRRRORRRRROROOOROOOROROORRRRROORORORRROOOROOROOOOORRROORROOROOOROOORRROOOOOOOOORROROOOOOOOORRORROOOOROOOOOORRRROOOOOOORROROROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOROROOOOOOORROOOROOOOORRROOOORRRROROROROOROOOOROROROOROROOOOOOOROORORROOOORRRORROOROOOOOOOROORORORRRRORROORORORRRRORRRRRRROORORRORORRROORROROOORRRRRRRRRORRRRROOROROORRORRRRRRRROROOORROOROORORORORRRRRRROROORROOROOOORRORRRRORROOOOOOORRRRROOROROOORORRRORRRROOROOORRROORRROROROROORRROOOOOOOOORROOOORORRRROORRRRROOROOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOROOROOOORROOOROOOORROROROOOOOOOOOORRROOOOORROORORRRROORRRORRRROOOROOOORRORORRORROROROORRRORRORRRROROORRROOOORRRROOROROOORORRORORROOORRROORORORRRRORORRRROOROORORORRROORRRROORRRRORRRRORRRORRROOOROORRROORRRRROORRRROOORRORRORROORROOORROOORRRORORRORRRROROOORROROROROROORROORORRRRROROOORRORROORROOROOOOOROOROOOOORROOOORRROROOORRORORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOROORORROOOOOORROOOOOOOROROOROOOOOOOOOOOOROOOOOOOOOOOROORORRROROROOROOOOORROOORRRORROOOOORRORRRRORRROORROOOORROOORORRORRORROOOROORORRRROORRRRROORRRORRRROROOOORRRRRRRORRRORRRORORRROOROOORRRROORORORRORRORRORORORORRRROROROORRRRRRRRRROOORORRRORRRRRRROORROOOROORORORORRRRRRROOROOORRROOOORROORRORORRRROROOOOOOOROORRROOORRORROOOOROROOOOOROOROROOOOOOOOOOOOOOOOROOOOORORORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROROOOOOOOOOROOOOROORROOROROOOOOOOORROOOOOROOOOROOOOOROOORROOOOROORRROOOOOOOOOORRRRORRRORORORORORRORRRRORORROOOOOOORROORRRRRORRRORROOOOORRROOOOOOROORRRROOOORRORRRRRROORRRROOORORRORRRRRORRRRORRRRRRRRORRRRROOORORRRROORROROROOORRRRROORORROORORORORRRORORRRRORROROROOOOORRRRRORRROROROOOORROROORRORRROORRROOROOOORRROOOROROROOORRRROORRROOOOOOOOORORROOOORRROOOROOOOOORROOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROORROOOORROOOORRROOOROORRROOOOOORROOOOOORORORROROROOOOOOOOOORRORORORROORROOORROOROOOROORRROOROOOOORRROROORRRRROOORORORRRRROOOORORORORRRRROROOROOOROOOROOOOROOROROOORRRORRRRRRRORROORRORRORORORRRRRORORRRRRROROROOOROORORORRROOOORRROOOORORROROOORORRORROOOROOOORRORRRROORROROOORRRRROOOROOROOOOROOOOOROOOOORROROOOOOROOOROOOOOROOOROOOOOOOOOROOROOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOORROOOOOOOOORROOOOOOOOOROROOOOOOROROROOOOOROOOROOORROORRROOOOOOOROORORRROROOROROOOORRRROORRRROOROROROORRROOROROROOROOOROROOROOORRRRORRORROROOROORRRORORRORORRRRROROOOORRROORRORRRRORRRRROORORORORORRRORORRRRRRRRORRRORRROORORROORRORRORRORORORRROOOOORROROOORRRROROOORROOROOORROROROROORRROOORORROOORROROOORROORORROOOOOOOOOOOOOOOOOOOOORROROROROOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOORROOOROOOROOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOROOOOROOOROORROOROROOOOORROORROROOOOOOOOOOOROROOOOOROOOOOOOOORRRROOOROORRRRRROORRRRROROORROOOOROROORRROORROOOOOOOROOOOOORRRROROORRROROROORROORRRRRROROROROOORROOOOORORRORRROOORRRORRORRORORORRORRROORORRRORRRORORRRROOORORRRORROROOOORRRROROOOORRORROROROOROROORORRROOOOORORORORRRROOROORRRROOORROOORROOOORROOOOOOOORORRRRRORORRRRROOROOOOROOOOOORROOROOOOOOOROOROOOOOOOOOOOROOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOORROOOOROOOOOOOROORROOOOOROOOROROOORROROROOOROOOROOOORRRORRRORROOOOROROOOOROORRRORRROROOOORRRROOROOOOORORORROORRRROOOOORRORRORRRRRORORORRRRORRRRORORORRRRRRROORRRRRRRRRRORROORRRORRRRROORRORRRORRRROOORROORORRRORRRRRROORORRORORORORRROROOORROOORRORRROORRROOROROOROROOOOOOOOORORROOOORORROOOOORRRORRORROOOROROOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOROOOOROORROOOOOOOROOROOOROOOROOOOORROOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOROOROOOOOOOOOROROOROORRRROORROOROOROOOROOOOOOORROROOOOROOOOOOROOOOOROOORRORORRROROOOOORORRRORROORRROOROOOROOROROORRROORRORORRRRRORORRORROOORRROORRRRRRRROORRRORRRRRORRORRRRRORRRORROORRRROROROORRRRROOOORRORRRRRRORRRROOORRRRRORROORORORROOOORRRRRORROORORRRORRRRRORRROORROROOOORORRRROROORRROORORRROORRRRRORRORORRRROOOOOROOOOORROOOOORRRRROOROOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOORROOOOOOOOOOOOOROOOOOOOOROOOOOROOROOOOOORROROOROOOOOOOROOORORROROOOOORROOOOOROORRRROORROOORROORRORORRROOOOOOORRRORRORRRRRRROROROORORRORRRORRRRRRRRROORROORORRRORROORROROORRROOORRORORROROORRORORORORRRRROROORRRRRRRROROROROOROORROROOOROROORROORROROOOROORRORRORORROORORROOORROOORROOOOOOOOOROROOOOOOORRROOOOOROOOOOOOROOOOOROOROORORROROOOOROROOOOROOOOROOOOOOROOOOOOROROOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOORRROROOOOOOOORORRROOOOOORROROOOORROROROOORORRRRROORRRORRROOOOROORROROROROORRROROOORORRRROORORROORROOORRORROROORRORRORRRRRORROOORRRORROORRRORROROROORRRORORORORRRRRRRRORRORORRRORRRORORORRRORRRRRORRORORRORRORRRROORRRRORORROOORRRRRRROOOROORRROOORRRRRRROOOROOORROORRRRORRORRRRRROOOOOOROOOOOOOORRROOOROOOROROOORRROOROOOOOOROOROOOOROOOORROOOOOOOOOOOOORORROOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORROOOROROORRRROOORROOOROOOROOOROOOOOOOORORROROROOOROORRRRROOOOORRRORROROORRROOROROOORORRROROOORRRRRRRRORORRROORRROROORRORRORRORRRORRRRRORORRORRRROOROOORRRRRRORORORRRORRORORORRRRROROORRROOOOOORRORROORROROORRROROORORROOROORROORRROORROROOOOROORROORRORORROOOROOROOOOOORRORRROROOORROOOOORORRRROOOOOOOROOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROORROOOOOOOOOROOOORRROOROOOOOOOROOOOOOROOOOOORROOOOOROOOOOOOOOOOOORORROOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOROOOOROOROOORRRRRRROOOROORRROOROROROORRRORORORRROOORRRRRRROROORROROROROROOROOROROOORORRRRRORRORORRRORORRROOROORORRORRRRRORROROOROORROORRORRORRRRRRRROROORROROROORRRROROOOORROORRRORRORORRROROROORORRROORRRRROOROOOOOOOOOROOOROOOOOOROOOOOOROORROORROORROOOOOORROOOOOORRROROOOORRRROOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOROOOOOOOOOOOOORRRORRRROOROOOOROOOOOORROORROOOOORROROOORRRORROOOOROORORRORORRORRROOOORORRRROROOOOOOOOOORRRRRROROORRRRORORORRROROOOORRORRROORRROORORROORORRROORRRRRRROOOORRROOROORRROORORRRRRRORRORROOOORRRRRROORORRORRRORRRROOOOOOOOOOORORRRRROOOROROORRRRROROOOORRROROOOOROROOORROORRRRRRRRROROROORRROOROOOOROROOROORROOORORRROOOOOOOOORROROOOOOOOOOROOOOOOOOOOOOORROOOOOORRROOOOOOOOROROOROOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOORRROORROOOOOOOOOOOOOROOOOOROOORROOOOOOOOOOOORROOROOROROOOOOOOOORRROOORORORRRROOORRORROORRRROOORORRORRRORROROOORRRORRRROOROOOORORRRRRROROOORORRORRROOROORRORRORRROORRRRRROORRRROOROORORRRRRRROOROOORROROORORRORRROOORROOORRORRRRORRRROOOROOROOOOORRRORRRORROOORROOOORRRORRROROORRROORORROOORRROOORRROOOOROOOOROOORROOOOOOOOOOOOOOOOOOROOOROROOOOROOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOORROROOOOROOOOROOOOOOOOOOOROORORROORROOOOORRROROROROORRRORROROOOROORROORROORROOOOORRROROOORRORORORRORRRRROORRRRRRRRRRORORORROORRRORROROOOORRORRRROORRRROORRORRRORRRRORROORRORRORROROORRRORRROROROORORRROORRORRORROOORRRRORROOOOOOORORORORORRRRORRORRORROORRRRRRORRRRROROORROORROORRROORROROROOOORROOOOOOROOOOOOOOOOOROORRRROOORRROOROROROROOOOROORROOOORROOOORROOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOORRROOOROOOOOORRORORROOOORORROOOOOROOROOROROROOOOOOOORORORROROOOROORORRRORORORRRROROROOOROORORORORROOORORORRRRRRROOORRRRRRRRRRRROOOOROOROROORROOOORRROROOOORRRRRORRRROORRROROORRRRRORORROROORRRRRRRRRRRROROROOORRRROROOORROROOORRRRRRRORRRORROOORRRRORRRORORORORROOORRROOOOROOOOOROORROORORROOROOOOOROOOOORROOOOOOROOROOOOOOOROORROOOOOOOOOOORROOOOOOOROOOOORROOROOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOROOOROROROOOOOOOOOOOROOOOOROOOOOOOOOROOROOOOOOOOOORRROOOOOORROOOORROOOOOOORRRRRROORORRROOOROOORRROORROOOOOORROOORRROROOOOOOROROROORORORROOROORRRROORRORRORRORROOOOROOORRRRRRORRRRRRROORORRRRRRRROORORRRRORROOOOORRROROORROORROOOORRRRORROORRORRORROORRRRRRORRRROOORORRRRROOOOOORRRRRROOOOROOOROROORRROROROOOORRORROOOOOOOROOORRRROORROOOORROROOOORROOOOOOORROOOOOOROOOOOROOOOOOOOROOOOROROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROROOROOROOOOOOOOOOOOOOROROOOOOOOOOOROOROOOOOOROOROROOROOOOROOOOOOROOOROROOOOORROORRORORRORROROOROOOOORORROOROORORROOOROOROROROORROOORRRROOROORROORROORROORRRROORORRRRRRRROROROOORRROOOORRROORRRRORRROROOROOROOROROOOOOROORRROORRRRROOROORRROROOROORRRRRROORRRRORRRRRRRRORORORRRRORRROORRROOOROROOORRORORORRRORROOOORROOOROOORORROROROOOOROOOOROOROOOOOORORORRROOORRROOOOOOOOOROOOOOOORORROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOROOOOOOOORROOOOOOOOOROORROROOROOOOOOROROOOOROOOROROOOOOOOROORROOOORORROOOOROROORROOOROOROOORROOOOROORROOOOROOROOOOROOOROOOOOOOOOOOROOROOORORRRRORROOROOROROOOORORRRROROORRRORRORRRROROOORORROOORRRROORRROOROOORRRRRORROORRROOORRRRRRRRRORROORRROORRRORRORROROORRRRRROORRORRRRRORORROOOROORROOROROROOOOOOROOOROOORROOORORROOROORRROOOOROOOOROROOOOOOOOROOROROOOOOOOOROOOOOROORORRROOOOOOROOOROOOOOROOROOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOROOOROOOOOROOOOOROOOOROROOROOOOOOOROORRRORROOOOOOROOOORORROOROOOOOOOROOOOOROOORROORROROOOROOOOROOOROORRRRROOOROOOROOROROOROOORRRROOOORRORORRRRRRRRORORRRRRRRRRRRRROOROROOORORRRROOORRRORRRROOOOOORRRRRORORROORRRRRORROOOORRRORROOOOROORORROROORRORRRORRORORRRRRRRROOROORRRRROOROROROOOOROOOORORRRORROOOOOOROOROOOROOOROOOOOROOROOOROOOOOROOOROROOOOOOOROOOORRROOOOOOOOOORRROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORRROOOOOOROOOOOOOOOOOOORROOORROOROOOOOOOOOROOOORROOOOOOORRROOOOORRROOOOROOOOOORORRROOOOOROOOROROORORRRROOROOORRRROROROROORROORRRRROROORORRRRRORRRRRORRRORRORRRROOORROORRRRRRRORRRRORRRROROORRRRORRRRRRRROOOOOORORRORRORROROORRRROROROROROORRROROORRORRRORROORRRRRORROROOORRROOOROORORRORRRRORROOOROOROOOOOROROOROROOOOOOORORROOROOORORORROOOOOOOOROROOOOOOORROROOROOOOROOOOORROOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOROOROOOOOOROOOOOOOOROOOOOOOROOOOOOOOROROOORRROOOOOORRROOOROOROOOOOOOOOOORORROOROOOOOROOOORROOOROROORORRORRRORRROORORRROORRRRRORRRORRRRORROROOORORRORROOROROOOORRORORORORRORRRRRRROORRRRROOROORRRRRORRRRORORORRRORRROORRORORORORROOORRRROOOORORORRRORRRORRRRRRRORROOOOROOOROORROOROOOORRORORORROORRRORRRRROOORRROOOOOOOOORRRROOOORROOROOOORRRORORORROOOORROOOROOOOOOOOOOOOROOOORRORROOOOROOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOORORRRORROOOOOOOOOROROOORROORROORROOROORORROROOORRROORROROOROORROOOOORRRORRORRRORRROOROOOOOOROOOOOOOOOOORRRORRROORORORRORRRRORRORORROROROOORRRORORRRORROORROORROOROOORORROROOROORRRRORRRRRRRRORROROOOORRRROROOOROORORRROOROORRRRROORRORORRRROOROORROOOOOROROOOORROROROOOOOOORORRRORRROORRROOOOROOOOROOOOOOROORROOROOOOOOOOORROORROOROROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOROOOOROOOOOOORROOOOOOORORROOOROOOOOOOOOOOOOOOORROORRRORROOOOOORROOOOOROROOOOOORORROOOOOOOOOOOOOOOOOOOOOORRRROOOOOORROOOROROORROOOOORROOOOROOORRROORRORORORROROROOORRROORORORORORRROORRROORROROOOOORROOROORRRRORRORORORORRRRRRRROOROOOOROORRRRORRORRROOOORRRRRROROROORRORRROOOROROOOROOROOROOROOOROOOORRRROOOORRRRROOOOOOROORROORROORORROOOOOOROOOOORRRRROORRRROOOOOOOOOROROOOOOOOORROROOOOOOOOROOOOOROROOOOOOROOOROROOOOOROROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOROROOOROROOOOOOOOORROROOROOOOOOOROROOOOOOOORROORRORRROOROOOROROOOROOORORORRORRORROOROORROOROOOORRRRRROOORORRROORORROOROORORRORRORORROOROORROROOROORORORRROORORRORRRORORORRRORRRRRRORRROROROROORORORRRRRORROOORRORRRRRRRROOOOORRRRRRORROOORRRROROORRRORORRRRROOROOROOORROOORRORORRROORRROOOOORORORRROROOOOORORORRORRROROROOOORRORROROOOOROOROOOOROROROROROROOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOROROOOOOOOOOORROROROOOOOOOOOROOROOOOOOROOOOOOOOOROORRROOORROOOOOOOROOOORRRORORROROOOOOROOORORROROORORROOROOOOORROROROOORROROROORROOORORRRORRORRRRORORRRORRRRRORROROOORRRORROROOORROROROOROORORORRORRORROOORRRROROORROORRORRORRRORRROOOOOORORRORRROORROORRORRORROOOOORORRORORORORORORROORROORRRRRRRROOOOOOOROOORRORRROOROORROOOROOROOOROOOOOOOROOROOOOOOOROOOOOOOOOOOROOROOOROROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOORRROOOROOROOOOOOOOOOOOOOORROOOOROOORORROROROOORROORROORROROORROOOORRORROORROOOOOROOORRROOOOORRROORRRORRORRRROOOROOROORORRRORORRRORORRRROORORROOORROROORRRROORORRRROOROOORORRRRROOROROORRROOOORORROROROORRROOORRRRRRRRORROROOROROORORORORRRROOOROOOROOORRRRRORRROOROORROOOROROOROORORROORROORRROORORRORROOOOROOORROOORROORROORRRROOOOOOOROOOOOOOOORRROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOROOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOROOOROOOOOROORROROROOOOOROOOOORORRROOOOOOORROOOOROORRROROOORRROOOOOROOORRORRROOOROOROOOOROOOOOORRORRRORROOORRROORORORORRRRRRRRRROOOROROOOROROORRRROOORRRORRORORRORRRRRRRRROROORROROROROORROORROORRROOORROOORRRRROROOROROORRORROOOROROOOOROROOORRORRROOOOORRRORRROOOOOORORROROROORORORROOROROROROROROOOOOOOOOOROOOOOORROORRRROROORROOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOROOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOORRRRROORORROORRROOOORROROROOROOROORORROOOOOOROOORRROOOORROOROORRROROOORRORRORORORRROROOORRORRROROOORRRORROROORROORRRRROROOOOORRRRRROROOORRRROOOROROOOORRRORRRRORROROORRRRRROOORRRRRRROROOORRRRORROROOOOROOROORRROORROOOROROORRRRRORRRROROORORRRRRRRORRRRRROOORRROORROOROOOOOOOORRRORRROOORORROROOOOORRROOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROROOOROROOROOOORRRROOOROOOOROOOOORORRRROORORORROOOORRROOOOOOORORRROOROORRRRRRRROOORRRRORROOOOROROORRROROORORORRRRRRRRRROORRORRRRORRRORRRRRORRORRRRRRRORRORRRRRRRRRRRROOOOROORRRRRROORRRORROROORRRORRORRROORRRROOOOROOOORORORRRORRROOOOROORROOORRRORRROORRRORRRORORRRRRRORRRROOORROOOOROOORROOOOOROOOOOROROOORRRROOOOOOROOROOROOOROOOOOOOOOOOOOOOOOROOROOOROOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOROOOOOROROOORRROOOROROROOROORORROOOOOOOROOOOOOOOOOOOOOOOOORORROOOOOOOOORROOORROORROROROROOROOOROOORRORROOOROROORORROOOOROOOOOORROORROORRRORRRRORORRRROROORRRRORORRRRRROORRRORRRRRRORORRORRORRRROROORRORRRRROORORROOROORRRROOORRRRRRRROORRORRRRROORRRORORORRROROOORROORRRRRROROROOORORROOOOROROOOOOOOROOOORRRORRRROOROOOROOOOORORRRORROOROORORROROOROORORORROOOOOROORROOOOOOOOOOORROOROOOOOOOOOOOOOOOOROOOOOOOOORROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOROOROOORROOOOOOOOOOOOROOROOOOOOOOOOOOROOOROROROOORRRROOROOOROROOORRRROOOOORRROROORRROOROOOORORRORROORROORORRRRRRRORRRROOOOROORRRORROROOORORROOORRORORROROROORRRRRROOOROORRRRORRROROORRORROORRORRRRROORORRRRRRRRROOORRORROOROORRORRORORRROOROORROROOOOOROORRORRRROOROROORORRRORRRROOOOOOORORORRORRROOROOOORRORRORROROOORORRROOOORRRRROROOROORROOROOOORROOOOOROROOOORROOOOOROOROOOOOOOOOOROOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOROOOOOOOOORROOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOROOOOOORRRRROOOOORRRRROOROROOROOORRROOOOOORROORRRORRORORRROORRROORRROORRRRRORORRORRRORORRRRRORRRORORROOORRORRORRRRORRRROORROOORRROOROOROROOOOOORRRROOORRRORRRRRORRRRRROORRRRRRROORRORRRORORORORRRORRRRRROOOOROORRROORRRROOOORRRRRRORORORORROROORROROOOORROOOROOOOOOROORORORRROOOOORORORROOOROOOROOORROOROORROOOOOOOOOOOOOROOOOOOORROOOOOOROOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOROOOOOOOOOOOROOOORORORROOROOOOROOOOOROOOOROOORROROOOOOOOOOOOROOROROORRORROOOOOROOOORRORRROORRRRORROORROROORROORRRRROROORROORRRORRRRROROROROROORRRORRRRORORORORROOORROROOORRRRRRRRRRRRRRRORRRRORROOOORORORORRRRROOOORRROORRRRRRRORRORRRRRORRROOOOOOOORRROOOOORRORORROOORORRORROOOOROOORROORRORRORORORRORRRRROROOORRRRROOOORRRRROOOOROOROOOOOOOOROOOROROORROORROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOORROOOOOOOOOOROOOOOOOORORRORROOOOOOORROOOOOOORRROOOOROOOOOOROOOOOOOOOOORRRROORRRRORRRRRRRORRRROROOOROOOOOOOROOOOORRORRRRRROOROOORORROORORORRORRRRORRRRORROROORORROROORORRORORRRRRRORRROORROORORRORRRORRRROORROOORROOOORRORRRRROOOROORROOROOOOOROORROROOOROORRORRORORROOORORROOOOORRORROOROORRORROROROOORRRROOOROROOROROOOOOOORROROOROORROOOOORROOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOROOOOOOOOOROOOROROORROOOOOOOOROORROOOOOOOOOOOOOOOOOOOROOOOORRROROOOROROOOOROROOORROOROOOOOOOROOOOOOOOOROROORROORORRRROROOORORRRROOORRRRROORORORRRROROORRORRRRRRRORRRRRROROOOROOORROORRRRRORRORROORRRORROROROORRORRORRRROOROORRRORRRRRRRRROOORROORRRORORRRRORRRRRORRROORRORRRROOORROROROOORRROOROROOROORRRROOROOROOOOOROOOOOROROOROOOORROOROOOROOORROOORRORORROOOROOOOOOROROOOROROOOROOOROOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROORROOROOROOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOROROOOOOOOOROOOOOOOOROOROOOOOROOOOOROOOOOROOROOOROOROOOROROOROROOOORORRROROOROROOOOORROOROOOOORRORORROROORRROROORRRRROROOORRORROROOOORORRORRROOROOORORORRRORORORRROOOOORRROOORRORRRRRRORROROORROORRRORORORRRORRROOORORORRRORROORRRRORROOORROOORRROORORROOROORORRRORROOROROOOORRRROOORORORROORORORRRRRRRRROOORORROOOOORORRROOROROOROOOOROOOOOOOOOOOROOOOORROROOOOOOORROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOROOOROROOORORRROOOOOOOOOOOOOOOOOOOOOOOOORORRORROOORROOOROOROOOOOOOORRROOOROOOOORROOORROOOOORORORRRRORRRROORORORRROORORRROOOOROORORRROROROORORRRROOROORROROORRRORORRORRRROROROOROOORORRRRRRRROROORRRORROROORORRRRROORRROORRRROOORRROROOORRORORORORORRROOOROROOORORORORRROROOOROROOOOROOOOROOROOROROOOOROOOROROOOOOOORRROOROORRRROOOORRRROOOOOOOOOROOOOORRRRRRROOORORROOOOROOOORROOOROOOOOOOOOOOROOROROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOORRROOOROOOOOOORROOOROOOOOROOROOOOOOOOOOOROROOROOOROOROROOOOOOOROOORROOOOROOOROOORRRROORRROOOOOROORROOORROOOOORRORORRRRRRORRRRRRORORRRORRRRRROOOORRRORRRRRRORRRRROORROORRRORORRRRRRROORORRRORRRRRRRROROORRRORRRROOROORROOROOOOOOORROROOORROOOROOOOROROORORRRRORRRRROROORRRRORORRROROROORROOOORRRORRORORRRRRORRROORRRRROOOROOOOOROOROOORRORRROROOOROOROOROOOOOOOOOOOOROOROOOOOROOROOORRORORORORRROOOROOORROOROOOOOROOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROROROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROROROOOOOOROOOOOOROOROOROOROROOOOROORORORRRROOROOORORRRROROORRRRROORRORORROROOORORRORRROOORROORRROROORRRORRRRROORRORRRORORRRROORORRROOORRORRRRRRRRRORRRROOOORRRRRORRORRORRRRROORRRRROROOROORRROORROORROOROROOORORORORROROOOOOROROOOROOORRORROROORRORROORRRRROORORROROOOROORRRRORROOOROOOROORROOORRORORORROOROOOOOOOROROOOROOROOOOOOOROOOOOOROOROOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORORROOOOOOORROOOOOOOORORROOOOOOOOOROROOOOOOOOOROROROOOOOROROROOOROOROROROOOOOORROOORROOOORROOROOROROOOOOROOROORRORRORRROROOORRRRRRROROOOORRRRRROOOOORROROROOORROORORRRROORROOOROORRORROROORRRRRRRRRORRRROOOORRRROOROROOOOORORRROORRROORORRRRRORROROOROOROOORROORRORRORRRROROROORROOOOROOROOOOOOOOORRROORROOOOOOOOOORROOOOOROROOOORROOORROOOOOORRROOROROROORROROOOORRORORRROOOOOOORROOOOROROORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOORRROOOOORROORROOOOROOOROOOORRRROORRRRORROOOOROOOOOOOROROOORRORORROOROOORORROOROORRRRORROOROOORRORORRRORRROOORRRRRROROROORRORROORORRRRRRRORROORRRRRRORRORORRORRRROORRRRRORRORRRORRROROOORRRRROOOOOROORROOOROOROOOOOOORRROORRORORRORORROOOROOORORRRROOOROROOROROOROOOOOROORRROOOOROORROOORRORORRROOOOOOORROOOOROOOROROOOROOOROOOOOOOOOROOOROOROROOROOOOOROROOOOOOOOOOOOROOOOOOROORROOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOORORORORROOOROOOROROROOOOROORROOOOOROOROOOROOORORROOOOOOROOROROOOOOORRROOOOORRRRROOOOROOORORRORORRORRROOOOOOOOOORROOORRRRROOOOOORRORRRROOORRRROOORORORRRRRRRROORORRRORRRRROOORRROROOORORRORRORROOOORRRORORRROOOORORORRRRRORRROOOOORRORROORRORRORORROORRRRORRRRRRRRRRORORRRORROOOOOOORROORRROOROOOORRRRORROORRRROORORORROORRROORROOOOOOROROROORROOOOOROOOROOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOROOOROOOROROOOOOOOOOROOOROROOOOOOOOOOOROOROROOOORORROOOOROROOOROORROOOOROORRROOROOOROROROOOOROROOOOORRROORRRRORRORRRRORRRROOORROOROOROORROORRRRRRORRRORRRRROROOOORORRRORRROORROOORORRRORRRROOOORRRORROORROROORRORRROORRRRRRORORORRRRRORRRRRRRORRROROORRRORORRRROORRRRROOORRROOROOROOORORROOOROOROORRRROOOORRORROORRRROOOORROROOOORROOOOOOOROROROOROOOOROOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOROROOOOROOOOOROOOOROROROROOOROOROROOOOOOOOOOOOOROOOOROOROROOOOOOOOROOOOOROROOOOROOOOROOOORROOORROORRROOOOROOOROROOORROOOOOOORORRORRORRRORROORRRRORRROROOORRRRRROROOOOROORROOOORRROROORROORRROORRRRRROOORRROORRRRORRORRRRROOORRROROORORROORORRRRRRROOORRORRORORRROOORRORRRRRRRORORRORORROOORORRROOORROORORRROOOOORRROOROROOOROOROOOOORORORORRRORRORORROORRORROROROOOROOOOOOOOOROOROOOROOOOOOOOOOOOOOROOROOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROROOROOROOOOOOOOOROROOOOOOOOOOOOORROOOOOOOOOOOROORORROORRROOORRRORROOORRORRRRROOOOROROOOORROORORROORORORRORORROOROOORRRROROROORROROOORORRROROORRRORORRROORROOOORRRROOROORORRROROORROROOOOROROORORROORROORRRORORORRORORROOORRORROOROROOOOORORORORRORRRORORROROOORRORORRORRRRRORRROROROOROOOOOOOOORRRROOOORORORROROOROROROROOOOROOOOOROORORROOOOORROORRRROROROOOOOOOORROOOOOOROOOROROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOROOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOORRROORROORRROROOOORRROOOOOORRRRRORROORORRROOROOOROOOROOORRRORROOORRRRRRORRRRRRRROORRROROORRRRRRRROROOORROOOOOORORROOOROORRROORORRRORRRRROROOORRRRRRRRORORRROOROROORRRRRRORORRROOOORROROORRRRORRORRRRRRRORRRORORROORRROORRRRROORORRORRROOROROOOOROOOOOOROOOOROOROORORROORRROROOROROOOOOOROROROOOOOOOOROOOOOOOOOORORORROOOORROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOORROOROOOOOOOOOOROORRROORRROOOROOROOROOROROROOOOROOROROOROROROROOOOOROROOOOORORRRROOORROROORROOOROORRORORORRROOOORRRRORRROORORROOORORROORORORRRRROOORRROOORRROROROOORRORRRRORRRRRRROROORRROOORORORRORORRORRROOORRRORORORRRRRRORRRRRRRRORORRORRORRRORORRROOORROOORORRRRORROOROORRRRRRRORROORROOORORORRROROOOORRRRROOOOOOROOROOROOOOOOOOOOROOOOOOOORROOOROOOOOOROROOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOORROOOOOROOOOOROOORROOOROOOOROOROORROOOORROROOORORRRROROORRRORROROROOOROOOROORORROORRORRORRROORORRRROROOORRORORRROORROORROROOROOOORRRORRRROROROOORRRROORORRROORRORORRORRORORRRRROROORRRORRRRRORORRRORRRRORORORRRORRORROORROORROROORORROOOOORORORRORRRROORORORROOOROOOOORROORORROROORORRRROOOOOOROOROROOOROOROOORRROOOOOOOOOOROOOOOOOOOROOOROOOOORROOOOOOOOOOOOOOROOOOOOOOOROOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOORROROOOOOORROOROOOOORRRROORORRRRROORRROROORRRROORRRRROORRRRRRRROROORORRRROORRRRRORRROROOROOROROORRRROORORRRRRRORRRORRRRORRRRRRRRRRRRRORORRRRRRRORORORRRRROOOOORRRRRORRORORRRRRROORRRRROOORORRORRRORORORRRRRROORRORORORRROROOORRRRROORRRROOORROORROOOORRORORRORROOROROOORRROOORORORROORROOROOOROOOOORROOOROORROOOOOOOOOOOOOROOOORRRORROOOOROOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOROOOOOOORROOOROROOOOROOOOOOOOROOOROOOOROOROOROROOOROROOROROORROORROROOORRRRRRROORRORRROOROOOORORRRRRRRRROROOOOOOORRORORORRRRRRRORRROORRRORRRORRRRRROROORRRRRRORORRORROOOOORORORRRRRRRRORRRRRRRRRRRORRRRRRRORROORRROORRRRORROORROROOOROORRROORORRRRORORORRROORRRROROROROOROOOROOOROROOOOOROOORROORRROROOOROROORROORRORRORRRORROOROOOOOOOORROOROROOOOROOOOROOOOOOOOOORROOOOOORROOROOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOROOOOROOROOROROOROROOORROROOORROROOOORROOROOROROOROOORRORORRORRROOOOOOOORRRRORORROROORROOOOOOOORROROOOROROORORRRRORRORROROOOORRRRRRORRRRRRROOOROORROORRORRRRORROORROOOROORORRORRORORRRRORRORRROOORRORORORRRORRROROROROOOROOROORORRRRRORORRRRRRROROORRRROORRORRRROOROORROOOORROOROOOROROOROROOOOOORRROOOOOOOOORRRORROORROOOROORROROOOOOORROOOROOOOOORROOORROOOROOOOORROROOROOOOOOOOOOOOORROOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOROOROOOOOOROROOROOOOOROROOOOOROOOOOROOOOOOOOROROOOOOOROOORRROOOOOOOOOROOOOOOROOORRRRROOOOOROOOORRROOOOORRRROORRRROROOORORRRORRORROROROOORRROROORRRRRORORORORROOOROROORRRROORROOOORROOOORROOOORRRROORORRRRROORRRROOOROOOOOOORRORORRORRRROORROOOORROORRORRROOOORRRRROOOROROOOROORRROOROORROROOROROROOORRORROOOOORRRRRRROROOOOOOOOOOOOOROOROORRROROOOOOROOOROOOORORRROROOOROOROOOOORROOOOOROROOOOOOOOOOOOOROOOROOOOOOORORROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOROOOOROOORRRROOROOOROOROOROROOORROOOORORROROOOOOOORORROOOROOOORROOORRORORORORROROROORRROORORORROORRRROORROROORORROROOOORRRRRRRRRRRRRRROROROORRRRRRRRRORRRORORRRRRORRRORROROROROOROROOORRRRRROOOROROORRORRRRRORRRRROOOORRROORRORRORORRRROOOOROROORRORRROOOOORRROROROOOORRORORRRROOOOOOOOOROROOOORROOOROOOROOROOOROOOOOROOOOROOROOOOROOOOOOOOROROOOROROROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOROOOOOOOOOOOROOOOOOOORORROOROOOOOOOOOOOOOROROOOOROOOOOROOOOORROOOOOOOOOOOOOOOOOOOOORROOOOROOOROROOROROROOORRRRRROOOORROORROOORRROROOOROOROROORORORRRORROROORROOOROROOROROOOOOORORRRORRORRRRRROORRRRROORRORRRRRRRORORORRROORRORRROOORRRRROROOOROROOOORRORORORRROROROROORRRRROORRRROOOOOOOOORRORRRROOROROOOORRRRORROORROORORRRROOOOOOROOOROROOOOROOROOROOOOOORROOOROOOOORROOOOOROOOOROOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOROOROORORROOROOOOOOROOROOOORROOOOROROOOOOOOOOROOOOORRORORROOOOOROROROROROOOOOORRRRRRRORROROROOROOOOROROOOORRRRRROOOOROROROOORRORRROORROORRRRORRRRRORRORRORRRROORORRRORRORROORRORROOROOOOOORRRORRRORROOORROORROROORROOOROORRRRORRRORRORRORRRRRRORORRRORROORORROOROROOROROROOORORROROORORRROROORRORROOOOROOORRORRRROROOORROOOOOOROOOROORROOOROOOOOROOROOOORROOROROOROORORROROOOROORROOOROROOOOOOOOROOOROOOOOOOOOOROOOORROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOORROROROOOOOOOOOOOOOROROROOOOOOOOORORROOOOOORROOOOOOROOROOOOOOOOOOROOOROOOOOOORORRORRRRORORROOROORROOORROOORORRORORROROORRROOROOOOORRRORROOROORROOROORORRORRROOOOORROORRRRORRRROORROORRRRRRRORRROOOORRROROORRRROROORRORROROOORROOORRRORROROORROROORORORRRORORRORRROROROOOOORORROROORROOROORRRRRORRRRRRORORROORORORORRROOROROOOOROORORROROROOOOOOOROOOROOROOROOOOROOOOOOOOOROROOOOOOROOROOOROOOOOOOOOOOOOOOOROOOOOORROOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOROOOOOOOOOOOORRROROOOROOOOROROOOOROOOORORRROROOOOORROROOOOOOOORROOOORRRORORROOOOOOOOORRROORRRROORORROROOOOROROROOORROOOOORRRROORRROOORORRRRORROOORROORRRRRRRRRORRRRRORORROORRRRORRORRRRORORORORRROOORRORROORORRROORRRROORRRROOOOROOROOORRORROOOROOOOROROOORRRRROORRORROOORROROROOORROOORRROORRRRROOOOORRRRRROROORROOOOROOOOORROOOOOROROOROOOOROOOOOROOROOOOOOOOOOOOOOROOOOOOROOOORORROROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOROOOOOOOROOOOOORORRROOORORROOOOOOOOOOROOOROROOOOOOORRRRRROOOORRROOOROOOOOOROROORRRROROOORRRROOROOROROORORRRRRORRRORORORORRORRROORRROORRROORROOOROOOROORRRRRRRORRRRRROOROOOOOOROORRRRRRROROROORRRRRRROOOORORRRRROORRRROORORRRROROOOOORORORORORORROORRRRORRORRRORRORORORRRROOOROORROOOORORORRRROROOROROOOOROOOORORRROORRRRROROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOORROROOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOROROOOORROOOOOOOOOROOOROOOROROORROOOOOOOOOOOORROOROROORORRRROOOROROOROROOORROOROOOOOORRORRORORROOROOOOROOORORRRRRROORORORRROOOORORORRRRORRORORRRROOOOROOORORORORORRRORRROOROOOORORRRORRORRRORRRRRORRRRRRROORRRRRROOROOOROORRRRRRRRORROORRRRRRORRRORRORRORRRRORRORORRORORORROROROROORORRROOORRORRROORORORRORRRROORORROOROROOORROOOOOOOOORRROOOOROROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOROROOOOROOOROOOOOOOOOOORROROOOOOOOROOROOORRRRROOROOROOOOROOORROOROOOOROROOROOOORRRRROORROOOOOROOOROORROOOROORRORRRORRORORRROROORORORRRRROOOOOORRRORRROOORRRRRROROORORRRORROOOOROOORROROORRRROROROORRROORORRRRRRRRRRORROOORRORRRROORRRRORORRROOROROOORROORROOROORORRORRORRRRRROROOORORROORRRRRRROROOOROOOOOORROOOOOOROROROROOOOROOOOOROOOOOORROROOOROROOOOOOOOOROROROOOROORRROORROOOOOOOOOOORROOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOORRRROOOROROORROOOOOOOOOOOOOROROOOROOOROOROOROROOOOROOOORORROORRORORROOOOROROOORROORRRRROORORRROORRROROORRRRORROORRORRORRORRRORRORRRRORORROORRORROOORRRRRRROOOOORRRRORRRRRORORORRROROOORRRORORORRORRRRORRRRRRORRRORROORORORRRORROOORORRROORORRRRRROOROOROORROORRROOORRORORORRROOOROOORROROORRRORRRRORROOROOOOORROORORRROOROOOROORORROORROROROOOROOOOOOROOOOOOOROROORRRROROOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOORORROOOOOOOROOOOOORORRORROOOOOOOOOOOOROOOROROOOOOOOOOOORROOORROORROORORROOROOOOOORROOOOOOROOOROOOORORRRRORORROROORROORORRRROORORRORORRORRRRRORROORRORRROOOORORRRRRORORRROOROROORRROORRRRORRROOORRRRRRORROOORRORRORRRRORRRRRRROROROORRROROORRRROOOORROROOOOROORORORORRRRRORRROORRORORRRROOROOOROOORORRRRROORORRRRROOOOORORRROROOOOOORORROORROOROOOOROROROOOOOOOOOOOOOOOOOROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOROOOOOOOORROOROOOOOOOORROOOOOOROOOOORRRROOOROOOROOOROOOOROOOOROOOORORROOOOOROORRRROORRRRRROORRROROOORORORRRRORROOORORORRRRORRRRORORRROOOOOOORRRRRRRRORRORRROOROORRRORRRRORORORRRRRRROORORRORRRRROROORROROOORRRRROORROORRROORROOOROOORORORORROOOOORRRROOROROOROORRORRRROOORROOOORROOOROOOOOOOROROOOOROOOROOOOOOOOROOORROOOROROROOOROOOORORROOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOORROOOOOOROOORROOOOOROOOOOOOOROOROOOROOOOOOROOOROOOROOROROOOORROOOROROROOROOOOOORROOOORRRROOORORROROOORRORORRRRRORROORRRORRRROORRORRORRROROOORRORRRRORRRROOORRRORROOORRRRRRRRRORRRRROORRORRRRORORROORRRORORRRRROROORORORRROROOOOORORORRORROORRRORRRRROOOOROOROOORRROOOORROROOORROOORRRRRROOOORROOOOORROOOOROOOROOOOROOOROROROROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROORROOOROOOROOOOOOOROOOOOOROOOOOOOOOOOOOROOROOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOORORROOOOROOOOROOOOOROOORROOOROORORRROROOORROROROOOORORROORROOROORRROOORROOOROOOOOORRRRROORORRORRORRRRRRRRRROOROOOORORROOOROORRRORRRROORRROOOOROOOOOORRROOROORROORRRRRRORORROOOROORROORRORRRRRRROORRRORRROORRRRORRRORORORORROOROORROOORRROOORORRRORROORORRRRROROOORORROORORROOOORORROROORRROORROOOOROOOOROROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOROOOORROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOROOOOORRROOOROOOOOOOROOROOOOOROOOROROOORORRROOOOOOOOOOROOOOROROOOROROROOROOORROROROORORRRORROROROOORRRROORRRRRRRORROORORRRORRORORRRORORROORRROROORRORRRROORROORRRRORRROORRRRRRRRROORROROOORRORROORRRORRRORROOROOROORRRRRORRRRRRROORRORRRRORRRROROORROOROOORORRROOOOOORRRROOOOROOORROOORRORROOORRRRROOOOOROROOOOORORORRROOOROOORROROOOOOOROOROROOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOROOROOOOOOOROOOOOOOROOOOROOOOOOOOOROOOOOOOOOORRORRROOOROOOROOOOOROROOOOOOROOOOOOOOOOOOOOOOROOORORROOORROOORROOORRRROOOOROOOOROOOOORORORORRRROOROOOORRRRRORORRRORROOOROOOOOORRRROORRRROORRORRRRRROORRRORRRROORRORROOOOROORRORRRORRRRORORRORRRRORROORRRRRORRRORRRRRORRRROORRORORRORRRRRRRORROOROORRROOROOOOOROORROROOOOOOROROOROROORROOOOORORROOROROOORRRROOROROROOOOOROOORROOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOOOOOORROOOOOOOOOOOROOROOROOOROORRRORROROOOOOOOOOROOOORROOOROROOROOROOROROOROROORRRRORROROROROOROROORORROOORRRORRORRRORRRRRRROOORRRRROOOORRORROORRRROORRROORORROORRRRROORRRORRORRRORORROORROORRROOROORRROORRRRORORORORRORORROOORORROROROORROOORRRORRROOORRRROROOORRORROORRROOORRRORORRROROOROORRORROOROORROOORROOOORROOOOOOROOOOROORORROROOORRORRRRRROOOOOORROOOOOOROOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOROOOOOOOROOOOROOOROOOOOROOOOROROOOROROOROOOOOOROOOORORRROOORORORRORRROOOOOROROOOORRRRRRROROORROOORRROOOORRROOOORRORROOOOORRRRRORROORRROOORORRRORROOORROROORRRRORORRROROORRRROORRORRRROOROROORRRRORROORRRRORROORROROROOROOORRRRORRRROOOOORRORROORROORROOROROROROOROOOOOORRRRRRROOOOOORRRRROORORORROORRORROOORORORORRROOOORROROORORROOOROOOROOOOOROOROROOOOROROOOROOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOROOROOOOOOOROROOOOORORROORROOOROOOOOROOOOROROROOORRORRORROOORRROROORRRORROOOOROOROORORRRORROOROORROOROOOORRORRROORRORRRRORRROOOOOORRRRORORORRRRRRRROOROROOORRORRRORORRORRRROOOROOROROROORORORRRRRRROORORORORRORORRRROROOOOORROOORRORRORRROORORROROROOOOOOOORROROOOOORRORROOOOOORROOROOOOROROOROOOORROOOOORORORRRORROORORROOOOOROOROOROROOOOOOOOOOOOORROROOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOROOOOOROOOORROOOOOOROROOROORRROROORROOOOOROOORROOOOROROOOROOROOOOROOOOROOOOROOORRROORRORRROOROORRROOORROOROORRROOORRORRRRROORRORORRORRRRRRRRRRORORORRROORORRRRRROOORRRORRORORRROOORROOORRRROORORROORRRORRRORORRRORRORROOOROROOORRROOOOORROROORROOROOROOROROOROOORORORRRRORROOOOROORRRRORORROOOROOOOOOORORORRRROROOOORRROORRRROROOOOOOORROOOROOOROROOROOOROOROOOOOROOOOOOOOOOOROOROROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOORRROOOOOOORRROOOROOORROOOOROROOROOOOROOOROOROOOOOORROROOOORORORRRORROOOOROROROOROOROOORORRROOROOOORRRRROORRRRORORRRRROORORROOOOOORRORRRRRORRORRROOROORROOORRRRRRRRRROOORORORRRRRRORORORORRRRRORORRRORORORORRRORRRRROROROOOOROOOORROORROROOOROORRRRORRRORRRRORROOROROOROORROORROROOORORRROORROOOROOOOOOOOOOOOOOROROOROORORRROROROOOORROOOOOOOOOOOOOOOOROOOOROOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOROROOROOOOOORROOOOOROOOOOORROOROOROOROOOOOOROOOOORROROOOOORORRROROOORRRROORORRRRRORORORORROORORORRRORRORRRORRROOOOROOOORRRORRRRRRRROORORROROORORRRROOROORRRRRRORORROROOOORORRRORORRRRORORRRRROORRRRRRORORRROORRRRROORORRROOORROROROOORRRROOROOORRRRRRORRRROOOORRORROOORRROROOORRRRROOOOOOOOOOOOOROROOORORRORROROOOROOROOORROOOORORRROROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOORRROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOORORROROOOOOOOOOOOOOOOOOOORROOOOOROOOOOROOOOROOOOROROROOOROOOROOROROOOROOOOOOOROOOOOOOORORRRRROORROOOOOOORROORORORRORROOOOORROORORROOORRRORROOOORORRRROOROORRRRRRRRRROORROORRRRROORORRRROROROOORRRRRORRROOOROROOORORORRORRRRRORORORRORROORRORRORRRRRROORROROOORRRORRRORROROROORRRORORROOROROOOOOORROOOOOROOORROROOOOOOORORORROROROOOROORRROOOROOROOROORROROOROOROROOOOROOORROORRORROOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOROOOOOOOOROOOOOOOOOOROOOOOOROOOOROOOORORROROOROOROOOOOOOOOOROOROROOROROOROOOOOOOORRRROOOORORROOOOOOROROROROORRROROOROROORROOROROROORRRRROROORRRROOORRROROOORORORRORRRORROROORRRRORRRRRRRRRRORRORRRORRRROORORRRRRRORRROORRRRRRRRRRRORORROOOOOORRORRRRRRORROORRRORRORRRROOROORORROORROROROORRORRRORRORRORORROROORRRRROOOROORRROROOOOOOOROROROOOOROOROOOOOOROOOOOOOOORROOOROOROOROOOOROOOOOROOROOOOOOOOROOOOOROOOOOROOOORROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOROOOOOOOOOOOOOOOROROOROORROOOOOOOOROOOOORROOOOOOOOROOOROOOOOOOOOROOOOOROOOROOOOOOOOOROROOROROROOORROOOOROOOOORRROOOOORORRRORRRROORORRROOOORROOOOORRRROOORRORROOORRRROOORRRORRROORRRORORRORRRRRRRORORRROOOROORRORROOROROORROORRORRORORRRORRORRRRORORRRROORORORROORRRROORROORRRRROROOROORROOORROOORROROOROOORORROROOOOOROOROOORRRORROROROOOOOORRROOROOORROOOOROOORORROROOOOOOOROOOOOOOOOROROOOROORRRORORROROOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOORROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROROROOORROOOOORROOOOORRROROOOORRORRROOOORROOROOOOOROOOOOOROOOOOROOORRRRRRRROOROOOORROOORORORORRRROOROOORROORORRRRROOOORROOOORRROOOROORRROORORRRRORRROROORRROORRRRORRORROROORRRORRORRRRRORRROOORRRORRRRORRRORORRRRRROORROOOOROOORORRORRRROROOOROOOOORROROOORROROORROOOOOOOOROROOOOROORROOORRORRROROOOOORROOOORRROOROOROOOOOOOOOOROOOORROOOOROORORROOOORROOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROROOOROOOOOOOOOOROROOROOOOOOOOOOOOOOOOOROOROOOROOROOROORROOORRROORROOOOOORRROROOOORORORRROOROROORRORROOOOOOOORROORRORORRROORRRROOOOORRRROOOORORRRORRRROORRRRORRORORORORROOORORRRRRROOROORORRRORRORRORROOROORRRRROORRROROOOROORRROORROROROORRRRRORRRRROROORORRRORRORRRRRORORRRRRROOOROORORRROROOOORORRORROROOOOOOOOOROOOOOORROROORRORROOOORROOROOOOOOROROOORROOOOROOOOOOOOROOOOROOOOROOROOOOOROROOROOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOROOOOROOOROOROROOORORROOOOORRORROOOOOOOOOOOORRORROOROORORROROROROROOORRORRRRRORRRRRRRROOOOORORROORRRORRORROOORORRROOORRRRRRRROORORRRORRROROORORRORRRRORROOORRRRROOORRRORRORRRRORORRORRRROOORRRORROOROOOOROROOROOORRORRORROOOORRORRRRORORRRORROOOOROROOROROOOROOOROOORORRORRROOROROOOOOOOOROORROOORRROOROOOOROOOOORRROOOOOROROOOOOOOOOOOOROROOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOROOOOOOOOOROOOOOOROOOOOOOOROROORROOOROOOOOROOOOOOOOROROOOOOROOROOOOOOORORROORRRROOROOOOOOOOOOORROOORROORROORORROOROOORROROOOORROOOOOOOOOROOORORORRROOOROORORRORROOORRORROOROOOOOROROOOORROORRORRORRRRRORROOORRRRRRRRORROORRRROROROORRRORRRROOORRRORRRRRRRRRRRRROORRROOORRRRRRRORRRRRRRROOORROROOOORRORORROOORRRROOOROROOOOOOROOOOOROROOOOOROORROOOOOOOOOOROOOROORRORROOOROOOROOOROOOROOOROOROOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOORROOOROOOOOOOOOOOROOOROOOROOROOROROOROOOORROOORROOOOORROOOOOOOOOORORRRORRROROOORRRORRROOROROOORORROROOOOORRROOORORRROROOROROOORRRRROOROORORRRORRRORORORRORROOROORRORRROOROOOROORORRORRRRROOOOOORRRROOORRORORROOOORORRRRROOROOOOORRRRRORORRORRRRRRRRORRORROROORORRRORRRORROOOORRRRRRROOOROOROOOOORRRRROOOOOOOOOOOORROOROOORRORROROOOOOOORRROOOOOOOROOROOOOOOOOOOROOOOOROOROOOOOOOOOROROOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROORORROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOORROOOOOOOOORROOORRRRORROROOOOOROOOOOROOOOOOORROOOOOROOOOROOOROORROOROROOROOOORRROORORRRROORROOROROORROROROROOROOOOROROROORRRRRORROORRORORRRRRRORRRRRORRRRROOORRRROOROORRROOOROOROROORRROOORRRRORROOROROOORROORRORRRORRRORORRRROOROOOOROOOROOOORRRORRRORRROOORRRRORROOORROOROOORORRRROROORRORROOROOOROOOROORORRRORROOOOOOOOOOOOROROOOOOOOOOOOOORRRROOOOOOROOOOOOOROOOROOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROROOOOROOOOOOOOOOOOOOOROROOROROOOOOROOOORROROOOROOOOOROOOOROOROOROROROOOOROORROOROROOOOOROORRRRRORRRROOORROROOOORRORRRORRRRROOOROOOOOROOOROOOORROROOORRRRORORRRROROORORRRRRRRRROORRRORRORORROOOOORRRROORROORRRRRRRROORRROOOOORORORORROORRROORORORORROOROOOOORRRRORROORRROOROOROOOOOOORRORORORROORRORROROROOOOOOOROOROOOOOOROROOORROOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROROROOORORROOOOROROROROOOOOORROOROROROOOOOORRROOROOOROOORORROORORRRRRORORRROROROOORORRROROORRRRROROOROOORRRRORRORROOORROORRORRROOOORRRRORORRRRRRROOORROORROORRORORRROORRRRORRROOROORORRRRORORORRRRRORRRRORORROORRRORROOROORORROOOROROORRRROORROOROORROOOOOOORRORORRRROORRROROOOOOOOORROOROOOOOOOOOOORORROROOOROOOROROROOOOROOOOOROOOOOOOOROORRROOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOORORROOROORROROOOROOOOOOOOOROROOROOROROOOORROOOOROOOOORROOROORORORORRORORROORORROROROROROOROOOROOOORROOOOOORORRRRRORRRRRRORORRORORRRRRRRRRRORRROROOORRORRORRROORRRRRORROOOOOOORROROROORROROORRRRORORRRRORORRORRORRORRRROORORORRRRROOOORROORRRORORORRROROOROORROOOOROROOOORROOOROOOOORRRRRROROOOORRORORROOORRROOORORROOOROOOOORROOOOOORROOOORROOROROOOOOOOOOOROOOOOOOOOROOOROOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOROROOROOOOOROOOORROROOOOORORROOROORROOOOOROOOOOOOOORORORRRRORROOOROOORRROROROROROOOOOROOORRORRRRRRRORROOOORRROOORRROOROOORRORORRORRRORRROROOROOORRORORORRRRORRRROROOORRRRRROORRRORRRROORRROROROOORROOORROOROOOOOOORRORRORRORORRORORORRORRORROOORORORRRRROOORROORROROOOROORROOOOROOOOOORROOOOORRORROOROOROOOOOOOOROOOROROOOOOOORROOOOOOROOOROROORORROOOOOROOROROOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOORROOOOOROORRRORORRROOORROOOOOORROOROOOOOROOOOOOROOOOOOOOOOROOROOROOOORROORROOOOOORRORRROOROOORRORRROROROORRORORRRORRRRRRORRRRRROROOOORORORRRROOROOORRRRRRRROOOORORORRRRRRRRORROROORRRORROOROOOORRROORROORRROOROORROROOROORRRRROROOROOROROOORROOROOROOOORRROOORORORRORROOORORROOOOROROOOROROROOOOOROOROOROOROOOORROOOROROORROOOOOOOORRORROOOOOOOOOROOOOOOOOOOOOOORROOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOORROOROROOROROOOOOOOOOOOROOOOOOROOROOOOROOOOOOOORROOOOROROROROOOOOROOOORRORROOOOROOORROOOOROOOOOOORROROOOOOROORORRROROROORORRROORROORRORRROOOORROOOROOORRORRRROROORRRORRRRRRRRRRRRROOORRRRROOOOOORORORRORRORRRRRRRRRRRRROROORORRORRRRORORRRRRRROORRRRRRRORORORORROORRRRORROORROROOORRRRRRRORRRORRROOROROOORROROOOOOROOORORRORORRRROOOOOOOOROOOOOOOORRROOROOOOROOOOOROOOORROOOOOOOOOROOROOROOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOROOOOOOOROOOOOOOOOROOOOOOOROOOROOOROOOOOOOROOOOOOOROOOOROOOOOOOOOOOOORRORRROORRORRROROOROOROOOOOORRROROORROOOROORRRRORRRRORRORORROOOOOROORRRRRRRRROOORRROOROOORRRORRRRORORRROROORRORORROORRORRRRRROOORROORORORRRRRROORRRRORORORRRORRRRORROOORRORORROROROOORRRORRORRRRRRRORORROOOORORRORORORORORORRRROOOOROOROORROOOOROOORROROORRROOORORRRRROOROOOROOOOROOOROOOOORORROOROOOOOOOOOORROOOORROOOROROOOOOOOOOROROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROORROOOOOROROOORROOROROROOOOOOOOOOOOOOOOROOROOOOROROROOORROOOOOROOOOOORORROROOOOOOOROROOROOOROOORORORROOORORRORROORROROROROOROOROOOOOOORRRORROOOOOORRRRRORRRRORORROROROORRRORORRORRRORRRRRRROORRROOOORORORRRORROOOOROROORRRRRRORRRROORRRRRRROORORROOROOORRRROOOORRORRRRORRRROORROROROORORRRORORORROORROORROOOOOROOOOOOOOOOOROROORRORRROOROROORRORORRRORROORRROOROOOROOOOOOOOROROOOOOOOROOROOOOOOOOOOOROOOOROOOOOOOOOOOROROROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOORORRROOOOORORROOOOOOROOOOROOOOOOROOROROOOOOOROOOOOOOORRRROOORRROOOOOROOOOOOOOROROOOOROOROROORRROROORORORROOOOROORORROOOROORROROOROROORRROORRROROORRRROOORORROORRRRRRRRRRORRRRROROOROOROROOROOOORRRORRRRRORRRORRRRRRORRRRRROORORROORORROORRROROROOOOOOOOOROORRRRRROORRORRRRRORRROOROORRORORORRRRORRORRRRROOOOORROOOOORRRRORROROORRRORROOOOORRORROOOROOORROOOORORROOOOOOOOOORROROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROROOOROOOOOOOORROOOROOOOOOOORRRROOOORRORRROOOOROOOOORRRORRORROOOORROROORRRRROROORORROOROOORRORORRRRRRRRRRORRRORRRRRRRRRRROROOORORRORRRRORORRORRROOROROORRRRRRRORRORRRORRRRRORORRRROOROORRRRRRRRROORORRROROOORORRROOROOOOORRORORRRRROOOORRRRORRROROORRORORROOORRROORRRROOOOOOROROROOOROORRRRRRROOOOROOOOOORRROOORROOOOOOOROOOOOROOOOORROORROOOOORROOOOORORRROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOROOROOOORROOROOOOOOOOROOOOROOOOOOROOOOOOORROOOROROOOOOOROOORROOOOOORRROOOOROOOOOOROROOROROOOOORRORROROOORORRROOROORRROOORROORRRRRRRORORROORORRRRRROROROROORRRROROOROROROORORORRRRORRRRORORORRROROOORORRRORRRROROOORRRORRRRRRROOROORROOORRRORRROORROORRORROOORRORRRRORRRROROOOROROROOOOOORROOOOOORROROOORRRROOORRRROOOOOORROROROOOORRROOOROOOOOROOROOORORORROOOOROOOOOOOOOOROOORROOOROOROORROROOOROOOOOOOOROOOROOOOOORROROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOORROOOOOROOOOOROOROOOOOOROOOORRRROOOOOOOOROORORROORRROORORRRROOOOOOOOORROOOORORRORRRRROORORRROORROOOROORRORORRORROOOORRRRORRRRROROROROOOORORRROORRRRRORRRROOORROORRRRRROROOORRRRORRRRRRROOROOOOORRRRORORRORRRRORRRORROORRRRROORORROOOORRORROORRORORRRORROORRRORORRROOOOORROOOOOROORROOROROOORRRRRORROROOOROOROOOROOROROOOOOOORRROOROOOROOOROROROOROOROOOOROORROROOOOOORORROOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROROOOROOOROOOROOOOOOOOOOOOOOOOOOOROORROOROOOOOOOORROOROOOOORORRRROOOOOOROROOORORROOROOOOOOOOOOOOOOROOOOROROORROOOOOORRRROOOOROOOROROOOORORRORORROORORORRRROOOROOROORRROROORRORORRRRROOOROOORRRROROOORRORRORORORRROROROORRORORORRRRROROORORRROOOROOOROORRRROOROROORRRRROORRRRRORRRRRRORRROORROROORRRORROOOOORRORORROOOOROOROOOOOROOORROOORRRORORRORROOOROOOOOORORROROROOOOOOROROOROORROOOOOOROORORRROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOORROOROROROOORRROOOROORRRROROOOROOOOOROROOOOORROOOORRROOROORORRROOORORRRRRRRRRRRRRRRROORRRRROORRRRROOOROORRRRRRROOOOORRROORRROOROORRRRRROORRROOOORORRORROROORRRRROORRRORORRRRRRORORROORRROROROOROROROOROORORRRRRROOOOORROOOOOORRRROOOROORROOORROORRRRORRORORRRORROROOORRRRROROOOOOROOOOOOOOOOORRROOOORRROROOOOOROORRRROOROORRRRRORROOROOOOOOOOROOOOOOOOOOROOROROROOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOROROOROOROOOROOOOROOOOOOORRRRORROROORORORORROORRORROOORROORORRROOROOOOOOOORROROORORROORORORRRRROORORRROORORORORROOOORRRRROORRRRORROROORRRRRRRRRORORROOOORRRROORRRRROOORROROOOOOORRRRRORRRROORRRRRORRRRRRRRROOOORRORRRROOOOOROORRRRROROOOORROORORORRRORROOOOOOOORRRRORRORRRORROOROOOOROROOOROOROOORRORROOOOORROROOOOOOOOROOOROOOROROOOROOOOOOOROOOROOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOROOOOOOROOOOOOOOROROOOOROOOOOOOOOOROOOOOOORROOOOOOOROROOOORORORORROOOORRRRRROOOOOROOROOOOOROOOOOORORRORRROROORROOROORROOOROOORRROROORRRROORORROOOROOORRRORORRRORRORRROOOROORRRROOORRROOOORRRORORRRORORRRRORORORRRRRRORROOORROROORORORROOORRRRORRROROORORRROOROOORORRRRROORRORRRRORROORRORROOOOROOOROROORROOORROOOROROORROROOOROORRROOOOOOOROOROOOOOROROOORROOOOOOROORRROOOOOOOROORRROOOOOOOORROOOOOOOOOOOOORORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOROOROOOORROOOROROOOOOOOORROOOOOOOOOOOOOOROOOOROOORROOOOOOROOOOOORROORORROOOORORORRRRROROOORORROOORRORRRORORRORORORROOROORROORRRRORORORRRORROOROORRRRRRROROORRRRRORRROROROORORRRRROOROORORRROROOORRRRRRORRORRORORRRRRRROORRRRRRROOOORROOROORORRORORRORRRROOROROOROOOORROOOROORRROROOOROROOROOOOORRRORRORROORROORROOOOOOOOROOOOOROORRROOOOOOROOROROOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOROOOOOOOOOROOOOOOOOOOOROROOOOROOOORROROOOOOOOROOOOOOROOROOOROOOROOORRROOORRORORRORROOOROROOOORRRRORROOOOORRROOOOOORROROOOROROOOOORRROOROORRORRROOORORORRRRRORROORORRORROROOROROOOOROOOOORROROOORORRRROROOOORORROROORROORROORRRRRROOROOORORRORRRRRRRORRRRRRROOORROORROOOORRRORORORORRROOROORRORRRROORROOOOORROROOOROOORRRROOORORRROOORROOOOOORORROROOOROOOROOOOROOOOOOROOOOROOOOOOOOOROOORROOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOORROOOOROROORORROOOOOROROOOOROOOOOOOOOOOOOOOROOOOROOROOOOOOORROOORROOOOROOOOOROORROOORRORORRORRORRROORORORROOOOROROOORROORRORRROOOOROORRRRRORRRORORRORROROOORROORRRRRRORRRRRRROORRRORROORRRROROOOORORORRORORORRORROOORROORRRRRRORRORRORRROROROOORRORORRORRRORORRRROOOOORORRRROORRORRRROROROOORRRRRORROOOOOOOOOROOROOOORRORROOROOOOROROROOROOOOOOROROOROROROOOOOOOOROOOOOOROOOROOOROOOOROOOOOOOOROOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOROOOOOOOOOROROOOOOOOROOOOROOOOOOORRROOOROORORROROOOOROROOOOROROROOROOORROROOROOOROOORORORROORORORRORROROOOOOOOOORRROOORRORORORORRRROORORRRRORROORRRORRRORRORRORRORRORRROOOROOROORRORRORRORRRRRROORORRRORORRRRORORRRRROORRRRRORROROORROROROROROORRROOORROOOOOOOOOORROROORRRROROROOORORORRRRORRRROOOORRROOOOOOROROOROOOOOROORRROOROORROOROROOOOOOORORRORROROOOOOOOROOOOOOROROOOOOOOOOROOOROROOOOOOOROOOOROOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROROOOROOORORORROOOOOOORROOORRRROROOOOOOOOROOOOOROROOROROOOOOOOOROOOOOROROORROOORORRRRROORORRORRRRRROROORRRRROORORRORORROORORRRORRRROOOORRRROOORORORORRRRRROORRROORRRRRORRRRRRRRRROOOORRROORRRORRRROOOORRRORRRORORRRROROORRRORRORRORRRORROOROOOORRROROROROOOOOORRROOOOOORORORROOOOROROOROORROOORROOOOOOROROOOOOOROOROROOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOROOOOOORROOOROOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOORROOOORORROOOOROOOROOOOROOOORRRRROOORROOROOOROOOROROOOORRORRORROOROORRRRORROORORRROOOORORROORRRROOOOORRRRRRRROORRORORRRORRROROORROORROORRROORRRRORORORRRRRRORROROOORORRRRRORRRRRRRORRROORORORRRRRORORROOORRRRORRRRRRRROOORRRORRORROOOROORRROOROORRRRRROOOROOORRRRROROOOOOOROROOROORORROOROOOOOORRORORRRORORRRORROOROOOORORROROROOOOOOROOOROROOROOOOOOROROOROOROROOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOORROOROOOOOOOOROOOOROOOROOOOORORROOOOROOOORORRROOOOORROORROOROOROOOROROORROOOORROOOORRRRRROOOOOROOOOORRRORORROROOORORORROOROORORORRRORRORRORORRRORRORRRRRRORROORRORRORRRROOROOROROORRRRORRORRORORORRORORRRRRROORROOOORRRORRRRORORROROOROOOORROROORORRRORORRORROOOORRRORRRRRORROORRROORORORRROOOOROOOOROROOORORRROOROOOROROOORORORRROOOOOROOROOOOOOROOOROOOORROOOOOOOOOOORROOOROOOOOROROOOOOROOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOORROOOROROORROROOROROOOOROOOOOOROOROORROROORROOOOOOOOOOORORROOOROOOROOOOOROOOOOOROOOOORRRRRRROOORROORORRORRRROORROORRROORORROOOORORRRORRRRRRORRRORORRRORRROOORRORORORROOOROORRRORRRRRROORRROROOROORRRRORRORRORRROOORORROOROORRRRRRRRORRORRRROOROROORRORRRORORORRROROROORRRORROOOOOOROOOROOROORROOOOOOOROORROROOOORROROOROOROORROOROOOROORORROORROOOROORRRROROROOOOROOOOOOOOOOROOOROOOOROROOOROROOOOOOOOOOOOOOROOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROROOOOOOOROOORRRROOOROOOROOOROROOORRRORROOOOOOOOOORORROROORRRRORORRORORROOORRRRORRRRRORRROROORORORROOROOORRRORORROROOOORRROROROROORRRRRRRRRRRORROORRRRRORRRRRRORRRROROROORRORORRRROORRORRORORRROROOORORRROOORROOORRRORRROOORRROOOORORORORORORRROOOOOOROOOOOOOOORROROORORRRORROOROOOOOORORRROOOROOOOORRORROOOOOOROOOROOOOROOROOOOOOOOOOOROOOORROOOOOROOOOOOOROROOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOROOOOOOORROOORROOOOOOOROROOOOOROOOOOROOORROOROOOOROOOORRRROOORROOROROROOROORORRRRRRRRRRRRRRRORORRRORRRRRRRROROOROORORORORROOORRRROOOORORRRRRRRROROOROOROROOORORORORROROOOOOROROORRRRRRORORRRRROOORRRORRORROOROOOROORROORRRRORRRRROORRRORROROROROORROOROORRROROROOORRORRROORROOORORRROROOOROOROOROOROOOORROOOOOOOOROROOOOROOOOOOOROOOOROORROOOOORROOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOROROOOOORROROOOROOOOOOOOOROOROOROOORROOROOOOROOOOOOOROOROROOROOOROOOOOORROOROOROROOOROOOROOROORROROOORORRRROOORRROOROORORORORRRRROORRORRRORROORORRROOROOROOOROOROOOORRRRRRROROORORRORRRORRRRRRRORROORRROOOOOORROOORRRORROORRRRRROOORRRROOOOORRRRORROROORROROORORROORRORROOOROOROROROORRRRROOOOROOOROORORRRROROOOOROROOROOOOOOOOROOOOROOOOOROROOOOROROOROOOOOORRORORRRROOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOROOOROOROOOOOOOOOOROROOOOORRROOOOOOOROOOORROOROROORORRROROORROOROORORROOOOORRRROOOOOORROORRROORRRORROORROOROROOOROOROORORRRORRRRRRORRRROROORORORRRRRRRORRORRRROOOOOOORORORRRORRROORRORORRRORRORRRORRORRORRRRORRRORRORRRRRRROORRRRRRRROROROROOORRROROORRRRRORORRROORRROOORROOOOROROOROOORRRROOOORRRROORORRORROORROOOOOOROROOOROOORORROOOROOROOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOROOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOROOOOOOOROOOOOOOOOOOOOROORROOOOOOOOOOROOOOROORORORORORRRRROOOOOROOOROOOOOOORORROORORROOOORRROOOOORORRRROROORRROOORROROROOORRRROROORORRRRORORRROOOOOORRROORRRRRROORROOORRRORRRRRRRRORRRRROOOOOROORRRRROORORORORROOORRRORRRRRRROOORRRRROORRORORROORORRROOOOOOROOOOROROOROORRORORRORRRORRROORRORROORORORRORRROOOROOOROOOROROOOOOOOOROOORROOOOORORRROOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOORROOOOROOORROOOROOOOOOROROROROORROOOORROORROOROOOROOOORRORORRRRRORORRORROROOROOOORROOOOOORORRRRRRRROORROOORORRRRROOORRRROOORRORORORORORRRRRORRRRRORORRRRRRRRRORROOORRRRORROOOORRORRRRRROORROORORROORRORORROORORRRRROORRRRORRROOOORRRRRRROORRORROROROOOROOROORROOOOOORORROORRORRRORROROROOOOOOROROOORORROOROOOOORROOROOOOOOOROOROOROOORORRROOOOOROOOOOROOOOOORROOROOOOOOROOOOOOOROOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOORROOOOORRROOOOROROOOOOOROOROROOORORORRORRRROOORRRRROOOORROROOORORORRORROROORRORROOOOROOORORORROOOORORORRORORORROORRORRRROORRRRRROROORRRORRRRRORORRORRRRRROOROOOORROOORORROORRORRRRORRROORRRRRRROOORORRRRROOROOOOROROORRROORROOOORRROOROOROROOROOOOROROROOOOOROROROROOROROORROOROOOOOROROROOROOOOROOOOOROOROOOOROROOORRRRROROOOOOOOOROOOOOROOOOOOOORRROORROOOOOOOOOOORROORROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOROROOROOOOOOOOOOROORROOROOOROOOORRROROOOROOROOOOOOOOORORROROOROOROORORROOOOOOOORORRRROOROORROOOROROOOORRROOROOOROOOORRROORRORORORROOORORROOORROOOROROORRRRRRRROROOROOOROOOROOROOOOOROOOORRRRORORORRRRRRORROROROOROROORRORORROROORRRRORRRRORORRORROROROOORRRRRORORRROOOOOOROROOROOORORROOROROOOOORROOROOOROOORRROOOOROORRRORORROOROROORROOORRRORRROOOROROOROORROOOOOROROOROOOROOROROROOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORORRORROOOOORROOOOOOROOOROORROOROOOOOOORRORROOOOOOOORRROROORORROOOOOROORROOORROOORRRROORRROOROROORROOOOOOROOOROOROOORROORRRORRRORORRORRROORRROORRRRROROROORORROORRRRRRRRRRRRRROOROORORORRRROORORRORORORRRRRRRRRORORRRRROORORRRROROORROOORROOOOOOORORORORRROOORRROROROOOROOOOOOROOOORROORRRORORRRRROROOROORROOORRRROROROROORROOOOOOOORRROROROORRRROOOROROOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOORROOOORROOOOOOOOOROOOOROORROORRORROOOOOOORRRORORROOOORRRROOOORRORROOOOOOOOOORROROOROOROOROOOOOOROROOORROROORROOOROORRRRRRORRRORRROORROOORRRRRORRORORRORRROOOROORORRRRRROORRRROROORORORORRRRORRRROORRROORORROOOOOOOOORORRROROOOOORROORORORRORRRORRORRRROOORROOROROOROOROOOROOOOOORORORORROOROOOROORRROOORROORROOROROROROOOOOOOORRROOOOROOOOOOOOOOROORROOROOOROOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOROOOORRROOOROROOOOROOOOROROROOOOROOROOROOOOORROOOOOROOROROOOOOOOOROOOORRORRRROOROORROORRRRRORROOORORRRORRRRROOOOORRORROOOROOORORRROOROOOORRRROROORRRRRRRRORRRRORORRRROOORRRRRRRROROROORROOOOORRRORRRRROOOROOOORRROOROROOOORORORRRORORORORROORORROOOROOROROOROOROROORORROOROORORORORRORROOOROROOORRROOOOOOROOOOOROOORROORRROOORRROOROOOOOROOORROOROOOOOORROOROOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOROOOOOOROOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOORROROORORRROROROOOORRROROOOOOROOROOROOOORORROOOROROOROROROOOOROROOROOOROOOOORROORROOORORORRRROORROOOORRROOOOROOROOROORORROOORROOOROOORORRORRROORROORORRRRROOROORRROORORRORORRRRORRORORORRRRRRROOOORROOORRROOORRROROORRROORRRRRORRRRORRROORROOORRRORORRRROORRORROOOOROROOORRRRRORRROROOORRROROORROOOOOOROOOOOROOROOORRROOOROOROROOOOORORROOOOOOOOROOOOROOOOROORROOOOROOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOROOOOOOROOOOOOOROOROOOOOOOOROOOORRROOOOOOOROOOORROROOROOOOROORRORRROOOORROOOOOOORORRORROORRRROOOOORORROOOOROROROROORROOOORRROOORORRORRRRORORRRORRRORRRRRRRRRRRROROOOORROORRRROORRROOORORRRROROOROORRRRRORRRORORORROORRRORROORRRROOORRRROORORORRROORORROOORRRORRORRORRORROORORROOROORRROOOORRROOROOORROORROOORORROOROROOOOOOROOOOROOROORORROOOOOOROOOOROOOOOORROROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOROROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOORRROOROROORROOROOOOOOROOOOOOROOROOROOOOOROOROOOORROOOORRRORRROOOOOROOORORRRRRRRRRORORROROROROROORRRORRRROOOOOOOROOORROROORRORRRRRRRROOORRRRRRORROORROROOORRRROORRRORORRROORRRRRRRRRRRROORRROORRRRORORORRRRRRORRRRRRRORRRRRORRROOOOORRORORROOORRRORRROROROOORORROROOOROORRORRRRROOOORROORRRROOORORRROOOORRROROROROOOOROORROOOORRORROROOOOORROROROOOOOOOOORRROOOOOOOOROOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOORRRROOOOROOOOOROOOOOOOORRROOOOOOOOORRROROORRROOORORRRORRRRORORORRORROROROOORRROOOOOOOROORRROORROOORROOOOORORRROOROROORRORRORRRRRORRORRRRRRRRRRRRORROROOORORRORORRRROROOROROROOOOOORRRRROOORORORRRRRRRRRORRRROOROORRROORORRRRRRORORROROOOROOROOOOORRRORRORRROOROORRORROOROORRORRORROOROOORRRORROOROOROOOOOOOROOORRORRROOOROOOOROROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOROROORROROOORROROOROROROOORORORRRROOOOOORROROORORRRROOOORORORROOORRRROORORROROOROROOORRRROORRROORORRROORRORRRORRRRRRRORRROOOOOOROOORORRORRRORRRRRRROORRRRRORRROORORORRORRORRRROORROOORRROOOORROOROORRRRRRROROOROOROORORROORRRORROORORORRRROOOROOROOROOOORORRORORRORROOORORROOOOOORRRROOOROOOROORROOORROOOOOOOROOOOOOROROOROOOOOOOOOOOOOOOOOOORROOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOROOROOORROOOOOROOOOOROOOOOOOROORROOOOROROROROOOOOOROOOOROOOOROOORRRRORRRRORROOOORRRROORORRROORROOOORORRRROROROROOOROOOOROOORRRRROORRORROOOORRRRRRRRORROORORROROORRRRRORORRRRRRRRORRORRRRRORRRRRORRRRRRROROOORRRORORRROOOORORROOORORRRRROOOOORRROOORROOOOROOOOOOOORROROOROROORRORROOOOOOOROOOOROROOROROOOROOOOROOOOOOOOORROROOROROOOOOOROOORROOOOROOOORROORROOOOOOORRROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOROOOOOOROOOOOOOOOOROOROROOOOOOOOOROOOROOOOOOROOOOOOOOOOOROROOOOOOOROOROOORRRROOOORRRRORRRRRROOOOOORROOOOORROOOROOROORORRRRORRROOORROOOOOOOOORORORRORROORORORRRORRRORORROOOOROOOROORRRRRRORRORRRRRORRRORRRORRORROORORRRORRRRORROORRORRROORRRORORRORORRRRRRRROOORORRRROORORRORRROORRROOORORROOROOOROROOROOORROROOOROOOROORRROORORROROROORROOOORROOORROROROOROOORRROROOOOROOOOOOOROOOOORORRORROOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOROOOOOOROOOOOOOOOOOOROOOOORROOOOOOOOOOOOROOOOOOORROROORRRROOORORRROROOOOOOOOOROOROROORROROOOORROOORRRORROOOOOOORROROORORORRRRRRORRRORROORORRRORRORROOOORORORORRRRROOOORRRORROOOOROROORRRRRRRROROROROORORORRORRRROORRROOOORORROORORRRRRORRRRORORROOOOROORRRRRRROROOORRRROROROROORRRRORORRROOOROOOOROOORRROOOOROORORRRORORRROROORORRRORRRROROROOOOOOOORRRROOOOOOOOOOOOOOOROROOOOROOOOOOOOOOROOOOOOORROOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOORROOOROOORROROOOOOOOROOORORROOOOOORRORRORORRRORROOOORROORRORORROOROROROOORROORROOORRORORRRRRRROOOORRRRROROOORORORORRRORRROORRORORORROOROROORRRRORORORRRROORORRORRROOROORORORORRRRRORRRRRRRRORROORORRRRORROORRRORROOOOORRROOOOORRROOROORRRROORORRRORROORORRORROROORORORORRROOOOOROROOORORORROOOOOOOOROOOROROORORROOOOORORRORROOOOROOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOORROOOOROOROOORROORRROROOOOORROOOOORROROOOROOOROROOOROOORRROOOOOROORRROROOROROROOORROOORRROOORRORROOOOORRROOOOROORROROORRRORORORROORROROOROOOROORORRORORORRORROORRORORRORRORRROORRRROORRRORRRORRROOOOROORROOOOORROOOORRRRRRRRORRRRRRROOOROOROROORORRROROROOROROOOOROOOOROOORRORORORORORORROOOOOROOROORROOORRRROOORRROROROOOOROOOOROORORORRROORRRROOOOOOROOROORORROOROOROOOOROOOOOOOOOROROOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOROOOOOOOOOOOOOOOOOORRROOROOROOOOORORORROOOOOORROOOORORORROOORRORROOOOOROOORORROORORROORORORROROORRRROOOROOOOROORRORRRRROROROROORORRRRROORORRORRRROORRRRRRRRROOOORRRRRRROROOORRRRRORRROORROOOORORORORRORRORROROROOORORORROORORRORRRORRORRRRRORRROROOORORROORROOROROROORROOOOROOROOOOROORRRRRORROORRORORROOOOOOOOOOOOROORORROOOORROROOROROOOROOOORORRROOOROOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROORROOOOOOOOROOROROROOORROOROORROOROOOOROOOORROOROORORROOROOOOOOROROOROROOOOORROOOOROOOOORRRRORRROORORRROORROOOORRRRROORRORRRORORORORRROORRRRRRRRRROOROOORRRORROORORRORRRRRRROOOORRORROOROROOROORRRORROORRRRROROOORROROOOROORROOOORROROOOOROOORROORRORROOORORROOORRRRORROOOROROOOROOORORRORRRRRORRROROOOOOROORROOROORROOROOROROOOROOROOOOOORROOOOORROROOOOOROOROOOOROOOROOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOOOROROROOOROROROOOOOORROOOOOOROOOOROOROORORRORRORROORRORORORRORRORRROOOOORORRRRRRRROROOOROORORRRROORRROOROROORRRRRORRRRRRROORRRROORRRRRORRROROOORRRRORROROORRRORORRROROORROOOOORROORROOROOOORORRRORRROROROOORROOROORRORROROORROOOOOOOROOOROROOROROOOOROOOORROROOROROOROORRROORORROOROROOOROORORROORROOOOROORROOORRORORROROROOOORROROOROOROOOOROOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOROOORROOOOROOOROOOOOROOOROOOOOOORRROROOORROROOOOOROORROOORRORROOROOORORRRRROOROORRROORRRROROOORRRRORRRRRROOROOORRRORROORROORRORORRRRRORRRRRROOROORRRRORRORORRRRRRRRRORRRRRORRRORRORROORROOOROORRRORORRRRRORRRROORORORRRRRRRROORORRORORRORORROOOOORORROOORRROOROROOOOOOOOOORRORROROOOOOOOOOOOOORORRORRROOOROOOOOOOROOOOOOOROOOORROOROOOOORRRORORROOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOORROOROROOROOOOROOOOORROOOOROOOOOOOOOOOOROOOOROOROROORROOOOOOORRROOROOOORRROROORRORRORORROOOOOOROORRORORROORRROROORRRRRROROROROORROORROROOOOORRORRRROROROROORRROROOORRROROORROOORORRRORRROOORRRRORROORORRRRORRORROROORORRORROROOORRRRRROOORRORRRRROROORRRROROROOORRROOOORRRRRRRRORROROROOOOOROROROOOROROOOOROROOOOOOOOROORROOOORROORROOOOOROOOOOOORRROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOROOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOORROOOOOOOOOOOROOOOOROOOOOOOOOOOOORRROROOOOOROOOOROOOOORRROOOROOOORORRORORROOOORRROOOOORROROOORORROORRORRRRROORORORRORROORROORRROOORROROOROORORRROROOOROOOROROROROROORRRRORROOORORRORORRRRORROROORRRRORROROROOORRORRRRRORRRRRRRRROOORORROROORRRRRRROOOOOOORRORRROOORRRORRRROOROROROOOOROROOROOROOOOOROROORROOOORROOOOROOOROOOOOOOOOROOOOOROOOROROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOROROOOOOOOOOOOOOOOOOOOROOOROOOROORRROOOOOOOOOOOOORRORROORORORRORORROORRROORROOOOROORROORROROROOOROROORRRRROORORRRRRROROROOOROROORRORROOOROORRRRORORRROOOORRRROROORRRRRRROOOOORORROORORRRRRRRRROOOORORRROROORRRRRRRRRROOOOOOOROOROROOORROORORRRRORORRROORORRRRRROROOOROOORORORROOROOORRRRORRRRROORRORRRRORRROOOROROOOROOROORROROOORROORROROOOROOOOROOOOOOORORRRROOROOOOOOOOOOOORORROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOROOOOROOORROOOOOOOOOOROOOROOOROOOOOOORRROROOORROOOROOOOOOORROROOOOROOOOOOORROROOROORROOOROROOOOORORRRRROOROROROOOOORRRRRRRROROROROOORORRRRROORROOROROORORRRRROORORRORRORORORORRROOOOORRRORRORRROOROROORORRROORRORRROROORRRORORRRROORROOORORORORROORRORRRRRRRRRORRROORRRRRORRROOROOROOOOROORORRRROROROROOOOOOORROOOROROOOOROOORORROROOOOOOROROOOROOOOOOOROOOROOOOOOOOROROOOORROOROORROOOROROOROOOROOOROOOROOOOOOROOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOROOOOOOOOROOOORROROOORROOOROROOROORROROORRROOROROOROORROROORRROORORROROORRORROROOOOOORRROOOORRORRRRRRROOROOOORRROROOROORORRROOROOOORROOOORRROOORRRRORRRRRRRROOROOROOOORRROOOORROORORRORRORRORRRORRRRRROROORORRORORORRORRROORRROOORRRRRORROOORORRORORORRRRROOOORRROOORRORRORROROOROOROOORRROOOROROOOOOOROORRROOOOORRRROOROOOOROOOROOOOOOOOORROOOOOOOOOOOOOOOOOOROROROOOORROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOORROROOROORORROOOOOOROOOOROROOROOROOOOOOROOROOOROORRRORORROOOORROROOOROOOOROOROOOOROORROOOOROOROROOOOOOORRRRRORORRROOOORORRRROOROOROORRRRORRROROROOORRRRROROORRRROOOORORORRRRORRROROORORRRRORORRRRRRRORRROOROORRRORRRROORROOOORRROROOOROOORRROOOORRRRROORRRRRORROORRORROORRRRORORRORROOORROOROROORRRROORORORRORRORRROROROOOROORORRROORRORORRRRRRROOOOOROOOOOOOOROOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOORRROOOORORORRROOOOOOORORROOORRRRRRROROOOOOROORROROROOROOORROROOOORRRORRRORRORRRROOROOORRORRRROORRRRORRORRORORORRRROROROOROOOORROOORRRRORRRRROOORRORRRROROORRROROORROROROOORRRROOOROORRRORRRRORROOORRRORRRRROROORORROOOOROORORORRRORRROROOOOORROROOOROOOROOOOORORORRROOOOROROOOOOOOOOROOOROOROOOOOOOOOOROOOOOOORROOOOOOROOOOORROOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROROROROOOROOORORRROROOOORORROOOOOROOROOOOOOOOOOOOOROOOOOOOOROROROROOOOORRRRROORRORRROOOOROORRRROORRROORORRRRROROOORORRRORRORRRRRRRRORROOOOOORRORRRRRRORROOOROORORROOORRRRRROORRORRRORRRORRRRORORORROORRROOOORRRRRORORRRRRORRRRROOOOOROOROOOOORRRRRROOORRRORORRORORROROOOOOOORORORRRROOROROROOOOOORROOROOOORROROOOOROOOOOOOOOOOORORROORROOOORORRROROOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOORROOOOOOROOOOOOOOOROOOROOROOOOOOOROOOOOOOOOOOOOOOORRROROOOORORRRROOOOOORROORRROROORRRRROOROROROOROOORRROORORRRRRORROOORORRRROORORRRORORROORROORRRORORORRRORRRROROROOOORRORRORORROORROROROORRRORROROORRROROOORORRROORRRRORRRORROROOOOORORORRRROOOORROORRROOORRORORRORRORRROORRRROORORORROOROROOOROOOROOOOOROORROOORRRROOOOOOOOOROOOORORORROOOOOOOOOROOROOOROOOOOOOOOOROOOOORRROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOROOOOOROROOOROOOOOOORRORORRROROOOOOOOOOOOOOOROOOOOOOROOOOROOROOOORRRORRRROORORORRORRRROOROROOORROOOROROOORORROOORROORORROOOROROROORROORRORORRORROORORORRRRRRRRORRORORORRRROROOOOOOORRRROROROROORRRRORRRRROORORRRRORROORRRRRORORORRRORORORORRRRRRROOORRROORORROOOORORRROORRORRROOOROROORRRORRRRRROOROORROOOROOOROOOOOOROOOOORROOOOOOOOOOORORRROOOOOROOOOOOROOROOOOOOOOOOOOOOOOOORROOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\n"
  },
  {
    "path": "challenge1/tests/mon6b.out",
    "content": "4806\n"
  },
  {
    "path": "challenge1/tests/mon7a.in",
    "content": "332532 4\nOOOOOROOOOOOOOOOOOOOORROOOOROOOOOROROOOORRORORROOORRORROOOOOOORORROOOOOORRRRROOOROOROOOOOOOOOROORORRROORORROOORORROOOORORRRORRRRORROORRRRROOOORROORORROORORRROOOOOROOOOOORROROORROOOROORRROOORROOOROORRORORORROORORRORORRROOOOORROOROOOROROOOORORROROOROORORORORRRORRRRROROOOROOOOOROROORRRROOOOROOOROOOROOROROOOOOORROOOOOOORRROOOROORRRORORRRRROOROOORRRRORORROORROOOOROOOOOOOOOOOOROOOROOOOOOOORROOOOROROOOORRROOOOOOOOORORRRROOOOORROROOOOOOOOORROROOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOORRROOOOOOOOOOOROOOOORROOOOOOOROOOOOOOROROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROROOOOOOOOROROOROROROOOOROOOOOROOROROOOOOOOOORROROOORORRROOOOOROOOOOOROROOROORRROOOOROOROOROOOROROROROOORORRORROOOROOORRORROOOOOOOROOORRORRORRRROROROOORROROROOOROOOOOORROORRORRRRORRRRROOORROORROROOOROOROROORRRORRROORRORROOORROOOORRORRORRRRRORRROORORRORRRROORORROOOOOOROORROOOROOOORORROOOOOOORROORRRROOORRRORORROROOOROOOOOOOROROOROROOROOORORRORORORRRRORROOOORORROOOROORRORROORROOOOOOROROOOOROOROOOOOOOORROORORORROOROOOROOOOROOOOROOOOOORRRROOOOOOOROORROOOROOOOROOOROOOOOOOOOOOOOOROOROOOOOOROOOROOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROORRROROOOOOOOOORROOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOORROOROOOOOOROOOOOOOOOORROOOOOOOROOOROOOOOOOOROOOOOOOOROROOOOOOOOOOORROROOOOOOROOOROOROOOOOOOOROOOOROOROORROOROOORROROOOOOORROOROOORROOOOROROOOROROOOOROOOOOOOOOOROROOOROOORORRRRROROOOOOOOOOORROORROROROROOOOOOROOORROORRROOOORRROOORRROOOROOOOOOORRRRORRROORRROOROROROROOOROOROROOROROROROOORRRRROORROROOOOOOROOORROORRRRRORRRROOOOOOROOOOROORORROORORROOOOOOOROOROOOOROOROOOOOOROOROROROOROOROROROROOOORRROOORRRRORRROROOOOOOROOOOOORROOOOORROROROOROOOROORROOORRROOOOOOOROOOROOOOOOOOOROOROROORROOOOROORROOROOOOOOOOOOORORROOOOOOROOOOROOOOOOOOROOROOOROOOOOOROOROOOROOOOOOOOROOOROOOROOOORROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOORROOOOOROOOOOORORROROROOOOOROOOOOOROOOOOOROOOOOROOROOOOOOOORROOROOOOOOORORROOOOOOROOOOOOROOROROOORROOOOORROOOOOROOOOOOROROOROROOOOORROROOOROROOOOOOORORRRORRROROROOOROOOORROROOROROOOOOROROOOOOROOOROOOOORORRRRORORROROROROROOROROOOOOORORORROOOORORRRRORORRRROOROROROROOOROOOOOOOOROROROORRROORROROOROROOROROORRORRORROORORROOOOOROOOROOORRRRROROOOOOROOROROOORRORORROROROOOOOORRROOOROORROOOOOOOOOOROORROOORRROOORRRRORROOORROOOROOOOORRORRORORROORORRROOOOORORROOROOOOROOOOOROOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOROOROOOROOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOROOOROROOOROOROOOOROOOOOOORRRROOOOOOROROOORROOORROOOOOROOORROOORRORRRROOOOROOOROOOROROOROOROOOOOOOOROOOOOROOOOOORORROOROOOOOOORORROOOOOOOOOOROOOOOOOORRROROOOROORROORROOOOORRROOROOOROOOOORROOROROORORROOOOORORRRORROOROOOORROOROOOROOOROOROROOROOOROOORROOOROOOORROOORORROROOOOOOOORROOOORRORROOROOOORROROOORROOORORROOOROOORRRROORRRRRRORROROOROOORRRORROORROOROOOOOOROORORRRROOOROROOROOOORROOOOOOROOOOROORROOOOROOOROOOOOOOOOORROOOOOOOOOOOROOOROOROOORROOOOOOROOOOOROOOOOROROOOOOOOOOOOOOOOROOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOROOOOOOOOOROOOOOOOOOORORROOROOOOOORORRROOOOOROOOROOOOOOOOROOROOROOOOOOOOOOOORORRROOOOOOORROROOORROOOOOOORORROROOOOOROROOROROOOROOOROOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOORRROOOROOORROOOORROOOOOOOORROOOROROOOROOOROOOOROOOORROOOOOROROOOOOROORRORRRROORRROORRRORROOOOOOOOOROROROOROOOOORRRROOROORORRROOROROOOORORRROOORRROOOORORORROOROOROORRORRORRORRORORRRROROOOOOOOOROORROOROOROORROORRRROOROOOOORRORRRROOROROROOOOOOOOOOOROOOROORRRORROOOROROOOOOROOOOROOOOROOORRROROOOOROOOOOOOOOOOROROOOOOOOOOORORROROOROOOOOOROROORRROOOROROOOOOOOOOROOOOROOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOROOOOOOOOOROOOROOOOOOOOORRORRRORROOOOROOROOOOROOOROOOOOOOOOOOOOOROROOOOROOOOOOOROOOOROOOOOOOOROOOROOROOOOOOOOOOOOROOOORRROOROOOOOOOOROOOOOROOORROROOOOROOOOOROOOOOORROOOOOORROROOOOOOORROOOOOOORORORRROOROOOOROROROOROOOOOORROORORROOROOORORROORROOROORROOORORRRROROOOOOORRROROOOORRRRRRRORORORRRRRROORORROOORORORRRRRRORORRRRORROOROOOOOROOOOOROOROOOOOOORROOORROROOOOORRROOOOROOROOOOOROOROROOROOOORRROROROOROOOORRROROOOORORROOOOROOOOOOORRROOOOOOROORRRRROROOOOOORROORROROOORRROOOOOOOORORROOOOOOROORORRROOROOOOOOOOOOOOOOROOOORROOROOOORROOOOOOOOOOOOOOROROOROOORRROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROROOOOOOOOOOOOOOOROOOROOOOROOOOOOOOROOOOOORORROOOOOOOOOOOOROROROOOOOOOROOOOOOROORRRRROOOOOROORRROOOOOOORROOORROOROOOOROROOOORROOOROORROOROOOOROOROROOORROROOROOROROOORROOOROOROOOOORORRORRROOOORROROOORORRROOOOOROOORRROOORRRORRROORROORROROROOROOOOORRROOROROROROOROROROOROOOORRORROOOROORROROORRRRRORRRROOROORORRROOOOOOORRRROOOOORROOOOROOROORRROOOROOOORRROOOROOOORORRROOROORORROROOOOOOOOOROOORRROOORROROROROOOOOOOROOOOOOROORROROROOOORRROOORRROOROROOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOROOROROOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROROOOOROOOOOROOROOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOORORROROOROOROOOOROOOOOROOOOOROORROOOORORORROOOOOOOOOOOORROORRROOOOOOOOOROOROOOROROOOROORROOOOOOOOORRRROOOOROROORRRORROORROOOOORORORROOROOOOROORRRRRRROORORRROROOORRROROOOOOOOROORROROROOOOOROOROORRROROROOOOOOROOORORORORORRORRORROORORRRROOOOOOOOROOROOOOROOROROOROROORORROOORRORRROORRROOROOORROOOROOOOORROROROOOROORRRRRROORRRROROORRRROOORROROOOOOOOROOOOROORORORROOOOOROOOOORRRROOROOOOROROOOROORRROOORRROOOROOOOOOOOOOOOOROOOOROOORROROOOOOOROOOOROROOOOOOOORORROROOOOROOOOOORROROOOORRROOOOOOOROROROORROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOROOROOORROOOOORORORROOOOROOROOOOROOOOOOOORROOROOOROOORORRRROOROOROOOOROOOORORROORRORORROROOOOOOOROROORRORORROORORROOOOROROOOOOOOOOROOOORORRRRROROROOOOOROOOROOORRRORORRROROOOOOOOOOOORORROROORORROROOORROOORRRROORORRROOOORORROOORRROOORRROOOOOOORORRROORRRRORORROOOOROOROOOORRORRORROOORROORROORRRORROOORRRROOROOORRROROROROROOOOOOOOROOOOOROOORRRROOOOOROOOROROROOOOOROROOOOOORORROOOORRROROOROOOOOROOOOORORRROORRROOOOOOROOROOOROORRRROOOOOROOOOOROORROROORROOROOROOROORROOOOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOROOOOOROROOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOORROORROOOORORROOORROOOROOROROROOOROOOOROOOOOOOROOROOOOOOROOORROOOOOOROROORRRORORORORORORRRORROOOOOOOOOROROOOOROROOROOOOOOROROOORRRRORROOOORORROOOOORRROROOROROOOROROROOROROORRROOOORRORORRRORRRRRROOROOOOOOOOOOROOROROOOOORORRROORROOOOORROORORORORORORROOOROROOOOOOORROOROOORROOOOOOOOOROOORROOOOORROOOROOOOOOROORROROOROOOORORRROORRRROROORROORRROROROOOORORORROORRORROROOROOROOOOOORROOROROOOOOOOROOROOOROOOOORROROOOOOOOOOROROOOOOOOOROOOROORRROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOROORROOOOOROOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOORROOOOOOOOORROOROOROOOOROOOOOOOOROOOOROROORRRRROOOOROOROOOOOOOROROOOOOROOROOROOORRROOROOOOOOOOROROOROOOOOOROOOOOOOOORORROOOOOORROOORROOOROOOROOOOOROOOORRRORORROOOOOROORRRRROORORORRRORRORRORRROOROOORROORROORRRORROOOOOOOORRORROORORRROORRROROORORRRRORROORROOROOOOOROROOORRRORROOOOOOORRROROOOROORORORRROROROORRRROORORRRORRRROROOOROOOOORORORORRRRROROROORROOROOOOOROROOOROROOROOOORRRRRRRORROOOOROOROORROROOOOOROOOOOOOROROOORORRORROOROORORORRRROOOOOORROOROOROOOROOOOOOROROOOOROOROOROOROOOOOOROOOOOORRRROOORROOROOOOOOOOROOOOOROOOOOOROOOROOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOORROOOROORROOOROROOROOROOROROOOROOOOOOOOOOOOOOROOOOOROROOOOOOROOOOOROOOOOOOROROROOOOOOROROOOOOORROOOROROORROROOOORRRORRORROOORRRROORRRRROROOORRRROROOOOOOROOROORROOOOOOROROROROOOOOORRROROOOOROOOROOOROROOOROOOOORROOOOOOORRROROROROOOOOOROOROROOOORRROORRORRROROOOOOOROROORRRROOOROOROOOOOOOOOROORORRORROORROROOOOOOROROOOORRROORRRRRORRRORROOORORRRORRRROOOORROORROOOOOROOROOOOROOROOOOOOOOROOOROOOOOOOROOROROOOOOOORORRROOORROOOOOROROOOOOROOOOOOOOOOOOROORROROOOOOOOROOOOOOOOOOOROOOOOOROOOOOROOOROOOOOOOOOOOROOORRROOROOOOOOOROROOOOOOOROOOOOOROOROOOOOROOOOOOOOOOOROROROOORROOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOROROOOOOROOOOOOOOOOOOOROROOOOOOOOROOOOOOOROOOOOROOOOOOOOOROOOOOOOORROOOOROOOOOOOORRROOOOOOOOOROOOOOROOOOOOOORORROOROOOOOOOOROOOOOOOOOOOOROORORROOOORROOOOOOOOORROOORROOROOOOOORORRRROOOOOORORRRORRRROOOOOORROOOOOROROOORROROOROOROROOOOOROOOROROOOOOOOROORROOOOOROOORROOORRRRORRRROOOROROORROOROOOOOROORROROROOOOOOOORROROOOOOOROOORORRRROORROOOROOROROOOORRRORRORROOOOOROROORROOORRRRROOROORRROROOOROOOROROORORROOROOROROORRORORORORRROORROOOOOOORORRROROORROOOOOROORRORRROOOOOOOOOOOROROOOOORRRROROOOOROOROOORORROORRORROOOOOOOOOOOOOOOOOOOOOOOOORRRORRROOOORROOOOOOROOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOORROROOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOROOOOOOROOOOOROROOOOOOOOROROROOOROOOOROOOOOOOOOOOOOOROOOOROOOROOOOORORORORRORROOOOOOOROOROROORORORRORROOROOROOROOROOOOROROOOORORRROORRROOOOOOOROORORROROROROOROROROOROROOOOORRRRROOOROORRRORORRRROOOOROORRORRROOORROORRRRROOOOOOOORORORRRROORRRORRORROROOORRORRRORRORRORROOROOROROOORRRROROOOOORORRRRRORORORROORROOOROORRROOOOROOROOORROOOOOOOOOOOOOOROOORROOORROROOOROROOOOROOOROOOROROOOORROOOOOOOOROOORROOOOOOOOOOOOROROOOOOOROOOROROOROROROOOOORRROORRROOOOROOOOOOOORRROROOOOROOOOOOOOOOOOOORRROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOROROOOOROOOOOOOOOROOOROOOOOOROOROOOROOROOOROOOROOOROOOOOOOOOOROOOOOORRROOOROOOORRRROOORROOOOOOROROOOOOROROOROOROOROOORRROOOOOOOOOOOOORROOOOROORRROROORROROROOORROROOORORORROROOOROOROOOOOOROOORROORROOROROROROORROOOROOOOOORROORRORROOOORORROROOOROOOOOROOORRRROOOOOROOROORRRRORRRRRROROROOOORROORROOOORORRRRRRRRRRROORRRRORRRRORORRRORRRORROOOOORROOOOROOROOOOROORROOOOROROOOOROOOOOOOROOROROOROROROOOOOOORORORRROOOROOROORROOOOOOOOOROOOOOORROROOOROOROROOOORROOOOOOROOOOOORRROOROOOOROOOOROOOOOOOOOROOOOORROOOROOOOOORROOOOOOOOROOOOROOOOROOOORROOORROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORORROOOOOROOOOROOOOOOOOOOOOOOOROOROROOOOOOROOROOOOOOOOOOOOROORROOOOOOOOOOOOOOROOOROROOOROOOOOOOOROOOOOOOOOROROOOOROOORROOOROOOOOOOOOOROROOROROOOOOORROOOOORROOROROROOOOORORROOROOOROOOOROORROROOOOORROOROOOROORRRROOOROROORORORORROROROOOOORRORROROOROOOORROOOORORROOOOOOROORRRROROOOOOROROOOROOOORROOORROORROOOOORORRORRROROOORORRRRRRROOOROROOOORRROROOOOROOOROOOOROOROOROOOROOROOOOROROOOORORROORRORRRROOOOOORROROOOOOOORRORRRROOOOOOOROOROOOOROROROOOOROOROROOORROROROOOOOOOOROOOOORRORRORRROOROOROOROROOORORROOOOOOROROORROOOOOORROORROROROOOORROROOROOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOORORROOOOOOROOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOROOOOOOOOROOROORORORROOOORROORROOOROOOOROORROOOOOROOOOOOOOROORROOOOOOORROROOROOOOOOORROOOOROROROOROROOOOROOROOROOOOOROOROROOOROOROOOOROOOROOOOOOOOROROOOROOOORROOOOROROOOOROOROOORORROORROOROOROOORORRROOOROOROORROOOOORROROORORROOOORROOOOOOOOROOOOROORROROROOROROOORRROOROOOOOOOROROOOOROOROOOROROORORORROROROORRRRROOROORRORRRROOOOROORRRRROOORROROOORROROOOORROOROOOOOOROORROROOOOOROOOROOROROOROOROOROROOOOOROOOROROOOOROOOROOOORRROOOROOOOOOOOOOOROOOROOOOOOROOOOOOOROOROOOROROOOOOROOOORROOOOOROOOOOOOOOOOOOROOOOROROOOROOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOROROOOOOOOOOOOOOOOROOOROOOROOROOOOOOOOOOOOROOOOOOOOOOOORROOOOOROOORROOOOOROOOOORROOOOOOOOORROROOROOOOOOROOOOOROROOORORORROOOOOOOROOOOORROOOOOOOOOROORROOOROOOOROOOOOOOROOORRRRORROOOOOROROROOOOORROOROROOOOOOOROOOOOOOROROOOOROROROOORROOROOROROOORROROOOOOOORORRORROROOOROOORRRROROOROROROOROORROOORRROORORORROOOOROROORORRRRORORORORRRROROOOORRRRRROORRROOROOROOOROORRROROOORROOROORROORROOORROOORROROOOORROOOROOOORRRROOOORROOOROOOOOOOROOOOORORROORORROOROOOROOORROOROOOOOOOOOOOOOOORRRROORROOOOROOOROROOOROOOROOOROOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOORROOOOOOOOOOOOOROOOOROROOOOROOOOOOOOOOOOORORROOOOOOOOOOROOOROOOORROOOOOOOOOOOOOORROOROOOOROROOOOOOROOOOOOOROROORORROORROOOOOOOOOOOOOOORROOOOOOOORRRORROOOROOORROOORORROOOOOOROOOOOROOOROOOOROOOORORROOOORRRROOOROORORROOOORORORRRROROROOOORROOOOOOROOOOOOOOOROROOOOORROOOOROOORRROORROORORORRROORRORRROROOOROOROOROOROOOROORROOROOROOORROOOROOOORORRORROOOOROORRRROORRRRRORROROOOORORROORORORROOOOROORORRRROOOOOOROOOOOOOOOOOORRRORROORRRROOOOROORORROROOOOOOOOROOOROOROOROORROOOOROOROOOROORRROROOORRORROOOOOOROOOOOROOROORROOOOORROOROOROROORROOOOROOOOOOOOROOOOOOOOOROOOROOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOROOOOOOOOOOOOOOOOOOOOOOROOORORROORROOOOOOOROOOOOOOOOORORORROOROROOOOOOOOOOROROOOOROOOOOOOOOOOOORROOOROOOOOORRRORROOOOOROROOOOROOOOOORROOOOROOOOORROROOOOROOORORROOOOOOORROROROORRRROOOOOOORORROOOORROOROOOOORRRROORRRRORORRORROROOROROROROORRROOOOOOOROORROOROOROROOOOOOOOOOOORRROORROOOORRRRRROROOOOROROOORRRROOROOROOOOORROROORROOORRRORRORORROORROORRRRROOROOOROROORROOOORRORROROOROOOROORROOOOROORRRORORROOROOORROOOORORRRRORROOOOOOOOOROOOROOROROORORORROOOOOROOOOOOOOORROOOOOOOOOORROOOOOOOORROROOOOOROOORORORROOROOOOOOOROOROOOOOROOOOOOOOOOOROOOROOOOROROOOOOOOOROORROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOROOOOOOROOOORORROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROROOOOROOOOROOOOOROOOOOOROROOORROROOOOOOROOOOOOOOOROOORORROOORRORORROOOORROOOORROROOOOROOOOORRORROROROORROROOOOOOROOOROORORROORORRORORORROOORRROOROORORRRORORROROROOOOOOORROROOOOROOOROOOROOROOOORROROOOORRROOROROOOROOOORROOROORRRRRRORORRORORRRORRROOOOROOROORRROROORROOOORRRROROROOROOOOROROOOROOORROORRORRORRORORRORRRROROOOOROOROOOOROROORORROOOOOOOOOOOOOOROOOOOOOROOOROOROOOOOORROOOROOOOOOROOOOOORROOOOORORORORORROOOOOOROOOOOROOOOOOROOOOORROOROOOOOROOOORROROROROOOOOOOOOOOOOOOOROOOROOROOOOROOOOOOOOROOOOOROROROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROROOOROOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOORROOOOOROOOOOROOOOROOOOOOOOOOOOOOOORROOOOOOROOOOROOROOOROOOOORROOORROOROOOOROOROROOOROOROOOOOOOOOOORROOOOROOOOOOORROOROOOORRROOOOOOROOOOORROROOOOOOOROROORRRORROORORORORRORRROOROROOOOOOROROORROROOOOOORROROOROOOORROOROORORROOROORORRORRRROOORROOOROOOROROORORRRRORROOOROROOOROROOOROROROOOOOOOROOOROOORROOOORRORRRORORROOOOROOORROORROOORROOOOOOOOOOOORROORROOOOOROOROOROOORROOORRROROROROROROOORORROOOOOROOOOOOROOOOOOROOOOOOOOOROORRROOOOROORORORROOOROOOOOOOOOOOOOOORROOOOOOOOOOROOROOOOROROOOOOOORROOOOROOOOORROROOOOOOOOORROORORRROOOOROORROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOROOOOOROOOOOOOOOROOOOOROOOOOOOROOOOOOOOOROROOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOROOORROOOOROOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOROROOOOOOROOOOOOOORROROOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORRORROOOOOOOORRROOOORORROOOOOROOROROOOOOOOOROORORROOOOOOOORROORROROORRROOOOORROORRROOORROOOOROOOOROORRORORRRRROROORRRROOORROORORROROOOOORRORRROOROORRORROORROOOOROOOOOROOORORORROROROORORRROOOOROOORORROORROROOOOROORRROORRRRROOORRORRRROROOOORORRORRROOOROORROROOOOROOOROOOORROORROOOROORORROOORROOOOOROOORROOORRROOROORROOOROOOOOOOOOOOROOROROOROOOOROOROOOOOOOOROOOOOOROOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOORROROOOROOOOOOROOOOROOORROOOOOOOROOOOROOOOOOOOROROOOOOOOOOOOOOOOORROROOOOOOOOOOOROORROROROOOOOORROORORROROOOOOOOROOROOORROOROOOOOROOOOROOOOOOROOOROOOOOOROROOOROOOOROOOOOOORORORROOOROOOORROOOOOROOOROOORRROROOOROOORRRROORROOORROOORROOOORORRROOOROROOOROOROOROROORROOOORROROOOROOROOOOOOOROORROOORORORRRROOOROORRROROROROOROOORRROOOROOROOOOOOOOOORROOROOOROOOOOROROOOOOOOOOOOOROOROOOOORRROOROOORRRROOOROOROROOOOOOORROOOROOROOROOROOORORRRROOROROROROOOROOROORROROOOOOOROROOROOROOROROOROOOOROROOOOORROOOOROOOOOOOOORROOROOROOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOROROOOOOOOOOROOOOOOOOOOORORROOOOOOOOOOOOROORROOROOOOOOOOOOOOOOROOOOROROOOOOOOOOOOROROOOOROOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOROOOROROOOROROOORROOOOROOOOOOROOOROOROOOROORRROOORORORROOOOOORROOOROOOOOOROOROROOROORRRROROORROOOROROOORRROOORRORROOROOOOORRORROROOOOORORRRORROOOOROROOROROORRRRORRORORROOROOOROORRRROOROOOROOROROROROOORORRROOROOORORROOOOOOROOOOOROROOOOOOORRROORORROROROOOOOOOOOOORROROOOOOROOROOOOOORRRROOORORROOORROROOORROROROOOORROROOORORROOOOOROOOOOORROOROROORROOORRORRRORROORORORRRROORROOOOROOOROROROOOOROOOOOOOOOORROOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOROROOOROOOOROOOOOROOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOORORROOOOOOOOROROORRROOOROOOROOOOROOOORROOORORROOOOOOROROOOOORROOOOOOOOOOROROROOOOOOOROOOOOOROROROOOOROOOOOOOOOROOOROOOOOOROOOROROOOOORRRRROOOORRROORROOOROOOOOORORORRRRRRRRRORORORROOOOORRROOROOROOOOOORROROOOOOORRORROORRORROORROOROORORRRROROOOROORRROROOOROORROOOROOROOOOROOOORRROOOORORROROOOROOOOROROOORROOOOORROOORROOOROROOORROROOOROROOOOOOOOOROROOOROOOOOOOORRROORROOOOOORROROOOOORRROOOOROOOOOOOOOOORRRRRORRRROOOOOROOOOORROOOROOOOOOOOOOOOOROROOOOOOROOOOOROOOROOOROOOOOOOOROROOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOROOOORROORROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOROROOOOOOOORORORROROROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOROOOROROOOOOOOOROOOOOOROOROOOOROOOOOROOROOOOOROROOOOROROROOOORRROOORRRROROROOROOOORORORORROORROROOROORORROOROOORRROROROOROOOOOOOROORROORORRROROOOORROORROOORRROOORORRRROOORRROROOROOROOOROROROROROOORROOROOROOOORRORRRORROORORRRRROROROOOOOOORROOROOROROORRRRORRORORROORRROOORORROOOROROORORORROROOOROOROOROOOOOOOROORROOOOOROOROOOOOOOOORROROROOROOOROROOOROROROROOOOROOOOOROROOROORRORROOOROOOOROROOORORORRROOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOROOOOOOROROOOOROOOOOORROOOOOOOOOOOOOROOOOOOOOOORRROOOORROOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOROOOOOOOOROOOORROOOOOOOROOOOOOOOOOOOOROORROOROOOROROOOOROOOOOOROOOROOOROOOOOOOOOOORROOROOOOOOOOOROOOROOOOOOOOROOOOOOOOOOROOROOOOOOROOOOOROOOOOOROOOOOOOOOOOOOORROOOOOROROROOORROROOOORORROOOOROOOOOOOOOROOOROROROOOOOOOOROOROORRROOOROOROOROOROOOORORORRRROROOOOROROOOOOROOOOROOOOOORRROROOOROROOOROROOOOROORRRRORORRROOROOROORORRRORORRROORRROOROOOOOROOORROROOOOOOOOOOOOROOOOORRORROOORRROROOOORORROROROROOOOORROROOROOROROORROOOOROOROOOOOOOOOORROOROOOOOOOOROOROOOOOOOOROOOOOROOOOOROOOOROOOROROOOOOROOROOOOOROOOOOOROROROOOORROOOOOROROROOROOOOOOOOOOOOOOOOOROOOOOROOROROOOOOOOOROOOORORROROOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOROOROOOORROROROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOORORORORROOOROOOORORORROROROOOOORORORROROOOOOROOROOOOOROOOORORROROOROOROORRORROORRROOOOOORORRROOOOOROOOOORRROOOORORRRROROOOOORRROOROORROOOROOOROOOOOOOROOOOOROOOORROROOOROOOROROROORRRORRRRRROORRROOORROOORRORORROOOORROORROROOROOOOORROROOOOORROORRRRRORROOROORROORORROOOOOOOOOOOROOORRRROROOORRROOOOORRROORROORORROOROOROOOROOOROROOROROOROROOOROROROOROROOOOOORORRORROOOROOROOOOORORORROROROORRORROOOOOOOOOOOOOOORORROOOOOOOOROORRROOOROROORROOOOOOOOOOROOOOOROROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOROOOOOROOOOORROOOOOORROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROROOOOOOROOORROOOOOOOOOOROROROOOROOOROOOOOROROROOOOOROOROOOOOOOOOOORORORROOROOOOOOROOOOOOORRROOROOOROOROROROOROOOROROROROOROROROOOOROOOROOORROROOOOROOOOROOROOROOOROOOOOOOOORROORROROOOORRROORORROROOROOOOOOOORORROOOOOOOORROOROOOORORORORORROROOORRROOORROROROOOOOROOOROROROOOOROROOOORORROORROOROROOOOOROOORRORROOROOORROORROORRRROOROOORRRRROOOROOROOROOOORROORRORROORORORRRROOOOOORRROOOROOOROORROROORRROORRROOROOROOOOOOROORROOROROOORORROROOROROROROOOORROOOROOROOOOOOOOOOORROOROOOOOROOOOROOOOOOOORROOOOOOOOOORRROOOOORRROOOOOROOROOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOROOOOOOOOROOROOOROOOOOOOOOOOOOORRROOOOOOROORROOROOOOOOOOOROOOOOOORROROOROOOOOOOOOOROROOORROOOOOOOOOOOOOROOOOOORORROORORROOOORRROORRROOOOOOORROROOOOOOOOOOORROOOOOOOOOROROOOOOOOOOROORORRRORRRROOOOROOROOOOOORRROOOOOROORORRORROROOOOOOROROOROOORRORRROROROOOOOOROROOROOROROROOOOOOORORROROROORRROOOOOROOOROROOOORORRRROROROORROOROROORRRORORORRRRRRRORRROROOROOOOROOROROROOROOROROROORRROOROROOROORROROOOOOOOROOOOOROORRORRORORRORRRROOROOOROOROOOORROOOROORROROOOORROROOORROOORRRROOORORORRROOOOORROROROROOOOOOROOOOOOOOROOOROOOOOOOOOOOOOROROOOOOROOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOROORORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOORORROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOROOROOOOOOOOOORROOOOOOOORROOOOOOOOOOOOOOROOOOOOORRROOOROOOOOOROOOROOOROOOOOOOOROOOOORORRROOOOROORROOOOOROOORROOOORROORROOOROOOOOOOOROOROOOOORRORROROOROOOOROROORORRROOOOORRRROROORRRROOOOROOOROOROORROOROROOROOOOOOROOOOROORORORRROOORORORROOOROORORRORRROORRROROOORROOOOROROOROROOROOOOORROROROOOROROOOORRORRRRRROORROOOOOOROOOOOOROOROOOROOORRORROROOOOOOORROROOOROOOOROOROOROOORRROROROOOOOORROOORROORROORRRROROOROOORROOOOROOOOROROOROROOOOOOOOOROORRORROROROOOROROOOOOOROOOOROOROOROOROOROOOOOOORROOOOROOROOOOOORROROOOOOOROOOOROOOROOOOOOOROOOOOOOOROOOOOOOROOOROOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOORROOORROOOOOOOOOROOOOROOOROOOOOOROOOOOROOOROOOOOOOOOOROOOOOOOOOOOOROROOOROOOROOOOROOROOOOOROOOOOOOOROROOOROOROOOOOOOOOROOROROROOORORRROOOROOORROROOOOORRROOORRROROROROOORRORRROOOORRRRORROOOORRRRRORRROOOOOOOORORROOOROORORRRORROOORROOORRRRROOOOORROOROORORORORRRRROOOORRRROOOOROOOOOOOOOOOOROOORORRORRRROORORRORRROORORRROORORRRRRROORRRRRORRRROORROORROROROORRROROROOOOOOORRROOROOOROOROOORROROROROOORROOROOOOROOOOROOOOOOOOOROOOOOOORROROORROOOROOOOORORORROOOOOOOROOOOOOROROOOOOROOOOOROOOOROOOOOROOOOROOOOOORORROOOROOOOORRROOROOOOOOOORRRROOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOROOROOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOROOOOOOOOOOOOOOORORORORROOOOOROOOORROOOOOOOORORROOOROORROOOOOOROOOOOROOOOROOOOOORROOOOOOOROOOOORRROROROROOOOOOROOORORRROROOOORROORRRRROOOROROOOOOROOROOOOORRROROOOOOOROORROROOOOORROOOOROOOORORORRRRROOOOOOOROOOOOOORROORORRROOOOROORRRRORRROOORROORROORRROROOOOOOORRORORRROOOOOOOOORORROOOORORRRORRORROOORRRRRRORRROROOORROOOORRROOROORROOOROOROOROROROOROOORORRRROROOOOROOOOOOOROOOOROROROOORORRROOOROROOOOROOROOROOOOOOOOOOOOORROOROOOROOORROOOOROOOORROOOOOOOOROOOOOROROOROOROOOOOROOROOOOOOOOOROOORROOROOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOORROOORROROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOROOROROOOOOOROROOOOOORROOORORRORORROROOOOOOOROOOOOOROOOOROOOOOOROOROOORORRORROOOROOOROOOOOOOOROROOOOOOOOROOROOOOOOORRROROOOROOROORROROORROOOROORORROROOOOOORRRRORROROROOOOORORRORRORRROORORRORRROORRROORORRRORROOOOOROOROROOROOOOOOROORRROOOOOROOROORROOROROROOOORORRROROOOOORRRROOORORORORRRORORRRROOOROOOROROOORRROOOROORRROROOOORROOOOOOOOOROOOOORROOORRROOOOROOROROOOORRRROROROORROORRROOOROROROROOOOOOROOROOOORRORRORROOROOROOOOROOOOOOOOOROROOOOOOOORRROOOOOOOOOOROOOORRROOOOROOOOOOOOROORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROROORROOOOOOOOOOOOOROOOOROOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOROOROOOROORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOROOOOROOOOOOOORROOOOOOOOROOROOOOOOROOROOOROOROROROOOOOROOROOOOROOOOOORROOOROROOORRRORRROROROOROOORRROROOOORORRRROOOOOOOOOOOROOOOOOORRROOOROORROOOORRROOOOORORRROOOOROORORORRORRROOORROOORRRRRRROOROOOOROOOROORROOOORRRORRROOOOROORRORORROORORRROOORRRRROROOORRROOORRROOOOOOOOOOOOOOOOOROORORORRROOOORROOORORRROOOORROOROOOOROOOORROORROOORRORROOOOOOOOOROOROROORROORROROOOROOOROOOOOOOOORRORROOROOOOOOROOOOOROOOOOOOOOROOOOOOOOOOROOOOOORRORROORRROOOORROOOOOOOOOOOOOOOROOORORROOOROOOOOROOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOROOOROOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOROOROOOOOOOOOOROOROOOOOOOOOOOOOOROOOROOOOOOORROORRROOOROOROROOROOROOOOOORRROOOOORROOOORROOOOOOROOOROOOOROOOROOOOORROOROOORRROROOORROOOROROOOROROOORROROOROOORORORROOOOROROOOROOORRRRRRORROORORROOOROROROROOOORORRORROOOOOORRORORORORORORRROOOROORRROROOOROOOOORORRRRRROOORRROROOOOOOORRORRORROORORORRROOROORROOOORRROOOOOROOOOROOOOOOOOOOOROROOOROOOROOOOOOOROOORROOOOORROOROOOOROOORRROOOOORROROOORROORRROOOROOOOROOOOOOOROOORRROOOROOROOOOOROOOOOOOROOOOOOROOROROOOROOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOROOOROOOOOOOOOOOOORROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOROOOOOOOOOROROOOOROOOOOOROOOOROOOORRROOOOOOOROOROOOOOOOOOOOOOORROOOORRROOOOORROOROOOOROOOOROOROOORROROOROOROOROOOOOOROOOOOOORRROORROOOOOROROROOOOOOOORRROOOOOROOROROORROROOROROROROORROROOOOOOOOORORRROROORROORORRRRROROORRRORRORRORROOROOROOOOOOOROOOOROORORORRORORRRROOROOORRROOORORRORORRROORORROOROOORRRROOOROROOOORRORORRORORORRROOROROOOOOOOORRRROROROORORROOOORORROOOORRROOOOOROROOOORROOOORROOOOORRORROROOROOOOROROORORORRROOOOROOOOOOOOOOOROROROROOROOOOOROROOOROOOROOOOORROOOOORRORORRROOOOOROOOOOROOOOOOOOOROOROOOOORRROOOOORROOOOORORROROOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOROOOOROROOOOORROOOOOOOOOOOOOOOOOOORROOOROOOOORROOOORROOORROOOROROOOOROOOOOOOOOOORROOOOOROOOORROOOROOORORROOROOOOOOOORRROROROROOORRROOOOOORROROOROOROORRORORROROOOORRRRROORROROOORRROROORROOOOROOOOOOROROOORORROOROROROOOORROOORROOROOORRROROOOROORRORRROOOOROORORORORORRRORROROOOROOORORRRROOORRROORRROROORRRRROOOORROOROOROROOOORORRORRROROORRORROOOROROOOROROOOOOOOOORROORROOROOOOOOOOOROOOOROROOOORROROOROOOORROROOOOOOOORORROORROOORROOOOROORROOOOOORORROROROOROOOROOOOROOOOOOORROOROOOOROOROOOROROROOOOOOROOOOROOOOOORROORORROOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOROOROOOOOOROOOOOOOOOOOOOROOROROROOROOOOOOOOROOOOROOOOOOOOOORORRROOOOOOOROOROOROROOOOOOROOOOROORORRRROORROOOOOOOROOOOROORRRRRROOROOROOOOROOORROROOOROROOOOROOOROOOROROORORRORROOOOOOOROOOORRRRROOROOORRRROOOOOOROOOOOOOOOOROOROOOROOROOOROOOOOOROROOOORRRRRROOORRRORROORROOOORRORORRRROROOOROOROOOOOROROOOOOOORRRRROOOOOOOOOORRORROORORORORRROOOROROOORRRRRRROOROOOOROOOOROOOOROORORROROOOOROOROROOOORORROOOROOOROOOORROOOOOOORROOOOOOOROROOROOOOOOROOOROOOOROOOOOROOOOROOOOOOORORORRRRROOOOOOOOOOOOOOOOROROROROOOOOOROOOOROROOOOOOOOOOORROROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOROOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOORROOOOORROOOOROOOOOROOOOOOROOOOOOOROOORRRROOROOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOORRROORRRROOROOROROOROROOOOOOOROOROOOOOROROOROROOROOOOOOOOORRRORRROROOROOROOOOROROOORRROORORRRRORROOOOOROROORORRROORRRRORORORRRROORROORORRRROOOROOROORORROORRROOOOOOORRORORRRORROOOOOOOROOROOOROORRROOOORROOOOOOOOROROOOOOOOOORRRORORROORRORRROOOORROORROOOOOOOROOOOOROROORORROROOOOOOOROROORROORRORRRROOOOROOOROOOROOOROROORROOOOOOOOOOOOROOOOOOOOROOOOORROOOOOOOOOOOOOOOOORROOOROOOOROROOOOOOOOOROOOOOROORROOOOOOROOOOOOOOOOROOOOOOROOOORRROOOOOOROOOOROOROOOOOOOOOOOOOOOOROOOROROOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOROOOOOOOROOOOOOROROROROOOOOORORROOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOROROOOOORROOOOOORROOOORROOOOROOROOOOOOOOOOORRRORORROOROOOOROOOROORROORROOOOOOOROOROOOOORRRRORROORORORRROOOOROOOORORORROOROOOORORRORRRRROROOOOOROORROOOROOOROOOOOORROOOROORRRRROOORRRROOORROROORROROROOOORROROOORORROOROOROOROORRRRORROORORORORROROOOOOORROROOOROOOOOROOOORROOOROROORORROOOORROOOROOOROOOOOOORORROOORROOROROOORORRROROORORORROOORRRROOOORROORROOOROOORROROOOOOROOROROOOROORRROOOORRORROOROOOOROOROORROOOOOOOOOROOOROOOROROOROOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOROOOOOOOOROROOOOOROROOOOROOOOROOOOOOOOOROOOROOROOOOOOOROOOOOOORROORROOOOOORROROOOOOOROROOORORRRORROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROROROROOROROOOOROOOOOROROROROORROOOOOROOROOOORROOOORRROOOOOROOOORRORROROOOOOROORROROROROROOOORROORROORRRROROROOOOORORRORROROOOOROOROORORROOOORRRORRROOOORORRRROOOOROOROROOOROOOOOROORRROROORORRROOROOROOOROROOOOOOROOOROORROROORRROOROROOROOOOROOROOOOOOOORRRRROOOOOROROOOOORORROOOOOOORROOOROOOOORORROORROOOOOOOOOROROOOORROROOOOOOOOOOOOROOOOOROROOOOOOOOOROOOROOOOROOORROOOOORROOOROOOOOOOOOOOROOOOROOROOOOOOOROOOROROOROOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROORROOORRROOROOOOOOOOOOOOOOOOOOOOOOROORROROOOOOOORROOOROOOOORROOOOROOOOOOOORROOROOOOOOOOOOOROOOOOROROROORRROOROORRRORROOORROORROROOOOROOOORROORORRORRORORRRRROOROROOOOOORORROOROOOOROOROROORRRORROOOROOOOROROOOOOOOOOOOOORRORROOOROOORORORRRRROOOROORROOROROOOROROOROORRROOORRRROROORROORRRORRORORROOORROOOOOROORROOORRORRORRRORRROROOOORRRROOOORRROOROOROROOOOROOOORRROOROOROOROORROORORRROROORROOOOOROROORRROOOORORROROOOOOOOOORRORROOROOOORROOOOOOOOOOOROOOOROOORROORRROOROOOOROORROOOROOOOOOROOOOROOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOROROOROOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOROOOOOOROOOROOOOOOOOOOROOOOOROOOOROOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOORROOOOROOOOROOOROROROROORROOOOOOOOROORORORRRORROOOORORORRROOORROROROOORROROOOORRRORRORROROORROORROROOROOORRRORRROROROOROOOOORORROROOROOORRORROOOROROOROROOORROORROORROOOOOOOORORRROORRRROORROOROROROORRRORROOOOORROROOOROOROOOOOOOROOOROORRRRORRROOOOORROOORROOORROROOOOOROORRRROOROOROROOROORRROORORRROOROOROORROOOOROOORROOOORRROROOROOOOOOROOROOROOOORORORROOOOOOOOOOORRRORROOROROOOOROOOOOOROOROOOOORRROROOOORRROOROOOOORROOOOORORRORROOOOOROOOOROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOROOORROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOROOOOOOROOOOOOOOOOOROOOROOROOOOOOOROOOOROOOOOOOOOOOROOROOOOROOOOOOROROOOOROOOOOOOOOOOOOOOROOOOROOOOOROROOOOOOOOOROROOOROOOROOOOROOOOROOROROOOOROOOOOROORROOORROOOOOOORORROOOROORRROOOOOORRORRRROOOOROOOOOORRORRRORORORROROOROOROOORRRORROORROORROOOOOORRROOOOOORROOOROOORROOORROOOOORRORRRRORORROOOOROOOOROROORRORRORRRRORRORROOOOORORORORORROROOORROROOOOROOROORRROROOOROORORROOOORORROOOROOOORROOOOOOOORROOROOOOOOORROOOOOOOOOROOORROROROOOOROOOROROORORRROROOOOOOROOOORRROROOROROROOROOOROROOOOROROOOOOROROOROOOOOROOOOROROOOOOOOORRORROROOOOOROOROOOOOOOOOOROOOOROOROROOOOOROOROOROOROOOOOOOOOOOOOOOOOOOOROROOOROOOOOROOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROORROOOOROOOORROROOOOOOOOOOOOOOOOOORROROOOOROOROOOOOROOOOOOROROROOOROOORRRROOROROROORROOOORROOROOOOROROOROORROROOROOOOOROOOOOORRRORRRORROOOORORROOOROORRROOOOOOOOROOOOROOOORRRROOOOOOROOROOORRRORRORROOOOOOOOROOORRRORROOOROOOOROROORROOOOROOOROROOOOOOROOROROOORRORORRROROOORROOROORROOROORORROOORRORRRRRRRROROOOORRRRRROOOOOROORORRROOROOOROOROORRRORRROROOROROORROOOOOOOOOOOROROROOOOOOOOOROOOOORORRROOOROOOOROOOOOOOORROOOOROROROOOROORRROROOOROOOOOROROOOORORRROOROOOOROOOOOOOOOOOOOOOOROOORORROROOOOOOOORRROROOOOOOOOROOOOOROOOROOROROOROORROROOOOOROOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOORRROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOORROOOROOROOOROOOOOROOOOORRRROROOOOORROOROOOOROOOOORRORRROOOOOROORORROOROROOROOOORRRROROOOOOOOROROORRORROOOOROOROOROORROOOROORRORRRROROORROOOOOOOOROOOROOOROOROOROROOOORORROROOOORRRROOOROROROOORORRRRRRROOROORRRORRRRORRRRROOOROROORORROOOROOROROOOOROOORROROOOROORROORORRROOOROROOOOOROOOOOOOOROOOROOROOROOROROROROOORRRROOOOOOOOOROOOORROROOOOOOOROORORROROOOOROOROOOOOOOOOOOROORROORROOROOOROROOOOORROOOOOOORORROOROOROOOOOOOOORRORRRROOOOOORROOOOROOOOOOOOOOOOOOROOOROOOROOOORROOOOROOOOORORRROOOROOOOOOOROOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOORRROOOOOOROOOOOROOORROROROROOOOOOOOOOORROOOROOROROOOOOOOROOOOOORROOOOOOOROORROOOOOOOOOOOOOOOOORROOOOOOROOOOOOOROOOOROOORORROOROROOOOOOROOROOOOOOOOOROROOOOROOOOORORROOOOOOOROOORORROOORORROOOOORROROORRROOROOOORROOOOOOOOROOOROORROOROOROROORROOOOROROROOOOORORROOROORRROOROOOROORROOOOORRROOOORORRORROORORRORRROOOOOROROOOROORROROOORROROOOOOOORORROOORORRROOORRRROOOOORRORORORORROOOROROOORORROOOOORROOOROROOROOOOOOOORROROROOOROOOROROOORRRRRROOROROOOORRROOOROOOOOOOOOOOOOOOOOORROROOOOOROORROOOOOOROOROOORROOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOROOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOROOROOOOORROOOOROOROOOOOOOOROOOOROOOOOOOOOOROOROOOOOOOOOOOOOORROOORROROOORROOROOOOOROOORROOOOOOROOOROOROORORROOOOOORROROOROOROOOOROOOOROOOOOOROROOOOOOROOOOOOROOROROORORROOOOOROOORORROORROORRRRRROOOOOOROORROOOOOORROOROOOOOOOOROROROOORRORORROOROROORROOOOOORRRRROOORROROORORROOROROOROOOOORORROOROROORORROOOORORORROOROROOROROOROOOROORROOORROOOROOROROOROORROOOROORRROROORORROOOOOOROORRROOORORORRROORRROROOOORORRORORORORROOROORORROORROOOROROORORROOOOOOOOORROROOOORROORORROROOROROROOOOOOOOOOROOROOOROOORROOOOOOROOOOOROOOOOROOOROOOOOOOOOOOOOOOROROOOOOROOOOOOOOORROOOOOOOOROOOOOROOOOROOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROROOOROOOOORORORROOOOOOOOOROOORROROOROOOROOOOOOOORROOOOOOOOROOOOOOOOROROOOOOOROOOOOOOROORRROOOOOOORORORRRORRROROOOOROOROROOROOOOOORORRORROOROOORROOOOOORRRRROOOOROOOOROOORROOOOORROROORRORRROORRROOROROORRRROOROOOOOOROROROROORROOROORRRRRROROORROOOOORROOROOOORROOOOORRROORORRRORRRRRROROROOOOROORORROROROORORORRRRORROOOOOOOOROOORRROOOROOROOROOOOROOOOROOORRORROROROOROOOROOORRORROROOOOOOORROORRRRROOOOOOOOOROOROOOOOOOROORROOOOOOOOOORRROOROOOOOOROOORRROOORROOOOROOROOOOOOOOORROOROROOOOROOOOOOOOROOOOOROROORROROOOORROROOOOOOOROOOOOOOOOOOOOROOOROOROOOOOROOOOOOOOOOOOOORROOOOORROOOORROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOORROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOORROOOOOOOOOOOORROOOOOOOOOROOOOOOOOROOOOOOOROOROOOOOOROOROOORROOOORROOOOROOORROROROROROOOOOOOOOOOOOOROOOOOOOOOROOOOOROROOROOOOOROOROROROOOORROOOOROOOOROOOROOROOOROOROOOOROOOOROOORROOOOOOROOOORRRRRROOORORRRROOROOORRRORROORRRRRROROROOOOORROORRORRROORORORROOORRROOROROOORRROROOOOROOROORROOOOOROOROORRRROOOOOOOOOROOORRROOOOORRRRORRROOOROOORRROROOROOROORRORORRRROROROOOROOROOORRORROOROROROOOOROROROOORRROOORRROOOOOOOOOORRROORRORORORROOROOOOORRROOOOROROOOOOORROROOOOOORROROORROOROROOOOOOOOOOOOOOORRROOOORROOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOROROOOOOOOOOOOOOORROOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOORROOOOROROOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOROOOOORROOOORROOOOROOOOOOOOOOOOORROOOOOOOORRROORROOOOOROOROROOOOOROOORROROORORROOROROOOROOROROROOOOOOOORROROORORROOOROOORROROOOORORRRRROOORROOOOOOORRRORRRORORRRORROOORRROROOOOROOOORORROOOOOOOOROROOOOOORROOOOOORROOOOOROROROOROOORROOROOOOOOOROROOOOROROOORROOOOORRRORRROOOOOOOORORORRROORROORROROOOOOOROOOORROROOOORROORORRROORROROOOOROROOOOOROOOOOOORORROORROORORRROORROOOROOROROORROOORROORROOOOOOOOOROOORROOOOOOOORRRROORROOOOOORRROOROOROOOOOOOOOOOOOOOOORROOOOOOOROOOOROOOROOORRRROOOROOROOOOOROOOOOORROOROROOOOOOOOOOOOOOOROOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOROOOOOOOROOOOOROOOOOROOOOOORROOROROROOOOOOOOOOOOROOOROOOOROOOOOOOOOROOOOOOROOROOOROOOOOROOOROOORORRORROOOOORRROORROOOOOOOORRROOOROOROROORROROROOROOOROOORORROOOOROOOOOOORROORORROOROROOROORRRROOOOOROOOOOORRRORORORRROROOOOROROOROOOOOROROOORRRROOOOOORROORORORROOOOOROOORROOORRROROORORRROROOROORROROROROOOROROORRORROOROORORORROOOOROORRORROORRROORROROORROOOROOOOOOOOOORRORROROORROOOOOROOOOOROOORROOOOOOOOORORROOOOOOOOROOORROROOORRORROROOOOROOORRORROOOOOOROOOOOOROOOOOOOOORROOOOOOOROOROOROOOOOOOROORROOOOOROROOOOOOORORROOOOOOROOOOOOORROOOORROOORROOROROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOROOOROOOOOOOOOOORROORROOOOOOOOORROOROOOOOROOOOOOOROOROOOOOROOOOOROOOOROOROOOOOOOOOOOOORROROOOOOOORROROOOROOOROOOOROOROOOOOOOOOOOOORRROOOOROOOROOOOROORROROOOROORROROOOOOOROOOOOOORROORROOOROROOOOORRROROROROORROOOOROROOOOOOOOOOOOOOOROOROORRROOOOOOOOORRROROROROOOROOOROOROOORORROOOROORORROOROORORORRROOOORRROROROOOORRORROOOROROOOOOOOOOOOOROOROORRRRRRORORROOORRORORORORROROROORROOORROOROOOOORROROROROOROOOOROOOOOOOOORROOORRROROOOOORROOORROORROROOOORROOOOROROOOOOROOORORORROOROOROOOOOOOOOORRROORRORROROOOOOOOOOOOOOROOOOOOOOROORROORROROOOOROOORORROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOORORROROOOROOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROROOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOROORORROOOOOOOOOOORRROROROOOOOOOOOROOROORROOROROOROOOOOOOOOOOROOOOOOOOROOOROOROOROOOORORRROOROOROOOOORRRORRRROOOOOORORROOOOOROOROOOROOOOROOORROOORRROOROROOOOROROOOORRROOOORROROOROOOROOOORRROOORROORORRROROORROORRRROOOORROOORRROOOROOOOORORRRORROOOORROOOORROORRROOORROOROOORROOOOOORROROOOROORORRROOOOROOOOROOOOROOORORRRROOOROROROORORRORRRRROROROROOROROOOROOOROROOOOOOOOORRRORRORRRRROORROROOOROROOOOOOROROOOOROOOOORROOOORROOROROOOROROOOOOOOOOOOORROOOOOOOOROOOROROOOROOROOORORRROOOOOOORROOOOOROOOOROOOROOROOROOOOROOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROROOOOOOOORROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOROOOOROOROOOROOOORORORORRROOOOOOROROOROOOOROROOOOOOROORROORROOOOROOOROROOROOOOOROROOOOOOOOOOORRORORROROOORRRROROOOROOOROROOORORRORORROOOOROOOROOOORRROROROROOROROOROOROORROOOROROROROOOOORRRORROOROOROROOORROROORROOROROOOOROORRRROOOORROROOROOOORRORROORRRORRROROROORROORROOORRRRRROOROROOROOOROOROOOOROORROOOOOOROOORORRRRORROOOOOROROOOORRRROOROOOORRORROOOORRORROROROOOOOOOOORRORRORORORORROOOOOOOOORROOOROOOOOOOOOOOOOROOOOORRROOOOOROOOOOROROOOOOOROOOOOOOROOORORROOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOROOOOROOOOOOOROOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOROOOORROOOOOOROOOOOOOOOOORROOOOOOOOOOOOROOOOOROOOOOOOROROOOOOOOOROORRRRRRRORROORORORORROROOOOOROOROOOROOROOROOROOOORORROROOOROOOROROORROOROORORROROROOROOOOOOROOROROOORRROORORRRROOORORROOOROOORRRROORRORRRORRRRROORORRRRRORORROOROOOROOROORORORRORORORROOROROOOOOROOORRROORRRRROOOORRRROROOOOROORRROOOOOROOOROROOROOROOOOROOOOOORROOOORROOOOORRROROORROOORRRORROOOOOOOOROOOROOOROROOORRROOOOOOOOROOOOOOOROOOOOOOROROOOROROOOOOORRROOOORROOOROOOOOROOOOOOOOORRRROOORROOOOROOOROOOOOROORROOOOROOOROOOORORROOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOORROOOOOOOOOROOOOOOOOROOOOOOOOOOOORROOOOOOROOOROROOOROOOOROOOOOOOOOOOOOROOOOORROROORRRORROOOROOOOORROOROOOROOOOORORROOOORROOOOROOROOOOOOORROOROOOOORORORRRORROROOOOOOOROOROOOOOOORROROOOOROROROROROOOOORROROOOOROOORROOROORROOOORROORROROOOOOROROORROOOOOOOROROORROROROORRROOOOORROROOOORRORRROOOOORORORORROORRRRRRROOOORRRROROROOOOROOOOORROORROOORRRRROROROOROROORRRROROOROROOOOOORRROOOOOROOOOROOOOOORROROOOROOROOOORROROROROROROOOOOOOOOOOOROOORROOOOOOOOOOOOORROOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOROOROOOOROOOOOORROOOOOOOOOOOOOOOORORROOROOOOOROOOOOOOROOOOOROOOOOOOOOROOOOOOOROOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOROOOOOOOOOOOOROROOORROOOOROOOOOOOOROROROOOOOOOORORROOOROOOOOOOOROOOOOORORORROORRORROOOROOOOORROORROOOOROOROOOOOOORROOROOOOOOOROOROOOROROOOROOROORORORROOOROROROOORORROOORROOORROROOROROOOORROOOORROROORRRROORRROOOOOROOOROOROROROOOOOOOOOOOROROROORORROOOROOORRRROOOORROOOORROORROOROOOOOOOORORRROOOOORROROOOROOOORORRROOOOOOOORROOORROOOOOROOOOOOROROOOROOOOORORRORRORORROOOOOROOROROOOOOOOOOOOOROOOOORROOORRROOROOOOROOOORRROOOORROOROORRORROROROORROOORROOOROOOOOOROOROOOOROORROOROROOOOOROOOROOOOOORROORROOOOROROOOORORORROOOROOOOOOROOORROOOORORORROOOOOROOOOOOOROROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOORRROOOROROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROROOOROOOOOOOOOROOOOOOOORROOOOOOOOROOOOOOOOOOROOROOOROOOOROOOROOOOOOOOOOOROOOROOOOOOORORRORROOOOOORROOOOOOROORRROROORROROOORROOOOOOOROOOROOORRORROOROOOROOROROOROOROROOOOROORRORORORROOOOOROROOOROROOORROORROROOOOOOORROOORRRROOROROORRROOOOOORROOOORRRRORROOOOOOOORORROOOROORROROORORRRORRRROOOROOROROROOROOROOOORORRROOROOROOORRORRRRROOOOOOROOOOOOOROOOORROOORRORROORRROROOOROROOOOROOOOOORROOOROOOOOORORROOOOOROOROOOROOOOOROOOOROOOOORRROORRROOOOOROOOOROOOORRROOOORROOOOOROROOOORORROROROOOOOOOOOOOOROROOOOOOROOOOOROROROOORROORROORROOROROOOOOORRROROOOOOOOROOROORROOROOROOOOROOROROOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROORROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOORROROOOOOROOOOOOOOOROROROROOOROORRROOOOROOORROOOOOOOOOOROOOROOROORROOOOOROOOOOOOOOORROROOOOOOOORROOOROROOOOROROORRROOORRROROOOOORROOROOOROOOOROROOOROOROOORRROOROROROOOROOROOOOOOOORROOOOOOOOROOOROOOOOOROOROOORRRORRROOROROOORRROOROOOOROROOORRRORRRRORORORRROORROOOOORROOORRORRRORROROORROOOOORRROOOOOROOOROOROORRRORROROOOOROORORROOOOORORRRROORORROROOOOROOOORRROROOOOOROOROOOORORROROOOOROROOOROROOORROORROOOOOOORROOOOROROOOOOOOOOOOOROOOORROROORROOROOROROOOOOROOOOOROOOROROROOOOROROOOOOOOOOOOOOOOROOOOROROOOOOOOOROOOOOROOORORORROOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOROOOORROROROROOOOOOROOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOROOOROOOOOOROOROORROOOOOROOOOROROOOOOOOORROOOOORROOOROOOOOOOOROOOOOROROOOOORORROOOOOOROROOORORROOOOROORROORROORORRORRRROOOOOROROOOORROROOOOOORRRRORROOOOOOROOORRROOROOOOROOROOOROOOOOOOOROORROORRROOORORRRRROORROORRROROROOOOOOROROOOROORROROOOOOOOOOOOROROROOOOORORROOOOROOORRRORROROOOROROROROOROROOOOOORROOOOOORROROORROROORORROROOORRROROROORROOOOROROROORRRROOOOROOORROOORORRROROOROOORORRRROOOROOOROROOROOOROOOOOROORRROORRORRROOOROOOROOOOOOOOOORROOOOOOOOOORRROOOOORROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOROOROOOOOOROOOOOOOOROOOROOROOOOOOOOOOORRROOOOOROROOOOOOOOOOORROOOORRROOOOOROORROOOOOORRROOOOOOOOOOOORRRORRROOOORROOOOOOROORROOOOROOROOOOROOOROOOORRORROOOOOORROROORROOOOOOORRRORRROOOROROORROOROORORORROOOOROORROOOORORRRRROORRRROORROROOORRRROORRORORROROORORRRROOROORROROORROOROORORROOOORRRORORROORORRROOROROROOOROOOOOROOOOOOROORROORORORRRORROOORROOOROORORRROORRROORRROROOROOROOOOOOOORRROROOOROORROOOROOOOROOOOROOOROOOROROROOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOROORROORORROOOOOOOOOOOOOOROOOOROOOOOORROOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOORROOOOOOORROOOOOOROOROOROOOOROORORROOOORRROOORROOROOOROOOOOOOROOROOROOROOOROOROROOOOOOOROOOROOOOOOOOROROOOOOOOOROOOROORROORORRRROOOOORRROROOOOORRROOOOOOOOROORRROOOOROOOORROOOOOORROOOOOROOOOOOOOORORORRRRORROROROOORROOOROOORRROOORRROOOOOOROORRRRORORROOOOOOOOROROOORRROROROOOOORROROOORROOOORRROOOORROROOORRORORROOOOOOOORRRORRORROOOORROOOOORORROOOOOROOOOOOOOROOOOOOORROOROORORROOOOOOORRRRRROOORRORROOOOOOROOORORRROORRORROROOOROOOORROOOOROOOROOROROOOOOOOOROOROOOOOOOROOOOROOOROOOROOOROROOOOOOORRROROOOOOOOOOOOOOROOOROOOOOROOOOROOOROOOOROOOOORROOOOOROROOOOOOOOROOOOOOOOOOROORROOOROOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOORROOOROOOOOOOOOROOOOOOOROORROOROOOOOOOOOROROOOOOOOOORROOOOOOOOOROROOOOROOROOOROOOOOROOORROOORRORROOOOOOROOOOOROOOOOROOROOOROOOOOORORORRROOOOOOROOROROOORORRROORRROOOOOROORORROOOORRRROOOOOOOOROOOOOOROOOORRROOOORRRRROOOOOOROOOORORROOROOROOOOOOOOROOOORORRROROOORRRRRORRROROORRORORRRROOORRORROORRORORORROOOORROORRRROOOROOORRRRRORROORORROOROOROOOROOOOOOROOOORRORROORROORROORROOROOOROOORRROOOOOOOROOROOROOOROOROOROOOOOOROOOORROOOOOOOOOOOOOOOOROROOROOOROOOROOOOORROOOOORRRORROOOOOROOOROOROOOROOOOOOOOOOOOROOOOOROROOROOROROROOOORRROOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOORROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOROROOOOOOOOOOROOOOOOROOOOOOOOORORROOOOORRROORROOOOOOOROOOOOROROORORROOROOOROOOOOORROOROOOOOROOOOOOOOOROOOOOOOROROOOOOROOOOOOROROORORROOOROROROOOOROORROROOORROROROORRORRRROORORROOOROOOOOOROOROORRRROOOROOOOOORROOOOORORROROOOORRROOORRROORRORORRROOOROOORROORORRRROORORORRORROOROROORRORORRORRRRROORORROOOOORROORORROOOOOOORROOORROOORROOOOOOROROROOOOOOOOOORRROOOORRROOOOOOORROROOROOOROOOOROOOOOOOOOORRRROORROOORRORORORRRROOROORROOOOOOROOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROOOOORROOORROROOOOOOOOROORRRROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOROORORROOOOOOOOOOROOORORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROROOOOOROOROOROOOROOOOOOORRRROOOOOORROOOOORROOOROOROOORROOOOOOROOROOORROOROOOOOORROOOOORROOROROOROROOOOOORRROROOROOOOROOROOOOOOOOOOOOROOORORROROROROOOOOOORRRORORORRROOORROROOORROOOOOORRORRRROORROROROOOORRROROORRROOROROOOOOROOOROOOOORROOOORORROOROOORORORROROOROORROROOROOORRRORRROROORROROOOOOOOORROOROROOOROOROROOROOOOOOORRRRROOOROROORROOOORRRORRORRROOORROROROOOOOOOOROOOROROORORROORORRRROOROOOORRRRORROOROORROOROOOOOOROOORRROOROOROOROOOOOROOROOOOOOOORROOOOOOROOOROOOOROOOROOROROOOOOOOOROOOOOOOOORROROOOOOOOOOOOOOOROOOROOORROOROOOOROOOROOOOROOROOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOORROOOROOORRRRROROROOROOOOOROROOROROOOORROOOOOOOROOOOOOROOROOROORROOORROOORRROROOORROROOOOOOOOOOORORROOORORRRROROOORRORROOORRRROROOOROOOOOOOOOOOOOOOROOORROOROROOOROOORORROOOORRROOOORRRROOOOORROROOOROOROROOOOOOORRORRRROOOROOOROOOOOORRORORROOOOOORROOOOOOOOROROORROOOOORROROOOORROOOORRROOORROOROOOROOOOOOOOOROOROOOORRORORROOOROOOORROOOOOOROOOROOROOOOOORROOORORRORORROOOOOROOOORRORROORROROOOOOOOORROROOOROOOOOOOOROOOOOOOROOROOOOOOROOOOORROORROOOROOOROOOOOOOROOOOOOOOROOOOOOOROOOOROROOOOOROROOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOROOROOOOOOOOOORORROOOOOOORROORROOOORROOOOORRRRORRORROOOOROROOROOOOOOOOOOOOROOOOOOOOOOOOOOROORORORROOOORROOORRROROOOOOOOROROOOOOOORROROOOOOOROOROROROROOOORORRROOOORORORROORORRRORORRRRROOOOOOORROOOOROOOORROROROROOROOOROOORORORORRORRRORROOOOOOROOROOROOOROROOOOORRRROROOOOOOOOOOORRRORRROROOOOOROOOOORROOOOROOOOOROOORRROOOROORRROORORROOORORRORRRROORROORRROOORRRRRRRORORRRROROOORRORROROOOORRROOOOOOROOROOOORROROOOOOOORORROOOROOOROOOOROOROROOOOROOOROOOROOOOOROOOROOOOOORROOOOOOOOOOOOOROROOOOOOOOOOOOROOROOOOROOOROOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOORRROOOROOROROOOOOOOOROOOROOOOOROORRORROOROOOOOROROOROOOOOOOOOOORROOROOOOOOROORRROROOOOORORORROOROROOOORORROROORROOOOOOOOROOROROOOORRRRROROOOROOROROOROORROOOOOOROOOOOOOORROOOOOOOROOOROOOROORRROOOOORRORRRORORORORRORORRROORRORROOOORROOOOOROROOOOROORRORRRRRRRORORRRROOOOOOOOROOOROOOROORROOOROORROROROOROOOOOOORRROORROROROORRRRORRRROOOROORRRROOOOOROOOOOOOOORORRRROORRORROORRRRROOOOROOOOOOOOOROORORRROROROROORORORROORROORORRORRORROOROROOOOOROOOOOOROOOOOOOOOOOROOOROROOOOROOOOOROOOOOROROOOOOROROOROOOOOOOOORROOOOOROOROOROORROOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOROOOOOOROOOOOOOOOOOROOOOOROOOOOROOOOOROOOROOORROOOOROOOOOOOOOOOOOOOORROORROOROROOOOOOROOOOOROOOOOOOOORROROOORORROOOOROOOOOORROOOOOOOOOOOOOOOOOOOROOROOROROOOOOROOOOROORROOOROOORRROOOOROORRRROOOROORRRROOOOOOROOOROOORROOOOOOORRRRROROROOORORORORRROOOROOROOOOROORROOOOROOOOOROOOORRROROOOOOROOORROOORORRORRROOORROROOROOROOOROOROOOOORRORROOOORRRRRROROOOOORRORORROROOOOOOOOROROORORROORORRROOORRRROOOROROOROOOROOOROOROROOOROOROOOOOROORRROOOOOROORROOROOOOOOROOROOORRORROOROORRRORORRORROOOOROOORROROOOOOORROOOOORROOORROOOROROORROORRROOOROOOOROOROOROOOOOOROROOORORROOOORRROOORORROOOOOOOOOROOOOORROOOOOOOOOOOROOOOOOOOOROOOROOOOROOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOORROOROROOOOOOOOROOOROROOROOOOOROOOOORORRROOOOOOOOOOOOOOOOOOROROOOOROORORROOOORROOOROROOOOOOOOOROORROOROOROOOOOOOOROORROOOORROOOOOOOOOOOOORRORRROROORRRROOROROORROORRROOROOOROOOOOOROORROOORROROOOOORRORRROOORROOORRRRRROOOOROOROROOOOROOOROOOOROOOOOOROOORORORRROROOROROROORROOOROOROOORROOROOOOOOROOROORROOORRROOOROORRRORRRROROORRROOORORROROORROOOOOOORORROROOOOOOOOOROOOOOROROOOOORORROOORORORROROORROOOOROOOOOOOOOOORROROOORROROOROOOOOOOOOOOORORRORRRROOOORROORROOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOORORRRROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROROOOOROROOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOORORROORROOOROOOOOROOOOOOOOOOOOOOROOORROOOOOOOOOOOORRROOROOROROOROOOOOOOOOORORROOOOOOOORORRROOOOOOOORROROOOOOOORROORROROOOOROROORROOOOORRRROOOORROOORORRRRROROORRROOOOOROOOOOOOORRROROOROOROOORRROOROORROROROORORORRRROOOOOOROOROOORROOROOORRORRROOOOOROOOROORROOOORRRROOORROROOORRRROOOROOROOOOROROOOROROROOOOROOOORROOOROOOOOOOOROROOOROOORRRROORROOOROOROOOOOOOOROOOORRRORROROOOROROOOOROOOOOOOOOOROROOOOOOOOORRROOOROOROOOOOROOROROOOROOOOOROOORRROOROOORROOOOOOOOORRROOORROOOOOOOOOOROOROROOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOROOOOROOOOROOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORORORROOOOOOOROOROOROOOOROOOOOOOOROOROOOOOROOOOOOOOOROORORROOROOROOROOOOOOOOOOROOOOORROOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOORROOOROROOROOOROROROROROOOROOOOOOROROROOOOOOROOOOOROOORRROOORORRROROROOOROOOOOROROORRORRRRORORROOORRRROOOORRRRORORROOOOOOORRRORRROROORRROROOORRROOROOROOOOORORROORORROOOOOORROORROOROOOOOOORORORROOOROROOORROOROOROOOROROOROOROOORROROORROROOOOOORRROOOOROROROOOROOORROOOOROOORRORORROOROOROOOOOROROOOOOORRROOROOOOOOOORRRROOOOROROOORROOOOROOOOOORRORORROROROOOROOOOROOOROOROROOROOORROOOOOOOROORRROORROOOOOOOOORROOOOOOROOOORROORRORROROOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOROOOROOOOOROROOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOROOOOROOOORROOROOOOOOROOOOOOOOOOOOROROOOOOOOROOOOOOOOROOOROROOROOOROOOOROROOROOROOOOORORROOROOOROROOOOOROOOOORORROOOORROROOORORROROOOOROORORRORROORORRROOROOROROOROOOROOROOROOOOOOROOOOOOOROOOOROORROOOOOROOROROOOOORROORROOORORROOOOOOROROROOOORORRORROOORRROOROOORRRROOOOOOOROROROORORROORORRRORROROOOROROOOOOROOOROOROOOOOROOROOOROOOOORROOOOOOROORRROROORRORROORRROORROOOOROROOOOOOOORROORROOOOOROOROOROORRROOOOOOORORROOROOROOROROOOOROOROOOOOROOOOROOOOOROROOOOOROORROOORROOOOOOROOORROOOROOOOOROOOOOOOOROOORROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOROOROROOOOROOOROOOOROOOOOROOOOROOOOOOOOOOORORROOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOROOOOOOOROOOOOROOOOOORROOOOOOOOOOOOORORROOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOORROOROROROOOORRRRORORROOOROOORORROOOROOOROOOOROOORORROOOOROOOOOOOORORRRRORRORORROORRRROOROROROROOROROOROROOROROOOOOROROROOOOOROOOOOROROOOROOORROOOOOOROORRROOORORROOROROORRRROORROOROROROOOOOROOROORROORRRRRORROORRRROOORROOOOOOOORORROORROORROORORROOROROOOORORORORROOOORROOROORORORRRRROROROOORORRROOORRRORORRRROOORROORORRORRRROOORROROORROOOOORROROOOOOOROOROROORROOOROOOORROOOOOOOROROORORRORORROOOOROROOOOROROOOROROOROOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOROOOOOOOOROOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOROOOOORORROOROROOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOROOOOOROOOOOOOOOOROOOOOROOROOOOOOOOROOROROOORROOOOOOOOOROOOOOOROOORRORROROOROOORRROOOOOROOOOOOOOOOORROOROOROOROOROOOOOOROOOOROOORRORRRROROOOOROOOROROOOOORROOOROOOOORROROROOOOORORORORORRORORRORRROROOROORRROOOOORORROOROOROROOROOOOOORRRROOROORRRRROROROORORORROOORROOOROOROORRROROOOROORRORROOOORRROOOOROORRORRORROOOROORRROOOORROOORORRRROOOOORROOOOOOROOOOOOOOROOOROROROROOROOOOROROOORROOOORRROOOROORORRRRROOORRRROROOOROROOOROOOOOOOROOOROROOOROOOROROOOOROOOOROOOOOOOROROOOOOOOOROOORRROROOOOOOOOOORORROORROROOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOORROORRROOOOOROOOOOOOOOOOOOOOROOROOOOOROOOOORROOOOOOOOORORRRROOOORRROOORRROORORROOOROOOOOOOOOOOOORORORROROROOROOOOOROOROOOROOROOROOOOOOOOOOROROOOOOOROOOOOOORRORORRROOROROOOOROORROROOROOOOOOOOOOROOORROOOOORROOOOOROOORROOROOOOOOOOOOOROROROOOROROOROROOOOROOOOROOOROORROOORRROROOOROROOORORRRROOOOOORRROROORROOOOROORORRRORROOROOOOOROORROROOROOOOROOOOORORRROOOORRORROOOORRRORORORRROORRROOORRROOOOOROOROOROOOOROOROOOOROROROROROROROOROOOOOROOORRORORROOOOOROROOROOOROOORROOOOOOOOORROORROROOOROOOOOOOOOOOROOOOOOROOOOOOROOOORROOROOOOOOORORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROROOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOROOOROOOOROOROOOOOORRORROROROOOOOOOOOROOROOROOOORORRRROOROOOORROOOROOORRORRORROROOOOOOOOOOORROOOOOROOROROOOOROOOROOOOOOROOOORRROORROOOOOOOROOOOOOOOROOORROOROOOOROROOORORRROOOOOOOOORRORROOOOROOOOOOOOROROORRROOOOOROROOROOOROORRROOOOOORROORORRROOOOROOROORRRROOOORORRRROOROOOOORRORRRROROOOOROOOROOROOROROOORROROROOORRROORRRORORROROOOROROOOOROROOOOOROOROOORORRRORRRROOROROORRROOOOOOROOROOOOOOOOROOORRORRRORORORROOOOROOOROOROOROOOOOOROOOOOOORROOOORROROOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOORORRROOOOOOOROOOOOOORRROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROROROOOOOOOROOOOROOROOOOOOOOOROOROOOOOOORROOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOROROOROROOOROOROROOROOOOOOOROOOOROOOOOOROOOOOOOOOROOOOORROROOOOOOOORRORROOOORROOROORRORROOOOROOORRORORRROOOOROOORROROOROORROOOOOOROOORRRRRRROOOOOOROORORRROOOROROOROOORROOOORROROOORROORORRRORRROOOOOROOORROOORROOOORROORROORROROOOOROROOOORRORORORRRRRRRORORROOORROOOORRRRROOOROROOROROOROORORROOROROORRROOOOROOORORROOOOOOOROOOOROOOROROOOROOOROROOROOROOOOOROORORRROROOROROOOROOOOOOOOROOOORROOROOOOORROROOOOOROOORROROROROOOROOOOOOOOOOOOOOOOOOOOOOORROROOOOOOROOOROOROOOOOOOROOOOROOOROOOROROOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROROOOOOOROOOOOOOOROOOROOROOOOROOROOROOOOORORROOOOOOOOOROOOROOOOOROOOROOOOROOOROOOOOOOOOOOOROOORORORROOOOOROORROROOORROOROOOROOOOROROOOOOORRROORRRORROOOROOOOORRORORRROORROOOOOOROOOOOOORORORROOORRORORORROOOORORORORRROORROOOOOROROOOROOORRROROOOOOORRRRROORROROOORROOOOROROROROORRORROOOOOOOOOOOOOOOOROOROOOOROORRRROORRROROOOOROROOORROOOOOORORRORRROOROOROOORORORORRROOROOROOOOROOOOORRRRROOORRROOOORROORROORRRROROOROOORORRORRROORORROROOROOOOOOROOROOOROOOOOROOROOOROOOOORRROOROOOROORROROORROOOOOORORRORROOOROOOOROOROOOOOORROOOOOOOOROOOOOROROOORROROOOOROOOROOOOOOROOORORROOOOOOOOOOOOOOOOOOOOORROOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOROOROOOOOOOROOOOOOOOOROOOOOOOOOOOOORRROOOORRROOOOOOOOOOROOROOROOOOOOOOOOOOOOOORROOOOOROROOROOOROROROOOOOORROROOOOOROOORROROOOOROORRROROORROROOORROOOOORRROOOOOOORRRORROORROROORRORRRORORRRROROOROORROOORORRORROORORRRORROROORORORRRROOROOROORROOROORROORRRRRORRRORRROOOOOROROOOORROORROROROOROOORRROOOOORRROOOORROOOOORROOOOOOOOROORORROOROORROOORROOROROOOROOOOROROOROOOOOOORRORRROROOOOORRORROOROOOROOOOOOOOOROOROOROROOOROOOOOORROOOOOROOORORROOOOROOROOOROOOOOOOOOOOOOROOOORORROOOOORROOOOROORROOOOORROROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOROOOOOOROOOOOOORROROOOROOOOROOOOOROOOOOOOOORROOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROROOOROOOOOOROROOOROORRORRRRROROROOOOOOOOROOOORROROROOOOOROOOOROOOOOOOOOOOOROOORORRRRRORRORRROROOOOOOOOOOROOOROOOOOOROOROORORROOOROOOOORROOOOORROOOOORRRRROROOOOOOOROOOOOOORROROOOOOOOOROORORROOOOOROROROOOOROORRROROROOOOROOROOROOOOOROROOORROOORRROOOORORRRROROOOOORROOOOROOOROOOORRROROORORRRORORRORRRORRROOROROOOOROROROROOOORRROORRROROROOOROOOROOOORROOOOOORROOOORORORROORRORROROROORRORRRRRRROOROOOOORORRROOOORORORORROOOOOOOOOORORROOOOOROOOOOOROOOOOOOOOOOOOOOORROOOOOOOROROOOROOOOOOORROOOROORRROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOROOOOOROOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOROROROOROOOOOOROOOOROOOROOOROOOOORROOOOOOOOOOOOOOOOOOORROORROROOROROOOROOOOOROROOOOOROORRRRORORORORORRROORROOROORRRROROOROROROORORORROOROOOOOOOOORRRROOORROROOOOOOORORROOOOOROOOOOORROOOOOOORRRORORORROORRRORORORRROOOOOROOROOROOOOOORROOOROROOROOOOOOOOROROOROROOROOORRROORORROORRROOROOROROROROOORRORRORRORORRORORROOOORORRRORRORROOROOORRROROOROOOOOOORRROOROROOORROOORROORRRORRROOOROOROORROOROORROOOOOORRROROOOROOOOOOOROOOOOOROOOROOROOOOOORROOOOROORRRRROOROOOOOOOOORROORRRRORORROOROOOOOOROROOOOOOOROOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOROOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROROOOORROOOORRORROOOOOOOOOROOROOROROOOOOOROOOROOORROORRROORROROOOOOORRROROOOROROOROOOOOOOOOOOOOOOOROORORROOROOOOOORROOROOOOOORORORROROOORROROOOOROOOOOOROOOOOOOROOOOORORRRROOORRORROOOOOROROOOOOOOROOOOOROOROORROROOOORRROORROOROROORORROORRRORRORROROOROOOROOROOORROORORROOOOOORORROOOORRORORROOOOOROORROOROOOOOOOOORRRRRRRROOOROOROOOORRROOORROOORORRROORORROROROROOROOROOOOOROOOOOOOROROOROOOORRRRRORROOOROROOOROOOOORORROORORRROROOOOOROOROOORRRRRORROOOOOOROOOOORROOOOROOOOROORRROOROOOOOOOOOOOOOROOROOOOOOOOROOOOOROOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOROROOOOOOOOROOOOOOOOOOOOROOROOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORRROOOOOOOROORROOOORROOOOOROOOOOOOOOOOOROOOOOORROOOOOROOOROOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOROOORROROOOOOOOROOORRRROOORRORROOOOOOORRROOOOOOROOOOOOOOROOOOOORROOOOOOOOORORROROORORORORORROOOOOOOROOOROROORRRORRROOORROORRRORRROROORORRORRORORRROROORROOOOOOOOORORROOOROORROOORROOORROOORRORRROOROOOOROORRROORORRORORRROOOOOOROOROOOOOOROROOOOOOORROROOOOROOOOOOOORRRRRROOORORORRRROOOOOORROROROROOOOOOOOROOOOOOOROOOORORORRROOOOOOROOROOOOOOOROOOORROOOOROOOOOOOOOOROOOOROROOORRROOOROOOOOOOORRROROOOOOOOORROOROOOROOOOOROROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOORORORROOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROORRROOOOOORORROOOOOOOOOOOROOOOOOOOROOOOROOOOOOOROROROOOOOOOOOOOROOOROOOROOOOROOOOOOOOOOOROROROOOOROOORROOOROOORROOOOROOOROOOOOOOROOOOOOOOORROOOOROROROOROOOROOROOROOOOROOROROOOROOOOOOROORORORORROOOROOOROROROOOOOOOORRORRRRRRRROORROOOOROOOOORORRRROOOOOROORROORROOROOOOOOORRRROORROROORORRORRORROROOORROOROROOOOOORROOOROORROORORRROOOOROORROOROROORROOOOORROROORROOORRROOOORRROOOOOOROORORORRROROROOORROOORROOOOOORRROROROORRROOOOOOOOOOOROOOOROOOOOOROORROOOOROOOOOOROORRRROOOROOOROOOOOOROOOOOROOOROOOROOOOOORROOOOOOOORROOOOOOOOOOROOOOOOORROOOOOOOOOORROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOROOOORROORRROROOOOOROOOORROROOOOOROOROOROOOOORROROROROROOOOOOOOROOOOROOROROOOOOOOOOOROOROOOROORROROROOROOOOROROROOOOROROROROOROROOORROOROOOOOOORRORORROORORORROOOOOROOROOOOOOOORROORRROROOOOROOOROOROROOROOOROOROOOOROOOOOOORORRRROOOROOOOROORRORORRROROROROOROOOOOROOORORROORROORORROOOOOOOROOORRROOOROORROOOOORROROOORROROOOOOOOOOOROOOROROOORRORROROROOOOOOOOROROOORRRORROOROROOROOOOROOOOROROOOROOROOOOOROOOOOOOOROOOROOORORORRRROOOOOOROOOORROOOROOROOOOOOOOOOORORRROROROOROROROOROOORROOOOOOOOOROOOOOOOOORROROOOOOOOOROOOROOOOOOOROOOOOROOOOOOOROOROOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROROOOOOOOORROOOOROROOOOOOOOOROOOROROOOROOOOOOOOOOOOOROOOROROOOROOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOROOORRROOOOOORRRROOROOORRROOOROOOOOROOOOROOOOOORORRROORROOOORROOOROOOOOOORROOOOOOOOOOROROROOROOOOOORORROROORRROROOOROOOOORORORORROOOOOOORROOROOOROOORRRROORROROOOROOORRRRRORRROROOOOOORRORORORRRROOOOROORORRORORORRORRROOOORORRROROOROORRROORRROOOOOOOOOOOORORRORRORRRORRRRORROOOROOORRROOOORORRRORRROROORORORROOORRRROORRRROOOORORROROROOOROOOROOOOROOOOOOORROROOORROOOORRRROOOOROOOROOORORROORROROOORRROORRRRRRORROOROOOOOOOOORROOORRROOOOOOOOOOOOROOOOROOOROOOOOROORROOOOOOROOOOROOOOOOOOORROOOOOOOOOOOORROOROOOROOOORROOOOROOOOOOORRROROOOOOOOOOOOROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOROOOROROROOOOOOOROOOOOOOOROOOOOOROOOROORROOOOOOROOOOOOOROROROOOOORROOOOOORRRORROOORROOROOOOROOOROROROOOOORROROROORROOROORORORRORRRROOROOOROOOOOOOOOROORORROOOOOOOOOORROOORROOOOOROOOOOOORRROOOROOORRROOOOOOOOROORROORRRROORROOORROROORORORRROOOOOOROOORORROOOOORRROORORROROOOOROROOROOOORORORRRROORRRRRROOORRRROOOORRROOOROOOORRROROOOORRROORORRRORORRRROORRRORROOOOROROOOROOROORRROOROROOROOORORRRRORORRORORRROOORROOOOOOOOROOOOROROROOROORRROOOOOOORROOOOOOOOROOORRROOOOOOOOORRROOOROROORRROOROOOOOOOOOOOOOORRROROOOOOROOOROOOROOOOOOOOOOOOOOROOOORRRROROOOOROOROOOOOROROOOOOORROOOOOOOOOOROOOROOOOOOOOOOROOOROOORROROOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOROORROOOOOOROOOOOROOOOOOOOOROROOOROOOOOOOOOOOOROOOOORRRROOROOOROOROROOOROOOROROOOROOOOOOOOROROOOOOOROORORROORROOOOROROOOOOOORROOOOOORRORROOOOORROOOORROOOOOROROROOOOROORROOROORRRORORRORORROORORRORRRROOOROOROOOOOROROOORROORROROOORROORROORRROOROOROOROOORORRRORORRROROROOOOORRRROOOOOROROOOOOORORORORRROORRRROROOROOROOROROOORROROROOOOOOORROOOROOOOOROOROOROROROROOOROOOORROROOORRROOOOROOROOOORRRRROORRRORRROOROOOOOOORORRROOROOROOROOROORORROOOOROROOORROOOOOOOOOOOROOORRROOOROROORORROOOOOOOOOORROROOOROOOOOOOOOOOOOOOOORROOOOOROORORROOROOOOOOOROOORROOROOOOORRRROOOOOOROOOOOROOOOOOOROOOOOROOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROROROOROOOOROROOOROOOOOOOOOOOOOOOOOOORRROOOOOORROOOOOROOOOOROORRRROOROOOROOOOOOOOROOOOROORROOOOOOOROROROOOROROORROOOOOOROOOOOOOOROOROROOOOOROOROOOROOOOORRRROOOOOORROROOOROOOOROORROOOROOOOOROOOOROORORROOOORORORROROOOOROOROOOROOOOROOROOOORROOOROOOOROORROORROORRROROOORRROOOOORROOOOROOOOORROROOROROOOOORORROORRRRORRORRRRRORROOROROROOOOOORROORRROROOROOOOROOOOOOOOOOOROORROOOOROOOOROROOROOORROORROOOOROOOOROOOOOOOOOOOOROOROOOOOOOORROORROOOOOORROOOOOORROOOORRORROOOROOOROOOOOOOOOOOOOROOOROOOOOOOOOOROOOROOOROOOOROOROOOOOOROROOOOOOROROOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOROOROOORORORORORROOOOOOOOOOOOOROOOOROOROOORROOOOOROOOOOOOOOOOOOOOORORROOROOOOROORRROROOORROROOOOOOOORORROOROOORRRROROROOROROOROROOORRROOOOROORROOOOOORORROOOOOOOOOOROROORROOOORROOOROROOOROROOOOOOORRORROROOOOOOROORORROOORRROOOOORORROROOOOROOOOOOOROROORROROOOROOOOOOROOORROOOOOROOROROOOOOROROROOORROOOOROOORROROROOOOOROOOOORROOOORRROOOORROOROOROOORORROOOROOOOORORRRRORRRROOROOOOOOOOOROOROOOROOOOOOROORORRROOOROOOOOOOOROOORRROOOOOOROOORORORROOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOORROOOOOOOOROOROOOOOORORRRRORORROOORRORORROOOOORROROOROOOOOOOOOOOROOOOOOOROOOOOOOOORROOOOORROOOOOOROROOOOOOOOOOOOOOOOORRORROOOROOOROOORRROOROOOOROORRORORROOOOOORRROORORROROORROOOOOOOOOOROOOORROROROOROOORRORORROROROOROOROOROROOORRROROORRROOOOOOOORROORROOORRROOOORORROORORORRRROOROROORRRROOORORRROORROOROROOOROOOOOROOOOOOOOOORROOROROROROOORROORRRRROOOOOOROOORRORRORRORRORORROOROOROOORROOOOOOORROOOROOOOOOOOROORROROOOOORRRRRROOOOORROOROOOOOOROOOROOOORRRRROOOROOROOOOOOROOOORRRROOROOROORROOOROOOOOOOOOOOOOOOOOOROOOOROOOOROOOORRROROOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOROOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOROOOROOOOOOOOOORROOOOROOOOOROOOOOOOOOOOOROORROORORROOOOOOOOOOOOOROOOOOOOOOORORRROOOOOOOROOOOOROROOOROOOOOOOROROROOOOOOROROORRRROORROOOROOOOORROOROOOROOROOROOOOROOOROOOROOOROROOOROOOROOORORORORORORRORROOROOOORRORROOORRROORRRROORORORRRRORROORROROORROOOROOOOORROOOOOORORRROOORORORRRORORRRROORRROOROORORROOOOORROROROROOOORRRRORRRRORROOOOORROOOORRROOOROOORROOROOOOOOOOOOOOOROROOORROORRRROOOOORORRROOOORRROOROROROROOOOOOORROOOROOOOOOROOOROOROOOORORROOOOROOOOOOOORROOOOOOROOOROOOOOROOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOROOOOOORROOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOORORROROOOOOOOOROOOOOROOOOOOOOOROOROOOOOOOOORROOORROROORRROOOOOOOORORROOORROROOOOOOOOROORROOROROOOOOORROROROOOROROROOOORROORROOORRROROROOOOOOOROOOROROOROOOOOROOROROROROOOOOOOORROOOORORRRROOOOOOOOOROOOOOORRROOOROOOOOORRROOOOORROOORRROOOROROOROROORRORORRRROORRROORROROORORORORORRROOORORROOROORORORRROROOROOOOOOROROOROROORORORRRROOOOOORORORROROOROOROOORRROOOROROORRROOOROOOROOROOOORROROOOOOOROORRROOOOOOOROROROOOORRROOOOOROOROOOOOROOOROOOOOROOOOOROORROOOOOOOROOOOOOOOORORROOROOOOOOOOOOOOOROOROOOORROOOROROOOORROORROOORROOOOOOORRORORRROROOOOOOOOOROROOOROOOOOROOROOOOOOOOOOOOROOOORORROOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOROOOOOOOOOROOOOOOOOOOROOOROOOOOOOOROOOOOROROOOOOOROOOOORORRROOOROOOOOOOOOROOORORRROOOOOROOROOOORROOOROOOOOOOOORROROROOOOROROOOOOORROORORORROORORRRROOOOOOROOROOOOOOOROORROOOOOOOORROORRROOROOORROOOOOROOOOOOOOOOOORROOOROOOORRROOOOORROOOROOORRROROROROROROORROOOROOORORORORORORRRORRORORRORROROOOOORROOOORROORROORROROOROOORROROROORRORRORORRORROOOROOORRRRRORROOROROORORROOOROOOOOROORROOOROOOOROROOROROOORORROOROOOOORORORROORORROOOOORRRORROORROOORRRROOOROOOOOROOOOOOOOOOROORROOROROOOOOOROOOOROOOOROORROOROOOOOOOROOOOOOOOOROROOROOOORROOOORORROOOORROOOOOOROROROOOOOOOOOOROOROROOROOROOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOROOROROOOOORROOOOORROROROOOOOOOORROOROOOOOOOOOOOOORROOOOROOOOOOOOOOOOOROOOOOOORROROOOORRROOOOROORROOOOOOROOOOROORORROOROOOROOOOOOROOOOOOOORROOOROORRRROOOOROOOOROOOOROOOROOROORRRRORORORROOOOROORROOOOROOROOOROORROOOOROOORRROOOOOOOORRORRROROROROROORRORORORRORROOOOOORROORROOOOORORRORORORRORORRRROORROOROOROROOROORROROOORRROROORORRRRORROOROROOOOOORRROOORROORORORRRORROOOROOOOORROOOORROOOOOOOORROOOOORRORROOOOROOOOOORROOROOOOOROOORROROOOROORRRROOOOROOROOORROOROOORROOOROOOOOORROORRROOOROROOOOOOOOOOOOOOROROOOOOOROROOROOOROROOOROOOOOROOOOOOROOOOOOOOOROOOOOOOROOORROOORROOOOOOOOOOOOOOOOROROOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOROOROROROOOOOROOOOROOOROOOOOROOOOOORORRRORORROOOOOOOROROROOOOOOOROROOROORROORROROOOOROOOOROOOOOOOOOOORROOOROROOOROOOOROOOOORRRROOOROORORROORRROOROROOOOROOOOOOOORORROORORORORRRROROORROORROROROOOORORRORROORORORROOOORRORRORRORRRROROOOOOOROOOROROOOOOOROOORROROOOOROORRRRRORRORRRRORRRROORRROORRROOOORRRROOOOOOORORRORROORORORROOROOORROROROOOOORORORROORROOORORROOOROOROOOOOOOOOOOOOOORROROOROOROORORROORORROOORRORROOROOOOOOROOOROOOROOOOOOOOOOROOOROOOOOOOOOOOOROROOOOOROROOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOROOOOORROOOOROOOOROOROOOROOOROOROOOOOOORORROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOORROOOOOORORROOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOORROOOOOOOOOOOOOOOROROOOOROOROOOOOOOOOOOOROOOROROOOOOOROOROROOOOOROOORORROORORROOOOOOOOOOOORROROOOOOOOROROOOOROOORROORRRORROOROOOROROOOORORROOOORRROROOOOOORROROOOOOOOROORORROOROROOOORRROROORRORRROORROOOOORRRORROOOORROOOOROORROORROOOORORROROROOOORORORROROORROROOORROOOROOOOROOOORORRORROOROOOROROROOOOORORRROOOOORRORRRROROROORROOOOORORRRRROROOORORRORRORRRORROROOOORORRRRRORROROOOROOOOOOOOOOOOOOORROOROOOOOORROOOOROOOROORROOOROROOOOOOROOOORROOROOOOROOOOOROOOOOOOOOOOOOOOOOOROOOROROOOROOOOROOOROORROOOOOOOOOOOOOOROOOROOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROROOOOOOOOOOOOOOOORRORROOOROOOOOOROORROOOROOOOOOROOOOOOOOOOOOROOOOOOOROROROROOOOROOOOOOOORROROOOOOOOOOOOOROOOOOOROOOOOOROOOROOORORORORROROROROOROROORROROOROROOORRRORROROOOROOOOORRROOROOOOOROROOROOOOOROOROROOROOROOOORROOOOORRROOOOOORRROOOOOOORROOROORROOROORROOOROOROOOOOOORORORRRROROROOOOOROOORROOROOORRORORROROOOOOROORROOOOORRORROOOOOORORRROORORRRORROOROOROORROROOORRORROROOOROORRORRRORROOOOOORROROOOOOOORROROROOROOOOOOOOOOROROROROOOOROOOOORRROROOOOORRORROROOOOOOOOOOOOROOOOOOOOORROROOOOOOOOORRROOOOOORRROROOOROOOOROORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOORROOOOOOOOOROOOOOROROOOROOOOOOROOOROOOOOOOROOOROOOOOROOOOOOROOOROOOOOROOOOROORRROOORROOOOOOORROOOOROOOOROOORROORORROOOOROOOROOOOORROORROROORRRROOROOOOOOOROOROOOOOROOOROOOORROOOORROROOOROOROOORROOORRRORORROOOOOOROOOOOOOROOORORRORRORROROORRROROORORRORROROOROOORRORRROOROOROROORRORRROORROROOOOORRRRRRROROOROOOROORORRRRRRRRRORRRRORORROOOORORORRORRRROOOOOOOORRROROOOROOOOOOROORRRROOOROROOOROROOOOROORROOROORROOOOOROROOOOOROOORORORRROOROROOOROOOROOOROOROOOROOOOOOOOOOOORRROROORROOROORORROOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOORRORROOOOOOOOOOOOOOOOOOOOOOORRROROOOOROROROOROOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOROOROOROOOROOOOOOOOOOORRROOOOOOOOOOROOOOOROORROOOOOOROOOOOOOORRROORORROOOORROOOROOOROOOOOOOOROOOORROOOOORROOOOOOOROROOOOOORORROOROOOOOOOOOOORRRROORROROOOOOOORROOOOOORROOOORRRROOROOOOOROROOOOOROROOOOROOROOROROOOORORROOOOROORROOROOROOOOOOOOOORROOORORROROOOOORORRROOOOROOOORRORRRROOOOORRRRORROOROORRRROOOOROORRRROORRORRROORORRROOOOOROORRROORROORORORRRRORORORRROROOROOROOORRORRORRORRORROROOROOOOOOROORRORRROROOROORROOORROOOOROOOORRRROOOOOOOOROROOROOOOOROOROROOROOOORRROOOOOOOOOORRRROOOOOOOOORROOOOOROOOOOOOOORROOROOROOOOOOOOOROROOOOOORROORRRROOOOOOOOROROOOOROOOOROOROOROOOOOOOOOROOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOORROROOORROOROOOOOROOOOROOOOOROOROORROOOOOROROOOROOOOOOROOOROROOOOOOOOOOOROOOOOOOORROOROROOOOOOORORRRROORROOOOOOOOOOOOROOROOOROOORROROROOOOOOROOOROROROROROROORROORORRORROOROROOOOOROOOROROROORRRRRROOOOROORROOOROORRRROROOOOORORRROOOOOOROOOOOORORROORRROOROORRRROORROOOOOORRROOOORORORRRORRORRORRROOORROOOORRRORORRROOOROOOORORROORORRROOOOOROROORROOOOOOOROROOORORORRRRRRRRORROORROROOOORROORROROOOOOOOOOROOOROOOOOOOROOOROOOOOROROOOOOOOOOOROROOROOOOROOOOOOOOOOOOORORRROORROOOOORROOROOOOOROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOROROOOROROOORORROOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOROOOOOOOROOROOROOOOROOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOORROOOOOOOOOOOROOOOROROROORROOOROOOOROROOOOOROOOROOOOOOOROOOOROOOOOOOOOOROOORRRROROROOOOOROOOORRRORROORROOOOOOOOOOOOOROROOOOOOOORRRROROOORROOROOOOOOORORRROOROOROOOOORRRRROOOOOOOROOOOOOOROOORROOORROOOROROROROOOOOORORRORROOOOOROORRRRRRROOORRRRROROROOOORRROOOOOROORRROOORORROORRRROOOORROOOOOROORROROROORROOOOROROOOOOOROOOORORROORROROOOOOROROOOOOOOOOOROROOROROORORROOOROORORRROOOROROORROROOOOROOOOORRROROOOORROOOORRORRRORORROOOROOOOOOORRROOORRRROOOOOOOOOOOROOOOOOOOOROOOROOOOROOOROOOOOOOOOOOOOOOROOOOROOOOROROOOOROOOOROOOOOOROOROOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOORROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOROROOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOROROOROOOOOOOOOOOOOOORROOOOOOOROOORROOOOOOROOOOORROOROOOOOROOOOOOOORROOOOOOOORRORRROOOOOOROOOROROROOROOOOORORRRROROROOOROOOROOOROOOOOOOROOOORROORRROOORROORROOORORRROORRORORRRRORROORORROROOROROROOOORROOOOOOORROOROORROOOOOORROOROROOOROROORRORROOOORORRROOOROROORROORRROORRRRRRROOORROORORORRROORRRRORRROROOOOOROROOOROOROOOOORORROOOROROROROROROROOROOORORORRRROOOROOROOROROOROORRROROOOOROROROOOOOORORORROROOOORORROOOOOOOORRRRROOOOOOOOOOROOOOOROOROOOOOROROOOROOOOOOROOOOOOOROOOOOOOOROOOROOOOOOROOOROOOORROOROOOOOOROOOOOOOOOROOOROOOOOOOOOOOOORRORROOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROROOOOOOOOOOOOOOOOORROOOOROOOOOROOROOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROROROOOOOROOOOOOOORROOOOORROOOOOOOOOOOROROOOOOROORROOOOOORROOOOOOROOROORROOOOOOOROOOROOOOOOOROOOOOOOOOROROROOOROOROOORROORRROOOOOOOOOOROOORRROOOORRROROROROROROOORRROROOORORORRROORROROROROORRRROROOORROOORRRRROOOROOORRROOOOROORROROOORORROOOORROOROOOOOROORRROOOOROOOOROOOROOOOOOOOROROROORROOOORROOROOOROOOROOOROOOOOOORROOROOORRRROOOOOOOOROOROOROROOOROROROOROROOOORRROROOOOOOOROOOOORROOOOOOOOOOOOOROOOOOROOOOROORROORROOOROOOROOOOOOROOOOOROOORROOOOOOOOOROROORRROOROOOROOOOOOOOOOOOOOOOROOOROOROOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROROROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOROOOROOOOOOOOOOOOOROOOOOOOROOOROOOOOOOROOOOOOOROOOOOORROOROOOOOROOOOOOOOROOOROROROOOOOOORROOOOOOOOORRROOOOROOROOOOROORROROROORORORROORROORORROOOROOOOOOOOOOROROROOOOOOOROROROROOOROOOOOOORRRRORORROOOOROOOOROORROOOORRROOROOOROOROOROOOOROOORORORRROOOROOROOROOORROOROORRRRORRRORORORROROOOORORROOROOORRRROROOOOOROOOOOOROOOROOOOROOOOOOOOROORORRROOROOROOOOROOROROOORROOOOOORROOOOOOROROOORORRRROORORROOOOROOOROOOROOOORROORROOOOOOOOOROORRROOOORRROOOOOOOOOROOOROORROOOOROOOOOOOOROOORORRROOOROROOOOOROOROROOOOOROROOOROOOOROOOROOROOOORROOOOOOOOROOOOOOOORORORORROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROROROOOOOOROOOOOOOOOORROOROOOOOROOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOROOOOROORROOOOOORRRROOOOOROOOROOOROOROOOOOOOOOOOOOOOROOOORORRROOROOOOOOROOOOOOROOOROROROOOORROOROROORORRROOOOORROOOOOOROOOOORROROOOOROOROOROROOORRROOOOOOOROOROOOOOOOOOROOORRRORRROROOORROOROOOOROROORROROOROOOROOOORROOROOROOORORORRORROROORROOORORRROOOOOOORORROOOROOORRRRORORROROOOROOORRORRROOOROOOOORORROOORRRORROOOOOOORROROOOROROORRRORORRORROOOOROOROOORROOOOROOROOOOORORRRROOOOOOROOROROROROROOOROOOOOOOOOROOOOOROOROOOROROOOROROOOOOOORROOOOOOOOOOOROOOROOOOOOROORRRORRROOOROOOOROOOOOOROOOOOOOOOOOOROOOOOOOROOOOOROOOROOOOOOOROOOOORROOOOOOOOOOOOROOOOROROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOROOOROOOOOROOROOOOOROOOROOOOOOROOOOOOOOOOROOROOOOOOOOOOROOOOOOOOROOOOOROOROOOORROOOOOOOROOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOROOOORROOOOOORROROOROOORROROOOROOOOOOOOOOOROROOOROOOOOOOOOROOOORRORROOOROROOOOOOOOOOOROOOOOOOROORROOOOOROOORROROROOOOROORROORORRORRRROROOOROROROROOROOOOOOOORORORRORRRROORRROOORRORRRRROOOOOOOOOROOROOOORROROORORORROOORRORORORRRROOOORRORROOOOORRROOROOOOOOOOROOOOOROOORROOOORROOOOOORROOOOORORORRRRROROOORRRRROOOOOOOOROOORORRORRRRROOORORRRROROOOROOOOOROOROOOORORORROOROROOROROROOOOOOOOOOOROOOOOOOOOROOOOROOOOROOOOOOOOROROOOOOOOOROOOOOORROORROOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOORROOOOOOOOROOOOOOOOOOROOROROROOROOOOOOOOOOOOOOOOOORRORORROORROOOOOOOOORROOOOROOROORROORROOROOOOOROROOROOROROROOOOOOOOOOROOORRROOOOROOROOOORROOOROROOOOOOOOOORROOOROOROORROROROOOOOOOOROOORORRRRROROOOROORRRROROORROORRORRROOROOOOOOROROORROROORORROORROORRRROOROROOROOOROORROOOOORROROORROOROOOORORORRROOORORRROROOOOROOOORRRORORROORORRROORORROOOROOROOOORRRROOORRRORRRORRRORRORORROOOORRORROOROOROROOROROOOOROOROROOROORRRORRORORORROOROOOOOROOOOOOOOROORRRROOORROOROOORRRORROROROROOOOOROROOORROOROROORROOROOOOOOOROOROOOOOROOOOOROOOOOROOROOROOORROROROOOOROOOOOOOOROORROOOOOROOROOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOROOOROOOROOOOOOOROOOOOROOOOOOOOORROROOOOOOOOROOROOORROOOOOOOOOOOROOORROROOOOOOOOOOOORORROOOOOOROOOROOROOORRROROOOOOOROOOORROROOORRROROORROROOROOOORROOORRROOOOOOOROOOROOOROOORROROOOOOOOOORRRRRRROOROOOOROROOOORROOOROOORORORROROORORRROOOROROROOOOORROORORRROORROOORRORRORRORROROROORRRORRROOROORRRORROROOOOROOOOOOOOOOOORROROOORORROORRORROORROOORRORORRROOORRRORROROOOOOROOOROOROOORRORROROOOROOOOOOOROOOOROOOROOOOOOOOORROOORORROOOROOOOOOOROROROOOOOOOROOOOOOROOROROORROOOOOROOOOOOOOOOOROROOOOOOORROOROOOOROOOOOROOOROOOOOOOOOOOROOOOOOROOOOROROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROROOORROOROOOOOOOOOOROROROOOROOOOOOOOOOOOOOOOOOORORORRRROOOOOOOOOROOOOOROROROROROOOOOOROOOOOORROROROOROOOOOROOROOOOORORRROOOOROOOOOOOOOROROOROOOOROOROOOROROOOOOROORROOOROOROORRROORROOOOORRRROOOOOOOROORROORRROOROROOORROOOORRRORRORRROOOOOROROORROOOORRROROROOROOOROROOOORRORRRROOOOOROOROOOOROOOOOOROOOOOROORRORORROROROOORORROORROOOROOOOROOOROOROOOOROROROOOROROOOORRROORORRRRRORRROOORORRORROOOOOROOORROOROOOOOOORRROOOOOOOROOORORROOORROOROROOOOOROROOOROOOORROOOOOOORRORROROROOORROOOROOOOOOOOOOOROOOOOOOOOOOOOORROORROROOOOOOOOOOOOORRORROOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOROOOROROOOOOOOOROOOOOOROROROOOOROROOOROOOROOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOORROOROROORROOOOORROOOOROROOOROOROOOORRRORROOORRROROROROOOOOOORRROOOOOOORRROORRROROOOOOOORRROOOROROORORRORRORROOOOORORROOROOOROOOORORRRRRROOOOOROROOOORORRRRROOOOOOOOOORROOROROORROOROORROORORRRORROORORRRRRROORROOROROORRORRRORROORRRORROROOROOOORRROOROOORORRROOROOORROOOOOORRROOROROOOOORROOROOROOROROOORRROROOOROOOOOROOOOOORORORROOOOOOOOOOOOORRROOROORROOROOOOOOROORROOROOOOROOROOORROOOOROOOOOOOORRROOOOOOOOOOROOOOORORROOOOROOOOOOORORROROROOROOOOOOROOOOOORROOOOOOOOROOOROORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOROOROOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOROOOORRROROOOOOORROROROOOOOROOOOOOOOOOOOOOOROOOOOROOOOOROOORRROOOOOOOROOOOOROOOROOOOORROOOOOOOROORORRROROORRROROOOOROOORROOOOROOOOOOOOOOOOOOOOOOORORRROOROROOORROOORRROORORORORORORROOOOROOOOOOROROOORROOORORROROOOOOROORRRRRRROOOOOROOOOOOOROROROROOOOROOROOROORRRRROOOOROOOOORRORROOROOROOORROROOORORRROORROROOOORRROOROOOOOORROOOROOOOOOROOOOROOOOOROROOORROOOOOROOORORRORORROOOROROOOOOROROOOOORRRROOROOROOOOOOROOOOORROOOOROOOOOOROOOOROOOROOOROOOROOOROOORROOOROORORRROROROOROOROOOOROOOOOROOOOROROORROOOOOOOOOROOOOOOOORRROOORROOOOOOROROOOOOOOROOOOOROROOOOROOOOOOOOOOROOOOOOOOOORROROOROOROOOOOOOOOOOROOOROOORROOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOROOOOOOROOOOOOOOOOOOROROOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOORROOROORROOROOOROOORROOOOOOOOOOOOOOROOROROORROOOOOOOROOOORROOOOOOOOOOOROOOROOROORORRRROOOOOOORROOROOROROORROOROOOOOOORROOOOORRRORRROORROOORROOORORROOOROROORRRRORROROROROORROOORROOOORORROOROOOOOOOOORORORROOOORROORRROROOROOOROORRRRRORROOROORROOROROOROROORRRORROOOROOROROROORORRORORORORROOOROOOORROROORROOORRORRORROOOOOOORORORROOOOOORROOOOROROORROOORORROOOOOOOROROOORROOOOOOORROOOOOOROORROOOROROROOOOORROORRROROOOOOROOOOOORROOOOOOROOROOOOOOOOROOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOORORROOOROROROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOORROOOOOOOROOOOOOROOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORRROOOOOOOOOOOOOOOORROOOOROROOOOOOROOOROOOOROROOOOOOROOOOOOOOOOOOROOOOORRRROOOROROOOOOOROOOOOOOOOOROOROORROOOORROOOOOOROOOOOOORROOROORROROORROROOOORROOORROORRROOROOOROOORORROOOOOOROOOROOOOORORROROOOROOOORROOOOOROROOOOOOOOROROOOORORORORRRORROROOROOOOORROOROOOROOOORROOOOOORROOROOROOOROORRRROOOOORRROOORORRROOOROOROOOROORRRRRRORROOROOORRROOORORRROOROORORROROROOOOOOOOROOOOOOOROOROOOROROOOOOROOROROORORRRRORRRROROROROROOORRROOOOOROROROOOORROOROROOOOROOROOOROOOROOOOOORRROROOOROOOOOROOOOOROOOOOOOOROOOOROOOOOOOROOROOROROOOROOORRROOORROORRROOROOOOOOOOOROROOROOROOOROOOOOOOOOOOROOOOOOOROOOOROOROROOOROROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOROOOOOOOOOORROOOROOORROROOOOORROOOOROOOOROOOOOOOOOROOOOOORROROOOOOOOOOOOROOOOROOOOOORRORROOOROOORRRORORROROORRRROOOOOOOOOOROOOOOOOOOOOOOOORRORRROORROOORRRRROOROOOROORROOROOROOOOOOROOOOOOOROROROOORRROORRORROOOROROROOOOORROOOOOOOOOROORROROORORROOOORRORROROROROOOORRRRROOOOOROOOORROORROORORRRORRORRROOOOOOORROOOOOOOORROOORORRROOOORROOOORROORORORROROORRORORROOOOORRROOOROORROOOROOOOOROROORRROOROOOOOOROORORRRROOOOOOROOORORORROOOOOOOROROOROROORROROOORORROROOROROOORROOROOOOOOOROOOOORROOROOOOORRORROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOROOOOOOOOOOROOROOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOORROOOOOROOOROOOOOROOOOOOOOOOOOOOROOOOOOROOROROOOOOOOORROOOOOROORROOORROOOROOOOOOOOOOOOOOROOOOOOROROOROOOOROOORORRORROROOORROROOOOORORROORRROOROOOOOORRROORROOOORRRRRRRROROROOORROOOROOOROOOOOOOORRORRROROOOROOROOROOOOOOOORRROORROOROORRRRRROORROROOOORRRRRRROORORRROOOROORROOOROROROOROORROROOOOOOOOROORRROOOOROROOOORORROROROOROOOORORROORROORRROROOOOOROOOOOOORROOOOOOOORROROOOOOORRRRRROOOOOROOOOOORROROOOOORROOOROOOOOROOOROOOROROROOOORRRROROOOOOOOOOOOOOROROOOOOOOOROROOOOOOORROOROOOOORROOOOOROOROOOROROOOOOOOORROOOOROOOOOROOOORRROOROOOOOOOOOOROOROOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOROOOOROROOOOOROOOOOOOROOROOOROROOOOOOROOOOOROROOROOROOOOOOOOROOOROOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOORROROOORROOOOOOORROROOOOOOOORRORRROOROORROOROOOOROOOROOOOOOOROORORRORRROOOOOORROOOROROOOORROOROOOOROOROOORRRORORRROROROOORORORORRORROOOOORROOROOROOOOOOORROOORROOOOOROORROOOOROROROOROROOOOOOORORROORROORRRRRORRRROOOORROOORORROROROOORORROORRORROOORROOOORRORRROROOROORRROOOROOOOROOROOOOOOROOOOOORORROOORORRROOROORORRROOOOOOOROOOOOOROOROROOROROOOOROOOOROOOOOROORROOROORRRROROOOOOOROORROOORROOROOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOROOOOROOOOOORRROOOOOROROOOROOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROORROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOROOOOROROOOOOOOORRROOOROORROOOOROOROOROOROOOOROOOROROOOOOOROROOOOOOOOOROOOOOROOOOOOOORROOROOROOOORRROOORROORROOOORORROOOORROROOOROOOOOOOROOROROOORROOOROOOOOOOOOORROOORORRROOOOOROROROOORROOORORORRRRRRRORROROORRRRROORORRRRRRRORRRROROROOOOROOOORORORORROROOOROORRROOORRROROOOOOOOOORRRRROOOOOOROOORROOOOOORORROOOOROORRRROROOROOOROOOOOORRRRRORRRROOORRORROOOOOOOOOROOOORORROROOOOOROOOORORORROOOOOOROROOROORROOORORROOOROORROORROOOOOOOOOORROOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOROOOROOOOORROOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROROOOOOOROOOOOROOOOOOOOOOOROROOOOOROOOOOROOOORORORROOROOOOROOOOOROOOOROOOOROOOOOOOOOORRROOOOROORROOOOOOOOOROOOROOOOOORROOOOOOOOOROOOOOOOROROROOORORROOOOROOOOOOOOROOOOROOOOOOOORORROOROOORROROROOORROROROROOROOOORORROOROOOOOOOROOOORROOOROOORORRRRROORROORROOOROROOOROROROOOROOOROORRROROROORRRRORORROOROOOROOOOROOOOOORROOROORORROROOORROROOORRRROORORROOROOORROOOOOROOORRROOOROOROORORRROROOROOOOOOOOROOOORROOOOORROROOOOOOOROORORORROOOORORROROOOROROOOOROOROOORORORRROOROOORROOOROROOOOOOROOROROROOOROOOORROOOOOOOOROOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOORROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOROOOROOOROOOOOOOROOOOROOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOROOROOROROOOOROORRROOOOROOOORORORROOOOOOROOROOROOOORROOOORROOROOOROROROOOORORROOOOROROOOOORROORRROROOROOOOROOOOOOOROOORRRRORROORRORROOOORORROOORROOOORRRROROROOOROORORORRORROROOOROOOOOOROROORROOOROROOOORORRORRROOOROOROOROOROOROOOORRROOOOOOOOROORRROOROOOOROROROOOOORORORROORRORROOOORROROOOORROOROOOOOOOOOROOOORRORORROOORROOROOOOOOOOOOOOOOROROROOROOOOOROOROOORROOOOORROROROOOOOOOROOROROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOORROOOOOOOOROOOOOOOOOOOORRRROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOROOOROROROOOROROORROOOOOOOOOOROOOOOOOROOOOROORORROOOOROROOOORRROOROORORORROOOOOOOOROOOOOOROORRROOOOOOORORROOOOOORROOORRORRROROROOOROOROOROROROORROOOROOROOORROOOOOOROROROOOOOROOROORRORROOOOOROOORROOOOROROORRRROORROOOORORORROOOOOOORORROOOOROOOROROOOOOROOOOROOOOROORROROORRRORRROORORROOOROOOOOOOORORRROOORROROOROORROOOOOOOOOORROOOOOROROORORRORRRRORROROROOORORORROOORRRROOOOOORORROOOOORRRRORRRROOOOOOROOOOOROOOROOOOOOOOROOROORROORRROOOOOOOROOORRROOORRROOOOOOOOOOOOOROOROROOROOOOOROOROOOOOOOOROOOROORROOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOROOROOOROOOOORROOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOROROOOOOORROROOOOOOOROOOOOOOOOOORORROOOOOOOOOOOOOROOOOROOORROOOOOOOOROOOOORRROOOOROOOOORROROOOOROOROROROOROOOOORRROOOORROOORRROOOOROOORROOOOOOOOOROOOOOOOOOOROOORORRRROOOOROOOROROOROOOROROORRRRRROROORRRRORROOOOOOOOROROOOOROORRRORROOORRORRROROOOOOORRROOOOOOOORRROOOOROROOROOORRORRRRROOOOOOOOOOORROROROORRRROOOOOOROOOOROROOOROOORROOORORROROOORRRROROROOOROROROOOOOOOROOROROOOOOOOOOOOOOOROROOROROOOOROOROROROOROOORROOOOROROORROOOROROOOOOROORRRRRROOOOOOOOOROROOROOROOOOOOOOROOOOOROROORORROOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOROOOOOOOORROOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOORROOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOROOROROOOROOOOROOROOOOOOOOOOOORORRORRROROOOROOOOROOOOROOROOORRRORROORROOOOOROOOOOOOORRRROROROOOOORROROROOOOROOOOOROOORORRROOROROROORRROOOOOOOOOROROOROROOOROOROOOOOOOOOOORORORRRORROORRORROOORRRORRRROOOROOORRRORROROOOOORROROOOOOROOOOOOROOROROROOOOOOOOOOOOOOOOOORORRRRROOROROORRROOOROORRROOOORRRROROORRRROOOOOOROOOROOORORRROORORORROOROOOOOORRROOOOROOORROOOOOOOORRRRRROOOOOOOOOROOROOROORROORORROOOOOOOOOROOOOOOOOORRORROOOOROOOOOOOOOOORORROOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOROOOOOOOOROOOOOROOOOROOOOOOOOOOOROOOOOOROOOOROOROOORROOOROOOOOOOROROOOOROOOOROOROOROOORORRROOOROOROOOROOOOOOOOORROOOOOOOORROORROOOOOROOORROOOROOOOROOROOROROOOORORROOOROOOOOOOROROROOOOOROOOORRRRROOOOOOOOOOROOORRROOOOOOOOOROOROOROROROROOOORORRROOOOOORORROROROOOOROOOOROOOOOOOOOOORRORRROOOOOOOOOORROORRRRROOROOOOOOOOOOOOORRROOOORRRRRORORROROOOROOROROROORORRORROOOROOOROORORROOROOOOOROORORRORORORRRROROROOROOOOROORROOOOROOROROORROOOOOOOROROOOOROOOOOOOOORRORROOROROOOROOOOORROROOOOOOOOORRORORROROROROOOOROOOOOOOOOOORRROOROORRRORORROOOOOOOORROROOROORROROOOOOOROOROROROOOROOOORRROOROOOOOOORROOOOROORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOROROOOOROOOOOROOOOOOOOOROOOOORRROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROORROOOOOOOROOOOROOOOROOOORRROROOROOROOOOOOOOOOORRROOOOOROOROOORROOROORORROOOOOOOOROOOOORRRORRRROOOOROOOOOOOOOOROOOORORRORRORRORROOORROOOOOOOROROOOROORORRRROROOOROORRRORORORROOOOOOORROOROROOOOORROOOOOOROORORORRRORRROOROROOORRRROOOOROOOOROORRORORRROORRROOOROOOOROORORROOORROROOOOROOOROOOOOROOOOOOROOOOROOORRROROOOROOORROOOOOOOOORRROORRRROOOORROROOORROOROOOROORRROOOROOORRROOOOROOOORRORORROROOORROOOROROOOOORROOOROOOOOORROOOOORORRRRROOOOROOOOOROOROROOOORROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOROOOOROOOOOOOORRROOOOOOOORROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOROOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOORROOOOOOOOOORRROOOOOOOOROOOOOROOROOOOOORORROORROOROOROOOORROOOOOOOOOROOOOOOOOOOOOOOOOOROORORROOOROROOORROOOOOOOOROOOOOROOOORORROORRROROORRROOOOOOOOOOORROOOOOOOOOOOOOORORROORROOORORROOOOOOORRROOOROOOOOOROOORRROOOOOROORRROOROROOOORRROROOOORRROOROROOROOORRRRRRRORROROROROOORORROOOROOOOORORROROROOOROROORROOOOOROOORORRRRORRRRROOOORORORORRRROROOOROROOOROOROOOOOOOROROROOOOROOOOOROROROOOORRROOORRROOORORRROOOROROROOOOOOOOOROOOOOROOROOOORROROROOROROROROOOOOOOOROOOOOOOOOOOOOOROORRORROROOOOOOOOOOOROOOROROOOOOROOOOORRRROOOORROOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORRROOOROOOOOOOOOOOOOROORROROOOROOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOORROOOOROROOOOOROOOOOOOOORORRRORRORRROORRROOOROOOROOOOOROOOROOROORROROOROOOOOOOOORROOROOOOOOOOOROOOROOROORROROROOOOOOOOROOORRRRRORROOOROOOROROOROROOOOORROOROOOROORORRROORORORRORROOORROOORORORRRRORRRRROOOOOORROOOORORRRROOOOOOOORRORROOOROORORROORRORORRROOROROOROOORORRROOORROOROOOOOOOROOOOORROROOORROORORRROOROROROROORRROOOROOROOOROOROOOOOORRORRROOROOROOOROOOOROROROOOOOROOROOROOOOROOORROOOOOOROOROOOOORROOROROOOOROROOOROOROOOOORRROOOORROROOORROOROOOROOOROOOOROROOOOOORORORROOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOROOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROROOROOOOOOOOOROOOOOOOOOROROOROOOROOOOOOOOOOOOOOOROOOOOOOOOORROOROOOOOOOOOOOOROOROOOROOOROOOOROORROOOOOOOOOROOROROOOOORROOOOOOORROOOROOOOORRORROOOOOOOOOOOOOOROORRORRRRORRROORRROOORORROROOORRORORROOROOROROORRRROOROOORRRORROROOOROOORRRROOROOROORORRORROOOORROOORRRROORRRORROROROOOOOOOOOOOROROOOROROROOOOOORROOOOOORROOORROOOROOOORORRORRRRORROOORRORRORRRROROOROOROROORRRORORORORROROORRRROOOOROOOOOOOOROROOOORRRORROOROOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOROORRRROOOOROOOROOOOROOORROOOROOOOOOOOOOOOORRRROOOOOOROOORROOOOOROOROOOOOOROOOROOOOROOOOROROOORRRORORORRRROOOOOROROOOOOOROOROOROOROOOOOOOOOOOROOROOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOROOOROOOOOOOOOOROOOOROOROOOOORROOOROROOOOOOOORROOOOOOOOOOOOOOOROOOOOROROROOOOOOOOROORRRORRRRROOOOOOOOROOROOORRORRRORROOOROOROROOOOROOOOOOOOORRORROOOOOOOOOOOOORRRROOROOOOOOOORROOOOORORORORORRORORRRROORRRROOROOOORORROROROROOOROORROROROORROOOROORORRRRRORORORROOOOOROROOORORORRORRORROOOOROOOOORRRROORRRRRROROORORRRRROOROOORRRROOORORRRROROROOOORRRRRROOOOOROROOROROROOOOOOROORORRRROOROOROOROROOOROOOOOORORROORRROOOOOOOORORROOOOOOOORORORROROOROOORROOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOORROOOROOOOOOROOOOOROOOOORROOOOROROOOOOOOOOOOOOROOROOOROOOOOROROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOORRROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOORROORROROOOOOOOOOROROOOOOOROOOOOOOOOROOOROOROROOOOOOROOOOOOOROROROOORRROOOOOROOOOROOOOOOOOROOOOOOOROOOOORRRROOOROOROOOROROROROORROOOROOOOOOROOORROORRROOOOROROOROORROOOROROOORRRORROROOOOOROOROORROOORORORROROOOOOOOOOOORORORRRORORRROOOROROOOOROOOORRRRROOOOROROROORRORROOOOOORRORROROROROOOORROOROOROOOOROOOOORROOROOROORROROOOORROROOOOOOROROORROORRROROORROOOOOOOROOORRRORORRORORROROOOOOOROOORORORORRROOOROOROOOOROOROOOOOOOOOOOROOOOOOORORORROOOOOOOOOOOROOROROOROOOOOOOOOOORRROOOROOROOOOORRORROORROROOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOROROOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOROROOORROOOOOOROOOOOOOOOOOOOROROROOOROOOOOOOOOOOROOOOOOOROOOOOOOOOORROOOOOOOROOOORRROOOORROROOOOOROOOOOOOOOOROOORROOOOORORROROROROOOOOORRRORRORROORRORRORORRRRROROROOOOOOOOOOROOORORRORRROOOOORRORRRRROOOOOOOOOOOOROORROOOOOOOOOOOOROOOROOORRORRORRROORRROORROORRRROOROROOOROORORRROOORRRORROOOOOOROOROROOROROORRORORRRORROORRROOOOROOOORROOOROORROORORROOOOROOOOORORRRRROOOROROOORORRRRRORROORORORROROORROOROOOOROORROOROOOOROROOOOOOROROOOROOOOROOROOORRRRROROROROOROOOROOOOOROORROOOOOOOOOOROORRROOROROOOROOOORROOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROORRORORROOOROOOOOOOORROOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOORROOOOOOOOOROOOOOOOOOOROOOOOOOROOOOORROOOOOOORROOOOORROOOROROROOOOOOOOROOOOOOOORRORROOOOOOORORORRROOOROOOORRROOROOORRROOOOOROOOOOROOROOOOOROOOOORROROOROORROOOOOOROROROOOROROOOOOOOROORRROOOOOOORRORROORORRRRRORROROOOOOOROORROOOROOORRORROOOOOOOORRRRRROOROROROROOROOORROOORRROOORROOORROOOOOOOORRRROORRRRORRROOOROOOOROOORORRROROORRRRRRORRORRRRORROOORRROOORROOROORRRROROOOOOOORROOOOOROOOOOOORRORROOORROOROOOOOORORROROOROOOORORROOROOOOOOOORROROROORRRROOROROOORROROOOORROROOOOOORRROROOOOORROOOOOROROROOROOORROOROOOOROROOORROOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOROOOOOROOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOROOOOOOOOROOROOROOOOOOROOORROOOOOROOOROROOOOROOROOOOROOOOOOROROOROOOOOOOROORROROOROORROOOOOROROOOOOOOOOOROORROOROOOOOOOORROOOOOROOROROROROOROOOOOOOOROROROOOOROROOOOORRORORORORROOOOORROROROORORROOOOROOOOOROORRRROORORROOOROORORRRRRORROORORROOROOOOROROORRRROOOROOROOOOOORRROOOOOROORRRORROROROOROROORORRORORRRROOOOROOORROOORROOOOOOROOORORRRROROOROOOORORROOOOROOOOROOROOROOOOROOOOOOOROOOROORRROOOOOOROOOOOOOROOORROROOROOORORROOORROOOROOROROROOROROOOOOOOROROROOROOROROOOOOOOOOROORROOOOOOOROOOOOORROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOROORRROOOOOOOOOOOOROOORORROOOOOOOOOROOOROOORRORORROOOOROOROOOROOOOOROORORORRRRRROOOROOOOOOROOOOOOOORRORRORROOROOOROOOOOOOROOORRROORORROOORRROOOROOOOOOOOOORROROOOORROROORRROOROOROOOOOROOROOOROOOOOOOORRORROOOROOOOROOOOROROOOROOORORROROOOROOORORORROORRROROOOROOOOOOROOOOORORORORROOROOOOOORORRORROROOOROROOROORRORROOROOROOOOROORROOROROOOOORRORRROROROORROOOROOOOOOOOOROOROOOORROORRRORROROORORORRROORORRRORROOROOROOOOOOOOOOOROOROOOOOOROROOOOOOOORROROROROOOOOOROROORROOORRROOROOROOOOORROOOORROORROOOOOOOROORROOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOROROROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOORORROOOOOOOOOOOROOROOOOOOOOOORROROROROOOOOOROOOOOOOOROOOOOOOOROOOOROOROOOOORRROOOOOOROOORROOOOROROROOOOORRORROOOOOROOOOOOOOOOROOOOOOOOOOORRRROOOORORORORORROOOOORROOROOORORROOORROROOOOORORROOROROORORRORROOROORRROOROORROROOOOORROOORROROROOROOOROOOOOORROOOROOOORRORORRROOOROORORRROROROOORRRORRROOROOORORRROOROOOOOROOOORROORRRROROOORROOROROORRRRRROOOOOROROORRRROOROOOROROORORRRRRRORRRRRORROROOROROORRORRROOOOROOOOORRROROOOOOOOOORRRORROROOROROORORROROORRROOOOOOOOOOOORORRORROROOOOOOROOOOORROROOOOOOOOOOOOOOROOOOOOOOOORROOOOROOORROOOOROOROOOOOOOROOOROOOOROOOOROOOOROROOROOOOROOOOOROOOOOROROOOOOOOOROOROOOOOOOOROOOOOROOOOROOOOOOOOOOOROOOOOOOOOOROOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOORROOOOOOOROOOOORROOROOROROOOOOROOOOOOOOOOOROOOOOOOOOOOOOROROOOOOROROROORROOOOOOOOOROOOOOOOOROOORRROROOOOOROOOOOOOOROOOROROOROOROOOORRRORRROORRORROOOOORROORORROOROOOOOOOOROOOOOOOOROROOORRORRROROOORORROOROROOOOOROROOOOOOROORRROOOOROROROOOROORROROORORORRRRROORRRROOOROOOOOROORROOROROORORROORORROORORROROOOORRORRRRORRORORROOOROOOROOORROROOROOROORRRROOOOOOOOOOOROOOORROROROOOOOOOOOROOORRRRRRORROOROORROROOORRRORROOOORORROOROOOOOOROOOOOROOOOOOOOOOOOOOORROOOOOOROOROOOROOOOROOOOORRROOOROROROROOROOOOOOOOOOOOROOOOOOOROORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOORROOROOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOORORROOOOOOOOOOOOOOOROOOROOOROOOOOOOOROROOOOORROOOROROROOOOOORROROROOROORRROOROOOOORROROOROROOOOOOROOOOORROOORRROOROROROOOOOOROOOORORRORRROOOOOOOROOOOORORROOOOOOORRRORRROOOOORROORROOOOOOOROOOOROORRRORROOOORRROROOORORORRROORRROOOORROOOOROOOORRROROOORROOOOOROROOOOOROROOROORROOROOOOOOOOOROOOORROOORORORROORRRROROOOOROROOORROOORORRRRRROORRRRRRROROOORROOROOOOROOROROOROORORRROOOOOROOOORRROOROOOOROOROOROOOORRROOORRROROOROROROROROORROOOROOROOOOOOORROOROROOOROROORORROROOOOOROOOOOROOOOOOOROOROOOOOOOOOOOOOOOOORROOOOROROOOOROOOOOOOOOROOOOOOOOOOOOROOOROOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOROOOORRROOOROROROOORROOOROOOOOOOOROOROOOOOOROOROOOOORORROOOOOOROOOROOOOROOROROOOORORROROROOOROOORORROOOOOOORRORROOROOROOROORRROROROROOOOOOOOOOOOOOOOOOOROOOOORROROOOOOOROROOROOOOROROOOOOOOOROROOROROOOOROORROOOOROORORRROOOORORRRRRROOROOOOROROORRROORORRRORRROOROORORORORRROORORRROORROOROORRROROOOROOOROOOOOROROOOOORORROROOOOOOROOOOOOORRRRROORRRRORROOORORORROROOORROROROOOROOOOROROOORROOROOROOOOOORROOROROOOOOOOOOROORORROOORROORRROORORROOOOROOROOOOORROOOOOOROOOOOOROOROOOORROROOROOROOOOOOOOOOOOROOOOORRORORROOROOROOOOOOOOROOOROOOOOOOOOOOOORROOOOOOROOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOORROOOROROOOOOOOORORORROOOROOOROOROOOOOROOOROROOOOOOOORORROOOOOROOOOOROOOOOOOORRROOOROOOROOORROOOOOOORROOOROOROOOOOOORROROOOROOOROORROOOOOOROOORRROOOROORRRROOOOOROOOROROOROORRROORRROOROOROOOROROROORROOORROOOOROOOROOROOOROOOOORROROROOROOORORORORRRROOROROOORORROORROORRROOOOOROORRORROROROROOROORORORRROOOROOORRRORRRRRORORROOOROORORROOOOROOOOOORROORROOORORRORRRORRRORROOOROOOOOOOROOOROOOOOOOOOOOOOOOROOOOORORORROOROROOORROOOOOOOOOROROROOOOOOROOROOORORROOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOORROOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOROOOOOOROOOOOOOOOOOROOOOOOROROOROOOROOOOOROOOROOROOOROOOOOROOOORROOOOOROOOOROOOOROROOOOOOROOOOROROROROROOORROOOOOOROOOROROROOOOOOORORROORROOOOROORRRRRORRRROOOOROORORRRRRRORORROOOOOOORRORRROOOROOOOORRRRRORROOOROOOOOOROROOORROOROORORROOORROOORORORRRRRORRRRORORRORROROORRRROROORRRORROOROOROROOOOROOROORORRRORROROROOOORORROORORROOROOOROORROOROROOOROOOOOOROORROORRROROORRROOROOOOOROOORORRRRROROOOROOORORORROORROOOORRRORROOOOROROOORORRRROORORRROOOOOOROROOOOROROOROOOROOROOROOROOOROOOOOOOOOOOOOOOOROOROOORROROOOOOOOOOROOOOROOOOOOOOOROOROOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOORROOOROOOOROOOOOOOOROOOOOOOROOOROROOOOOOOOROROOOORROOOOOROOROORROOORROOOOOOOOOOOOROOOOOROOROOOROOOOOROOORROOOOOOOORORROOOOOOROROOOOOOROOOOROOOOOORROROOROOOROORROOORROOOOORRORORRORROOOOOROOOOOOOOOOORRRROROOOOOOOROOORROOROOROROOOOOROROROOOOROOOOOROOOOORRORROORROORORRRORRROOOOOOORRRORROROOOOOROROORROOOORORORORRORRROORRORRROOOOROROOOOORORRROROOOOOOROROOROOOROOROROROOOROOOROOOORRROROOOROOOOROORROROOROROOROOROORRRROOROOOOOROOOOOOORORRROOOOROOORORRROOORRRRROOOROROOOORROOOOOOROOROOOOOOOOOOOOOROOOORROROORRORRRRROOOOOOOOOROOOOOOROOOOOROOOOOOOROOORROOOOOOORRROOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOORROOOOROOOOOROOOOOOOOOROOOOOOOOOOORRRROOOOOOROOOOOOOOROOOOOROOOOOOOOOOROOOROOOROORRRROOOORRROOOOOOROOROOOOORROROORROROOOOOOOOOOOOOOORROOOOROORORROOROOORRROOROOOORROROORROOOOOOOOORROORROOOROOOROOOORROROOOROOROOROORORRORROOOOROOROORROOROOOOROROOOOOOOOOOROOORROOOORROROROORRRROOOOROROOOOROORROOOOOROOOROOORRROROROORRRORRRROOROOROORROORRROROOORROROROOROOORRRRRRORORROORROROORROROOOOOOOOOOOOOOOOROOOROROOOORRROOOORRROOOROOOORROROOROOROOOOOOOOOOOOORORORORORRROROOOROROOOOOOOOROOOOROOROOOOROROOOROOOORROOOOOOORROOOOOOOOROOOOORROOOOOOOOOOROOOROOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOORROROOOOOOOOOOOOROOOOOOOOROOOOOOOOROROOOOOOROOOOOOOOOOROROOOROOOOOROOOORRORORRROOOROOOOORRROOROROOOOOOOOORRRRROOORRROOOOOOROOOOOORROORROROOOOORROOOOOOOROOOROROOROOORROROROROROROOROOORORRROROOOORROOOROOOROOOOOROOOROOOOOOROROOROROOOOOOOROROROROOOOOROOOORORORRROOOORROOOOROOROROROOORRORRORRORROOORROOOROORORRORORRROOROROOROOROOROROOORROROOOOOOOOOORROOORROROOOOORRRORROOOOOOOOOORROROOOROOORROOOORRORROROROROOROOROORROOROOOORROOOOOOROOOROROROOROORROOROOOOOOOOROOOOOOORROORROOOROROOOOOORROOROOOOOOROOOOOOROOROOROOOOOOOOROOOOOOOOOOROOOOORROROOOOROOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOROROOOOOORROOOOOOOOOOOOOROOOROOOROOOORRRRROOOOOOOOOOOROROOOOOROOOOOROORROROOROOOOROOOOOOROOOOORRRORRRORROOOOORRROOOOROOROROROORROOROOOOOOOROORRRROORORROOOOOOOORROOROOORROOOROOROORORRROROROOOOOOORRRORRORRORROOOOOOROROOORRRRROORRRRRROOOROOOORORROORROOOORRORORRRROOORROOOOROROORRROORROORROROROOROOOROROROOOROOOORRROOOOROROOOOROROOOOOOORROOORORRRORROROOROOOOOORROROROORROOROOOOOOORRROOOOROOOOROROOOOOOOOROOOORORRORRRRORRORROOROROOOORROOOOOOROOOOORROORRORORROOOROORROROOOOOROOOOOOOOOROOOOROROOOOORRRROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOROOOROOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOROOOOOORROOOOOOOOROOOOOOOOROOOOOOROROOROOOROOOROROOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOROOROOOORRROOOOROOOOORORORROOOOROOROOOOOOOOOOROOOOOROROOROORROROOOROROORROOOOOOOOROORRROOOOOOORORROROOOORROROROOOOOOOORROOOOOOOOOOOORRROOOOORROOOORROOROROROOOROORRRROOOORRORROROORORORORRRROOOOOROOOROOROROROOOOOOOROOOOOOOROROOOOORRRORORRRRROROOORRRRORORROROORORROOOROORORROOOOROOROOOROOOOOOOOORRORROOOOOORORROOROOROORROOOOROROROOOROROROOOOROOORRROROOOOORROOORRRROOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOORROROOROOOOOOORRROOOOOROOROROROOOORROOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOROOROOROOOROOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROROOOOOROOOROOOROOOOOROOOROOOOOOOOOOOROROROOOOOROROOROOOOOROROOOROROOOOOOROORROOOORORROROOROOOOORORRRROROOOOOOOROOROOOROOROROOOOOROOOORORROOOORRORROORROROOOROOOOOORROORRRRORROOORRORRROOOORROROROROOROOOORORROORRRORRRROORRORRORRRRROOOORROROOOOORROROOROOORROOROOROOOOOOOROROOOOROOOOROOOOOOROROROROROOOROOOOOOOOOOOORROOORROROOROOROOORROOOOROROOOOOOROOROOOOROOOOOOOOOOROROORROOOOOOOROOOOOOROOROROROOOROOOOROOOORORROOOOOROOOOOROROOOOOOOOOOORROOOOROROOOOOROOROOOROORROOOROOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOORROOOOOOOOOOOOOORRROOOOOROOORROOROOOOOOOORROOOOOOOOOOROOOOROOOOOROOOOOOOOROOOROROOROOOORROOOOOOORROOOOOOOROOOORROROROORORROOROORORRROOOROORROROORROOOROOOROOORORORRRORROORORRROOOOROROOOOROROORROOOOOORRORRROROORROROOOOROOORROOORRRROROOORROOROOROOOROOOOOOOOOOOROOOROOOOOROOOOROROOOOOROORRRORRRROROROORRORORROORROOOOORROOOOOOOORRRRRRRORROROOOOROOOOROROOOOORROOOROORROORROOOOOROOOROROROOOROOOROROOOOROOROORROOOOOROOOORROOOORRORORORROOOOOOROOOROORRORROROROOOOOORROOOORORROOOOOROOROOOROOOROOOOOROOOOOOOROOOOOOOROOOOOOOORROROOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOROOOOOOOOROOROROOOOOROOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROROOORROOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROORORRORORORROOOOOOOROOROOOOOROOOOOOOOOOROOROORROOOROOROROROOOOROOOROOOOORRROROOROOORORROOORRRROOOOOROOOOORROOOOROOORROOOROOORORROOOORROOOORROOOROROOORRRRROOOOORORROOOOROORROOROOOOOROORROOORORRORRROORRRROOROOROROORORRROROOROROORORROOOOOORRROOROOOORROOOROOROOOOOOOORRRRORRORRRORRROOORROROROROOOORRORRROOOOOOORROOOOORROOROOOOOOROOROOOROORORROOOOOOOOOOORRORORROOOOOOORRRORORRROOOOOOOOOOOORRRROOOOROOOOROOROOOROORROOOOOOROROOOROROOOOOOOOOOOOOOROOOOOROOOOOOROOROOOORORORRRROOROOOOROOOOOOOOOOROOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOROOOROOORROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROROOOOOROOORROOOROOOOOOOOROROOOROROOOROROOROOROOOOOOOOROROOOOOOOOOROOOOOROOOOOOOOOOOOOOOROROOOOOOOOOROOROOOOOOOOOOORRORROROOOROROOOROOOORROOOOOOROOROOOORROOOOROROORRROOROOROROOOROORRORRROOORRRORRRROOOROOOORRROROORROOOOROOOOOOORORRROOORRROOOOROORRROOORORORRRRORRROORROOORRROOOORROOORROOROROOOORORROROROROROOOOOOORRORRROROOORORORROOROOOOOROOORORORROOOOROOROOOOOOORRORORORROOOOOOOORORROOOOOROORRRRORORORROOOROOOOOOROOOROOOOROOROOOOOROOORROOOOOOROOOROOORROOOOROOOORRORROOOOOROOOOOORROOOROROOOOOOOOOROOOOOOOOROROOOORORROROOOOROOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOROROOROROOOOOOOOROOOOOOOOROOOOROOROOOOOOORORROORROOROROORROOOOOOOOOOOOOROOROOOOOOROOOOOOORROOOORROOOROOOOOROROORROOOOOOOOROOOROORROROOORORRRRORROOOOROOROROOOOOOOROOOOOOOOOOOOROOOOOOOROOOORRROROROOOOOOOOOOOOOROORRRRROOOORRRRRORORORRRROROOOOROOOOROOOORROOOOROROROOOOOORRORORRRRROORRROOOOOROROOOOORRROOOORRROROROOOOROORROOROOOORRRORORROOROOOOOOROOOOROROROOROOOOROOOOOROORROROOOOOOOROOORROOROOOORRROOOOORRORROOOOROOOOOROOROOOOOOOOOOROOOROOOOOOOOROOROOOOOORROOORORORROOOORRROOOOOROOOOOOOOOOOORORORROOOROOROROOOOOOOOROOOOOOOOORRRROOROOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOORROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOROOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOROOOROOOOROOOOOOOOOROOOOOOORRROOOROOORROOOOOOORROOROOOORROROOOOOOOROORORORRROOROROOOROOOOROROOOOROOROROOROORRROROROOORORRORRRROOOROORROOOROOROOORRROORROOROOOOORORRRROOOOOORORORROOOOROOOROOORRRRRRROOROOOOOORORRORROOOROOROOOOOORROORROROOORRRRRRRROROOOOROOOORRORORRORRRRRORROOOOOOORRROROROROOROOOROORROOOROROROROOORROOOROROROOOOOORORORORROOOOOOROROOOOOROOORROOOOOOOOOOOOOOOOOOORORROORROROROROOOOOROORORRRROOOOOORRRRROOOROOOOROROOOORRORROROOOOOOOOROOOOOROOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOROROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOORROOOOROOOOOOORROOOOOOOOOOOOOOROOOOROROOROOOOOOOOROROOOOOOOOORROOROOROOROROORRROOOOROROOOOROORRORORROOOROOOOOOOROORROOOOOOORROOROOOOOOOROOOOOROOOOOOOOOOOROOROOOOROROORRROOORRROOOOOROOORORROOOROOROOOOROROORRROOOOOOOOOOOORRRRROOOOROOOOOOROOROOROOORROOROOROROROOROROOROOROOOOROOROOOOOOOROOROOOORORORORRORORRORORROOOORRROROROOROOOOORORROOOROROORROOROORRORRROORROORORORORORORROOOROOROOOROOOOORROOOORROROOORRROOORROROROORRRORROORRORORRORROOOOOROOOOOORORROOORRORRRROROOOOOOOOOROOOROOOROOOROOOORORORRROORRRROOOOOOOOOOOROOOOOOOOORORORROOOOROROOOOROROOOROOOOOOOOOOOOOOOROOOOOOROOOORORROROOOOOOOOOOROOOOROROOOROOOOOOROOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOROOOOOOOOOOOOOOOOOORORROOOOOOOOOROOOROOOOOOOORROOOOOROOROROROOOOROOROOOOROROOORROOOOROOOOOOOROOROORRORRROOOROORROOOOORROOOOORROOORRORROOOOOOOOOOOOOROROOORROORORROOROOOOOORRRORORROORORROOROOOROOORORORROROOROOROORRORROORRRRORORRRORROOOROOORROOROORRRROOOOOORROOOOOROORROOOOOROOOOOROROROOOROOORROROORROROROOOOOOROOOOOOOOOOROOROORORROOOROORROOROROOOOORRRROOOROORORRORRRRRROOORROROORORORRROOROORROORROOOOROROOOOROOROOOROROOOROOOOROROOOOORORRROOROOOOORRRRROOOROOROROOOOOOOROOOOOOOOOOOOOOROOOOOOOOORORRROROOROROOOOOOROOOOOOOOOOROOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROROOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOROOOOROOROOOOORROOOOROOOORROOOROOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOROROOOROOORRRROORORROOOOORROOOOROOOOOOOROOROOOOORORRROOOOOOOROORROOOOOOOROORORROORROOOOORORROROOOROOOOROOORRORRRRROROOOOOORRROOOOOOROORROROOOOOOOOORRRRORROROORRROOOOOOORROOOROOOROOORRORRROORRROOOOOOORRRORROOOOOOOOROOROOOOOOOOOROOOOOOROOOOOORORROOOOROOOOOROROROROOROOROROROOOOOROORORRROOORRROOOOOOROROOOROROOROROORORRORRORROOORRRROOROROOROOOROOROOOROOOOOROOOOOOOOOROOOOROROOOOOORRRORRROOOOOROOOROROROOORRROOROOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROROOROROOROOOOOOOORRROOOOOOROOROOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROROOROOOOOOOOOOROOOOOOORROOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOROORROROOOROOOROOOOOOOOOOOOOOOOOOOOOOOROROOROOOROOOOROOOOOOOOOOOOORROOOOOOOORROOOOROROOOOOOORROOOOOOROROOORROOOOROOOOOOROOOOOOOORROOOOROOOOOROROROROROORROROOOOROROOROROORROOORORROOROOOROORRRRRROORORRRROROROOROOORROOOOROOROOOOOOOROOORORRRROROORRRROORRRORRROROOROROOROOOROORRRRRRRROOOROOROOROOORRRORRROOROOORRORROOOOROOOROOOOOROOROOOOROOOOOOOROROOORORRROROOORRORROOORRRORORROOOROROOOOOOROROOOOOOOOOOORRRRROOROORROOOROROOOROOROROOROORROROOOOOOOOROOOOOROOOOOROROOOOOROOOROOROOOROOOROOOROOOROOOOOOOOOOOOOOOORROOOOORROOOORROOOOOOOOOROOROOOOOOOOROOROOROOROROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOROROOOOOOOOOOOOOROOOOOOOOOROROOROOOOOOOOOOOROOOOOOOROOOOOOOOROOOROOOOOOOOOOOROOOORRROOORROOOROOROROOOOROOOOOROOOOORROORORORRROROOROOOOOORRROOOOROORORROROORROOOOORRROOOROROOOOORROOROOOOROOOROROROORRORROOORRROROOOOOROOOOOOOOROROORRRROOORORORROOOOOOOOORRRRORROROOROOOOOOOOOOORORRORORROOOOOOOROORRORRROROROROOOOROROORROOORORORRROORORROOROORORRROOOORRRROOROOOOORROORRROROOORROORORRRORORRRROOOOOOOROOOROOOOOORORRORORROORORRORRROROOROOOOOOROROOROORORORRORORROOOOOOOOOOOOOOROORRROROOROORORORROROOOROOOOOOROORRROROORROOOOOOOOOOROORROOOOROOROOOOROOROOOOOORROOROROROOOROOOOORRRROOOROROOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOROOROROROOOOOOROOOORROROOOOOOOOOOOOOOOOOOORRORROOOOOOOOOOOOOROOROOROOORORROOOOOOOOOOOOOOOROOOOOOOORROROOROOOOROOOOROOOOROOOOOOORROROOOOROOOROORRRRROOORROOORROORRORROOROOOOOROOOOOOOOOORRROROOOOOORORROOORRROOOOOOOOROOOOROORROOOORRROOORRRRROOOOORRROORRROROOOOROOROORRORROROOOOOOOOROOOOORROOOORROOROOORROROOOOORRORRORROROORROROOOORRORRROOOOORORRRORROOOROOOROOOOOROOROORRROROROORROOOOOOOOOOROROOOROROROOOOOROOROOORROOOOOOORORORROOOOOOOOROOOOORORRORROOOOROOOROOOOROROOROOOOOOOORORROROROOOROROOOOOOORROOOOOOOOOOOROOOOOROOOOOROOOOOROOOOOOOOROOOOOOOORROOOOOOOOOOOOROOOOOOROROROOOOROOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROROOROOOROOOROOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOROOOROOOOOOOOROOOROOORORROOOOROOOORRROOOOOOOOOROOROOROOOORORROORRRRROORROORRROOOORROROOOOOORROROOROOROOORROROOROOOOORRORORRRROOOOROOOOROOROOOROOORROOOOORROROORROORORRROORORORORORORROOROOOOOOOORORRRROOOROROORROOOOORROOORORRROOROROOOROOOORORROOORORROORRROROOOOORRRRROOORROROOORRROOOOORRRROOOROOOROROORRORRRROROORROOOOROOORROROORORORROOOOOOOROOORORROOOOOOOOOORROOROOOOOOROOOOROORROOOROOROROOOROOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOROOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOROOOOROOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOROOOOROOROOOOOOOOORROOOOOROORROORRROOOOOOOOOOOOOROORRROROOROOOOOOOOORORORROOOOOOOOORORRROROOOROOOOOOOOROOOOOROOOOROOORORROOOOROOROOOROOORRORORROORRORROOOORROOOOROOOOOROROOROOOOOOROOOROOOORROOOOOORRROOOROOORRORRORRROOOROOOORORROORROORROROOROOOORRROOROORROOROOOOOOOROROOOOROOOOORORORORORROROOORROOROROOOOOROORRRRRORRROROOOORROOOROOOROOOROOROORORORRORROOOOROOOORORRRORROOROOOOOROOROROOOROROOOORORROOOOROOOOORORROOOROROOORRRRRROORORORROOORROROOROOORROOROROOOOOOOORROOORORRROOOOOOOOOOOOORORROOOOOROOROOROOOOROROOOOOROOOOOOOROOOOROOOROOOOOROOOOOOOROOOOOOOROOROOOOOOROOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOROOOOROOOOROOOOROOOOOROOOOOOOROOROOOOOOOOOOOORROROOOOOOROOOOOOOOORROOORORROROOROOOOOROOOOOOOOOOOOOOOOOOROOOROOOORROOOOORROOORROROOOOOROROOOOOOOOOROROOOORRROROOOORRRROOOOOOROROOOOOROROORRROOOOOOOORROOOOOOROOORROORORRORRORROOOOORORROOORROOOOORRROOROOOROOROOOROROOORORORRRROORROORRORRROOOORRROORROOOOOOOOORROOROOOOROOOORROOORROROOOOROOOORROROOOOOOOOOOOROOOOOOORORROROOROOOORROROROOROOORRROOOORROROOOOROROOOROOOOOOOOROOROOROOROROOROROORRROOOOROOOOOOOOROOOOROOOOORRROOROOOOOROROOOOOROOROROOOROOOOOOROROOOOOOOOOOOOOOROOOOORROOOOOOOOOOROOOOROOOOOOOOOROOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOROOROOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOORRROOOOOOOROOOOOOOOOOOOOORROOROOROROOOOOOOOORORORROOOOOOOOROORRRROORORORORRORRRORRROOOOOROORORROOORRROOOOOROOOROOROOORRRRRRORROORORRROROROOOROOOROOROOROOOOOOOORROOOROORRRRRROROROOOOOOOORORORORRROOOOOROORROOOOORORRROOORRROOOORORRORROOOOOROROOORRROOOROROOOOOROOROOOOOOROROOOOOROOOOROORROORROORRORROOOOORROOROOOOORRRROROORROROOROOROOOOOOOOOROROOOROORORROOOOOORROOOORROOORROOOORROOROOOROOOOORROOOOOOOOOROROOROOOORRROOOOROOOOOOOOOOOOROORROROOROOOOOORROOOROOROOORROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOROROOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOROOOOROOOOOOOOOOOOOOROOOOOOROROOOROOROOOROOOOOOOOROOOOROOOOOOOOOROOROOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOROOOORRORROOOROROOOOOOORROOOOOOOOOOROOOOOROORROOOROOOORROROOOOROROOOOOORROOROROROROROORRROOOROOOOORROROOORRROORORRRORORRRRROROROOOORORRRORORROORRRRROOOOOOOOROOOROROOOROOOORROOROOORRRRROOORRORORORROROOOROROORRROROROOORORORRRROOROOOOORROOORORRROROOORROOOROOOORRRROORRORRORROOROROOOROROOROOOROOROOOOROOOOOORROOORROOROOOORROORROOORRORROROOROROOOOROOOROROROOROOROOOOOROOORROROOOROOORROOOOROOOOROOROOORRRORRRORROORORRROROOOROOOOOOOOOOOOOOOORRROROOOOOOOOOOOOROOROOOOOOROOOOOROOOOOOOOOOOOOROROOOOROOOOOOOOORROOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOROROOOOOROOROROOOOORRRROOOOOOOOOOROOOOROOOOROOROOOOOOOOROOOROOOROROOROOOOOROOROOOROOOOORROROROORROOROOOORORRROROROROROORROOOOROOORRROROORRRRRROROOOROOROOORRROROOOOOOOOOROOOOROOROOORRRORRRROOOOROROOOROOORRORRROOOROORRORROORRORORORROORRRORRORRORRRRRROROOOOROOOROROOROORRRRRROOOOOOOOROOOORRRORRORORRORORROOORROROOOORRRRORROOOORRORROOROOOOOOROOORRRORRROOORORRROOROOORRROOOOOOOROOOOOROROOORROOOROROOOOOOOORROOOORORROORORRORROOOOOOOOOOOROOROOOOOOOORORORROROOOOOROOOOOOOROOROOOORROOOROOOROOOOOROORROOOOOOOOROOROOOOOOOOOOOOROROOROORROOOROOROOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROROROOOOOOOOOOOROOOOOOOROOORORROROOOOOOOOOOROROOOROOOOOOORRRRROOOOOROOOOOOOORROOROROOOOOOOOROOOORROOOOOOROOOOROOOORROOOOOOOOORROOOOORRORROOOOORRRORORRROOORORRROROOROROOOROOOOROROROOROOROORROORORRRROROOOOROOORRROOORROOOOROORROOORROOOOORRORROROOORORRORRORRROOOROROOOOOORRRORROORORRRORROOROROORROOOROORRRRRROROROOORROOOORRORROORORROOROOOOOOROROOOOOROROOROOORROROOOOROORRRRROOORORROOORORROOROOOOOORORRRRRRORRRRRROOOOORORORRROOOOROOROOOROOROOORORRRORROORORROOOOORROROOROOROOOROOOOOOROOROOOOROROOOOROOOOORRROOOOROROOOOOROOOOOOOOOOOROROOOROOOOROOOOROOOOOOROOOOOOOOOROOOOROOOOROOOOOOOOOROOOOOROOOROOOOOOROOOROROOOOOOOROOOOOORROROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROROOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROROROOOOOOOOOOROOOOORRROOOROORROROOOOOOROOOOOOOORROOOOOOOROOROOORORROOOOOOOOOROOORROORORORROOOORRORROOOOOROROOOOOROORROOOORROOROOOOOOOORORRRORROROORROOOOOOOOROOORRROORROOROORRORRRROOOROOROROROOORRROORRORORROROOOOOOORROOOOROROOORRROROORRROROOORROOOOOOOROOOOOROORRRRRRRRROOOOORROOOROOORRROORROOOOOOOROROORRRRRORROOOOROOOOORRROOOOORORORROROROOROOOROOOOOOOOOOOOROOOOOORRRORROOOORRRROOOOOORRROOOOOOROOOOOOOOORRROOOOOOOOOROOROOOORROOOROOOROOOROROOOOOOOOOOOOROOOOOOOOOOOORROOOOORORORROOOOOOOOOROOOOOOOOOOOROOOOOOROOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOROROOOOOOROOOOROOOOORROROOROOOOOOOOOOROROOOROROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROROOOOROOOOROROORROROROOROOOROOROROROOOOOROROROOOOOOOROOOOROOOOOROOOROROOOORROOOROOOOORRROORROORRORRROORRRRRORORROOOORROORROORRRORROOORRRRRRORROOOOROOROORRRORRROORRORROOOOROROOORROOROOOOORRRROOORRORRRRORROROOOOOORRRORORRRROOOORORRORRRRRORRRROORRORROROOOROORRRROOOOROOOROOROOOOROROROOOOOOOOORROOOOOOOORRRROOROOROOOOOOOOOORROROOOOROOOOROOOOROOROOOROOOOOOOOROOOOOOORROOOOOOOOOOOOORROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOROOROROOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROROOOOOOOROORROOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOORRROOOOOOOROOOOOOROOOROOOROOOOROOOROOOOOOOOOROOROOORORROROOOOOOOOROOOROOOOOORRORORRORROOOOOROOOOOOOROOROROROROORROOOOOOOROROOORRROROOOOOOOROOOOOOOOORORRROROROORRRRROORRRRORRORORORRROOROORRROROOOOOROOORROROOOORRROOOOOOOOOORROOORROOOOROOOROOORORORROORROOOOOROORORORRORROOOOROOOOROORORRRRORROOOOOOROOROOOROOROROOROORRROOOORORORORRRROORROOROOOOOOOROOORROOOOORROOOOROOROOOOOROROOORRRRROORRROROOOOROORRROROOOOOOROOOOOOOOOOORORROROOOOOROOROROROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOROOOOOOOORROOROOOOOOOOOOORROOOOOOOOOROOOROORRRORROOOOOOOROROOOOOOORORROOROOROORROOOROOOOROOOOOOOOOOOOOROROORROROOOOORRROORROROOOROOOROORRORROOOOROOOOOOROOOROOOOROOROOOOOOROROROOOOROORRRORORROOOROOOORORRRRRROOROOORRRROORROOOOOORORRRROROOOOOOROOROROOOORROOOOOORORRROROOOOOOOROORORORROROORROORRRROOOOOOOROOORROOOOOOORROORROROOOROROROROROROROROOROROOORROOORRROOOOORROORORRORRROOORORROROROOOOROOORRROROOOOROOOOROROOOORRROOOROOOOOROORROOROOORORRRROOOROROORRRROOOROOOOOOORROOOROOOOOROROOOOOOOOOROROOOOOOROROOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOROOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOROOOOOOOOROORORROOOOROOOOORORORROOOOOROOOOOOROOOOROOOORRROOROOOOORRRRRROOOOORROOOROOOROOOOOORROOROOOOOORROOOOOOOROROORRROOOORORRROOOOOORROOROROOOOOOOOROOOOORRRRRORORROOOROROORRRORRRRROOROROOROOORROROOROOOOORRRRRORORROROOROROOOOROOOOOROOROORRROOOROROROORORORROOOROOOOROORRORRROROROROOROOORRORORRROOOOROROORROOROOROROOOOOOROOROORORRROROOORRRRROROOOOOOROORRRROROOROOOORROOOOORRRRROOORORROROROOOOORRRROROORRROOOORROOORORRROOOROROOOOROOOOOORRROOOOOROOOOOOOOROOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOORRROOOOROOOOOOOROROORROOROOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOORORROROOOROROOOOOOOROOOOOOOORROOOOOOOOORROOOOORROOOOOROROOROOOOOORRRROOROOOROORROOROOORORRROOOOORRORORRROROOOOORRORROROOOORROROORRORORORROOOOORORROOOOORROROOOORROROOOOOOOORROORRORORORRROOOROROOROROOROROOOOOORROROOROOOOOROOOOOORORROORRROOORROROOOORRROOOOOOOOOROROOROOOOOOORRROOOOORORORROOOOROOOROOOOORORROORRRRROOOOROROOOORROOOOOORROROROORROOOOOROOOOORROROROOROORROOROROOROOOOORORORRRORRROOOOROOROOOOOOOOOOROOOOOOOOOROROOOROOOOOOOOOROROOOOOROOROOROOOOOOOOOROOROOOOOOOOORROOOOOOOOROOOOOOROROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOROOOOOOOOROOOOOOROOROORORRROROOROROOOOOOOOOOOOOOOOOROROOROORROORROOOOOROOROOOROOROOOOOOOOROOOOROOOOOROOROOOOORROOOOOOORROROOOOOOORRORROROOROOROOORRROOOOORROROOORRRRRROOOOOOOOOORORRROOROOOOOOROOOOOOOOORRROROORRORORROOORROOORRRORROOOOOOOOORROORORORORRROOOORRORRROOOOOOOROOROOOOROOOOROORRRRRRRRRRROOOOOORORORRRROROOOOOORROROROOOORRROOROORROOROORORROOROOOORROOOROOROROORROORRROROOOOOORRROORRORORROOROORROOOOROROOOOROOORROROOROOOOROOROOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOROOOOOOOOOOOOROROOROOOOOROOORROOOOROROOOOOOROROOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOROOOOOOOROOOROOOOOOOORROOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOORROOOORORROOOOOOOOOROOOOOROOOOOOOORROROOOOOOORROROOOROOOOOOROOOOROROOROOOOOOOOOOROOOROROROOOOOOORORROOOOROROOOROORRORRORROOOOOOROOROOOORORORRROOOOROROOROORRROOOOOROORORRROROROOORRRROOOOOOORROOROROOORRROROOROORROROROOOORROORROROOROOORROORRRORRORROOOROOROORORROOORROOOOOORRRRRROOORROROOROORRROOOROROOOOOORROOOOOOORRRRRRORRORRROROOORROROOOROOOOOOOOROROOOOROOOOOROOOROOROROROROOOOOROOROROOOOROOOOOOOORROOOROROOOOOROOROROORORROROOOOOORRORROOOOROOOOOOOOOOOOOROOOORORROOOOOROROOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOROROOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOORRROOOOROOROOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOROOOROOOOOOOOROROOOOOOROOOOORORROOROOOOOOROOOOOROOOOROOORORROOOOOOROOOOOOORORROROOOOOOROOROOOOOORRRROOOOROROOOORROOOOOORROOOOOOOOOOOORRRRROOORORROOOROOORORORORRROORROORRRROROOROOOOROROOORRRRROROOORRROORROORORROROORROOROROOOOROOOROROOOROOROOORRORRRROORROROOOOOORORORRRRORROROROOOOORROOROOOROOROOOORROOORROOORORRRRRORRROROOOOROOOOOOOROOOROROOROOROOOOOOROROOOROORORRRRROORROROOOOOORRORRORROOOROOROOOOOOORORROOOROOOOOOOOOORROOOROOOROOORROROOOOOOROROOROOOROOOOROROOOROOOOROOROOOOOOROOOROOORRROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROROOOOOOROOOOROOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOROOROROOOOROOOOOOOOOOOOOOOOROOOORROORROOROROOOORROOORORROOROOOOOOROOOOOOOOROOROOOOOOOOOOOOOORROOOROOOROOOOORORRRROOOOOORRROORROOOROORROORORORORRRROOOOOOOOOOOOOOROOROOROOOOOOORROOOORROROROOOORORRRROOROROOOOOROOOROOOOOOOROOOOOORROORROROOROOOORRORROORORROOORROOORORORRRROOOORRRORROOOOOOORORRROORRORROROORRRROOOOOROOORRRORRRRROOOOOORRRROROROROOOOOROOROROROOOOROOOOROOOROOROROROROORORRRROOOOORROORROOOOOOOOOOOORROOOOOOOOORROOOOOOROOROOOOOOROOROOOOORRROROOOORROOOOOOORORORROROOOOROOROOOROROOOOOOOOOOOOROOOOOOOROROOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOORRORRROOOROOOOOOOROOROOORORROOOOOORROOOOOROOORORROOOOOOOOOOOOROOROOROOOOROOOOOOROROROROORRROOOOOOOORROOROROROOOOOORRROOOOOOROROOOOOOROROOROOORRRRRRRROORORRRRRRRORORORORROOOOROOORROROOORORORRORROROOOORROOOOOORROOOOROOROOOOROROOORROOORORORRROOOOORROOOROOROOORORRROOOORORRORROOROOOROOROOOROOOOORROORROOOOOORROOOORORRORORORRRRROROOROOOROOROORORROOROOROOROOOOROOOROORROOROOROOOOROOOOOOROROOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROROOOOOOROOOOORROOOOOOOOOOOROOROOORROOOOOOOOROORROOOOOOOOROOOOROOROOOOOOORORORROROOOROOORROOROROOORORORRROROOROROOOROOOORORROOROROROROOOOOROOOOOROOOOOROOORROROROOOORRROOOOOOROOROOOROOOOROORROOOOOOOROOORROOOOORROOOOROOOOORROOOOORROOOORRROOOROROROOORORROORORROORRROOROORROORORRORROOROOORORRRORRROROORRROOROORROOOOOOROOORRORRRRROROOROOORRRORROROOOOOOOOOOOOORORROOROROOORRORROOOOOOROROOROOROOOROOOROOOOOROOOOORRROOOROOOROOOOOOROOOORORROOROOOOOOOOOOOOOOOOORROOOROOROOOOROROOOROOROOOOOROOOOOOOOOROOROOROOOROOROOOOOORROROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOORROOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOROORRRORORROOOOOROOOROROOOOOOOROROOOOOOOOOOOOOROROOORROOOOOROOROROOROOOOOOOOOORORORRROOORROROOOOOROORROOOORRRRORRRRROROOROOOROROOOOOOROROOOOOROROROORROROOOOOOROOOOROOOOORRRRRROROOOOROOOORORRROOOROOOROOORRORRRROORROOOROOOOOROORROROOOOORORRORRORRRORRROOROOORRORRRORROORROOOOROORORORORROOROROOOROOOOOOOROOOORORRROROOOOOORROROOROOOROORRRRRORRORROROOOORROOOOOORROROROOORORRROORORROOROROOOOROOROOOROOOOORROOOOOORRORORRROORRRORROOORROOROOROOORORROOROROOOOOOROOOOOORROOOOROOOOOOROOOORRORORROOOOORORROOOOOOOROOOOOOOOOORROOOOOOOOOOOOROOOOOOOOROOOOROOROROOOROOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOROOROOOOOOROOOOOOOOOOOROROROOOROROOOOOOOOOROOOOOOOOOOOOOOROROOOOOROORORORORORROOOOROOOORROROROOOOOOOOOOOROROOOOROOOOOROOOOOROOOOROOOROOOROOOOOOOOOOOORROOROOOOOOOROROOORROOOOOOROOOROOROOROOOOOOOROOROORROROROOORRRRORROOOORROOOOOOORRROORRROOOROROOOOOROORORROOOOOROOOOOOOOROORORROOOOOOOOOOOOORROOOOOORROOOOOOORROOOROOOROROOROORROOOROOOOOOOROROOORROOOORRROROOOOORORROROOOOROOROOOOORROOROOOORROOOROOORORORROOOROOOROOOOOOROORORROOOOOOOOOOORORRORORRROOOOORORROROOOORROOOORROOOROOOROOOROOOOROOOOOROOOOOOOROOOOROROROOROOROOROOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROROOOOOOROOROOROOOOOOOOOOOOOOOOOOROOOROOOOOOOORRORROOOOROOOOOOOOOOOOROROOOOOOOOROOOOOROOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOORRROOROOOROROOOROOOOOOROOROOOOORROOROOOOOOOOROOORRRRRROOOROOROOOROOOORROOOOROORRRORROOOROOOORORROOOOORROORROOROOOORRORORORROOOOORORRROOOORRRROROORORROOOOOOOROROOOOOOOROOOOROOOOROORRORORRROROOOOROORORRORRRROOROROOOOORRROROROOOOROROROORROROOOROOOOOROOOORROOORROOOOOORORRORROOOOROOOROOOOOOORROOROOOOROOORROORROOOOOOOOORRRRORROOORROOROORROROOOROOOOORROORROROOOOOOOOOOROROOOOORROOOOOOOROOOROOOORROOOROOOROOOOROOOROOOOOOOROOOOOOOOOOORROOROOROOOOOORRROORORORROOOROOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOROOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOORROOOOOOOOOOOOOOOROOOROOROOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOORROOOOROOROOOOROOROOORROOOOOROORORRROROOOOOOROOOOOROORORORROOORROOOOORROROORORROOROOOOORORROOOOOOORRROOROOOOOOOOOOOROOOOOOROROROOOOOOOOOOROROROROOOORORROROOOROROOOOROROOOROROOORROORROOROORRRROORROOOOOOOROOORORROOROORRRROROROOROROOOORORRORORROORRROOROOOOROROROOORRORRORROROROOOOORROOORRRROOORORROOROOOOOROORRORROOROOORRRORROOOOROROOOOOORROORROOOROOORORRROOORORROOOROROOOROROOOOOOROROROROOROROROROOOORROROROOROROOOOOOOROOOROOOOROOOOROOOOOORROOORRROOROOOOOOOOOROOOOOOOOOOOORORRRROOOOOOOROOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOROOROROOOOORROORROOOOOOOOROROOOOOROORRROOOOOROOROOOROOROORORROOROOOOORROOOOOOOOOOOOOOORROOOOOORORRRRRRORROOOROROOOOROOROOOOOOOOOOOROROOROOOOOOOOOROROROOOROOOOOOOOROOOOOOORRRROOOOORROOOORROROOORRROOROOOOOOROROOOOOOORRROORROROOROOORRRROOROOOOORORROOOOOOROOOORROOOOOOOORROORRROOOOOORROROOROORROOOOOOROOOORROORROOROORROORROOROORRROOOOOOOOOORRROOROOROOOOOORROROORROOOROOOROOOOROROOOORORROROOOROROORRROOOOOROROOROOOOOOROOOROROOOROROOOOOORROOOOOROOROOOOOOROOOOOOOROORORRORORROOOOOROOOOROOOOROOOOROOOOOOOOROOOOROOOOOOOOOOOROROROOOOOOOOOOOOOOROROROOOOOORROOROOOOOOOORROOROOOOROOOOOROOOOOOOOOOOOOOROOOOOOORROOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOROORRROOOROOOOROROOOOOOOOROOOROOOOOOOOOOOOOORORROROOOROORROOROOOOROOOROORRRRRROOOROOROOROOOORRORRROOOOOOOOORRROOOOROOROROOOOOROOOROROROOOOOOROROROOOOORRROROROOORRRRRROROOROORROOROOOOORORRRRORRORRRRRROOROOOROOORRORRORRORROROROOOOOOOORORROOORRROOROOORRROOORRROOROOORRRROOORRRROOOORRORORROORORORORROROORORRORRORORROOOOOORRROOOROORORRROROROOROOOORRROOORORORORROROOOROOOORRROOOROOOOOOOOOOOROOOROROOOROOROOOORRROOOOROOOROOORRROOOOOOOOOOOORROOROROOOROOOROOROOOOROOROOOOOOOOROOROOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOORROROOOOOOOOOOOOOOOROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOROROOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOROOOOORROOROOOOOROROOOOOOOORROORROOOOOOOOOOOROORRRROOORROOROOOOOOOOOROOOORRROROOOORROROOROOOOOOOROOOOOOOOROROROOOOOOOROOOOOOOROROOORROOOOOORRROOOOROORRROOROROROROORRORRROROOOROROOOOROOROOROOOORRROOROOOORORORORROOROOROORRROOOOROOROORROROOOOOOOOOORROROORROORROORRROOROOOROROOOOROORRRRRRRRORROOORRORROROORROROORORROROOROOORRRORROOOOOORRRORROOOOOROORROOOOROROOOOOORRRROOOOOROOROOORORROORRORRROOROOOOOOOROOOOROOOORROOOROORORORROROROROROOOORORRORRRORRORORROOOOOROOROOROOOOOOOROOROROORORROOOOROOOOROOOROOROOROOOROOROOROOOOOOOOOROOOROOROOOOOOROROOOOOOROOROROOOORROOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOORORRRROOOOOOOROOROOOROROROOOOROOOOOOOOOOROOOOOOROOOORROOROOOROOOOOROOOOOOOOOOOOROOOOORRRRRORROORRRROOOORRRORROOORROOOORORORORRORROOOROROOOORRRORROROOROOOORROORORROOOOOOOOOOOOROROOOOOOOOOORORRORROOOOOORRROORORORROORRORROOOROORROROROORRRRROORROOROROOOROOOROROORRORORRRROROORORROOOOORROOOOORRRROOROOORROROOORROORRORORRRRRRROOOOOOOROOOROOROOORROOOOROOROOORORROROOOOOROORROOOOOORROOOOORROROROOOOOOOORROOOROOOROROROOOOOOROOOOOOOROOOOOORROOOOROOOOOROOOOROORROOOOROOOROROOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOROORROOOOOOOOOROORROOOROOOROOROOOROOORRRROOOOOOOOOOROOOOOOOOROOOOROROOROROOOROOOROOOOOOOORROOORROOOOOOROROOOORROOROOOOOOOOOOROOOOOOOOOOORROOORORRROOORROORROROOOOOOROOOOOOOROROORROROROOOOOOOROOOROOOOOOORORORROOROROROORRORRRORROOROOOOOORRRROOOOROOOORORRRROROOROROROORORRROOOOOOROROOOOOOORRRROOORRORROROORRRROOOOOROORRRROOOROROROOORRRORRORRRRRROOOOOROROROOOROROOOOOOOORRRORROOOORRORRROOOOROROROOOROOOOOOROOROROORORORORRRRROORORORRRORORRROORORROROORRORROOOOOOROROORRORRROOOOOOOOOROOROOROROOOROOOOROOROOOROOOOOOOOROOOOOOOORORROOROOOOOOOROOOOROORROOROOOROOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOORROOOOOOOROOOROOOOROOOOOOOOOOOOOOOROROOOOOOOOORORROORRROOOOOOORROROOOOOOOOOOROOROOOOOROOORORROROOROOOOOROOOOROOOOOOOOROOOOOOROOOOOROOOOOORROOROOOOOOOORROOOOOOOOORROOOOOOOOOOOOOOOOOOOORORRROOOOOOOOOOROOOROOOORORORRRROOOOROOORROOORROROOOROOOOOOROROROORRROOORRRROOOORROOORROORORRRORRORROORORROOOROROROROOOROOORORRORRROORRROROOOOOOORRRRRORORRRRRRROROOOROROOOORROROROORROORORRROOOOOROOOOORRRRORRROOOOOOOOOOROROROOOROROORRROOOOOROOOOROROOOROOOOOOOROORROOOORORRROOOOOROROOOOOOOORROORROOOROORROOOOOOOROROOROROOOOORROOOOOOOROOROOORRRROOOOOOOROOOOORROOROORRROOORROOROROROOOOOORORROOOOOOOOOOOOOOOOROOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOROOOOROOORROOROROOOROROOROOROOOOOOROROOOOOOOOOROOOOROOROOROOORORROOROOOOOOOROOOROORORRORRROOOOOOROOORROOOROOROOOROROOOOROOOROOOOROORROORRROROOOOOOROOOOOOOOOOOROROROOOOOROROOOOOOORROOORRROOOOOROOOROROOROROOROROOROROOORRROROROROOOOOOOOOOROROOOORROROOROOOOOROROOOORRORROORROROOROOORROOORRORROOOORRRRROOOROOROROOOOOOROORROOROROOOOOOOOOOOOOROOORROOOROOORRORORORROROOOORROOOORRROOOOORROOOOOROROORROOOOROROOROROOOORROROOROROOOOOOROROORRRRORROOORRRRROORRRROOORROOOOROOOOROOOROOOOOOROOOOOOOOOORRROOOOOROROOOOOOOORROOOOOOOOOOOOOOROOOOOOROOOOROOROOOROOOOOOOOOOOOORROOOOOOOOOOROOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOORROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOORORRRROOOOOROOOOOOROOOOOORROOOOOROORORROROOOOOOOOOOOOROROOOOROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOORRRORROOOROOROOOORRROOOOORROROORROOROOOOORROROOORORRROOOROOROOOORROOOOROOROORROROOOOOOOOOROROROOOOOOOORORORROROORROORROOROROROOOOORROOOORRRRRROORRORRRROOROORROOROROROOORROORRRRROOOOOOOORRROOOOOROORROROROOROORORORROORORROROOORROROROORRRRRROOOORORROOROOROOROROOOOOOROOOOOROOOROOROORRRORROOROOORRROOROORROOOOOROROROOOOOOOOOROROOOOOOOOORRROOROOOOOOOOOOROOOOOOOOOOROROOOOOORRRROOOOORROOOOOOOROOOORORORROOOOOOOROOOOORROROOOOOOOOOOOROOORRROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOORROROROOOOOROOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROROROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOROOROOOROOOOOOROOOOOOOROOOOORROROORROOROOROOROOORRRROOOOOOOORORORROOOORRROOROOOOOOOOOOOOOOOOROORRRRORRRRORROOOOOOROROORROOOOOROOROORORRORORRROOOOOOOOOOROOOOOOOORRORRROOOOOOORRROOOOOORRROOORROOOOOOOOOORRRORORRRROOOOORORROOOOROROOOORROOOOOROROROORROOOOORORRRORORORRROROOROOOORRORRORORROOORROOOOOOOOOOORRORROOOOOOOOORROOROORRORROOOROROROOOROOORORROOOOOORRRORROOROOOOORROROOOOOOROROORORRORROORROOORRORROROORORROOROOOROOORORROOOROOOOOOOORROOROOOOOROROOOROOOOOOROOROOROOROOROOOOOOOOOOOOOOORROOOOOOOOOOOOOORRRROOOOROOOOOOOOOROOOOROOOROOOROOROOOOOOOROROOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOROOOOROOOROROOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOROROOOOOROROOOOROOOOOOOOOOOROORORROOOROROOORRORORRROOOOROROOOOOOOROORROOOROOOROOROORORROOORRRRRORORORORORROORROORROROOOROOROOROROOOOOOOORROOORRORORROORORRORROORORRRROORRROOROOOROOOROOOORRRRORROORORRROOOOOOOORROOOROORROORROROOOOOOOOOORRROROROOOOROORRRORROOOOOOORROORRROROOOROOOROOROOORROOOOROROOROOOORROOORRROOOOOOOOOOROOORROOOOOOROROROOORORROOOOOROROOORROOOOORROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOORRROOOOOOORROOOOOOOROROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOROOOROOROOOOOOOOROOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOROOOOORROOOOOOOORROOOOORRORROOOOOOOOROOOOOORRRROROOOOOROORORROROOOROOROROROOOOROROOOROROORROORROROOOOROROROOOROOOROOOOOOOOOROOOORROORROOOOOROORROOOOORRROOOOORROOOROROOOOOORROROORRORRRROOORROOOORORRROOOOORROOOORORRRRROOOROOOOOROOOROOOROROOOOOOROORROROOOROROROOOOOOOROORRROORROOROOORORORRRROOROOOROROOROOOROOORROOOROROOROOOROOOORRROOOOOOROOOROOOOOORRRRROROROOOROROOOOOROOORRROROOOOOOOOOOROOOOOORROOROOOOOOROROOOOOROROORRROOOROOOOOOOOOOOOOOOOOOOOROOOROROOOOOROOOOROROOOOROORROROOOROOROOORROOOOOOOOROOOOROOROOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOROOOROROROOOOOROOOOOOOOROOORROOOOOOROROOOOOOROOOOROROOOOOROOOOOOOOOOOROOORROROOOOROORROORORORROOOOOOORRROROOOOROORORROOORRORRRROOOROORRROOOROROOROORROORORROORORRORORRROROOOOOROOORORROOORORORRORRORRORORORRORRRRROOOOROOROORRROROOORRRORROOOOOOROROROOROOOROOOROOROORROORORROOORORRORORORROROOOROOOROOORRRROOOOOOOROOROORROOOOROOOOOROOOOOOOOOOOOOORRROOROOROOOOROOOORORROOOORROROOROOORRROOOOOORORORROROOOOOOROOROROOOOOOOOROORROORORROOORROOOOOOROOOROOOOOROOOOOOOROOOOOORROROOOOOOROOOOOOOOOROROOOROOOROOOOORROOOOOROOOOOOOROOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROROOOOOOROOOOROOOORROOOORRROOOROOOOORROROROORRRORROOROOOOOOOOORRORORRRORROORRORRROOROOORRROOOOOOOOOOOOOROOOROOROROROOOOOOORRRROROROOOOOOOROOORORROOORORRROROOOOOOOROOROOORRRRORORROOROORROROOOROOORROOOORROOOROORORROOOOOOOROROROROOOORRORORRORORRROOOOOOROROOORORRRORRRORROORROOOOORORROOROROOOROROROOOOORRROOORORORROROOOROOOORRORORORRORROROOORRRROOROROROOROOORRRORROOOROROOOOOOOOROOOROROOOOOOOOROROORRROOOOOORROOROROOOROOOROROOROOOROROOOOOOOOOOROOROOOOOOOOOOORORRROOOROOROOOOROOOOOOOROOORROOOOOOOOOOOROOOOOROOOOROOROOOOOROOOROROOOOROOOORROOOOOOOOOROOOOOOROOOOOOOORROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROROOOOOOOOOOOOOOOROORROOOOOOOROOOROROOOOOOOOROOOOOOOOROOROOOOOOROOROROOOROOOROOORROORROOORROOOOROROOOOOOOROROOOOOOROOOOOOOOROOROOOROOOORORROOROOOORROROOORRRORRORROOROOOROROORROROOOORORROOOOOOOOOOOOOOOOORRROOROOORORRROOOORRORROORRROORROOOOORRRROROOOOOOOOROROOROORRRRROOORROOOOOROOOORROOROOOORROOOROROOOROOOROOOOROOOOOOOORRRORRRRORROOROOOROOROOOOROROORORORROOROORRRORORROORORORORORRORROORRROOOOORROROROROOORROOOROOOORRROROROORORROOROOOOROOROOORROROOOOOOROROOROOOOOOOOOOROOORRROOOOOOOROOOOOOOORROOOOORRRRORROROROOOOOOORROOOOOOOOOOOOOOOOOORROOROOOOOOOOOOROOOOOOROOOOROOOOOOROOROROOOOOOROOOOOROOOROOOOOOOOOOOROOOOOOOROOROOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORRROOOOOROOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOORROOOOOROOORRORROROROOOORROOOOOOOOROROOOOROOOOORROOORORORROOOOROOROORROOROROOOOOROROROOROROORROOROOOOROROROOROORROOOROOOROORORROOOROORORRORRROOOROOOOOOORROOROOOORORRROOOOORROORROOORRROROORORROOOOOOOOORROOOROOOOORROOROROROOOOOOOOORROOOROOOOOOROOOOROOORRORROROOORRROOOROOORROROOORRROORORRRRRRORRRROOORROOOOOOORORROORRROROOOOROORROOOORRROOOOOROOOOROOORROOOORRRROROOORRROOOOROOOROOROORRRORRROOROOOOOOOOOOROROOOOROOOOROOOROOOORROOOOOROOROOORORROROOOOOOOOOOROOORROOOOROOOROOROOROOOROROOOOOOOOOOOOOROOOROROOOOOOOOOROOOORROOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOORROOOOROOOOROOROOOOOOOOROOOOORORROOROOROOOOOROOORRROOOOOOOOOOOOOOOOROOORROOOOROORROOOOROOOOOOOOROORORROROOOORORROOOOOOROOOOOOOOOOOOOOOOORRRROOOORROOOOORROOOORROOOROROROOROROROOROOORROROORROROROOOROROORRORROORRRORROORROROORROROOOOORROOROOROOROOOROORRRRROROOROORRRROOORROOORROOOROOOROOORORROOROOOOOOORRORORRRORROOROOOORROOORROROOOORORROROOROROORORROOROORORRROOORROOORROOROROORORRROROOROOROORROROOOOOOOOOORRROROOOORRROOORRORROROORRRROOOOORRROROORRORORRROOROOOOOOOOOOOROOOOOOOOOOOOOORRROOOOROORROOOOOOROROOOROOOOOOOORROROROOOOOOOOOOROROOOOOOORROOOOOOOOOROROOOOOOOOOOOOOOOROOROOOOOOOOROOOOROROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOORROROOOOOROOOROOROOROROROROOOORORROOOROOROOOROOROORROOROOOOOOOOOOOOOOROROOOOOORORRORROOROOROOOOROOOOOOOOOOOOOOROOOROOROOORRROOROORROOROOOROROOROORRORRRORROOORORROOROOOROOOOOOORORORROORROROOOOOROORROOOROROORORROOROROOOOOOORORORROOOORORORROOROOORRRRROOOOOROOOOOOOOOROORORORROOROROROROOOROOOOORRROROOOOORRORRROROROOOOORROOOROOOORRRORRRRRRRRRORRROROORORROOROOOORRROOOOOOROROOROOOOOROORRRROORRROOOOROOROORORORRROORRRRORORROOOORROOOROOOORORROROORROOOOOOOOOROOORROOOOOOOOOROORRROOOOOOOORROOOROROOROOOROOOOROOOOOROOOOROOOOOOOORROOOOOOOOOROROOOOOROOOORROOOROROOOOOROOROOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOROOOOOOOOROOOOOOOOORROOROOOOROORROOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROROROOOROOOOROOOOOOROOOOOROROROOROROROOOROOOROROROOOOROORROOROOOOOOOROOOROORROOROROORRORRORROOOROORORRRRORROROOOORRRROOOROOOOOORORRRROROOOOROROROOOOOOOOORORORROROOORROOORORROOORROORROOOOORRRROOOROROOOOORRROOOOOOORRRORRRRRROORRORRROOROOOOOROOOROOOOOOOROOROORRRROOROOOROOORRRROOOROOROROOOOOOOROORRORRROOOOOOOOOORROOOORROORRROROOOORRROOOORRROORROOOROOOOROROROOOOORROOOROOOOOOROROOROROOROOROOROOOORRRORRORRRROOOROOOROORROOOROOOROOOOOOROOOOOOOOOOOORROOOOROROOROOOROROOOOOROOOOOOOOOOOROOROOOROOOROOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOROOOROOOOROOOOOOOOOROROOORRORORROOOROROOOROOOOORROROROOOROOROOORORROROOOROROROOOOROORORROOROROROORRORRRRORRRRROORROROOORRORRRROOOOOOOOOOOROORROORRORORROOROROROORROROOOOOOOOORRORORORRORORRROOROROORROOORROOROOOOOROROOORRRORROROORRRORORORRORORORROOROOROORRROROOROOOROROROOOORRORORRORROOROOROOOORROORRROORORROOROOOOOOROORROORORRRROORRRRORRRORORROROOROORROOOOOROROOOOORRROOROROORROROOOOOOOOOOROOOOOOROOOORROOROOORROOOOOOOROOOROOOROROOOROROOOROOOOORRROORRROROROOOOOORORORORORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROORROOOOOROOROOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOROROOOOOOOOOROROOROOOROOOOOOROOOOOOOOOOROOOOROOOROROROORROOOOOOOOORRROROOROOOOOOOOOORROOOOOOROROOOOOOOOOOOROORORORORROORRRORORRROOOROOOOORRORRORROROOOOOOOROORRRORROOROROROOOOOOOOORORROORRROOROOOOROORRROOOOOORORORROOOOROROROROOROOORRRROROOROOOOOORORROOROOROROORROROOOOOOORROORRROOORROROOROOOOOOROORORORROOOOROROROOOOOORORROOOOORORRRROORRRORORRRORROOOOOOROROOORROORRROORRORROOROOOOROOOOOOOOOOORRROROOOOOORRORROOOORROOOOROORORROOOOOROOOOROORORORROOOORRORROOOOROOOOOOOOOOROOOROOOOOOOOOOOOORRROROOOOOOOOROOOOOOOROOOROROOROOROOOOOOOROOOOOOOOOOOOOORROOOROOROOOOROROROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOROOOROOOOOOOOOOOOOROOOOOOOROROOROOOOOOOROOOOOROOOOROOOOOROOOOOOORRROOOROOOOOOOROOROROOORRROOOOROOROOOOOOOOOOROOOROOROOROOOOOROORROOOROOROOOROOOOOOOOOOORRRROOOOOROOORROROOROOROOORRROOOOOOROROOROOOORROROROORRROORROOOOROOOOOROOOROROORROOORROOOOOROOOOORROOOROOROOORORROOROROOROOORRRROOOORORORORRORROORROORROORORROORRROORORORRORORORRRRRROOOORROOOORRROOORRRRORORRROOOOOOROROOROOROOOOROORORRRRROOOOOROOOORROOOOOOOROOOORRROOROOOOOOOROOROOOROOOOROORORROROROROROOOOOROOOOORROOOOOOOROROOOOOROOOORROOORROOOOOROORROOOOROORROOOOOOOORRROOOORROOOOOROOOORROOOOOOOOOOOOOOOOOROOOOOOOORRROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOORROOROROOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOORROOOOORROOOOROROOOOOOOOOOOOOROOOROOOOOOOROORRROOOROOOOOROOOOROROOOOOOOOOOOOROOOROORROOOOOOOOOOROOROOOOROOROOOROOOOOOORORROROOOOROROOROROOOOOOOROOROORRORORROOOOOORORORROOORORROOOOOOOOROORRROOOOROOROROOOOORRRROOOORROOROOROOROOOOOOOOROOOOOOOOORROOOROOORRORORRRROOORRROOROOOROOOOORORROROORORROOROOOOOOORRORRRROORROOORRORROOROROOOORROORRORORROROOOROROOROOROORRROOORROORRORROOOOROOROOOOROROOOROROOORRORROOOORORRROOOOOOOOROOOROOORRROOROOOOOOOOOOOOOOOROOOOROOOOOOOOROOROROOOOOOOROROOOROOROOROROROROOROOROOROROOOROOOOOOOOOROORORROOOOOOROOOOOOROOOOOROOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOROORROROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOROROROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOROOOOOOOOOROOOOOOOOOORROROROROOROOOOOOOROROOOOOOOOOOOOOOOOOOOROOOROROROORROOOOROOOROOOROOOOOORROOORROOOOOOOORORROOOOROOOROOOOOOOROOOROOOORRROORRROROOOROROROROOOOORORRRRRORRROORROOOOOOOROROOROROROORRROOROOOROROORRROOOOROORORRRRRORROROOOROOOOROOROOOORORROROOROROOROROROORRRROROORORRRRORRROOORORRRORORROOOOROORORRROROOOOORROOORRROOOOOORORORROOOORORORRRROORRROROOORROROROOOOOOOOOOROOOOROROOOOORORROROOROOOROOORROORROOOROROORORROOROOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOORORROOOROOOOORROOROOOORROOOOROOROOOOROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOORROOROOOOORROOOOROOOOOOOOOOROOOORORRROOOOORROOOOOOOORROOOOOROOOOOOOOOOOOOOOROORRROORRRROOROROOORRROOORORORRRORRORORRORORROORORROOOOROOROROOOOOORRORRORRRROROOORRROOROOOOOROORROOROORRORROOORROOOORORROROOORRROORORROOOOOOROOROROOROOOOOOOROOOROORRRROOORROORRROROORRROOOOOOOORRRRRRRRRRRORRRRRROORORRORRROOOOOORRROROORROOOOOOOOROORROORRRRRROORROOOOOOOOOORRROROROOORRORRORROOOROOOOOOORRRROOORRRRORROOOOOORORROOOOOOOOOORROOOOOORROOOROOOOOOOOOOOORROOOOOOOROOOOOROORROOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOORROOOOROOOOOOOOOROOOROOOOOOOOOROOOOOOROOOOOOROROOROOOOOOOROOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOORROOOOROROROROOOOOOOOORRROOOOROORROOOORRROOOROOOOORROROOOROORRORROORRROOOOOOOOOROOOOORRORORROORROROORRROORORRROROROOROROOOOOROROOOOROROROOOOOROROOOOORRROOROOROOOOOOOOORORRRRROOORORROOOOOORROORROOROOROORROROORRRROROORRRRORRORORROOORRRORORROOOOROROOOORRROOOROOOOORROOORROOOROOOOROORROROROOROOOOOOOOROOOORRRORROOOOORROOOROROOOOROROOOOROOOOOOOOOOOOOOORROROOROROOORRROOOROOOOORRROOOOOORRORRROOORROOOOROOOOOROOOOOROOROOOOORROOROOOOOOOOOROOROROOOROOOOOOOOOOROOOOOOOOOOOOROOOOROROOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOORORORROOOOOROOROROOOOOOOROOOOOOOOOOOOOOOOOROOROOOORROOOOOOOOOOOOROOOOOOOOOOROORRRRROOOOOOROOROOOOOOOROROROOOOOOOOROOORRROOOOOROOOOOORORROOOROORROOOOOOOROOOROROORORROROROOORROROROROOOOOOOOOORROORROROORROROROROOOOROOORRROOOROOROROOROROOOOROROOOOOORROORRRRRRRRROORROOORORROOOOOOROOOORRORROORRRRROOOORROOROORRRRORRORRRORROORRORROROOOOOORRORRRROROOROROORRROOOORORROOOROOROOROROORORRRRRRROOORROOROROROOROOOOOOOOORRORRROOROROOOOOOOROROROROOOOOOOOOROOOORROOORROOORROOOOORROOOOOOOOOOOOOOOOOOOOOOOOORROORROOOOOROOOROOORROOOROOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOORORROOOROOOOOOROOOOOOROOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOROOOOOOOOROOOOOOOOROOOOOOOROOOOORROOORROROOOOOOOOOOOOOROOOORRRRRROOOOOOROOOOOOOORRRROROROORORRORROOROOROROROOORORROROORROOOOOROOOROOORROOROORORRRRROOOOROROOOROOORRRRRRRROOOOOOOORROOOOORRROORRRORRORROOOOORROOROOOROROOOORRRROOOOOOORROOOROOORROOOORRRORORRROOORRRROROOROROOROORORROOROOROOOORRRRROORROROROOROROOROOROROOOOOOOORORORRORORROOOOOOOROROOOORRRRROORORROOOOOOROOOORORORRROOOROORRRROOOOOOOOOOOOOORROORORROOOOOOOOROROOOOOOROOOORRRROOOOOOOROOOOOOROOOORORROOROORROROOOROOOOOROORROOOOOOOROROOOOOOOOOOOORORORROOROROOROOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOROORROOOOOOOOOROOROOOROOOOOOOOOOOROOOOOOOOORROROOROOROOOROOOOOOOOOOORRROOOOOOOROOOROOOOOORRRROOORRORROOOOOROORORROOOOOOOOOOOOOOOOROORORROOORORROOOORRRROOORROOROOOORORROORORRORROORRRROORRROOROOROORORORROOOROOOOOOOROOOORROOROOORRROOROROOORRORROOORORRRROORRROOOORRRROOORORORRROOOOOOOOOOROOROROOOOROOROOROOOOORROOOROOORROROOROORROOROROROROORRRRRROOROOOOOORROROOOOOROOROOOOROORROOROROOORORROOROOOOOOOOOOOOOOOORROOOORROOOORROOOOOORRROOORROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOORROOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOROOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOROOROORROOROROOROOOROROOOROROROOOOROOROOOOOOOOOOROOROROOOOORRORORRRORORORROOOOROOOROOORROOOOROOROOOORROOROROROOORORRROOORROOORORROOOOOOOOROROROORRROOORROOORROORRROOOOOOOROOOORORORRRORROOOORRROOORROORRROORORORORRRORORRRRRRROORROORORROOROOROOOOORRRORROOORRRORRRRRROROROOROOOOROOROOOORROOOROOOROORROROOOORRORROOOOOROORRROROROOOOOOOOORROOROOOOORROROOOOROOOOORROROROROROORROOOOOOOORROOORORORRRRROOOOOOOOROOOORROOOORORROROOOROOOOOOROOOOORORROOOROOOOOOROROROOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOORRROOOROROOOOOROROROOOORROOROOOOORORRROROROOOROOOROROOROOOOROOOOOOOROROROROOROOOOROOORROOROROROOOOOOORROOOOOOOOOOOOOORORROORORROORORRRRORROOORROORRORROOOROROORRORORRORRROOORROOROROROROROROOROOROOOOOOOROORORRRROOORROOOOROORRROOORRROOORROOROOORORROORORORROOOORROOOORROOORROROORRRRRORRRRROROROOOOOOOOROOOOORRRROROOOOOORORROORRROROROOORRORROOORRROOOOROORRRROROOORROOOOOOOOROORRRROOROROOROOOOOROOOORROORORROOROOROOOOROROROOOORRROOORROROOOOOOROROORRORROOOOROOOOOOOOOOOROOOOROOOOOROOROROOROOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROROORORROOOOOORROOOOOOOOOOOOROROOOOOROOOOORRORROOOROOOOOOOOOROOOOOOOOROOORORROOROOOOROOOORROOOOORROROOOOOORROORRRORORORRORROOOOROOROORROOOORRRROOROROORORRROOROORRROROOORORRORORORROROROOOROORROOOOOROOROOROROOORRROOROROROORROOOROOOROOORROOOORROOORROROOOOOROORRRRRRORRRORRORROOOOROOOOROORROORROOROOOOOOORRROOOROOROORROORORORRROOOROOOROOOROOOORORORROOOORROROOOOOOOOOOOROROOOROOOOROOOOOROOORORRORROOOOOOOOOOROOOOOOOORORROOROOOOOROOOOORRROOORROROOOROOROROOOROORRROOORROROOOOROORROOOOOOOOOOOOOOOOOROORORORRROOROOOORROORROOOOOOOOROOOOOROOROOOOOOORROOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOROOOOOOOOOROOOOORROROOOOOOROOOOOOOOOOROOOOOOOOOROOROROROOOROOOOROOOOOOOOOROOOOOOOROOOOOOOORROORORORORORROOROOOOOORROOOROOOOORORRROOOOOOROOROOOOOOROOOROOORROOOOROOOORROROOOROOOOOOOROOOROROOOOROOORROOROOORORORORROOOOROOOOOOOORROOROOOOROOOOOROOROROROORRROORORORROROOOORROOROOOOOOOORORRRRRORRRRRRROOROOOORROOOORRRROOOOOROROROOOOROORROROOORORROOOOROOROORROOOROROOORROOOROOORROOORROROOOOOROOOOORRRROORROOOOROOROOOOOOOORORRRORROROOOORROOOOOROROOROOOOROROROOOOOROROOOOOROROOROROOROOOOOOOOROOOOOOROOOOOOOOOROOOROROOOOOOOOOROOORROOOOOROOOOOOROOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOROROOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOROORROOOROOROOOOROOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOROOOORROOOOOOROOROOOOROOOORROORORRRORRRROOROOOOORROOOROOROROORROROROOROOOOOOROOOOOOORORROOOOOOOOROROOORORRRROOOOORROOOROOOROOORRORROOROOORROOOORROOOOOROOORORROROOORROROORORRRRRORROROORROORROOOORROOROOORROROOROOOOOOROOOROOOOROOOOOORROOROOOROOOOORORRORORORRRORROOOROOROORORROOOOOOOROORORORROROOOROOOOROROROOORROROOOORORROOOORROROOOOROORRROOOOOOROOROOOOOOOOOROOOORORORROROOORROOOOROROOROOOROOROOOOOROOROOOOORROOOORRORRRROOOORROOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOROROOROROOOOOOOOOOOOOROROOOROOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOROOROOOROOOOOOOROOOROOOROOOOOOOROORROOROOOOROOROROOOOOOOROOOORROORRROROOROOOOORRROOORRRRORRORROORORROOOORROROOROROOROORROROROOOORROOOOOOOOROROOORRORROOORROOOORROOROOOORROOOROROOOOOOROORORROROOROROROOROORRRROOOROROOOOROOORROOOOROOOOOOROORROOORRROOORORRRROOOOOOOOORROOOOROOOOOROOOOORRORORROOORRRROOROORRRRROOORROOROROORORROROROROOOOOOOROROOOOOOROOORROORROOOROOOOOORRRROORROOORROOOORROOORRRROROOROORROROORRRRROOORROOOORRORORORROOORROOOOOROOOOOOOOOOROOROOROOOOOOOORROOOOOOOOOROROROOOOOOOOOOOOOOOOOROOOOOOOOORROROOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORRRROOOOOROOOOOROOROOOOOOOROOOOOOROROOOROOOOOOOOOORRROOOOOOROROOROOOROOOROOOOROROOOOORORROROROROOOROORROOOOOORROOOROOOOOOOOOOOOROROOROOOOROORORRORORROROROOOOOROOROOOOOOORRORROORORRRRROOOOROOROORROOORORROORORORRROOROOOOOORRRORRORRRORRROOORRRRROOOORRORORROROOOORORRRORORRROOOORRRORROOROOROORROROORROROROOOROORROOOROORRROOROORROOOOORORROOOOORROOORROOOOOOORROOOROOROORRRRRRROOOORROOOOOOOOOOOROOORROROOOOROROORROROROROOORROOOORROOROOOROROOOOOROOOROOOROOOOOOOOOROOOOROOOOOROOOOOOOROORROOOROOOROOOROOROROOOOOOOORROOOOOOOOORROOOOOOROOOOOOROORROOOOOOOOOOOOOOOROOOOOROROOROORROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOROOOOOOOOOOOOORROROOROOROOORRROOOOOOOOOOOROOOOOOOOROOOOOROOOOROOOORROOOOOOOOROOOOOORROOOROOORROOOOOOROOOROOROOOROOROOOOROOOOOOOOOORORRRROOOOOOORRROOROROROOOOOOOOOOROORROOROROORRORRRRORROROROORRRRRRORORRROROOOOROOOOOOROOOOOOOROORORRORRRORRROOORRRRROORRRORRORRRORRROOOROOROOOOOROROORRRRRRRRRROOROROOROROROOOOOOOOOROOOOOOOROOOROROOOORROROOROORRRROOOOOOORRRROOROOOOROOOOOORRORRROOOOORROOORORRROORROOOROROOOOOOOOOROOROROOROOROOOOOOROOROOOOROROOROROORRROOOOOOOROROOROOOOOOORROOOOOROOOROROROOOOOOOOORROROROOOOOOOORROOOOOOOOOOROOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOORROOORRORROOOOOOROOOOOOOOOORROOROOOOOOOOOOOORRROOOOOORROOOOOOOROOORROOORROORROOORROOORRROORROROROOORRORROOOOOOOOROROOOOROOROROROROORRROOOOOROROOOORROROOROORROORRORROORORRORROORORROROORRRORORORRORRROOOOOOOROROORORRROROOOORROOOOORROOOOROOOOOOROORRROORRRORORROOROOOORROOROROOROOROORROROROORROORRROROOROOROOOROOROOOORRORRROOOOORORORROROOOORROOOOOOOROOROROROORRROROROORROOROORROOOOROROOROROOOROOORROROROOOOOOROORORRRORRORROROROOORRRROOOOROOORORRRROOOOOOROROOROOROOROOOOORROOROROOOOOROOOROOOOOOOOOOOOOOROROOOROOOOOOOROOOOOOOOOROOOOROOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOORROOOROOOOOOOOOROOOOOORROOOROOOOOOOOROOOOOOORROROOOOOOORRRROOOOOOOROOOORRROOOOORORROOOOOOOROOORROROOOOOOOOROOOOROOOOOOROROOOOOROOROROOORROOOOOOROOOOOORROORORROOROROOOOOOOORROORROORRORROROOOOOOROROOOOROOOOOROOOROORRROORRROOOOROOOOOOROOOOOROROOROOROROORROOOOOOORRORORROOORRRORROOOOROORRORRROOORRORRRRROORORROOROORROORROROORRRRRRORROOOOORROORRROROROOOOROROOOOORORROOOROROOORRRROROOROROOORRRROORORRRORORROOROORRORROOORRORROORRRROOOOOROOOOOOROROOOOOOOOOROOOOOORROOOOOOROROOOOROROOOOOORRROOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOORROOOOOOOOOORRROOOORROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOORROOOROROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOROROOOOOOROORROOROOROOOORRROOROOOOOOOOOROOOROOOOOROOROOROOOROROROROOOOOOOROROOORORROOOORROOOOOOOORROOOOOOROOOOOROOROROORROOROOOOOOOORROOOOORRROROOOOROOOROORROORROROOOORRRORROROROOOOOROOROOORROOROOOROORROORRRROORRORROOOORROROOOROOORRRRORRROROOOOROOORROROROOOROORORROOORORRORORRROORROOOOOOOORROORRORORORROROROORORRRROOOOROROOROOOOOOORROORORROOROOOOOROOOOROOOOOOOOOOORROOROOOROROROOORROORROOORROOOOOOOOOOROOOOROOOORRROROOOOORROOOOOOOOORROOOROOROOROOOOOROOOOOOOORROOOOROOOOROOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOROOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOROOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOROOROOOROOOORORROOOOOOOOORRRORRRROROROOOOROOOOOOOOOOOOOROOOOOOOOOROORRROROOOOOOOOOORROOROOROROOOROOROOORRORRROOOORORRRROORROROOROOOROROOOORRROORRORROROORROOOOOROOROOOOOROOOOROOROOROOOROROOROOOOOOOORORORORRROOOOOOOROOOOROROORORORROOOORRRRROROROOROROORROOOROOROROORROROORRORROOOOOROOOOOOOROOROOOORROORRORROOOOOOOOOOORROOOOORROORROORORRORROORROOOROORROOOOOOROOROOROOOOROROOOORROOROOORORORRRROROOOORROOOOOORORORORORRORROOOOOOOOOROOOOROROROROROOROOOOROOOOOOOORROOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOORROOROOOOROORRROOOROROOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOORROOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOORROOOROOOROOOOOOOOROOOOOOOOROROORROOROOOOROOOROOOOOOROOOROOOOOOROOOOOOOROROOORROOOOOOOOOOORROORRRROOOROOOOOOROROOOOROROOOORROOROOROOOROOROOOORROROROOOOROROROOOORROOOOOOORROOOROOROOOROOOROROOOOOORROOORRROOOOROOOOOROROOOOOOOORRRROOROORROROOOROORRRRORROOOROOROOOORRORRROORRROORRROOOOOOOOROROROROOOOROOOOOROOOOROOORORRRROROOORROOROOOOOOROROOOOROOORORRRRORRRORROROOROORRRROOOOOOOOROOOOOOROROOOOOROOROOORRROROROOROROOOOOOOOOOOOORROOOROOROROOOROOOOOORROORROOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOORROOOOOOOROOOROOOOOOROOOOROOOOROOOOOOOOOOOROROOOOOOROOOOOROOOOOORORROOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOORORROOOROROOOROOOOORROROOOROOOOOOOOOROOOOROOOORROORRROOOROOOOOOROOOROOOROROROOROROOOOOOROROROOOORROOOOOOROOOROORORORORRRRROOOOOROOOOOORRROORORORORORRORROOROOOOOOOROOOOOOOORORORROOOOOOOORRROROROOORRROOOOROOOORORORROOOOROROORRRROOROOROOOOROOORORORRROORROORRORROOORRRORORRORRRROOORRRORORORRRROORRRORRRRROOOROOOROOORRROROOROORROROOOOROOOOOOORORRROOORORRRROOROOOORROOOROOOROORROOORROORROOOOOOOROOOOORROOROOOOROOOOOOOOOOROROORROOOOOOOOORRROROOOOOOOOOOOOOOROOOOOOORRROORRROOOOOOROOOORRROOOORROOOOOOOOOOORROOOOOOOOOOOOOROORROOOOROOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOROOOROOOOOROROOOORRROOOOROROROOROOROOOOOOOROOOROOROOOOOOOOOOOROOOOROROOOOOOOROROOOOOORROOOOOORRROROOOROROOOOROROOOROOROOOOOROOROOROORROOOOOOROROOOOOOORROOOOROOOORRROROROOOOROROOOORRROOOOOOOROOOOORRORORORROOOROOROOOOOOOROROROOOROOOROROOROOOOROOOORRRROOOORORRORORROOROOORROORROORORRORORRRRRORRROOOORROROROOORROROROOROOROORRRRROOOOROROOORRRORROROORRRORROORROOOOOOROOROOOOROOROOOROOOROOOOORORORROOORRROORRORRRORRROROROOORRRORROROOROORROOOORROOOOOOOOROOROOOROOOOOORRROROOOOOOOOROOOOOOOORROOOOOOOOOOOOOOROROOROOOOOOROROOORROOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOORORROOOOOOROOORROOOOOOOOOROROOOOOOOOROOROROROORROOROROORROROOOOORORRROOOOOOOOOORRROOOOORROOOOOROORROROORRROOOOOROOOOROOOOORROOOROOOOOOOOOOOOOROORROORORORROOOORROOROROROOOORRROORORRORRRORRRRROOOOORROOROORROROOOOROORORORROOOOOROOOOOOORROORROOOOOOROOOOOROOOROOOORRRORROOOOROORRRROOOROOORROOOOOOOOORROROROROOROOOOOROORORROOOROOROORORORORROORRROOOOOOOOOROROOOOOOOOROOOOORRROOOROROROOOOOOROOOOOOOOROORROORROOOORROOOOOOOOOROOOOORROOORROOROROOROOOROROOOOOROOROOOOOOOOROOOOOOROOOOOROOOOOOOOROOOOROOOOOROOROOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOROROOOOOOROOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOROROOOOOOOOROROOOOROROOOOOOOOOROOROOOROOORORROORRROROOOOOOOORORROROORRORRORRORORROROORROOROOOOOOORORRORROROROOROOOOROOROOOROOOORRRORROOOOOOROROOOROOOOOOOOOROROORRRROOOROROOORRROOOOOOROOOOROOROOROROOOOORRRRROOORROORRRORRROORROROOORRORROORRRRORORORRORROOORRORORORORROOORROOORROOOROOOOOROOOOORROORORROROROOORROOOOROOOROORORROOOOOOORRORROORRROORROOOROOROOROROROOROOOROOROROOOOOOOOOOOOOOOOROORRRROOROOOOOOOOOROORROOOOOOROOROOROORRROOOOROOOROOROROOOOORORROOOOROORROOOROOOOOOOOROOOOORROROOOROOOOOOOOOOORRRROOOOOOOOOROOOOOOOOOROOOOORROOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOROOOOOOOOOROOOOOOOORORROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOROOOOOOROOOOOROROOOOOOOOROROOOOOORRROOROOROOOOROOOOOOROOOOOROOOOOOOOROOOROOOORROOOOOORROOOOORORRROOOOOOOROOOOOROOOORRROROOOOROOOOOORROOROOOROOOROOOOOROORROROOOROOOOOROOOOORRRROOOORRORROOROROOOORORROORRORRROOOROOOROOOORROORORROOOROOROROOOORRROOOORORRORROOORROORROOOOOROORORRROOORRORRROOORROROOORROOOOOOOOOOOORROORORRORROORRROOOORROOOOOOOOROOOOOOOOOOROOROORROOOORROOOROROOOOOORRROOROROOOOOOORROROORROROOORROOROOROORORRRROOROOOOOOROOOOOROOOROOROOOOOOROOORRROROROOORORROROOOOOORROROOOOORROOOOOOROOOOROOORRROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORRROOOOOOOOOOOOOROOOOOOOOROOROOOOOOORROOOOOROROOOROOOOOROOOROOOOOOOOOOOROOOOOOOROROOROORROROOOROOOORROORROOOOROOROOOROOOOORORROOOOOOOROOOOOOOROOOOROROORROOROOORRROOOOORROOOROOROOOORRORORRROOROORORRROORRRROORRRROROOOOOOORRORRRRORRROOORORORORROOOOOROOOOOOORRRORRORORROORORROOOOOORORROOOOOOOOROROOOORRROORRRRROORORRORORROOOROROOOOOROROOORROOROORORROORRRRRRROOORROOOOOOOOROOOOROORRROOOOOOOOROROOOROORROORRROOOROROOOORROROOOROOOOOOORRRRROOOOOOOOOORRRORRORROOOROOOOOROOOOOOOROOORRROOOOOOOOROOOOOROOROROORRROOOORRRROOOROROOOORRROORROORROROOROOROOOOOOOORROOOOROOOOOROOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROROOOOOROOOOOOOOOOOOROOOOROOOROOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOORORRROOOOOOOORRROOOOOOROOOOOROORORRROOROROROOROOOROOROOOOOOOOOORORROOOOOROOROOOOROORROOOORROORRRROROORORORROORRRORROOOOOROOROOROOOOOOROROOROOROOOOOOOOOOOROROROOOORROOOROOOOORROOOOROORRRORORROOOOOOOOORROOOORROORORRORROOROOOOOROROORROORORRROOOOROOOORRORROOOOROORROROORRRROOOORROOOROORRROOOROOROOOOOOOOOROOOOOOROORRRRORRRROROOOROROOOROOOOOOROROROROORORROROROOROROOORROOOROOOOROOOORORRRORRRORRROOOROROOOOOOOOOOOOORORRRROOOOOROOOOOROOORRORRROOOOROOOOOOOOOOOOOOOROOOOROOOOOROOOOOOROOOROOOOOOOOOROOOORORROROOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOROOOORROOROROOOOROROORROOOORROOROOROOROORROOOOOOOOOOOOOOOROOROORROOOOOROROOOOROROORROOOORORRRORROOROORORRROOROOOORRORROROOOOOOOOOOOOROORRORRRRRRRRROROOOOROORRORRRORROOROOROOOROOOROOROORROOROOOOOOOROOORROOOOOORRRORROORRROOOROOOROOROOORORROORORRRROOORRRORRROROOOORORROORRROROORROROOOOOORORORORORRRROOOOOOOOROOORROORROROOORORRORRROOOROOOROOOORRRROOOOOOOOROORROOOOROOOORROROOOROOOOOROOORRROOOORRORROOOOOOOOOROOOOOOOOORROOOOROOROOOOOOROOOOORORROOOOOROOOROOOROOOROOOORROOOOOOOOOOROOOOOOOOROOOOORROOROOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOORROROOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOROOOORROOROORROOOROOORORRROOORRORRORROOOOOROOOOOOROOOOOOOOROOOOOOOOOROROOORRRROOROOOORROOORROOOOOOROORROORROROOOORROOROROORORROOROOOROOOROOOOORROOROOOORROORROOOOOROROOOOORRRRRROOOORRORRORROOORROROOORRORROOOOROOOOOOOORROOOOOOORRROOROOORRORROOOOROOOOOORORROORORROOORRORROOOROORORROROOORROROOOOOOORRRRRROOOROOROOOROORROORRROROOOOOOROROOORRRRRRORRROROOOROROOORORORRRROOROORRROOOOOOOOOROOOOOOOOOOOOOORROORORRROROOOOOOOOORROOROOOOOOOOOOOOOOOROOROROOOOROOROOOOOROROOROOOOOOOOOOOROROROOOOROOOOOOOOROOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOROOROOROOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOROOROOOOOOOROROOOOOOOROOOOOROOOOOOOOOOOOOOORROOOOOORROOOOOOOOOOOOOOROOOOOOOOORROROOORRORROOOOOORROORRROOOROOOOOOROORRRRORROROOOOOOOOOOOOOOORROOROROOOOROOOOOORROORROOOROROORORORROOOORROROOROOOORORROOOORRROROOOOORRORORRRROROOOOROOOROOROOOORRRRRROROOOROOORRORROOOOOORRROOOOROORRRRRORROOOOOORROOORROOOOOORORRRORRROORRORRRORRORRORROOORORORRRORROORRRORROROROOROROOOOOOOOOOORORROROOOORRROROOOOORROORRROOOOROOROOOROORROOOOOROROOOROOOOOORORROOROOOROOOORROOOOOOOORROOOORRROROOOOROOROOROOOROOOOROROOOOOROORROOORORROOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOORORROOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOORROOOOOOROOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOROOOOROROOORRORROOOROOOROROOORROROOOOOOOOROOOOORORROOOOOROROOOORROOROOOOOOOOROOOROOOOOOORORRORRROORRROOOORORROORROOOOROOOOROOOOOOOOOOOROOROOORROOOOORROOOOOORRRORORORROOROOOOOOOOOOOORROOOOOROORROOROORRROORORORRROROOOOOROROORRORORROROORORRRROROOOOORROOROOORRRORRROOOORRROROOOROROROORROOOOOORRROOOOOROOOOROORROROROORRRRORORRROROROROROORRROOOORRROOORORROROOOOOROOROOROOROORROOROROOORRRROOROOORROOOOOORRRRROOOOOROOOROOROOOOOOOROROROOOOROOOROOOOROOROOOROROROOOOOROOOROROOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOROOOOOROOOOOOOOROOOOORROOOOOOOORROORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROROROOOROOOOOOOOOOOOOOOORROOROOOOROOOOOORROOOROOOOROOOOORORROOOROOOORORROOOORORORRROROOROORORROOOORRROROOORORROORORROOOOOOROOOOOROORRROOORRRROORROOROROOOOOOOOOOOOROORRORRORORORORRRROROOOOOROOOROOOOOROOOOORRROROROORRROORROOROROORRRORRORRRRRROOORORROOROOROORRROORRROOROOOORORROROROOORRORORROORROROOROOROROOOROOOOOROOOORORRRRRROROOOOOROROOOOORROORORORRRROOOOOOROROORRORROORRROORORRORROOORROOROOORRORRRRRRRROOOROOOOOROOROOOOROOOOOOOOOOOORROOOOOOOOROROOORROOOORRROOOOROOOOOOOOOROORROOOOOOOOROOROOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOORROROOOROOROOOOOOOOROOOOOOOOOOOOOOOOROOOORROOOOOOOOOROOOOOORROOORRORORRORRORROOOROORORROOOOOOROOROOOROROROORROOROORORRROOOOROOOROOOOOOOOOOOOORORRORRRRRORRRRORRROOOROOOORRROOROOOORORRORORRRROROOOOOORROOOROOROOOOOROORROOOOROOOOROROOOOORORRROROORORROORRORRRROROROORORRROROORORRRRORROOOROOOOOOOOROROOORRROROOOOOOROROOROROORROOORRROOOOORROOOOOROOOOROROOROOOOOOOOORROROOOROROOROROORORORROOOOORRRROORRROROROROOORROROOROOOROORROOOROOROROOROROOOOOOOROROOROROOOOOOOOOROOOOOORROOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOORRROOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOROOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOROROOOOOOOOOOOOOOOORORROOOOROOOROOOOOROROROOROROORRORROROOROOOORORORROROOORROOOOOROORROOOOOOOROOOOROROOROORORROORRROOOORRRORRORORROOOROOORROROOOOOROROROOOOOROOOORROROROOROROOORRORRRROOOOOOROOROOOOOOOOOOOOROOROOOOOOOROORROOORORORRORROOOOORRROORORRRRORRRROOORORRRROORROOROORORORRORRROOOOOROROROOOOOOROOROOOOOROORROOORRROOOROOROOROROOOOROROORROROOORORROORORORRORRROOOORROOROROOORRORRRROOROOROROOOROOOOOOOOOOROOOOOOOOOORROOOOOOOROOOOROROROOORRORORRROOOOORROOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOROROROOOOOROOOORROOOROROOROOOOOOOOOOOORORRRORRRROOOOOROORROOROROOOOOOOORRRORROOOOOROOOROORROORROOROOOOOROORORORRRROOOOROOOROOORROROOOROOOOROOOROOOROROOROOROORORRROOORORROROOROROORRROOROOOOOOROOOORROORROROOOROORORRROOOROOOOOOOROOOROROROORORRRRRRRORRROOORRROOORRRRRROROORORRRRORROORORORRROORRORORRROOROORROOOROOORROOORRROROOOROOOOOOROORROROOORORROOROOOOROROOOOOOOROORRROOORORROOOOOOOORROOOOORRROOOORROOOROROOOOOORRRRRROOOROOOROOOROOOOOOOOOROOOOOROOROROOOOOOOOOOROOORROOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOROOOOOOROOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOROOOOOROOOOOOOORRROROOOOOOROROORRORORROOOOOOROOOOOOOOOOROOROROOOOOORROOOROROROOORROOOOROORROOOROOOOOOOOOROOOOROOOROORROOROOROOOOROOOOROORROOOOOORORRORORROROORROROOOOOOROOOROOOOOROOROOOOORROORRROORORORORRORROOOORRROOOOOOOOROORRROROORRRRROOROOROORROOOORROORORROROOOOOORORRROOOOOOROOOOOOOOOORROROORROROROORRORRRROORORORROROOROOOORORROOROROROOORROOOORORRROROOOOOOOROOROOOOROROOORROROORROOOROORORROOOROROOOORROOOROROOOOOOOOOOORORORRORROOOOOOOOOOROOOOOOOOOOROROOROROOOOOOOROOROOROROOOROOORROOOOOOROOOOOOOOOROORROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROROOOOOOORROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROROORROOORROOOORRRRRROOORORORROOOOOOOORORRROOOOORRRROOORORRORROOOOROOOROOROORROOOOOOROOOOOOOOOOOOOORROOOORRROOOOORRROOOOOROORROOOOOOROOROOORRRRORORRRRORRRORRROROORROOOOROOROORRROOOOOOOOORROROOOOROROROOOOOOROROOORRORRRRRROOOOROORROOOOORRORROOROROORRRRROROOROROOOOORRORRROOROORORROOOORORROOROROOORRORORORROORRRROOORORRORORORRORRORORRRRROOOROOOOOOOOOOOOORROOOORORROOOOORROOROOOOOOORROOOOOOROROOOROORORORROROOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOORORROOOOOOORROOOOOOOOOOROOOOROOOOROOOROOOROOROOOOOROROOOOOOOOOOOOOOOROROOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOROROOOOOROOOOOORROOOOOOOROROOOOOOOOROOOOOROOOROOROOOOOROOROOOROOOORROROOROOOROOROOOROOOROOOOOOOROOOOOOOOOROOOOOOOOOOROROOOOOOOOOOROOROOOOOOORORORROROORROOOOOOROOROOOOOORROROORROORROOORRROOOOROROOOOROOOOOOORORORROOOOOOOROOROORRROOORROROOROOROROROOOOROOORRRROOORRROORROROOROOROROORRROOOOROOOOOOOROOOORORRRORORRRORORORRRRORORROOORROOOOOOOOORRROROORROOROOOOOORROROROOOOROOOOORRORROOOOOROROORRROOOOROROOORROOOROOOOROOOOORRROOOROROOOROORROOORRRRORROOROOOOROROOOOROOOOROOOOOROOOOORROORRRROOOOOOOOOOOOOROROOOOORROOOOOOOOOROOOOOOROROOOOOOOOROOROROROOOROOOOOROORROOOOOOOOOROROOORROOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOORROOOOOOOOOOOOROOOROOOOOROOORROROOOOOOOOOOOROOOOROOORROROOOOROOOOOOOOORRORORRROROOOOOROORORROROOOOOOROOOOOOOOOROROOOOOOOOOROOOOROOOOOOOOOOORROORRRROOOOOOOOOROOROOROOOORROOOROOOROROROOOOOROROROOROOOROORORROOOOOOROOROOOOROOOORORORORROOROOOOOOOOOROOOORROOORORRROOROOROROOOORROROOORROROROOROORROROROOOROROOOORROORROROOOROOORROOROROORRORRRORROOOORORRORROROOOROOROROOROROORORRRORRROROOOOROOROOOROOROORRROROOOOOOOOORROOOOOROOOROOROROOOOOOROORROORRRROOOROOROOOOORRRROOROROOOOORROOROROROORROORRRRRRORRROOOOOOROOOOOOOOOOOOOOOROROROOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROOOOOOOOROROOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOROOOOOORRROROOOROROOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOORRROROORRORORROOOOOOORROOOOROOOOORORORROOOOOOOORROROOOROOOOOOOROORORROOOOROOOOOOOOOROOOOOROOOOOOOOOOORROOROROROROOROOOROROORRROORROOROROOROOROOROROOOOORRORORORRRORRORROORROROOOOORORRROORRORRRRRROOOOOOROORROORROROORROOROOOOROOOORORROOORROOOOOOROOROOORRROOROORRRORROROOORORORRORORORRROROOORORROOORORRRROOROOOROROOROROOOOOOOOROOOOOORRRORRORRROROOROROOORORORROOOOROOROROROORRRRORRROOOOOROOORRORRRROOOOORORROORRORORROOOOROOOROOOROOOOROOOOOOOORROOORROOOOOOROROOOOROROROOOROOOOOOOOOROOOOOOOOOOOOROOOOOOROOROOOOOOOOROOOROOOOOOROOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOORRROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOORRRROROOOOOOOOOOOOOROOORROOOOOROOOROOOOOROOOOOORROROOOOOOOOOOOOOOOROOOOOROOOORROOROORROROROOOOOOOOOOOOROOROROOOORROROORRRRORORORORRRRRROOROOOOROORRROOOOOROOROOOROROROROOROOOOROOOOORROOOOROOROOROROORRROOOROOOROOOOOORRROROOOOROOORROROOOOOORRROROOOOROORROROOOOROOROROOORRROROOOORORROROOORRROOOOOOOORRROOOORRRROOROOOROOORRROROOOROROOOOORROROROOOOROORRRROORRORRROORROORROROOOROOROOROOORROROOOOOOOOROOOROOORROOROROOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOROOOOOOOOORRRROROOROOOROOOOOOOOOOOOROOOOROOOOOOOROOOROROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROROOOOOOOROOOOOOOOOROOROROOOOOOOOOOOORROOOOROROOOOOOOOROOOOOOROOOOROOROOORROROOOOOROROOORROOOORORRORROOROROOOOROOROOOOOORROOOOOOROOROORROOOORORORROORORROOORORROORRROORORROROOOOROOROOOOOROOOOOOROOORRORRRRRRRRROOOORRRORRROROORRROROORORORROROOOOORROOROOROOOOOOOORRRRROROOROORORROORRRORROOORORROOOOOOOOORRRORROROOOROORROOORROOOROOOOORRROOOOROROORORROOORRORROORROOROROROROORROOROOOROOOOOORRRROOROORROOOOOOOORRROOOOOROROORRROORROROOOOOOOOROOROOORROOROOOOOROOOOORROOORRROOOOROORORRROROOOROOOOOOOOOOOROROOOOORROOOOOOOOOOOROOOOOORRRROOOOROOOOOOOOOOOOROROROROOOOOOOOOOOOOOOORROOOROOOOOOOOOOOROOOOOOOOOOOOOROOOROOROOOOOOOORORROOOORROORROOOOOOOROOOOOOOOOOOOOOROOROROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOROROOOOOOOROOOOOOOOOOOOOORROROOROROOOOOOOOROOOOOOORROOOOOOOOOOOROOOOOOOOROOOOOOOOORROOOROOOROOROROOOOOOOOOOORROOOOOORROOOOOROROROROOORROOOROROOOOOOOROOOOORROOORORROOOORORROOOROOOOOROOOOOOROROOROOOOOOROROOOORROOOOOOORROROOOROROOOOORROORROOOORRROOROROROOOROOOROOOOOOOROROROOORORROOROOOOORRORRRORROORROOOOROOORRROORRROORROOROOROOROROOOOOOOORRROORRRORORORRROOROOOOOOORORRRRRORORORROOROOROROOOOOORORRORORROROOROORORRROORORROOOROORROOOOOROROOROORORROOOOOOROORROORRROORROOROOOOOOOORRROROOORROOOOROOROORROOOOROOOOOROOROROORROOOOOOOOOORROOOOOROOOOORROROROOOOOOROROOROROOOORRROOROOROOORROOOOROOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOROOROOORROOOOOOOOOOOOOOOOOOOOOORROROOOOOOOROOOOROROROOOROOOOOOOOOOROOOROOROOROOOOROOOOOOOOOROROROOOROOOOROOOROOOOOROROOOROOOOOOOOOOOORROOOROROOOOOROOROOOORROROOOORROOOOROROOROOOORROOOROROORROOOOOOROORORORRROROORORRORROOROROOOOROOORRORRRRRRRORRROROOOOOOOOROOROORRRRROROOROOOOOROROOOORORRROOROOROORROOOOOROOROOOROROOOOORORRROORROROOROOOOOOROORROOOOORRRROORRORORROOROROOOOROORROORORROOOOOOOOOORORROOOROOROROROOOROORORORRRROOROROOORRROOROROOOOOOOOOOOROOROOOROORORROOOOOOOOROOOROOOROOOOOROOOOROOROOOOOOOROROORROOOOOOORROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOROOOOOOROOOROOOOORROOROOOOOOOOOOOOROROOOOROOOOOROOOOOROOOOOOOOORROOROROOOOOOOOROOORROOOOOOROOOOOOOOROROOOOOOOOOOOOOROROOOORRROOROOROROOOOROOROROOOOROOOOROOOORORROOOOOOOORROOROOORRROOOOOOROOOOOROOOOOROORORROROORORROROORROOOOOROOROOOOOROOOOOOROORRROOROOOOOOOOROROOOOOROORRRROROORROORRROROOOROOROOORORORRRROOOOORRRRRORROROOOOOORRORRORROORRRORROROOORRRRRORROOOORORORROOORORRROOOOOROORRORRROORRORROOORRRRRORORROOROOOOOORROOROOOORRORROORROROROORRRORRORRRROOOOOOOORROOROROOOROOOROORRORROOROOOROOOORRRROOOOORORROOOROOOROOORROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOORRROOOOROROROOOOOORORROOOOOOOOROOOOOOOOOOOOOOOOORRRROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOROOOOOROOOOROOOROOOOOROOROOOROROOOOOOOOOOROROOOOOOROOOOOOROROOOOROOROROROOORROOOOOOROOROROOOOOOORROORROOOOOROOOOORROOOROROOOOOROOOOORORORRROOOORRROOOROOOOOORROOOORROOOROORROOROROOOROOOOROORRORORRROROOROORORROROORORORRROOOOROORRROOROOORORRRRROROOOORRRROORORORRRRRRORRRRROORROOROOOROOOROOOOOORORROOROROROROROORORRROOORORRRRROORRROOROROOORORRORRROROOORROOROOOORROROOORROOOOOOROOOOOROOOOOOORROOOOROROORORORORROOOOOOROROOORROOOROROROORROOOOOORRROOOROOOOORROOORROOROOROOROOOOOOOOOOROOOOOOROOOOOOOROORROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOROOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROROROOOOOOROOOOOROROOOOOOOORORROROOOROOOOOOOROOROOORROOOOOOROOOOOOOOROROOOOOOOOOROOROROROOROOOOOORROORRROOOOOOROROOOOROOROOOOOROROROORROOOOROOOOOOOOOOOOORRRRRRRORRROROOOOOROROROORROOOROOOOOOOOORORROORRROOORROOROOOOORRROROOOOOOOROOROOOORRRRORORROROOOOORROOROOORROROOOOOOORROOOOOORROROOOORROOOOROOOROOROOOORRORRROORRRROOOROORRROROROROOORRORROROROROORROOROOORROROORRRORRORRRORORROOROOOOROROOROROOROOOOROROOOROOORROORROOOORORRRRROOOOOOROROOOOOOOOOOROOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOORRROOOOROOOOROOROOOOOOOOROROOOOOOOOOROOOOOORROOOOOOOROOOOOORORROOOOOOROOOOOOROOOOOROOOOOOORROROOOOROROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOROOORROOOROOORROOORORROOOOOOOOOROOOOOOOROOOOOOOOORROROOORRRROORROROOOOORROROOOORORRROOOOOOOORROOOOOORRRRORORROOOOOOOROOOORROOOOOROOOROOOOOROOOOORORROOOOOORROOOOOOROROROOROOORRORROOOOROOOOOROOOROOOORROOROORRRROROROROOOOROOROOOORRROROORROROROOROOROROOORROROOROORORRRRORORRRROOROOOOROORRORRRROOOROORROOOROROORROROROOOROOROORRRROOORRRORROORRRORRORORROORRORROROROOOROOOOOOOROROORROROOOOROOOOOROOOOOORRORROORROOOOORRROOOOROOROOOORRROOROOOOOORORORORROOROOOOOOOOOOOROOOROROORORROOROROOOOOOORRROOOOOOOORORROOOOOOOOOOOOOROOOORROROOOOOOOOROOOOOOOOOOOOOOOORROROOROOOOOOOOOOOOOOROOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOORROOROOOOOOOOOOROROOROROOROOOOOOOORORROOOOROOOOOOOOOROROOOOORROOOOOOOOOOROOOROOOOROOOORROROOOOOROOOOOROROOOOOOOROOORROORRROOROOORROOROROOOORROROOROROOROOROOOOOOORORROOOORROROROORROOROOOORROROOOOOOOOOROOORRORROROROROORRROOROROROOOROOOOOROORROORRORRRORORRORROOOOORROROOOOOOROROOOOORROROROOORORROOORRROOROROOOORORROOOOOROOOROORORROOOROOOOORROORROROOOOROORORROOOOROORROROORROOOOORRORRROROOOORRROOROOOOORROOOOOOOOROOOOOORRROOROROORRROROORRROOOOROROROOROOOOOOOOOOOOOROOROOOOOOOOOOOROOROOOORROOORROROOOOROOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROROOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOORORROOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOORRROROOOOOOOROOOOROOOROOROOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOROOOROOOOOOOOOROOOOOOORRRROOOOOOOROOOROOORRRORROOOOORRRROOORRRROOOOORROOOORROROROOROORORROOOOORRORROROOOROOOOOOOOOROROORRROROOROROORRORRRROROOOROOORROROOOOOORROORRRORRORRRRROOORROOORRORRORORRORROROOROORRROOOOOOOOROORROOOOORROORRRRRRRRORORROROOOOOOOROOOROOOOOROROROROORROOROOORRORROOROOOOOOOOROOOOOOOOOORROOOOOOOOOORROOROOOOOOROOORROOROORORROOOROOOOOOOOOOROOOOORORRROOROORROORRROOOROOOROROOROOROORORRROORROOROROOROROOORORROOROROOOOOOOOOORRORROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOROOOOOOROOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOORROOOORRROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROROROOORROOOORORORROOOOOOOOROOOROROOROOROOOROOOOOOOROOOOROROOOOOORROOOOOROORROOORRROOORRRROROOORROROOOOROOROOOORROOROORRROROORRORROOOOOORRRRRRRRROROORRORRROORROROOROOOROROOROOROROROOOOROOOROROOOOOROOOOROOOOOROOORORRROOORRROROROROROORORROROOORRORROROORRRORRRORORRROOOOOORROORROORORRORRRRRRRRRROOORRROOOROROOOORRORORRROROOOOOROROORROORRROOOOROOROOOOROOOORROORROOROOORORRROROOROROOORROOOOOROOOOOOOOOROOROOROOORROOOOOROROOOOROOOOOOOOOROOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOORROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOROOOOORROOROROOOOOOROOROOROOOORROOOOROOOROORROOOOROOOROOROOROOROOOOOOOOOROOOOROOROROOOOOROOORORORROOOORORORROOOOOOOOORROOOOOOOOROROOOOROOROROOOROORROROOOOROROOOROOOOOOOOROOOOORROROORROOOROOROOORORORRORROOORRRORROOOOOROOOOROOROROORRRORRORROROORRRORRRORRRORRORROOOOROOORRRROOORRRROOOORRORRROOORROROROOORROOOORROOOOOOOOOORROROOOOOROOOOOROOOOORRROROOROOORROOOROOOROROOROROOOROOOOOOOOOOOOROOOORRRRRROOOROROOOOOOOROOOOOOROOOORORRORROOOOOROORROORORROOROOOROOOOROOOROORRROOROOORRROOOOOOOORROOOOOOROORROOOOOOOOOOOROOOOOOOOROOROROOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOROORROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOROROROROOORROOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOORROOORROOOOOOOOOOOOOROORROOOOOROOORORRRORRROOOROROOROOOOOROOORROOOOROROOROOROOOORRRORRROOROOROORROROOOOOOOOOROROORROOOOROROOOORRRRORRRORROOORRRORRORORRRORRRORROOROOOOROOORRORRRRORROOOOOOOORRRORROOROOOOOOOOOOOOROOOROOROORORRROOROOOOOROOOOOOROOOOOOROORROOOORRRRROOOOOOORRRRROROROORROOORROOROOORROROOOROOOOROOOROROOOROOOORROOOROOROOROOOOOROOOOOOORROOOOOROROOOOROOROOOROOOROOORRROOOOROOOOOOOROOOROOORROOOROOOOOORRRROOOOROOOOOOOOOOOOOOOOORROOOOOROOOOOOOOROOOOOOOROOOOROOOOROOOOORROOOORROOOOOOOOOOOOOOOOOOOOOROOOOOROORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOORROOORRROOOOOOOORRROOROOOOOOOOOOOOOOOOOOROOOOOROOROOOORROOOOOOOROOOORRRROOOROOOOROOOROOOOROROOROOOOOORROOOOROOOROOOOROOOORRROOOORORROROOROORROROOOOROROROOORRROORROORROOOOOROOOOOROOOOROOORRRRORRRROOORORRORROROOOOROORROORRORRRRORORRROOROOOORROOOROROOOOOOOORRRRROOOOROOORRRROORRORORROOOOOOOORORORROOOOORORROROROROOOROOORROOROROROORRROOOOROOOOOOROROOORROOOOOROROOOOORROOROOOOORROOROOOOROOOOOOOOORROOOOOOOOOOROOOOOORRRROOROOORROOORRORRORORROOOOOOOOOOOOORRROROOORRROROOOOOOORROOOOOOOOOOOOROOOOOOOOROROOOROOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOORROROOOOOOOOOOOOOOOROROORROOOOROOOROOOROOOROROOOOOOROROOROOOOOOOROOOOOOROROOOROOOROOOROOROOOROROORROOOROROORROOOOROOOROORRROORORROOROORROOROROOOOOOROOOOOORRORROORRORRORRORRRORRORROOORRROROOOOORORROORROORORORROROROORRROORROORROOROORRRORORROORRORORRROOROOROOORRRROORROROOOOOOOOOORROROOOOOOROOOORRROORRRROOOROOOOOORRROOORRROOROOROOOOOOROOROROOOROROROOROROOROOOROROOORRRRORROROROOROOORRROOOOOROOOOOORORROOOROOOOOOORRROROOOROOROOORROORROOOOROOOOOOROOOOORRRROOOOOROOOOOOOOROOOOOOROROOOOROOOROOOOOOOROOROOOOOOOOOOOOOOOOORROOOORROOOOOOOOOROOROOOOOOOOOOOOOOOOOROROOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOORROOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOROOOROROOOOORROOOOOOOOOOOOORROORRRROOROOOOOROOOOOROOOOOROOOOOROROOOROOOOOORROORRRRROOOOROROOROOORROROROOROOROOROOOOOORORRROOORROOROROOOOOOOORRRROOOOORORROOROOOOROOOOORRORORRROOORRORROOOOOOOORORORORORROOOOOROORRRRRROOORRROOORROROORORROROOOOOOOOOROOORRRRORRORROOROOOROOOORRRRRRRRORROOROORROOOROROORROOORRRRROOOOOOOROOORROOOOOOOOOOOOOOOORRROOORRROOOROOOOOORORROOOROOROOROROROOOOORROROOOOOOOOROOOROOOOOROROOOORROROOOROORROROOOOOOOOOOOOOROROOROOOOOORROOROOOOROOROOOOROOOOROOOROOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOROOOOROOROOOOORROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOORROOORORROOOROOOOOOOOORROOOROROORROOOOOOOOOOOOORORROORRRROOOORROOOOOROROROORROROOOOOOOOORRROROOOROORROOOROOOOOOORROOOORROOOOROORORROORROOOOOORROOROOOOOOOOROOOOROROOOROORRRROORROOOOOORRROOOOOOORORORORRRROOOOOOROOORRRROOOOOOROROOROOOOORROOOOOOOOOOOOOOOROOORRRORORRORROROOOORROORROOORRRROORRROROOOOOOOOOOOOORORRORRORROROROROOOOOOOOROOOROOROOORROOOOOOOROOOROOOROROORRORROOROOROOOROROOOOOORRORROOOROOROOOOOOOOOOROOORROOOOOOOROOOOOOOOOORORROOOORRROROOOOORROOOOOOROOROOOROOORRROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOROORROOOOOOOORROOOOOOOOOOROOOROOOROOOOORRROROOOOORROOOOOOOROOOOOORORORROOROOROOOOOROORROOROOOROROORROOOOOOOOORROORRORROOOORRRROOROOOROOOROROOOOROROOORORRORROOORROOOOOROOORRRRROROOOOROOOOROORORROOOOOROORRORROOORROROOROOOOROORRROOROOOOORROOORROOOOROORORRRORROROROOOORROORORRRROOOROOROORORRORROROROROOOORROOOOOROROOOOOROOOROROOORORROOROOORRRROROOROOROROOORROOORROOOOOOOOOOOOROORORROOROOOORRRROOOROOORROORROOOORORROOOROORROOOOOOOOOROROOROOOOROOORROROORRROOOROOOOOOOOOOROOOOOOROOROOOOOOOOROOOORROOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOROOOOOOOOOOORRORROOOOOOOOOOOOROROOOOOOOORRORROROOOROOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOROOOOOOROOROOOOOOROOOOOORROOOOOOOROOROOOOORRROOOOORORORRROOOROOOOOOOOOOOROOOOORORRROROOROOORRROOOOOROOORROOOROOOOOOOOOROORROOROOOOOOOOORORROOORRRRRRORROOROORORORRROOORROROOORORORRROOOOOOOORRORORRRRROROROOOOORORORORRRRORRRORORROROORROROOOOOROROROOROOROOROOROOORRROORRROORRRRORRROOOOOORRROROROORROORRROROOOOROOOOOROOOROOOORRORRROOOROOOOORORRROOOOOROROROOOOROORRRROROROROORROOOOROOOOOOORROOOORRRROORROROOROOOOROOOROROOROOROOOOOOOROOOOOOOOOOOROOOOOOOOROOORROROOROROROOOROOOOOOOOOOOOROROOOOOOROOROOOOOOOOOOOOROORRROOOROOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOROOROOOROOOOOOOOOOOOOROOOOROOOOOOOROOOOOOROROOOOOOOOOOOOOROOOOROOROOROOOOOOOOOOORORRRROOROOOOOOOOOORROOOOOOOOROROOROOOOOOROOOOOOOROOOOOROOOROOOORORRROROOOOOORROOROROOOROOOOOORRRROOOOORRRORROROROOOORRROOOOOOOORROOOROORORRRROROORROORORRRORORRROOOOOOORORROROOOOOORRRRRRORRRRROOROOOOOROOROOOOROOOOOOOROOROROOROOOORRORRRROROROOOOROOOOOOROOROROROOOOORROOROROROOOOROROOROROROROOOROOROOROOROORRRORROROROROOOOROOOROOOROOORRRRRROOROOROROROORRROORRRRORORRORRROROOOOROOOOOROOROOOORORRRROROOROOOOOROOOROORROROOOROOOORORROOOOORRRROOOOOOOOROROOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOROOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOORORROORROOROOOOROOORROOORROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROROOOOOOORRROOOOORROOOOOROOOOOOROROOOOOOROOOOOOORROOROROOOROROROOOROOROOROOOOOOOOROROOOROOROROOOROORRRRROORRROORORROOORRRROROOROROORROOOOOROOORORRROORROORRRORRORRRRROROOROOROOROORORROOROROOROORORRRRORROOOROOROOOORROOOOOOROOROOOOOOORROORRRRORRRORORROOOOORRROROOOROOORROROROOORORRRROORORROORRORRROOOROOOOOOROOOOOOORORRROROOOORRRROOOOROROOORROOROOOOROORRRROOROOROOOOOOOOOOOROOORORROOOOOOOOOROOORORROOOROOOOOOOORRROOOORRROOOOOROOOOOOOOOROOROOOOOROOOOOOOOOROOOOOOORROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOORORRORROOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOROOOOOOOOOOOOOROOOROOOOOOROOOOROOROOOOROROOOOOROOROOOOOOROROOROOOROOOOOROOOORROOOROROOOOOOOOROOOORROOROOOOOOORORRRRROOROOROROROORORROOOORRROORRORROORRORROROOOOROORRROORRRRORRRRRRROROOOOOOROOORRORROROOROROORORROOOROROROROOOOORRRORORORRROOOROOORORRROORRRORRROROOOROROOOROROROROOOROROOOOROOOOOOOOOOOROOOOORROORRROOOORROOOOOROOROOOROORORROORRRROOOOROOOOROOORROOOOOROOOORRRRORROROOOROOOROOOOORORROOOOOOOOORRROROORROOOOOOOROROOOOOOROOOROOOOOOOOOOOOOROOROOOOROOOOOROOOROOORRROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROORROROROOORRROOOOOOOOOROOOORROOOOORORROOOOOOOOOORRROOOOORROROROOROROOROOOOOORRORROORROOOOOORROORROOROOOOROOROOROOROOORRROORORORROOROOROOORORRROOROOOOOOOOOOOORROROROORRORROORORORRRROOROOOOOROOROOORORORROOORRRRRRORROOROOOORROOROROOORRROORORORORROOROOOOROOROROOROOROOROROROOORRRRRROOOROORRORROOOROOROOROORRRROROOROORRROOROOROORRRRRROOOOROOOROOROOORROOROOROOOROOROROOOROOOOORROROOROOROOOOOOOOOROORORROOROOOOOOROOOOOOOOORROOOOOOOROOORROOOOOROROOOOROROOOOOROOORORORRROOOOOOROOOOROROROOOOOOROOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROROORRROORROOOOOOOOOOORROOOOOOOOOOOOOROORROOOOOOROOOROOOOROOROOOROORROORRROOOROROROOOOOOOROOOOROOROOROOROOOOOOROOOROROOOOOOOROOOROORRORRRRRROROORORRROOOROROROOROROROORROOROOORORRORRRRROROOOOROOOORRRROOORRRORROOOOROROOROOOOOROOROOOOORROOOOOROROOOOOOORORRRROOOOOOOROOOROOOROROOROROOOROORROORORORRROROOROOOOOORROOORRORORROROOOORROOORORROROORRRRRROOORROORRORRRROORRORROORRORRRROOROORRROOOOOOROOROOORRORRORROROOROOOORRRRORROOOORRRORROOROOOOROOOOOROOOOROROROOORROOOROOOOOROOROOOROOOORROROOOORROOOOORROOOROOOROROOOOOOOOOOOROOOOOORROOOOROROOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOORROOOOOOROOOOOOOROOOOOOOROOOOOOOOROOOROOROOOOROOORROOROOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOORROOORORRORROOROOOOROORRROROROOROOROOOOOOOROOROROOOOOOORROOOOROOOOOOROOOOORROOOOOORROOROOORROOOOOROOOROROOOOOOOROOROOORRRRRRROOOORROOORROORROORRROOOROOORROROOOOOROOOOOROOOROOOOOOOROOOOORORRORROOOOORROROROOORRROROOROROROOROOOOOOOROOROOOROOOOOOORORORROOOOROORRROROOOOOORORRRROOROROOOOOOOOORRRORROOORORORROOOOORORROOOROOORORRRRORROORRRRROOORROOORORRRRROORORORROORORRROORROOOOOOORORROOROOOOROROOROROOOOOOOROOOOROOORRORROOROOORROROOOROOROORORROOOOOOROOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOROOOOOORROROOOOOOOOROOOOOOROOOOOOOOOORROOROOOOOOROOOROROOROOOOORORRRORORROOOOOOORORRORROOOROROOOOOOORRRRROOORROORROOOOOOOOOROOOROOROOOOOOOOROOOOOOROROOROORROOOOROROROOOORROOOOROOROOOORORRRROOOORROROOOOOOORROOOORRORRRRORROROORROROOOOORROOORROOOROOOOOOROORORRROORRROOOORROROROROOOORRORRORROOOOOOOOORROOOOOOOORROOOOOORRORORROORROOOORRROOOOORORRROOOOOOROOROOROROOOROOOOOOOOROROOOROOOOOORRROOROOOOOROROOOORROOOORROROROOROORROOOORROOROROROOORRROORROORROOROORORRORORORRROORORRROROOOOOOOOROROOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOROOORROOOOROOOOROOROOOOOOOOOOOOOROROOOOORROOOOOOOROOOOOOOOOOOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOORROOOOOOOOOOOOOROOOOOROOOOOOOOOOOROROOOROOOROOROROOOOROOOOOROOOOOOOROOOOROOORROROOOOOOOOOROOOOROOOOROROOOOOROOOORROOOROROOOOROOOOOOOOOROOOROROOROROROOROOORROROOROORRROOOOOOROOOOOOORROROORORRRRORRORRRORRROOOOOROOROOROOOROORRROOOOORRROROOROOROOOOOORORROOOOORROOROORORRRROOOOOORROOROOOOORROOROORRRORROOROOOOOOOOROOROROOOOOOOOOROROROOROOOROOOROOORRRORORORORORROORROROROORROOROOROOOORRORRRORROORRROOOROOOOROROROORORROOROOORRRORRRROORRRORROOOOOOOOORRRROOOOOROOOROOROOOOROROOORORRROROOOOOORROORORORROORROOOOOOOOORRROOOROOOOOOOOOOOOROOOOOOOOORRORRROROOROOOOOOROOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOROOOROROROOOOOROOOOORROOOOOOOROOOOROOROOOOOOROOOOOOOROOORROOROOOOOOOROOOROOOOOOOOOOOOOORROORROOROOOOOOOROROORROOOOOOOROOOOOOROOORRROROOOOROOOOORRROOROOOOOORROOOOOOOROOOORRROOROOORORORROOROORRROOORRROORROOOROOOORRORRRROOOOROOOOOROORROOOOROOROOROROORRROROOOORROOOOOOOOOOROOROROOORRROORROOOORRROOROROORRROORORRORROOROOOOROOORORRROROOOOOROOROOOROORRROOOORRRORRORORORRRRROORORRROOOOOORROOOOOOOOOOOOROOROROOROOOOOOOOORORORROOOOOOOOOROROROOROROROOROOOOOROROORRROOOOOOROOOORRROOOOOORROROOOOOOOROOROOOOORRROOORROOOROROOOROOROOOROOOORORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOORRROOOOROOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOROROOOOROOROOROOOOOOOOOROROROOOOORROOROOOOROOOOOROOOORRRROROORROOROOROOROOOROOROOOOROOOOOOROOOORORROOOOORRROORROOOOROROOOOOOROOOOOOROROROOOROOOOROOOORRORRROOORROOOOORRRRORROROORRORRROOOOORRROROORRORRRROROOOOOOROROOOOROOOORORROOROORRORORORROOOOORROOOOROOOORORROOROROROOROROOOOORROROOOOORORRRORORORRROOROOOOROOORORRRROORORRRROOROOOROOORRRRRROROORRROOROOOORRRROOOROOROOOOOOOROROOORROORRRRROORRROOOOOORRRROOOOOROROROOROOROOOOROOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOORORROOOROOOOOROOOOOOOROROOOOOOORROOOORROROOOROROOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOORORORORRROOOOOOOOROOROOOORROOOOOOROOOROOOOOOOROROOOOORRORROOOROOOOORROROOOOOROOOOROOROOROOOOROOOOOOOOOOROOOOORROROOOOOORORROOORROOORORORRROOOOROOOROOORRORRRRRRRRRROROORROOOORRROOORRROOOOOORROORRROOOOOOORROORORRORROOOOOOOORRRORORRORORORORRRRRROOORROOOROROOOOOORRRRRORRRROOOORRORRRRROOOROROOROORORRRRRROOOOOOORRORROROOROOOROOROOOOROOOOOOORRORROOORROORRRROOOOOROOOROOOOROOOOROOOOOOROORROROOOOROOORRROROOOOOOOOROOOOROOROOOOOROOOOOOOOOOOROOROOOOOOOOROOOOOROOOROROOROOROOOOOROOROROOOOOROOOROOOOOROOOOORROOROOROOOORROOOOOOOOROORRROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOORROOOOOOOOOOROOOOORROOOOOOOOOOOOOOOORROOOROOOOOOOOOOOROOOOOROOOOOOOOOROORROROOOROOOOOROOOOORROROROOOOOROOROOOROOOOOOORROOORORRRRRROOOOOROOROOROORROOOOORRORRROORORRRRORRROROOOOOOOOROROORORRROOOOOOORROOOOOOOROORRROROOOOOOOORROORRRRROOROOROOOOOROROOORRRORORORRROORROOOOORRRROROOROROOORROOOROOOORRROOOORORROOOOORORRRORRRORROROORORORROROOORORROOOORRRROROOOOROOOOORRRRORRROOROROOOROOOORROOORORRROROORORROOOOORRROROROROORROOOOOROOOOOORROOOROROORROROOOOORRRORROOOOROOORROOROOOOOROOORORRORORROORRRROOOROOROOOROOOOOROOROOROOOOROOROOOOOOOOOOOROOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOROOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOROOROROOOOOROROOOROOOOOOOOOROOOROOROOOOROOOOOOOOOROROOOOOOOOOOOORORORROORROOOOOOOOOOOROOOORROOOOORROROOOORROOOOROROOOOOROORRRROOROOOOROOORRROOROROROOOORROOROORROOORROOOOOOROOROOROROOOOOROROOOOOROOOOOOORROORRRROOOORORROOROOOROORRROROORROOOOOROORORRROORROROOORRROROOOROROOORRORORORORRROORORRORRRROOROORROORORROOROOOOOROORRRRRROOOOOOROOOORROOORROORROROORRRROOROOOROROORROROORRROROOOOOOOOORORORORRRRRRRRROOOROROROOOOORROROORORRRRRRRRROROOROROOROOOOOOROROORORROROROOOOOOOROOROROOROROOOOOOOOOORROOOOOOOOORROROROOOOOOOOOOOORROROROOOROROOOOOOOOOOROOROOOOOOOOOOOORROOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOORROOOORRROOROOOOOOROOOOROOOOOROOROROOROOOOOROOORROOORROOOOOROROOOOOOOOROOOOROROOOROOROOOROOOOOOORORROROOROROOOROOOOORRORORRROOOOOOORROOROROOORRROORROORROOOORORORROOOOORROOOOORORROOORROOORRRRRORORROOOOOROORORRORROOOORROOROOOROOORORRRROOORRORRRROOOROROROROROOOOROROOORRRRROOROOOROOROORORROOOORROOROOOOROROOOROORRROOROORROOOORROOOOOROOROORRRORROOORRORRRROROROOOOOROOOROOROORROROORROOROORROOROOOOOROROOROOOOOOOROOOOOOROOROOOOOOROOOOOOOORRROOROOOROROOOOOORROOOOOOOORROOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORRROROOOROROOOROOOOOOROOOROOOROOOOOOOOOORORORRORORORRROOORROOOOOOOOOROORROOROOROOOOORORRORRROROROOROOOOORROOORRROOOOROROROOROOROOOOORORRRRRORROROOROOOOOOROOOOOORORROROOOOOOORROORRROOOOROROROROOOORORRROOROOOROOORORRRROORORORORRROORRROOROORROOOROOORRROOORRORROOOOROOOORRROOORROOOROROOOOOROOROROORORROOOROROORROROOOOOOROOOORROOOOROOORORRROOORORROOOOOOROOOOORRROOOOOOOROOOROOOOORORRROOOOOOROROOOORROOORROROOROOOOOORORRRROOOOROORROOOROOROORORORROOOOOOROOOOOOOOOOORORROOOOOOOOOORROOOOOOOOOROOOOROOOOROROOOOORROROOOOOOOORORROOROOOOROOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOROOOOROOORROOOOOROOOOOOORRROOOROOROOOOOROOOROOROOOROOOOOOOROORROOOOOROOOOOOORROOOROROORROROOOOROROOOOORRRRORROOOOOOROOROROOOROORORORORROOOROOOORORROROOORORROOORRROOOOOOORORRRRORORORRORORRROOOORROOOOOOOROOROOORORRORROROROROOOORROOOOOOORRROOROOORORROOROROROROOORROOORROOOOORROOOOOOROOROOOOOROOROORROROOOOOOROOORRRROOOORORORROOORRRROOORORRRORORROROOOOORRORROORORRRRROOOOOROROOOOOOORROOOOOOOOROROROROOOOROOOROOOOOOROOOOROOROOOOOOOROROOOROOOOOOOOOOOOOROOOOOOOROOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOORROROOOOOOOOOOOORROOOOOORROOOOROOOOROOOOOOOOOROOROOROOOOOROOOROOOOOROOOROROROOOOOOOOOOOOOOOOOOOOOROROORROORROOOORROOOOOROORROOOOOROOOROOOOROOORORRRORORORROOOROORRRRRORRRROOORRRRROROOORROOROOOOOORRORROROOROORROROORORRRRROORORROROOROORRRROROOOROOOOROOOOROROOOOOORROOROOOROOOOROOROORRRORRRRROOOROROOOROOOOOOORORORRROOOOOOROROOOOROOOROOORROOOOROOOOORRROROOOROOOROROOOOOORROOOOORRRRRORORROOOORRRROOORROORROOOOROOORROOROROROORORORRRROOOROOROOOOOROOOOOOOROOOOOOOROROOOOROOOOOOOORROOROOOOOOOOOOOROROORORROROOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOROOOROOOOOROOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOROOORRROROOOOOOOOOOOOOOOOOORROORRRORRROOOROOOROOROOOOOOOOROOOOOOOOOROOORRROOOOOOOORROOOOOROOROROROOOOROOOOOOOOOORROOOOROOOROROORROOOOORROROOOORRRROOOOROOOOOOOORROORORROORORRRORRORROROOOORORROOROOROOORROORORRRROROORRROOROOORROOOOOROOOOOOOROOOOOROROOOOOOOORRROOOOOOORRRRRROOOOOOORORROROOROOOOOOOORROORROOOOOOORRROROOOOOOOOORRROORORRORROOOORORRROROOOORRROOOROROROORORROOROORROOOOORROROOOROROORRROOOOORORORROOOOROROOOOOOOORRRRROROROOOOOOOROORRORROOOOOROOROOORORORROOOROOROORORRROOOOROROOOOOORROROOOOOOOOOOOOOOOOORORORORORORROROORROOOOOOROOOOOROORROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOORROOOOOOOOOOOOOOOOROOOOOOOOOOROOROROOOOOOOROOOROORRROROOOROOOOOOOOOORROOOORROOOROOOOROROOOOROOOOOOROOORRORRRORROROOROOOROROOOORORROOROORROROOOOOOORRROOOROOROOOOORRRRORROROOOROOROORORROROOORROROOROOROOORRROROOOROOROOOOOROOORROROOORRROORROOOOORRRROOOROOOOORRROOOROOOORORORORRROROORROROROORROROOROROORORROOROROORROOROORRRRROOOOORRRRROROROROOOOOROOOOORORRRROOORRORROOOOORRROROROOOROOOOOROORROORROOOOOROOOOOROOOOOORORROORRRROORRRROOROROROOOOOROROORORRROOROORRORRROOOROOROOOOOORRROOOOOOROOOOROROROOOROOOOOROOROORROROOROOOORROOROROORRROORROOOROOOOOOOOOOOOOOROOOOOOOOROOROROOOOOOORRROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOROOOOROOOOOROOROOROOOOOOOORORORRROOOOROOOOORROOOORORORRROROOOOOROOOOROROROOROOOOOROOROROOOOOOOOROOOOOOOOOOOOROOOORROOROOROROOOORROROORORRROROROOROOOORRRROOOROOROOROOOOROORORORROORROOOOOROORRROORROOOOOOOROORORORROOOORRRRRRRROOOOORRRORROOOOOOORRROORRRORROORORORRORRRRORORROOROOROROOOOOOOOROOROOOOOOROOROROROOOOORRORRROROOOOOROROROOROOOOOOOORROROOORROORROORROOOOROOORROOOOORORRRORRRORRORROOROORRRROOOOROROROORROOROROOROOROOORROOOROOOOOROROOOOOOOOROOROOROOOROOROOOOOOOOOORROOOROOORRORRROORRRROOOROROROROOOROOOOROOOOOOOROOORROOROROOOOOOOOOOOOORROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROROROOROOOOROOROOOROOOROOOOOOROOOOOOROOOOOOOOOROOROROORROOOROOOOOOOOOOROROROORORRRROORRRORRROOROROOROOOROORROORRRROOORRRROOROOOROOROORROOROORRORRORORRORORROOOOOORRORROROOROORORRROROORROROOOOORORRRORRRROOOOOOOOOORRRRRRROROOOOOOORRROROROROOOOOOOOOORRROROOOOOOROOORRRORRROROORRORRORROORROOOOROOOROOOOROOOOROROOOOROROOOOORROOOORROOROOOORRROOROOROOROROOROORORROOOOOOOROOOOOOOOOROOOOROOROROROROOOOOROOOORROOROOOROROOROOROOOROROOOROOROORORRROOOOOOOORRRRROROOROOOROOROOORORROOORROROOROOROOOOOOOOOOOOOORORROOOOOOOROOOORROOOOOOOOOOOORORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOROOOOOOOOOOOROOOOROOOOOROOOOOOROROOORRRROOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOORROOROOOOORORROROOROOOROOOROOOROOOROOOOORRROROOOOOOOOOOOROOOOOORROOROOOOOROOOOOOOOOOOOOOORORORRROORORROOOOOROROORORRROOOOROORORROOOOOOORRRORRROROOOROOROOROROORORROOORRROOROOOOOOOOOROROOOOOOROOORORROROOORRRROROOORRORROORRROOOOOOOOROROORORORROOROROROOROOOOROOROOROOOORORROOOROOOROOOROOROOOOORORROORRORRROOOOORRROOOORORRROROOROOROOOROOOOROROOOROOOOOOOOORROROROOOOOOOOOORRROOORRRRORROOROOOOOOOOOROOOOOOOROOOOROOOOOOOROOOOOOROROOOROOOROOOORROOOROOOOROOOROOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOROOOROOOOOOOOOOOOOOOOORRORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOROROOOOOOROOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOORROOOOOOOOOROROORROROROOOOOOOROORROOROOOOOOOORROROOOOOOOOOOOOOOROROOOOOROOOROROROROOOROORORROORRRRROOOOROOOORROROOORORORRRROOROROROOOORROOOOOROROORORRORROORRRROROOOOOROOORRRRORROOROOROROOOROROOOOOOOOROROORRROOOOORROORORROOORROORRORROOOROOOOOOOROROOOROROOORRRROROORRORROROOOROROOORROOORROOOROOOROOOOROROOOROOOOOROOORRORRRROOROROORORRORRROOORRROROOOROORRRORRRROOROOROOROOROORRROROROROOOROOOORRRORROOOROOOOOROOOROOOOOORRRORROROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOROOOROOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOROOOOOOROOOOROOOROOOOOOOOOOOOOROOOROOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOROROOOROOOOOOOOOORROOOOOOROROOOOROROOROOOROROOROOOOROOOOOOOOROORORORRRORROORROOOOROOOOOORRRROROORROOOOOOROROOOOROOOORROROOOROOORRROOORORROOOROORROORRRROOOOOOOROOOROROOROOOROORROOROOROOROOOROROOOOOOOOROORORROOORROOROOOOORORRROORORORRORRRRRORRRROOORRORORROOOROOOOOORRORORRORROOOOOROOOORRROOOOORORRORORROOOOOROOROOROOROOROOOROOORROORORORROORROOOOOOROORRRRROOOROOOORROOORRORORROOOOROROORORROROOOORROOOOOOOORRROOORROOOROOOORROROOROROROOROOROOROOOOOOROOOOROOOOOOROOROORROOOOOOOOOROOOOOROOOROROOOROOOOOOOOOOORROROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROROOORORROOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOROROOOOROOOOOOOORROOOOOROOOROOOOOOOROOORROROOOOOOOOROROOROOOROOOOOOORRROOROROROOROOOOOOOOOROROOOORRORRROOROROOOORRROOROOOOROOORROROROROORROOORRORROROOOROOOOROORRORORORRORRORROOOOORORRRROROOOOOOOROOOROORRROOORRORROORRORORRRRROOOORROROORRROROROORROROROORORROORRRORRORRRORRRROROOOOORRRRROOROOROOOORORORROOROOOOOOROOORRROROOORRROOOOORROOOROROROORORROORROOOROOOOOOOROROOROOROORRROOROOROROOROOOOOROOROOOOOOOROOOOROOOOOROORROOOROOOOROORRROOOOOORROOOOORORROOOOOOOOOOOOOOORROOOORROOOOOOOROOORORROOOOOOOROOOOOOOOROOOOROOOOORROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOROOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOORORRRROOOOOROROOROOORROORRROOOOOOORROOOOOOOOOOOORROOROORRRROOOOOOOOOOOORRROOOROOOOROROOORRROROOOORRROOROROOOOROOOORROROOROROOORRRRRORROROROOORRROORROOOOROOOOOROORORORRRRRRORORRORROROROOOROOORRORRRROROOORRORROORROROROOOROOOROOOORROOOOOOORRROROORRORORRORROOOOOOOOOOOROOOOOORRRROOORROOROOROROOORROROROORROROOORROROOOOOOOROOOOOOROROOROOOOOROOOOOROOORROOOOROROORROORROOORROOOOOOROOOOROOOOOOOOOORORORROOOOOROOOOOOOOOOOROOOOROOROOOROOORROOOORROOORROOROOOOOOROOOOOOOOOOOOORROOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOORROOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOORROORRROOOOROOOROOROOOOOROOOROOROOOOOOOOROOOOOOROROROOOORROOROOOOROOOOORROOOOOOROOROOORRROOROOROOOOOOOOOOOORROROORROROOROOROOOOORRROOOOROORORROOOOOORRORROOOROROORROROROOOOOORORROOOOROOROOROOOOROOOOOROROOOOROROROOORROOROOOORROOOORRRROOOOOOOOROOOORROROOROOORRROOROOOOOOROOOORORRRROOROOORRROROROOOOOOROROOOROORORRRROOOOORRRROORROORORROOROOORROORRRRORRROORRRROOOOOOOROORROOOOOOOROOOOOROOROOOOOORRRROROROOOOOORRROORROOOOOOORRRRROOROOOOOOOROOROOOOOOOOOORROROROOOOORROOROOOOOOROOORROOOOOOOROOOOOOOOOORROOOOOOOROOOOOOOORROOOOORROROOROOOOROOOROOOOOOOOOOROROOOOOOOROOORROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOORRROOOOOORROOOROOOOOOOROOOOOOOOOOOOOROROOOOOOOROOOOOOOOORROOOOOOROOOOOOOOOOROROROROOOOOOOROROOROOORRROOROOORORRORORORORORROOOOOOOROOROOOROROOROOROOROOOOOROOORRRORROOROOOOOOOOOORROOOROOROORROROROROOOOOOOOOOOOROOOOOROORRORRROROOORRORRRROOOOOOROOOOROOROROOROOOOORROOOOORORRRRROOOOROROROORORRROOOOOROOOROOROROOOOOOOOOOORRORROORROOORRROORRRROOOOOOOOOOOOORRROOOOOOOOOROOOOROOOROROOROOOROROOOOOOOOOROORORRRRORORROROOROOORORROOOOOOOOOOOOROOOOOOORROOROOOOOOOOROOOOOOOOOOORORROOOORORROOROOORROOOROOROOROOOOORROROOROOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOORROOOORROOOOOOOOOOOOOROROOROOOOOOROOOOOOOOOOROROOOOOOROOOOOOROOOOROOOOOROOOOOOROROOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOORORROOOOROROOOROORROOORRROOROOOOOORRROOOOOOOOOOOOORROOOOROOOOOOOOROOROOOOOROOOOOROOORROROORRROOORORROOOOOORROOOORRRRRROOOOOOOORORRORRROOOORROOOORRRRROROOROOOOOOROOOOORRROOORRORROORRORRROOOROOOOORRROOOORRRROORRROROOOORROOOORROROOORROROROROOOOOOORROORRRORORORROOROOOROROROROROOORRROROOORORROORROOOOOOOOOOOOOROOROROROOOORRRORRRROROOORRROOOORROOOORRROOOOORRROROOOOOOOOOOOOOROOOOOOROROOROORORRRROOOROOOORROOOOOOOOOORROROOOROOROOROROOORROOOORROOOOROOROOOOOOOOOROOOOOOOOOROOOOOOOOROOOORROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOORROOROOOOOOOOROOORRROROOOOOOROOOOOOOOROOOOOOOOOOOOOOORROOORRROOORRROOOOOOROOOOORROOROOOOOOROOOOOOOOROOOOOOOORRROOOOOOOOROOROOOORROROROOOORORROORRROOOOROORROORORORORRROORROOOOOOOOOORORORROORORROOOOOROORORRROOOROOOOOOOOOOROORRRORRORORORRORROORRROOOROROOORRROOOOOOOROOORORRRROOOOOORORROORRRROORRROOORROROORROOOOOROOROROOORROROOOOOOOROORROOOOOROOROROOOOOOOROOOROOROOOROOROROROOROOOROOROORRORROOROOOOOOOROORRROOROROORRROROORRROOOORROROOOOORORROROROOOOOORROOORRROOROOOOOOOROORROOOROOOOOOOOOOROROOOORROOOOOROOOOOOORROOROOOOOOOOROOOOOORRRROOOOROOOOOOOOOOOOOOOOOOROOOROOOROOOOOOROOOOOROOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOROOORROROOOOOOOOOOORROOOORROOROOOOOOOOOROOOOOOOOOOOOROOROOOROOOROOOOOOOOOOOROROROOOOROORORROROOOOOOOOROOORRRRRROOOROOOOORRROORROOOOROOROORORRROOOOOOOORROOOOOORROROOOOROOOOOOOOOOOOOOROROORRORROROORROORROROROOOOORROOOROOROORORRRROOROROOROOOORROROOOOORROOOORORRRROORRRRROROORORRRORRRRROOORRRRORORRROOORORRORORORROROORROROOORRORROOORRROOOORRRRRROOOOROROOOOORRORROROOOROOROOORORRORRORRROROROOROOORRROROOOROROOROOOROOOOOOOROROOOROOOORORRRRROOOOOROOORORRROOOORROOOOOOOROOOROROOORRROOOOROROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOORORORRROOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOROOOROOOOOOOROOOOOOOOORORROOOROOOOOROOOROOOORROOOROOOOOOORORRROROORORROOOOOROOOROOOOROOOOROROORROOOROROROOROROOOOOOOROOROOROROOOOORRROOOROORORRROORRRORRROORROROOROORROROOROROOOOOORORRROOOOOOOOROORORROOOORRRRRRRRRRRRRROROOOROOOROOORORORRRRRRROROOOOOROORORORRROOOROOORROROROROROROOOOROOOOROOOOROOOOOROOOORORRORRROROROROOORORROORROROOOOOOOOORRRRROROOOORRRROOOOOOOOROORRORRORROOOROORROROROOOOOORRORORROROROOROORORROOOROROOORROORORRROROOOOOOOROOROROOOOOOROOOOOOROOORROOROROOOORORORROOOOROORROOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROROOOROROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOORROOOOOORROOROORRORORROOOROROOOOORRROOOOOORORORRORROOOOROOOORRROROOOROOOOOOROOOOOOROROROROORORROOOOOORROOOOOORROOROOOOORRRRORRROROOOOOROROOROOOORROROORORRROOOOORROOOOOOOROORORROOROOORROOOOORROROOOOOOROOOORORROOORROOORRRRROROORROOROOORORROROROROOORROORROOOROOOROOOORROROORROOOORRORORROOOOROORORRROROOROOOORROOORORROOORORROOOOOOROOOROOOOOROOOROOOOOROROOOOOOORORROOORRRRROOOOOOOOOOORROOOORRROORRRORROOOOOROOORRROOOOROOORROOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOROOOOROOROOOORROORORROOOOOOORRORRRROROOOOOOOOOOOOOOOOOOOROOROOOROOOORRROOOOOOOROOROROOOOOOROOOOOOROOROOOOOROOROOORORROOOOROOOOOROROOORORROOOROROOOOOOOOROOOROOROOROORROOROROOOROROROOORROOROROROOOOROROROOORROORORRRRRROOROROOROOOOOOROROROOROROOROOOORRROOROORRROOOROROOOORRRROOOROORRRROOOOOROOROOOOOOOOOOOOOROOOORRRRROROOORRORROOOROROROOOOOOORROROOROOOOORROOOORORROOROOOROOROOOOOOOOOROROOORROROORRROOROROOOROOOOOORORRROOOOOORROROROOORROOROOOOROOOOROROOOROOOOROROROOROOOOOOOOOORROOOORROROOOOOOOOOOOOOOOOOROOOROOOOORROROOROROOOOROOOOOOOOOROOOORORROOOOOOOROOOOROOORROOOROOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOROOOOOROOOOOOOOOROOOOROROOOROOOOOOOOOROOROOOOROOOOOOOROROORRRORORROOOROOROOOOOOOOOOOOOOROOOROOROOORROOOOOOROROROOOOOOORROORORROOOOOOORORROOROOROOOOOOORRROROORROOROORRROROOROROROORORROOOOOOORROROOORORRRROOROOORORRROOOOORRRORRRORRRRORRRRROOROOORROOOROROOOORRRRORRROOROOOOROOOOOROORROORORROOOOOOOROORROOOOORRROOOROOOROROOORROROOOOOOOOORRORROOROOROOOOROOROOROOOROORRRRORROORRROROROROOOOROOOOORROROOOOOOOROORRROOOROOOOOOOOOOOOOOOOOOOOROORRORORROROOOROOOOOROOORROOOOOOOOOOOOORROOOOOOROOOOROOOOOOROOOROROOOOOOOOORORROOOOOROROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOROOOROOOOOOOROOOOOORROOOOOROROOROROOOOOOOOOOOORROOROOOOOOOOOOROOROROOOOOOORORROOOOORORORROOOORROOROOOROOOOROOOOOOOORRORROOOOOORRROOORROOOOOORRROROORROORRROOROOROORORORORROOOOROROOOOROOOROOOORRROORRRRRROOORORROOOOROROOOOOROOOOOOOOOOOROOROOOOOOOORROOROOORORORORROROOROOOROROOROOOOOOORRRORRROORRORROOOOOOOORRORORRRROROOROORROOROOROOOOOORRROOOROORRROOOOROOOROOORRROOROOOOORORORRRRROOOORROOOORROORROOROOOORRRRROOORROROOOOOOROROOOOOOOOOOOOOOORORROOROOROOORROOROROORROOORRROROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOORROOOOOROOOOROOROROOOOOOOOOOOOOOOOOROORORORROORORRROOROROOOOROROOOORROOROOROOOOOOROORRORRROROOOOROOROOOOOOOROOROOOOOROOROOROROOOOROOOROOOORORRROROOOROOOOORROOOORROOOOOROOOOOOOROROOOROOOOORORROOOROOOOROOROROOOROOOORROOORRRROOORORROOOROOOOOROROOORROORORRORROROOOROOORRROOROOROOROOROORRRRROOOORRROOROORRRRROOOROOROOOOROOOOOOOROOORRORORRORRRROORROOOOOOOROOROROOOROOOOROOROOOOROOOORORRROOOROROOORRORRRROROOORRRROOOROOOOROOOOOOOOOOROOOOORORORRRORROOORROOOOOORORROOOOOOORRORRROROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOORORORORRROOOOROOOOOOOOOOOROOOOROOOOOOOOOROOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOROOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOROOOOROROORRROOROORROOOOOROOOROROOROOOORROOROROOOOOOOOOOOOROOOOOROROOOROROOROROROOROOOORROOOROOROORRRROOOOOROROROORROOROOROOOROROORROOORROOOROOORROOORRRRROOORORORROROOROROOROOOOOROOOOOOOOROOROOOROROORROOROROOOORRRROOOOOOORROORRRRRRRRROORRRORRRORROOOOROROROOOROOOOOOOOOOOOROROOROORRROROORROORRRRROOOORROOOOOORRORROOOROOORRORROOOROOORRROOOOOOROOOOORROOROOOOOROOOOOROOOOOORRORROOOORROOOROOOOOROROROOOOROORROROORROROOOOOOOOOROOROOOOOOOOOORROOROORORROROORRRRORRRORRROORRORROOOOOOOORROOOOOOOROOOOOOOROOOROOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOROROROOROOOOOOROOOOOOOOOOOROOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOORROORRROOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROROOROOORROORROOOOROROOROROOOROROOOOORROOOOOOOOROROOOOOROROOOOROOORRRROOORROROOOOOROORORROROOROOOOROOOOORORRROORRRRORORORRRROORORORRROOOROOOOOOOOOOOOOROROROROORORRRRROROROOORROROROROOORRRROROOROOROOOORRROOROOROOOOROOORORRROROOOOOROORROOOOROOORRRROORRRROROOORRORRROROROOROOROOOORROORRROOORORORRROOOOORROORROOOOOOOROOOOORRORORRROOOORORRRROORROROROOOOORORRRORRORORROOROOOOOROOROOOOROOOOOOROROOROROROOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOROROROOOOOORROOOOOOOOOORRROOOOROOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOROROOROOORRROOOOOOOOOROROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOORROORROROOOOROOOOOOOOROOOOOROOOOOOOOOOOOROOROROOOOOOOROOOOOOOOOOOOROOOOOOOOROOOROOOOOROOROROOOROOROOOOOOOROORROORROOOROOOOOROOOROOOOROROOOOROOROROOOOORROOORORROOROOOOOOOROOOOORRRORROOOOOOORROOROOOORRRROORROROROOROROORORROORROOOROROOORORROOROOOOOORRRRORRORORRRORORROOOOOROROOOOORORRRROOOROOROOOORROORORROOOOOOOOOROOOOROROOOOOORROORORROOOOOROROOOOOROROOROORROROOROOOOORROOOOROROROOOROOOROORROROROROORRROOOROROOOORORRROROOOOOOOOORORRORROROORROOOOOOOOOORRROOOOOOOROOOOROOROOORRRROOOOOOOOROROOOOOOOROROORROOOOROOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOROOROOOOOROOOOOOOOOOROROOOROOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROROOOROOOOROOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOROOOORRRROOOROOOOROOROROROOOOOOOOOOOOOOOOOROOROOROOOOOROOOROOOROOOOROOOOORORRROOOOOROOOOOOOOOOROOROOOOOOOROOOOOOOOORORROROOROROROORRROOORRROOROOOOORORRRORROOOOOORRRRRORRROOOORORRORRRRROOORROOORRRRROOORROOOOOROORRORRRORRORROROOOOOOORRORROORORROOORRORROOORORRRORRRORROROROROORRORRROOORROORRRROROROOROORRRORRROROOORROOROOOORRROOOOOOROOOOOOOOOOROOOOOOOROROOOROORROORROOOOOOROORROOOOOOOOOORORROOOROOOROORROOOOOOOOOROOOOOOOROOOROOOOROOROOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOROOROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOROOOROOOOOOOOROOOOOORROROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOROOROOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOROOROOOOOOOOOOOROOOOOROOOROROOOOOOOOOOROOROOOROROOOOOOOORROOOOOROROROOOROROOOOOOOOROOORORROOOROORORORROROOOOROOROROOOOORROOOOOOOOOOROOROROOROOROOOROOOORRROOORROOOORROOROOORROOOOOOOOROORRROROROOOOOOOORORROROOORROORRROOOROROOOROOROOROOOOOROORORROOORRROROOORROOROROORROORROOOROOORORRRRORROOOOOOOOOOOROOROOROROORROROROORORRORORORRRORROOOOOOOOOOOOOOORROOROOORROOOROOROROOOOOOOOROOOROROORROOOROOOOOOOOOROOOOOORRROOORROOOOOOOOOOOROOOORROORORROROOOROOOOOROOOOOORROOOOROOROOOOOOOOOROOOOOROORORROOROOROROOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOROOROOOOOOOORRROOOOOOOROOOOOOOROROOROOOOOOOOOORRROOOOORROROOOOOOOORORROOOROROOROOOROROOOOROOOROROOOOOOOROOOOOOORROORROROOOROOOOROOOOOOORRRROOOOOOORORRORROOORORROOOOOROORROROOORRROROROOOROOOOOOOORRORORROROORROROOORRROOOORROOOOOOOOOOOROOOOOROOROOROROOROROROOORROOROOOROOOOOOORRROOROOROROROOOORROOOOOOOORRRROROOOOROORORORORRORROROROOORORROOOOOOROOOOORRORROOROORRROOOOOOOOOOOOROROOROOOROROORRROOORORROROOOOORROOOOOROOOROOROOOOOOOORROOOOOOOORORROROOOOOORROOOOOOOROORROOOOROROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROROOOROOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOORROOROROOORROOOOOOROOOOOROOOOOOOOROOROOOROOOROOROOOOOOOOOOOROOOOOOOORROROROROROROOROROROROOOROOOOROORORRRROOOORRROOORORROOROROOOOOOROROOROOOOORRROOROOORROOORRORRROORROORRROOOORROOOROOOOORORORROORROOOOOROOOOOORRORROOOROOROOOROOORRRROORORORROOORORROORROORROOORROOROOORRRORRROORROOOORROROROOORORORRORRRORROROOROOOOORRROOROORRRORROOROOOROOOROOROROORROORROOROROOORRROOOROROOOORROOOOOROOORROROROOOROROROOOROROOOOOOROROOOOOOOOOOOOOOOOROOOOROOOROOOOOROOROOOOOOOOOROOOROOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOROOROOOROOOROOOOOROOOORROROOOOOOOOOOROOOROOOOOOROOOROOROOOROROROROORROOROOOOOROROOROOOOROOOOOOOOOROOOOOOORROOORROOOOOOOOROOOROOOROROOORROORROOOOOROOOOOOROROOORORROROOOOROOORRORORRRORROORRRROOROROROROROOORRROORORRRROORROROOOROROOROORROOOORRRRRRRRRORROORORORRRORROOROROORROOROOOOORROOORORROORROOOOOOORROOOROOOOROOOOOOROORRRROORRRRROORRRRRORORROOOROOOOROOROROOROOORORORRORROORORORROORROOOOROOOOOOROROROOROROOOOROROOOROROOOOROORRROOOROOOOOOOOOOOOROOOOORRROROOOOOOROROOOOOOORROOOOOORORROOOOROOOOOOOROOOORROROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROROOOOOROOOOOOOROOOOOOOOOOOOOOORORROOOOOROOOOROOOROROOOOORROROOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROROOOOOROOOROROOROOOOOOOOOOOOOOORRROOOOOOOOOOORROOORROROROOOOORORROOORROORROORORRRORROROROOROOOOORRROOOOOOORRROROROOOOOROORROORRRROOOROOROORRROOOOORORRRORORROOOROORROOROROROOOORRROOROROROORRRRRORROOOOOROOOOROROOOOROOOOOOOOORORROOORORRRROORORORRRROOOROOROOOOROORORROOOOROOROORORORRROORROROOOROROOROOOOOORROOOORROOOOORROOORROOOOOOOOOOROOOROOOOOOOROOROOOOOOROOOOOOOOOOOOOROOOOOORORROOOOOOOOOROOOROOOOROOOOROOOOOOORROOOORROOOOOOOOOROOOOROOOROOOROOOROOROROOOOOOOROOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROROOROOOORROOOOOOOOOOOROROORORROOOROROOOOOROOROOOROOROOOOOOROOOOOOOOROOOOOOOOROORRRROOOOOOROROOOOOOOOORRORRRROOROOROOOOOOOOOROROOORROORROOROROOOOORROOORROOOROROORORORROOOROROOOOOROOOOOORROORRORROOROOORRROROOOOOROOOORROOOOOORORRROOORROORRRROOOOROROORROROOROROOORORRROOOOORORORORORROOROOOOOROORROOROROOOROROOORRRRROOOORRRRORORRROOOROORROROOOROORRROOORRORORROOORROOOROROOOROROOOROOOOOOOROROOOOOOOOOOROOOORROROOROOORROORRROOROOROOOROROOORROOROOOOOOORROOOOOOOOOOOOOOOORORROOOOOOOOOORROOOOROROOOOOROOOOOOROOROROOOROOROOOOROOROOOOOOOORROOOOOOOOOORROOOOOOROOORROOOOOOOROROROOOOOOOOOOORROOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOROOOOROOOOROROOOOROROOOOOOOROOROOOORORROOROOOOOROOROROOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOROOORROROOOROOROOOOOOORROOOROOOOOOROOOOOROROORROOORORROORROOOOORROOOOOORROOOOOROOOOROOROOOOOOOOOOOROROOOROROOOOOOROOOOOOOORRORROORORROORROROOOROROROOORORRRORRORORROOORROOORRROROORRORROOOOOOROOROOROOROROOORRRORRRORRROOOROORORORROORRRROORRORRRRRRORROROOOORRORRROOROORORROOOOOORORRRROOROORROOROROOROOROROORORRROOOORROORROOOROROOROROOOOROOOORROOOOOOOOROOOOOOOORRROOOORROORROOOOORROOORORORROROOROOOOOROOOORROOOOOOOROOOOROOROOROOOOROOOOOOOOROOOOOROOOOORORROROOROOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROROOORORROOOOOOOOOOOOROOOROOORORROROOORORROOOROROOOOROROOOROOROOOOOORORROOOROOOOOOOOORROOOOROORROOOOOOOORROORROOROOOOOROOOOOOOOROROROOOOOOORRRORROOORORROOORORRRRROROOOORROROOOOOROOROOOORROOOOOOOORROOOOROOORROOOOOOROOOORRRROOOOOORORRRROOOOOROROROOORROORROOOROOOOOOOOOORORRRRROOOOROOOOOROROROROORRROOOROORRRRROORORRROOOOROOOOOOORROOOROOOROOOOROOROROOROOOROOOOORROOOOOROOOOOOROOOOOOOROOOOROOROOORROORORORROOOOOOROROOOOOOOROOOOROOORRROOROROOOROOROROOOOROOROOROOROORORROOOOOORRRRROOOOOOOOORROORRRROOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOORROOOOOOOOOROROROOOOROOOOOOOROOOOOOOOROORROOROOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOORROOOROROOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOORROOOOROOOORROOOROOOOOORROOOOROOOROOOOORRORORRRRROROROOROOORRROORROOOOORROORROOROOOOORORROOROROOOORRRRRROROROOROOORRRRRROOORORRROROOOOROROOOOOORROROOROOOROORRRRROROORROOOOROROOOORORROOROOOOROOOROORRRROROOORRROOROOOOOROOOOOOOOOROOOOOOORROROOOOROORROOOORRROOOOOORRROORROOOOORROORROORROOOORROOOOROOORORORRRORRRROOOOROOOROOOOOOOOOROOOOOOOROROOORROROROROOOORROOROOOOOOROOOOOROOORORROOORROOOOOOOORROOROOOROOOOOOOROOOOOORROOOOROOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOORRRROOOOOOOROOOOROOOOOOOROOOOOOOOOORROOOOOROORROOOOOOOOOROROROOOOOOOOOORROOOOOOORROOOOOOROOROOROOOOROOROROOOORROROOOOOOOOOORROOOOROOORRRROOOOOOROOOORROOOROOROOOOOOOOOOOOROOROOORORROOOOOROROROOORRORROOOORORORRROOORORROOROORROOOOOORRROROOORROOOORRRRROOOOOOOOORRRRROOOOOOOOROOROOROOROORROOORROORRRROOOROOORROOOROOROOORRROOROROOOOOOOORRORRROORROORROOORROOORROOROOORROOOOOROOOOOOOROROORROROOOOOOOROOORROOROROORRROOOOORROOOOORROROOOROOOOORROOOOROOOOOOOOOOOROOOOOROOOOROOOROOOROOORRROORORRROOOOOOOOOOOOOOOOORRROOOOOOORRORRORORORORORROOROOOOOOOOOROORROORROOROROOOOOROOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOROOOOROROOOROOOROOORRORRROOOOROOOOORORROOOOOORROOOOOOOOOROOOORROOOOOROOOOOOOOOORROORROOOROROORRRROOROOOOOOOOOROOOROROOOOOOOOOOOORRRROOROOORRROOROORORORROOOORROOROOOOOOROORORROROOOOOOROROROOOOOORORORRRROOOOOORORROORRRORORROROOOOORORRRROOORRROROROOORRROROOOORRROOOORORRRORORORRORORROOOORRRORORROOOOROOOORORORROOROORROROORORRROROORRROOOOOROROOOOOOOROOOOROROORRROORORORRORROOOROROOROOROROROOOROOORRRORROOOOOOROOOOROROOOROOOOOOOOORORRROOOROOOROOOROOOOOOROOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOROOROROOROOOOOOOOOOOROOOORRROOOOOOOROOOOOROOOROROOOROROOOOOOOOOOOOOOOROORROOOOOROOOOOOOOORROOOOROROOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOORROROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOROOOOOOOOOOOOROOROOORROOOOROOOOOOOOOROOOOOROOOOROROORROOOROOOOROOROOOOOOOOROOOORROOROOOOOORROOOOOOORROOOROOOORROROOOOOROROOROROOOROOOORORROOROROOOROOOOOOOROOOROOOOOROROORRRROOOOORRRRROOROROOOOOOOROROOROOORRROOROORROOROOOOROORRROOOOOORROROOROOROOORORRORRRROORORORRRRORROOOORORROOOOOOROOROOOROOROORRROOORRROORRRRROOROOOOOROROOOOROOOOORROOORRROROOOOORROOOOROOROOROOOOOOOOROOOOORRROROROORRRRRROOORROOOORROOOROOROROOOOOOOROORRROOORRORROORROOOOOOOOROOOOOOROOOOROOOOOOOOOOROOROROOOOOROOOOROOOOROOOOOROOOOOOROOOOOROOORROOORROOOOOROOOOOOOOOOOOOOORRORROOOOOOOROOROOROOOOOOOOOOOROROOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOORROOROROOOORROOOROROOOOOOOROOOOOOOOOOOOROOOOORROOROOOOOROOORROROOOOROOOROOOOOOROOOOOOOOOROROOROOROOOORROOORORROOROOOOOORROOORRRRORRROROOOORRRORROOOORROORORROORROROROOOORROROOOOORROOOOOOOORRROROOOROROROROORRRORROROROROOORORROOOOORROOORRORRROOOORORROROOROROOOROROOROOROOOOORRROROOOOOROROOOOOOORRORRROROROROOOOROROOOORRRROOORRRRRRRORROORROROOOROOOOOROOOOOROOROOROROOOOOROORRROOOROROROROOOOROROORORROOOROOOORROROOOOOROOOROOOOOOOOOROROOOOOOROOOROOOOOROOOOOOOORROOOOOOOORRROOROOROOOOOOROOOOOOOOORORORROROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOROOOOROROOOOOOOOORROOOOOROOROOROROOOOOOOROROOOOROOOOOOROORRROROOOROOOOROOROOOOORROOOOOOOROROROOOOOOOOOROOOROROORRRRRRRRORRRROROOOROROROOOOROOOROORRROROOROOROOOROOROORRROROOOOOOROOOOROOOOOOROOOORRRRRORORORRRORORORRORRRROROROORROOORORORROOOORROORROOROROOOOROOORRROROROOORROOOROOORROOORRRRORRRORROROROROOORORRROOOOOROROOOOORRROORRRORRORRRRROROROOOOORROORROROOOORORRROROOOOROOORRROROOROOOOOOROOOOORRROOOROROOOROROOROROOORRROROROOROOROOOOOOROOOOROOROOOOOOOOOOOOOOOOOROROOOORRRROOOROOOOOROROROOOROROOORROOROROOROOOROOOOOORROOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOORRRROOOROROOOOROOOOOOOORROOOROOROOOOOROOROOOOOROOOROOOOOOORRRROOOOOOOOOOOROOROROOROROOOOROOOOOROOOORROORRROROOOOROOORRROOOOOOROOOOOROOROROOOOOROOOOOOORORRROOOOOOOORROOOOOOOOORRROORRROOORROOOROOOOOOOROOORRRRRORROOOOROOROORRROROOROOOROOROROOROROOOORORRROOOROROOOOROOOROOORROOORROORROROROOOROOOROOROOOOOROOOOORORROORRRRORROORORRORROOOOOROROOOOOROOORROROROOOROOROROORROOOOOOOOOOOROOOOROOOOOOOORROOROOOOOOOOROROOORORROOOORROOORORRROOOOOOROORROOROROOOROROOROOOROOOORROOOROORROOOOOOROROROOROORROOOOOOOROROORROOOOOOOROOOOOOROOOOOOROOOOORRORROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOROOROOOOROOOOOOOOOOOOOOROROROOOOOOOOOOOOROOOOOOROOOOOOOROOROOOORRROOOOOORRROOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOORROOROROOOROOOOOOOOROORROOOROOOOORROORRRROOOOOROORROORORROROROOOOROOOOOOROOOROOOOOROOOOORROROOOOOOROROOOROOORROOOOOOOOOOOROOOOORROOOOOOORORORRRRROOOORROOOOROOROORROOROOOORRRORROOORRROOROOORROORROOROOROOROROOOROROROORRRROORROROOORROOORRRORROROORRROORORORRORORORROOROOORRRRROORROOOOOORORORORRRROOOOOOROOOORRRRRROOOOOOOOROORORROOOROORORORORRORROOOOOOOOOORROROOROROOOROOOOROOOOOROOOOORROROOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOROROOOOOOOORROOOOOOOOROOOOROOORRROOOORROOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOORROOOROOROOOORORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOOROOROOOROOOOOOORROOOROOROORROOOROOROROOOOOROOOOORROROOROOOOOOOOOOOROOORROORRRRRORRORORRROOROROOROORROROROOOOOOOOORRRRROOROROROOOOOROOOOORRROOOOOOROROROOOROROOROROROROROROOORORRORRROROOROORORROORRRROORROROROOROROROOOOOOROOROOOOOROOOORORORROOROROROOOORROOORRORRROOORORROOOOOOOOOOORROOORRROORORROROROOOROROOOORRRROOOOROOOOOOOOORROOOOOOOOOORROOOOOROORRRROORORROOOORROOOOROOOROOOOROOROROOROOROOOORROOOOROOROOOOROOROORORRRROOOOOOOOOOOOOROOOROOORROOROOOOOOOOROOOOROOOOOOOOOOROOROOOROOROOOOOROOOOOOOROOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOROOROROOOOOORROOOOOROOOOOROOOOOOOOOROOOOROOOORROOOOOOOOOOOOOOOOOOOOOROORROOOOORROOOROOOOOOROOORROOOROOOOOROOOOOOOROOOROOROROOOOOROOOORRORRRORORRROOOOROOROOOOORROORROOOOOOOOROOOORROOOOORRORROOOOOORRRROOOOROOOROROOORRROOOOORRRORRRROORRRROOOROOROOROOOOORROOROOOORORRROOROROOROROOROOOROORORORORROOOOORRROORORRORROOOOOORROOOORORORRROOOOROOOOROOOOOOROOOOORROOORROOOOOOOORRRORROOORROOOROOOOORRRROOOOORROORROOOROORROORROOROOOOOOROOOOOOROOOROOORROROOOOOOOOOROOOOOOOOOOOROOOROORRORRROOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOROOOOOOOOROOORROOOOOOOOOOROOOOOOOOOOOROOROOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOORRRROOOOOOOOOOOOOOOORROROOOOOOOOOOORROOOOROOOOROOOOOOROOOOOROOOROORORROROOOOROOOROROOOOOROOOOOROORRRORROOOROROROOROOOROOOROOOOROROOOOOORROOOORORRRRROOOOOOOROROOOOROOOOOROROORORORRROROOROROOORORRRROOOOOROOOORRORRROOROORROORRRORRRROORROOOOOORRRORROOOORRROOOROORRORROORRRRROORROROOOOORORORROOROROOROROOROOOOORRROOOOROOOORROOOOROROOOROROOOROOROOOOORRORROOOOOOROOOOOOROOOOOOOOOORORROROOOORROROOOOORORROORROOOOOROOROOOOROROROOOORRORROOROOOOOOOOOOOROOROOOOOROOOOROOOOROOOOOOOOOOOOOORRROORROOOROOOOROOOOOROOORORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOROOOOOOOORRORROOOOOOOOOOOOOOOOOOROROOOOOROOROOOROOOROROROOROOOOOROOROOOOOROOOOOORROROOOROOOOOOROROROOOOROOORROOOOROROOORRRORORROOROOORROORROOOROOOORRROOOROROOOROOROORORROOOOROOOROOORROOOOOOOROROORORRORROORRROOOOOROOOOOOOORROOOORORROROORROOOOROORROROOOROORRRRRRROORRRRORRROOOOORROOORROOOOROOROOROOORROOORRRRORRORROOOOORRORRROOROROOOORRROROROROORRRRROROOOORROORROOROOROOROOORRORROROROROOOOOROROOOOOOOOROOOROOOROOOOOROOOOROOROOOOOOOOOOOROROORROOOROOOOROROOOOOROOOOOOOOOORORROOOOOROOROOOOROROOROOOOOROOOOOOOOROROOOOOOORROOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOROROOROOOROOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOORORROORRROOOOOOORROOOOORROOOOOROOROOOOOOOROROROORRROROOOORRORROOOOOROROOROOOOOOOOROOOOROOROOOOOOOOOROOOOROOOROOOOROROORROOORROOOROORROOORORROOORRORORROORORRROOOOOOOOOROROOOOOOORRRRORROOROOROOOOROROOOORROOOOROOOROORRORROORRROROOOROOOORROOOOOROORROOORORRORROOROOOROOROORRROOROOORORRRROOROOOOROORRROROOROOORROORROORORORRROOOORORORRROORRROOOROOROOOOOOOOOOROROOOOOOORORORORRRRROORRRRRRROROOROOROROOOORRROOOOOOOOROROORRRORROOROOOOOOOOOOOORROORORRORORROROOOOOOOOORRRROOOOOOROOOOOOROOOOOOOOROOORROOROOOOROOOOOORROOOROOOOOOROOROOOOOOOOROOOOROOROOOROOOOOROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOROROOOROOOROOOOROOROOOOOOOOOOROOROROORORROROOORORROOOOROOOOROOOOOOOOORRRORROOROOOOORRROOORROROROOROOROOOOOOOOOORROOROOROROOOOROOROOOORROOOOOOROOOROORROROOORORRROOOOOOOORRRORORROROROORROORRORROOOOOROROORRRROORORRRRROOOOOORRORRROORRRROORORRORRROOORRORRORRROOROROOROROOOROORRROOORORRROOORRRROROORRORRORRRORRORRORRRRROORROOOORRROOROROOORROOOORORRORRORRROOORRRORROROROOOOOOOOOORRRROORORROROOOORROROOROROOOOROOOOOROROOROOOOOROOOORRROOOOROOROOOOOOOOORROOOOOOOOOOOOOROROOROOOOOOOOOOOOROROOOORROOORRROOOOROOOOOOOOROOROOROOOOOROOOOOORORROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOORROOOOOOOOOOOOOOOOROOOOOOOROROOROOOOOOOOOOOOOOOROOOOROOORROOOOOOOROOOOOOROOORROOOROOOOOOOOOOOROOROOORROROOOOORORROOOORRRRORROOOROROOROOOROOOOOROROOOROORROOROORORORROORRROOOOOOOOOOORRORRRORROOROOOOROORORORRROOOROOORROOOOOORRROOOOROOOROOROOOOORORORRROOROROOORROROOOORORRRRRORRRRRRRROOORRRORRRRRORRROROOROOOOOOOOOROOOOORRORORRORROROROOOORRROROOORRRRORROOROOORRRRORRROORRORROOORORROOOOROOOOORROOROROOOORORRRORORROOOOOROORRORROROOROROOOROOOOOROROOOROOOOOOOOORORRRROOOOOROOOOROOOOOOROROOOOOOOOOOOOROOOOORROORRROOOROOOOOOORROROROOOOORROOOOOOOOOOOOOOROROORROOOORORORROOOOROOOOORROOOROROOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOROOOOROOOROOOOOOROORRROOOOOOOOOOOOOOORROROOROOOORROROOOROOOOORROOORROORORROOROOROOOORROOOOROOOOOROORROORROORROOOROORROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOROOOOORORROORROOROOROOOORRORORRRROROOOOOOOROROOOORORORORRROROOOOOOORROOROROOROROORROORROOORRROROORORRRROOROOOROOROOOROOORORROOOOOOORROROOORRROORORROOOOOOOROOROROOOORORROORORROORRORORRORROOROOOOOOOROOORROOROOOOROOOOROORRORROOORROROROOROROROOROOORORROOOOOOORROOROOOOOOOOOOOOOROROOROROOOOOOOOOOORORROOOOROOROORROROORROOOROOOOROOOOOROROOOOOOOOOOROOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOROROROOOOROOOOOOOOOOROOROOOOOOOOOOOOOORROOOOOOROOOOOOOOOROOOOOOORROOOOROOOOROOORROOOOOROROROOOOOOOOOOOOROOOOOOOOROROORORROOOORROOOORRROOOORRRROROOOOOOOROROOOOROOOOOORROOROORRRROOOOROOOORRROROROROORORRROOROOOOOROOOOOOOOOORRROOOOOOOOOOOROOOOROOROOORROOOOOOOOORRORROOROROORROROROOROROOROOOROOOROOROROOOOORRRORORROOOROOOROOROORROOROOROOOOOROROOOROOOOORRROOOOROOOOOORORORORRRRORROROORROOOOOROOOROORROORRROROOOOROOOOOOOOROOOOROOOOOOOOORROOOOOOOOOORORORRROOOORROOOROROORROOOOORROORORROOOOOROOOOROOOORORROOOOOOORROOROOOOOROOOROOOOOOROROOOOOOROROOOOOROOOOOOORROOOOOOOOROOOOOROOROOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOROOOOOOOROROROOOOORRROROOORROOROOOOOOORORROROOOROOOOOOORROROOOROROROOROOOOOOROOOROROOOOOOOOROROROOOROOOROOOOROROOOOOOORRRRRRROROOOOOOOOROROOORRROOOOROORORRRRROOROROROROOOROOROROORRORROROOOORRORROROOOOOOOOOROOOOOROROROROROOOOOOOOROOORRRRRRRROROOORRORORORRRROROROROORRROOOOOORRRORROOOOROORROORORROOOORRORORROOORRORORRRRORROOOOORROROOOORROOOORROROOROROROROROOORRROOOROROOROORRRORORORRROROROROOROOROOROOROOROOORRROROOOOORRROROOOOOROROROROOOROOOORROOOOOOROOOOOOOOOOOOOOROOOROOOOROOOROOROOOOROROOOOROROOOOOOOROOOOOOOOOOOOORROOOROOOOROOOOOOOOOROROOOOOOROOOROOROOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOROOOROOOOOOORORROROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOORROOROOROOROOOORROOOOOOOOOOOOROOROROOOOOOOOOOOROOROOOOOOROROOOROROROOORRROROOROOOROROOOOROOOOOOOROOOORROROOOOOOOROROROOOORRROROOROOOORROOORROOROOROOROOOOORROOROORRRROOORROOOOOORROROOROORORRROORROROOOROROORORROOROOORROOOOOORROOROOOOOROROROOROROOORORRORORORRORORROOOORROOORROROOROORRRRRORRRORROOOOOOOOOROOROOORRORROOORROROOOORRROROROROOROOOOOORROOOOORROOORRORORRRRRROOOOOOOOOOOOROOOOOROOROOROORORROOOOROOOOOOROORRROROORROROOOOOOOOOOOROOOROOOOOORROOROROROOOOOROROOOOOOROOOOOOOORORRORROROROOOOOORROOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOROOROOOROOOOOOOROOOOOOOOOOORROOROOROOOOOOOOOOOOOOOOROOOORRORROROOROROOOORRROOOROROOROROOOOOOOORRRRROROOOOOOROOROROORRROOROOOOOOOOROROOOOOROROOOOOROROOOOOORROROROROROROOROOOOROROORROOOOROROROOOOOOOOOOORROOROOOOORROOROORROORROOOORRORORROROORRROROROOOOROORRRROOOROOOOOOROROROOOROORRORROORRORORORORROOROOOOROOOROOORORRRORRORRROROOOOOORRROOOORORRRRROOOOOOOOOORRRROOORROOROOOROOOROROORORROOOOROORRRROOROOORROOOORROORROROOORRROOOOOROOOOOOOOROOOOOORROOOORROORRROOROOOOOOOOOROOOOROOOOOOOOOOOOROOORRROOOROOROORRORORORRROOROOROOOOOOROOOOROOOORROOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOROOOOOOOROOOROOOOOOOOOOOOORORORROOOOOOOOOOOOOROOOOOOOOOOOORORROROOOOOOOOOOORRROROOOOROOOROOORROOOOOOROROOOOOOOOROOOOOOOOOROOORRROOOROOOOOOOROOOOOROROOOOOORROOROROOOROOORROROOOOOOORROOORRROOROOOROROROOROOOROROOOROROORROROROROOOROOROROOORROROOROORRRROROOOOOOORROROOROOROOOORORRRRRRRORROROROORRRRRROOOORRRROOROOORRRRROROORORRROORRROORRROOOROOOOORROOOOOOOROOOOROOOORROOOROOOOOROOOOOOOROOROOOOOOOOOORROORROORORROOOROOROOOROOOORROOOORROOOOOORORRRROOORORORORROOOOOOOROOORORROOROOOOROOOROOOOOOOROOOORRORRRROOROROROOOOOROOOOROOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOORROROOOOOOOROOOOOOOOOOOOROOORRRRROOOOOROROOOOOOROOOOOOOOROOOOOOOROOOOOOOROOROROROORROOOOOOOORRRROOROOOOORROOROORORROROROROOROOOOOOORORORRRRORROORORRROOROORROOORRORORORROROORORROORRROROOOOROOOROOOORROOROORROOROOROORRROROOOOOROOOOOOOOROORORRRRROORORRROOOOROROORROORRRORORROOOOROOOOOROROORROOROOOOOROORRROOOOROROOOOOOOOROROROOROOROOROOROROOOORRORRROOOOROOOROOOROROROOROOOORRRORRRRROOROORROROOOOROROORROROORRRORROOROORROOROROROOORROOOOROROOOOORORRORROOOOOOROOOOOORROOOOORRORORROORROOOOOOOROOOORROOOORROOOOROOOROOROOOOOOOORORROOOOROROOOOOOOOORROOOOOOOOOROOROOOROOOOOOROROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOROOROROOROOROOOOOOOOOOOOOOOOOOOORROROOOORROOOOOOROROOOOROOOOROOOOOOOROROROROOOROOROOOOOOOROOOOROROOOROOOOOOOORORROOOORROROROOROOOOROOORRORORRORORORRRROOROROOOORROROOROROORORORORROOORROOROOROOOORRRRRROOOOROOORROOOOOOORRRROROOROOORORROOROOROOOOOROROORRORROOROOOOOOOOORORRRROORRORRRORROROORRROOOOOOOOROORRORROORROORROOOROROOOROOOOROOROOOROOORRORROOOOROOOROOOROOORRORROROOOROOOROOOROOOOOROROOORORORRORORRROOOORROOORROOOOROOORORROROOROOROOOOOOOROOOROOOOOOOOROOOOOOOROOOROOOORROOOOROOOOOROOOORRROOOROOROOOORRROOOOOOOOOOOOOOOOOROOOOOOOOOROOROROOROOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOORRROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOORRROROOOROOOROOOROORROOROROORRORROOOROOOOOOOOOOOOROOOROOROOORROROROOORRROOOROOOROOOOROROOOOOORRROORORROOROOOOOROOOROORORORRROOOORORROOORRORRORRRORRROOOROOORRORROROORROOOOOOOOOOROOOORORORRORRROOOOROROOOOROORROOOOOROOOOOORRORRRORORROROROORRORRROROROORORORRORRORRRORROROORORRROOROROOOOROROOOOOOOOROOOOOORORRROROORRORROOORRORRRRROOOOOROOOOOORROROROOOOORROOROOROOROROOOOOROOORRROOROOROOOROROOOROOORRROOOOOROOOOOOOROOOROROROOOOOOOOROROOORROOOOROOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOORRRROOOROOOROOOOORROOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOROROOROROOORROOROOOOOOOROOOOROORROOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOROROOOOOOROOOROOOROOORRROOOORROROOOOOROOOOOOORROOROOROROOOOOROOOOOROOOORORRROROORROOORROOROROROOROOORRRORROOOOOOOOOOOROORROOOROOOOOROOOOOOOROROOOORROOOORROORRROOORROOORRRORRROOOOOROOROOOOOOROOOOOOOROOROOOORRRRROOOOORORRORRRRROOOOOORRROOOOROOROORROOORRORRROORROROOORROOROROOOORRROOOROOOOOORORROOOORROROOROOOROROOOROOOOOOOOOROROROOOOOOOOROOOOOORRRORROORRORORROORORORROROORROOROROORRRROROROORROOOOOOORRROROROORRROROOOOROROROOOROOOORROOOOOOOROOORROOOOOOOOOOOOOOOROOOOOOOROOROOROOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOROOROOOOOOOOOROOOOROOROOOOOOROOOOOOOOOROOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOORROROOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOROOOORROOOROOOOOOOOOOOOOOOOOOOOOOOROOOORRROOOROOORROOROROOOOROOOROROOROOROOROOOOOOORORRROOOORORRRRRORROOOOOOOOORRRROOOOOOOOROOORROOROOORROROORROOOROOOOOOOORRRRROROROROOROOOOORRROORROOOOOOROROROOORRRRROROORROROROOORROORRRROOOOROORRORROOROROORORRRRROORROOOROORRRRRROOOOOORRRRORROOOROOROORRROOOOOORRRORORRORORROORROROOOORRROORRRORORROROOOOOOOOOOOOROOROOORROROROROOOOOOORORORROROOOOOOROOORORORORRRROOOOROROOOOOOROOOOROROROOOORORORRROROOOOOROROOOROOOROOOOROROOOOOOOOOOOROOOOROOOORROOOOOROORROOOOOOOOOOORROOOOOROOOOOOROOOOOOOOOOOOOORROOORROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOROOOROORROOOOOOOOOOOOOOOOORORORROOOOOOOOORORROOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOROOOOROOOROOROROOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOROOOOOROOOOORRORROOORRROOOROOOOOOOOROOROOOOOOOOORROROOOOOROROOOROOOOOOOROOORORROOORORROORRRROROOOROOROOOORROOROOOOOOORORRORROORORORRROORORORRRROOOOOOOORROOROOOORRRROROORRORRORORORRROOOOOOROOROOROROOOOOORORROORORROOOROOROROOROORROROOORRRRORROROROORRROROOOOORROROOOOOOOROOORORROOOOROOOOOOROORORROORORRRRORROOOOOOOOOOOOOOOOROOROROOOOOOOORRROOROOROOOOOOOROOOOORRROROOOOOOOOOOOOROOOORROROOROOROOOORRROOOROOROOOROOOOROROORROOOOOORROOOOOOROROOOROOOORROROROOOOOOOOOOROOOOOOOOORROROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOORROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROROOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOROROROOROOOOOOOOOROORRROOORORROOORRROOOORRRROOOOROOROORROOOOOOOOOROROOOROOROOOOORROORROOOORORRROROOROORROOOROROORORROROROORRRRROOOOROOORORRRRROROROORRORRROOROOOOORROORRORROOORROOOROORROOORRORORROOOROROORORRRRORROOROORORORRRRRRORORRROORRORRORRRRORROOROOOORORROOOROOOOORROOOROORRRROOOOORROOROROORROOOOROOOROOROORRRORRRROOOOORROROOOOOOROOOROOORRROOROORRRORROOOOOORROROOOOOOOOOOOOORRROOOOOOOROOOOROORROOORORRROOROOROOOROOOOROROOOOOOOOOOROOOROOROOOROOOOOROOOROOOOOOOOOOROOOOOORORROROOOOOOROROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOROORROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOROOROOOOOOROOOOOOOOROROOOOOOROORROOROOOOROOOROROOOOOOROOORROOOROOOOROROROOOOOROOOOROOOOOOOOROOOOOOOOOOOOROROOOOOROOORRROOOROOOROOOOROROOROOOOROOORROOROROOOROOOROOROOOOORROOROROORORORRRROROORROOOOORRRRROOOROOORROOOROORRORRORRROOROOOROOOOOROOROROORORROROOROOOROOOOOORRROORROOOOOOROORRROOORORRRROOOORROOROOOORORRORROOOROROOROOOOOOROROOOROOOROOOROROORRORROOOOOOOOROOOROOOOOORRORRROOOOOOOOOOORORRORROROOORROOOOOROOOORROOOOROOOROOORORORRROOOOOOOOOROOOORORROOROOORROOOORROOOROOOOOOOROROOOROOORROROOOOOOROOROOOROOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOORROOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOORRROOOOOORROOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROROROOOOOOOOROOOOOOOROROOOOORROOOOOORROOORROOOOOOOOORRORORORROOORRRROOOROOOORORRROOORROOROROOORRROROROOROOOOROROOOOORROORORROOROROORORRROOROORRRRROROOOOOOORRRRROOOOROROOROROOOOORORROROORORROROOROOOOROOOOROROROOOOOOROOROOOOROOOROROORROROOROOROORROOOOROOROROOROOOROROROOOORORORORORROOOOOROOOORRORORRROOOOOROOOOOORROOROOOROROOOORROROOROROOORRROROOROOROOOORROOOOROOOOOORROROOROOROROOOOROOORRORORRRRROOROOOOORROOOOOOOOOOOOOOOOOROOROOOOOORROOOOOROOOOOOOOOOOOOOOOOROOOROOROOOROOROOOOOOOROOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOROOOROOOOOOOROOOROOOOROOROOOOOOOOOOROOOOOOROOOOORRROOOOOORROOOOOOOOOOOROORORROOOOOROROOOOORROOOOOOOROROOROOOROOOOOOORRRROOROOOORROOOORRRRROROROROOOROORRORROOOROOOROORORORRRROROROOORRORROOOOOROORROOOOOOORROORORRORRORRRRORROOOOORROOROROOOROOROROROORRRORROROOROOOOROOOOOOORRROOOROOOOOOOROOORROOOROORRROORROOORROOOOOORORORRRRRRROOROOROROROOORROOORROOOORRRRRROROOROROOORRROOROOOOOOROOOOOOOORRORROROOOOOROORROOOOORRROOOOOOOOOOORROOROOROOOOOOORRROOOOOROROROORORROOOOOOOROOOOOOOOOROORROROOROOOOOOOOOROOOOOOROROOOOOOOOOROOOOOROROOOOROOOOROOOOROOOOOOOROOOOOOOOOOROOROOROOOOOOOOOOOOORROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROROORRROOOOOOOROROOOOOOROROOOOOOOOOROOOROOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROROROROOOROROOOORORRRROROROOOOOOOOOOOOOOOOOORROOOOORORROROORROOORORRROOOOROORORROOROOOOORORORRROOROORRRORROOROOORORORROROOOROROOOROOOOOORORROOOOROROROOROOROOORRROOORORRRORORRROORORRORORRRRRROROROOOORRROOOOROOOOOOOORROOROOOOOROOOOORORORORRROROOOOOOORRROORROOOOOOOROOOOOOOOROOROOROORROOOROORRROOORRRORROORORROOROOOROROOOOORORORORRRRROOOROORORROOORORROOOOOROOOOROROROOOOOOOOOROOOROOOROOOOOOOOOOOOOORRROOOOORROOOOROOOOOOOOOROROOORROOROOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOORORROOOOOROOOOOOOROOOOOOOOROOOOOOOOROROOOOOROOOROOOOOOOOOOOORRROOOOROORROORRROOROOORORROOOOOOOOOROOOOOOOORROOOOOOOOOOOOOORRROROOORORROROORROROROROROOORRROOOOROOROORROOOOOOROOOROOOROROOOOOOOORRROOORRORRRROOROROOOORRRRRROROORROOOORORROOROORORORORRRRRRROROOOOORROOOORROOOROOOOORRORORRRRROOORRROOOOROOROOOROOROOOROROOROOROOROOOORROORROOOROOOOORROOOOOOOROORROOROORROOOOOOROROROOOORRORRRRRORROOOOOOOOROOOOOROROROOROROOOOROROOOOOOOROROOOOOOOROOROOOORORROROOOOROROORROOOORROORROOOOOOOOOOOOOROOOROOOOOOOOOOROOOOROOOOOOOOROOOOROOOROOOOROROOOROOOOOOOOOOOOOOROOOOOOOOOOROROOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOROOOOOOROOROOROOOOOROOORORROOOOOOOOOOROOOOOOOROOOOOROOROOROOOOROOOOORROOORROROOOOROOOOOOROROROOORRORRROOOOOOOOROOORRORROOROOOROOROROOOROOOOOROOROOOOOOOOOROROROOOOROOOORRRROOOOORROROROORROOOOOROOORRRORROOROORROOROOOOOOOOOOROROORROOOROOOOOOORROROOROOORROROOROROOOROOOROOOORRROROOORORRROROOOOOROOORORROROORRROOORRROOORORRRRORRORORROOROOOOOROOOOOORRROOROOORRRROORRROOOOROOOROOROOOORROOOROORROOROROROOOOOOOROOORROORRRRORROROOOROROOOROOOOOOOOOOOOORROOROOROOOOOORRORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOORROOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOORROROOOOOOOROOOROROOOOOOOROOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROORRROOROOOOORRROOROORRROOOOOORRORROOOOOOROORROOOOOOOOOROOROOROOOOOROROOROOOORROOOOOOOORROOOOOOORROROROOOOROOOOOROORRRRROOOORORROOOOROOOROOORRRORRORROORRORRROOORRORRRROORROROOROOOROOOOROORROOOOROOORRRROROROOROORRROORROOORRRROOORRROOOOOROORROOOORROORRROORORRORROOOOOOOROOORROORROORROOORORRRROORRROROROROOOOOOOOOOOOORORRORORRORROOOORRRROOOORRRROORORRROOOOOOROOOOROROOOOOOROOOOOOOOOOROORRRRROOOOOOOROOOOROROOOOOROOOROOROOROOOROORROOOROROOROROROOOOOROROROOROOROOOOOROROOROOOOOOOOOROOOOOOOROOROOOOOOOROOOOOOROOOOOOOOOROROOROROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOROROROOOOOOOOROOOROOOOOOOROOOOOROOOOOOOROOOROROROOROOOOOORROOOOOROOOOOROOOOORRROOROOOOOOOORRROOROORROROORRRROROORRROOOROOOOOROOOROOOOOORORRRROOOOOOOOORORORRRROROOOOOOOOOOOROROROROROOOOORROROOOOOOOOOROOOOROOOOOROORROOROOROORRRROOOORRRORROOORRROOROOOROORRRROROROROROOOOOORROROROOOROORORRROOOROOOORROORRRRORRROOOOOOROOOOORROOROOROOROOROROROOOOORROORRROROORORROOORORROOOORROOOOOROOROOOOROORROROOOROROOOOROROROROOOORRRRRROROORORRROOROOOOORROORROORRRORROOROOOOOOROOOOROOOOROOROOOROROROOROROOOOROROOOOROOOOROOOROOROROOOOOOOOOOOOOOOOOOROOOROORORROOROOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOORROOOOROOOOOOOOROROOOROOROROOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROORROOOOOOOOOOOROOOROOROOOOOOOOORROROROOROOORROOOORORRRORROOOOROOROOOOOORORORRROOROOOOROOORRORORROROOORRRROOOOROOOOOOORRRRRRORROORROOOOOOROROOOOOORORRRRROROOOOROOOOROOOOORROROROOROOROROOROOOORROORRRRORROOOOOOROORRRRORROOOOORROOOOORORROOOROOROORRRRROOOOROOOORORORRRROOORRORRRRROOOROOOORRRORRRRRRRRROORRRRROOORRROOORRROOOOOORORRORRORROOORRROROORRROROOOOOOOROOOOOORRROOOOROROOROOOOROOOORROOOOOOORRROROOROOOROROROROOOROOROOOOOOOOOOROOOOOORORROROOORRORROOOOOOOOROOOOOOOOOORORROOOOOOOROOOOOROORRROOROOOROROOOROOOOOOOROOOOOOOOROOOORROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOROORROROOOOROOOOROOROOOROOROOOOORORROROROOROOOROOOOOROOOOOROOOOOROOOOOORROOORORROOOOOROOROOORROOOOOROOROOOOOROORROROOOOOOOROOROROORROOROROOOOROOOOOOROROOOROORORROROOOROOOROROORROOORRROOORRORROOORORORROORORROOOOROOOORRRORROOROOOOORRRORORROORRRORRORRROROOROOROROOOOOOOOOROOOROORORROROOROROROOOORRRRORRRORROOOOORROORROOORORROOOOROOROROOROOROOROROOOROOOOROROORRORRRRROROROROOROOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOROOOOORROOORROROOROOORORROOROOORROOOROOOOOOOROOOOROOOROOOOOOOOOROROROOOROOOOOROROROOOROOOROOOROOOOOOOOROROOOOOOOOOOOOOOROOOOROROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOORROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOORROROOOOOORROOOROOOOOROOOOOOOOOOOOOOORRROOROROOOOOOROOOOOROROOOOOOROOOOOOOOROROOOORRRROOOOOROROORRRROOOOOOOROOOROROOROROROOOROORORROORROORORORORRROOOOOOOOOORORROROOOORROOOOOROROOORRORRRROROOOORRROOROOORRORROOORROOORROOOROOOROOOOROOOOOORRRROOOOOOOOROROORRORROOROOROOOOOORROORROOOOORROROORORROOOORROROORRRORORROOOORROOOROOORORROOOOOROOROOOOOROROOOOOROOOROOOOOROOOOROOOOORROOOROROORRRROOOOOOOOROOOOOROROROOOOROOOOOORROOOOOOOOOOROOOOROOOROOOOROOOROOOOOOROOOOOOOOOROROOOOROOROOOROOOROOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOORROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOROOOOOORRORRRROOOOOOROOORROOOROOOROOOOOOROOROROOOROOOROOOOOORROOOOOOOOOOOOOOOOROOOORRROORORROOORROROOOOOOOOOOORROOROOOROOOOOROROORRRRORRRORRRROOOOOROORROOROORRORORROROOOOOOORROOOORROOOOOOROROROORRROOOOORROOOORRORRORORRORRORROOROROROOOORROOROOOOROOOOROOOOORRROORORORROOOOORRRRROOOOOROOOOOROROORORROROOOOOOOROOOOROOOROROOOOROOROROOROROOOROOOORORROOOOROROOOOOOOORROOOOOROROROOOOORORRROOOROOOOOROROOROOOOOROROROOOOOOOOOOROOOOROOROOOOOROOOROOOOOORRROOOROORROOOOOORROORORRROOOROOOOOOOORROOOOROOOOOOOOOOOOOOOROOOOOROORROOOROOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOORROOOROROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOROROROORROOOROROOOOOOOORRROOOOROOROOROORROOOROROOOOOOOROROROOROROROOOOOOORRRORROROOOOOROOOROORRRRROOROOOOOOOORROOOOOOOORROROORORROOROROOOOROROROROOROOROOROOROORRROROOORROOORROOROOOROORROORROORRRROOOOROOOROOOOOOORORROOOROOORRRROOROOORROOOOOORRROOOORRORRRORROOOROOROOOOOOROOROOOORRROOROOORORROOOOROOOOOOOOROROOROOOROOROOOOOOOROOROOOROOOOOORRROOOROROROOOORROROOOORROOOROOOOOOOOOOOOOOOOOOOOOOORROOROROOOOORROOOOROOOROOOOOROOOOOOORORROOOOORROOROOOOORROOOOOOOORROOROROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOORROOOOROOOOROOOOOOOOROOOROORRORRORRROROROROOOOOOOROOOOOORORORROOROROOOOROROOROOOOOOORROOOOOOOROOOOROROOOOOOORRROOOROOOOOROROOOOOROORORRROOROOOOROOOOOOOOOROOOORORRROROOORROOOROROROROOOOOROOROOOOOROORORROOROOORRRROOROOOOROOORRRORROOROORROOOROOOOOOROOOOOOROORROOOOOOROORROOOOROOROROOOROROOOROOOROOOROROOOOROROOOORRORRORORRRRROOOOROORROOOOORROROOOOOOOOROORROROROOOOOORRRROROOOOOOOOROOROORORROOORROOOOOOOROROOOOOROOOOOOROOOORROROROOOOOOROOORROOORROOORORORROOOOOROOOOOOOROORORROROOORROOROROOOROOOOOOOOOOOROOROOROOROROOROOOOOOROOOROOOOOOROROOOOOOROOOOOOOROOOROOROOROOOOORROOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOROROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOROOOOOROOROOOOOOOROOOOOOOOOROOOROROOOOOOOOOROOOOOOOOOROOOOOOROOOROORRRORRRROORROOOOOOORORRRORORRROROOROOROORROOOOROOORRROROOROOOORRRROROOROOROROORROOOOOOROOOROROOOOROROOOOOORORROOOROORORROOOOROOORORROOOORORORROROROOORORORORROORORORORORROOOORORRROROROROROOROOOOROROROOORROOOOOROROOORROOOOROOOOROROORROOOOROOORORORRRRORRROOORROOOROORROORRROORROOOOOOOOOOOROOOROOOOOOOOROROORROOOOROOOOOROOOROOOOROROOROORROROROOROOOROOOROOOOORROOROOOOORORROOOOOOOROOOROOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOROOROOOOROORROOOOOOOOOOOOOOOROOOROOOOROROOOOORRROOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOORROOOORROOOROOOROROOOOOORROOOROORROOOOOOOOOOROOOOOOOOOOOROOORROOROOOOORROOOOOOORROORRROOROOOOROOOOROOOOOOORORROOOOOOORRROOOOOROOOOORRROROROOOOROOOOROROOOOOOOOOOOOOOROROOOOOOOROORRRROOOORORRRRRRORROROOOOORRRROOROOOOOROOORROROORORROOROORRROOOOOROOOOOOROOOOORRROOOROOOOOOORRROOOORROROORROOOOORRROOORORRRRORRROOOROOOROOOROOOOOORROOROORRROORRRORROORRORRROROORROOOORRRRROOOOORROOORORORORRRORROOORRORRROOOOOOOOOOOROROOOORROOOOOOOOOROORRROROOOROOOOROROOOOOOOOOOOOOOROOOOOROROOROOROOOOOOOOROROROROOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOROOROOROOOOOOOORROROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOORRROROOOOOOOOOOOROOOOROOOOORROOROOORORORROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOROOOOOOOROOOOOOOORROOOROOOOORORROOOORROOOOROROOORROOOOOROOOORROOROOROOOORORROOROROOOOROROOOOOOROOORRRRORROOOOOOOOROROOORRRORRRROOOOROOOOOROORROOORRROORROOOROOOOROOOOROORRRRRORORRRRORROROOROOOOOOORORORROOOOOOOROROOROOROROOORROOROORORRROOOROROOROROOROOOOORORRRORORROOOOOOROOOORRROROOROOOOOOORORROOOOOROOOOOROOOOORRROOORROORORORRROOORROROROROOROORROOROOROROOOOOROORROROOROOOOORROOOOOROOOOROOOOOOOOOOORRROORROROOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOROOOROOOOOOOOOOOROROOOROOOOOOROOOOOOROOOOOROOOOOROROORRRRROOORROORROOORORROOOOORORORROROOOOOORRORROOOORROOOOROOOOROOOORORROOROOORRRROOROOOROOORROORRORROOOROOOOOOROOOROOOOOROOORROROORROROOORROOOORROOOOOORRRORROOROOROOOROOROOOROOROORRRRRROOOOOOROROOOOROROROROORROOROOORORORROOOOORROROOOOOROOROROROOOOROOOORROOOOOOOOROOROROROOOOOROOORRORRROORROORROOOROOOOOOOORRROORROORORROROORROROOOOOOORORORROOOOOOOOOROROOOOOOOOOOOOROOROOOOROOOOOROOOOOOOOORROOOROOOOOORROOROROOROOOORROOOOOOOROOOOOOOOROOROOOOOORROOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOROOOROOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOROROOOOROOOOORROOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOORROOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOROOOROOOOOROOROOROOOOROOOROOOOOOOOOOOOOOOOOOORROOOOROOOOOROOOOROOROROOROOOROOOOOOOOOOROROOOOOOROOOOOOORORORROOOOOROOOOOOROOORORRROORORROOROOOOOOOOROOROOOROROOOROROROOOROOOORROOOROORRRRROROOORRROOOOOORRROORORROOOROORRROORRRRROOORROOOOORRRORRRORROORORROORROORORORRROORRRORRRROOORORORROOOOOORROORROROORROROOORRRROOOOORRRROORORROORRROOOOROOOOOORORRROROORROOOOORROOOOOOORRRORORORROOORROOOOROORROOOORRRROOOOORROORRROOORORRORROOROOROORORROOOOOOROROOOOOOOROROOROOROOOOOOOOOOOOOOOROOOROOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROROOROROROOOOOOOOOOOOOROOOOOOORROOOORROROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOROROOOOOOOOOOOOOROOOOOOOOOOOROORROOOORRROOOROOOORROOOOOOOOROROOROOOOOROOOOOOOOROOOOOOOROROOROOROORRRROOOOOOROOROROROOOOOOROOORORROOORRROROOOOORROOOOOOOOORRROOROROROOOOOOROOROOOROOROROOROOOOOOOROORORRROOOOOOOORRROROOOORORORRRRRRORRRORRROOOOOOOORRRORRROOOOOOOORRROOROOOROROOOOOROOOOORORRRORRRRROOOOOROROOOORROOOROORRROROORROORRROOROOOORROOROROOOOOOROOORRRORROROROOROOOOROORRORROROOORORROOOOOOOROROOOROROOOOOORROORORRROOOOROROORRROROROOOROOROOOOOOOOOOROORROOOORROOROROOOORRROOOOOOOOOOROOOOROOOOOOOOORRRROROOOOOROOOROOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOROOOOOOOOROOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOROOORRRROOOOOOROOOOOOOROOROOORROOOOORORROOORROOORROOOOOROOOOOOOOOOOOOOOORROROOROOORRORRROOROROROOOROOOOOOORRORROORORROROORROOOROOROOOROROOOOOORROOOOOOORRROOOOOOROOOOOROROORROOROOOROOROOOORORROOROOOOOORORROORRORRROROOROOOOOOOORROOOOOOORRROROOROOOOROROOROOOOORROOORORROOORROORRROORRRRRROOOOOROORROOOOOOORRRROOOOORROROORROROOOOROOORORORROROORORROOORROOROOROORROORRORROROOOOROOOORROOOROOORROOOROOROOOOROOOOROOOOOOORRROOOOOOORORROOROROROROOOOOORRRROOOOOOOOOOOOOOOOOOOOOROOOOOOOROORROOOOOOROOOROOOORORROROROOOROOROOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOORROOOOOROROOOOROOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOROOOOOOOOOOROOOOROOROOOOOROROOOOORRROOOOROOOOOOOORORRROROOROROOOOOOOROROROROOOOROOROOROROROOOROROOORROOROOOOROOOOOOOOOOROOOORROOOOOOROOORRRROORORORRORRROROOOOOROORROORORORORROOOOOOOROOROOORORRORRRRRRRORROOOOOOROOROOOROROOROROOOOROOORROORORROROORROOROROROROORRORROOOOROROOOROORRROROOROROOOORRORROOOROOROORORROROOROORRROOOORRRRRROOROOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOROOROROOOROROROROROROOOORORROOOOOOOOROOOOOROOOOOOOOOOOROROOOROOOOROOOOOOOOOOOOOOROROOROROROOORRORROOOORROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOROOOROOOOOOOOOOOROOROROROOOOOROOOOROOOOOOOOOOOOOROOOROOROOOOOOOROOORROOOOOOOROOROOROOOOOOOOOOOROOOROOOROROOOOROROOOOOOORROROOROOROOOOOROOOROROOOOOOOROORROOOOOROROOOOOOOOROOOOOOOORRRORROROROORROORRORORROOROROOOOOOORORORROOOORRROORROROOOOORORROROOOOOORROORRRROROOOROROOROROOOOOORROROOOROOOROOOROOROROORRROROORROOROROOOOROROOOOROROOROOOOROOROOOOROOOORRORRROOOOROROORROROORROROOOROOOORORROROOOOOORRRRROROROOOROROROORRROOOOOORROOROOOOOOOROOOOOORROOOOOOOROOOOROROOOOROOOROOROOROOORROOOOROOROOOORORROOOOOOOROROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOROOOOROOOOROOOORORROROOOOOOOOORROOOORROOOOOORROOROOOOOOOOOOOOOOOOOROOOROROOROOOOOOOOORORORORORRROOOOOOOOROROORROOROOROOROORRROOOOROOOROOOOOROOOOOOOORRRORRORORORROOORRORORRRORORRRRROROOOOOROROORRORORORROOORRRROROOORRRORROROOOOOOOOOORROROORORORRROOROOROOORRORROROROOOOOOOOOROORRRRRORRRROOROOORROOROROROROOROOROOORROOORROORROOROOOOORRROOROOORRROOOOOOOOOROOOOOORORRRRROOOORRORRROOROROOOOORRROOROORRRROROOOROOOOOROROOOOROORORRROOOROOROOORRROORRROOOROOOOOROROOOOROOOORRRRRROORROROOOOOOOOOOOOROORROOOORORROOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOROOOOOROOOOROOOOOOOOOOROOOROOORROOOROOOROOOROOOROROOOOOOOOROOROOOOOOROOOROOOOROROOOROOOOROROOOROOOROROOROROOOOOOROOOROORROOOOOOOOOOOOOOOOOORRROOOOROROORORROROROOOOORORRROOROROROOOORRORRROOOROOOORRORROOORROOROOOROORRROOOOROROORORROOOOROROROORRROOORORORRORRRRORRORRRROORROORORRRORROROROOROORRRROOOOORROOOOOROROROOROROOROOOOOOROROORRORRRRRROOROOROOOROROOOORORROROOORORROROOROROOOROOOOOOOOOORRROROOOOROROOROROROOROOORROOOOOOOOOOOOOOOOORORRRORROOOROOOORROOOROROOOROROOOOOORORORORROOOOOOOOOROOROOOOOOOOOROOOOROORRRRRROOOOOORROOOOOOROOOOOOOOOOOOOOOOOROOROOROOOOOOROOOOOOOOOROOOOROOROOROROOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOROOOROOORRROOOOOOOOOROORROORRORROOOROOOOOOOOOROROOOORROOOOOOOOOOROROOOOOOORROORRROOOOOOROO\n"
  },
  {
    "path": "challenge1/tests/mon7a.out",
    "content": "14240\n"
  },
  {
    "path": "challenge1/tests/mon7b.in",
    "content": "483212 30242\nRORRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRORRRROORRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRROORRRRRORRRORRRRRRRRRRRRRORORRRRRRRORRRORRRRRRRRRRRRRROORRRORRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRROOORRRRORRRRRRRORRRRORRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRORRORRRROOOORRRRRORRRORRRRRRRRRRRRRRRORRORRRROORRRRRRRORRRRRRRRRORRRRORRRRRORRRRRRRORORRORRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRORRORRORORRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORORRRRRRRORRORRRRRORRRORORRRRRRRRRRRRRRRRRORROORORRRRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRROORORRRRRRRRROOOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRROORROOORRRRRORRORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRROORRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRORRORRRORRRORRRRRORRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRORORORRRORRRRORRRRRRORORRORRRRRORORRRRRRRROORRRRORRORRRORRRRORRRRRRRRRRRRRRRRRRORRORRORRRRRRRRORORORRRRRRORRRRRRRRRRRRRROROROORORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRORRORRRORRORRRRRRORRRRRRRRRRRROORRRRORRROORRORRRRRRRRORRORRORRRRROORROORORROORRRRRRRRRRORORRRRRORRRRRRRRRRRRRRORORORRRRRRRRORRORRRRRRRROORRRRRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRORORRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORROORORORRRRRRRRROOORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORORORRRORRRRRRRRRRRRRRRRRORORORROORRRRROOORRRRORRRRRRRRORRORRRRRRRRORRRRRRRORORRRRRRRRRRRORORRROORORRRRRRRORRRRRRRRORRROORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRORRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRORRRROROORRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRORRRRRORRRRRRORRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRROORRRRORRORRRRRRRRRRRRORRRRORRRRRROORRRRRRRRORRRRORRORRORORORRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRORRORRRRRRRRRRORRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORORRRRORRROORRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRROOOORRROORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRORRRRROORRRRRRRRRRRRRRRRORORRRRRROORRRRORRRRRRRORORRRRRORRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRORRORRRRROORRRRORORRRRRRRRRRRRRROORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRORRRRRRRRRORRORRRORORRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORRRORRROORRRRRRRRRRRRRORRROORRRRRORRRRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRORORRROORRRRRRRRRORRROORORRRRRRRORRRRRRRRRRRRORRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRROORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRORRRRRRRORRRRROORORRORORORRORRORRRRRRORRRORRRRRRRORRRRRRRRORRRORRRRRRRRROORRROOORRRRRORRRORRRRRRRRORRRRRRRRRRORRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRRRRRRRRRORRRORRRRRRORRRRORRORRRRROORRRRRORRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORROORRRRRORRRRRORRRRRRRRROROORORORRROORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRORORRRRRRRORRRRRORRRRROORRRRRRRRRRROOOORORRRRRRRORRRRRORRRRRRRORORRRORRROORRRORRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORROORRRRRRRRRRORRRRRORRRRROORRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRORRRORRRRRRRRRRORRORORRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRORRRRRORRORRRRRRORRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRORRRRRORORRRORORROORRRRRRRRORRORRRORRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORORRRRORRRRORRRRRRRRORRRRRRRRRRRRORRRRORORORORRRRORRRRRRRRRROORRRRORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRROORROORRRRORRRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRRORRORRRRRRRRRROORRRRRRRRRORRRRRORORRRRORRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORORRORRRRORRORORORRRRRRRRRRRRRRORORRRRRRRORORORRORORORORRRRRRRORRRRRORRRRRRRRROORRRRRRRRRRRRRRRROROORRRRRRROORORRRORRRRORRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORORRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRROOORRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRROORRRRORRRRRRRRRRRORRRRORRRRORRORROORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRROOORRRORRRRRROORRRRORRRRRRRROOOOORRORRRRRORRRRRORRRRRRORORROROOORRORORRRRORRROORRRRORRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRROORORRRRRRRRRRRRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRORRRRORRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRORRRRRRORORRRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRROORRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRORRRORRORRRRRRORRRRRORRRORRRRRRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRORORORRRRRRORRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRRORORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRROORRRRRRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRORRRRROORRRORRRORRRRRRRORRRORRRRRRORRORRORRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRRRRRRRRRRORRORRRRRRROOORRRRORRORRRRRRORRRRRRRRROORRORRRRRRRRRORRRRRRRROORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRROORORRRRRORORRORRRRRROORORRRRORRRROORRRROORORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRRRRROORRRRORRRRRRRRRRRRORRORRRRRORRORRRRRRRORRRRRRRRRRORORORRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRORORRRRRRRRORORORRRRRORRRRRRRORRORRRRRRRRRRRROORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRORORORORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRORORRRRRRRRRRRRRORRRRRORRRRRRRRORRRORRRRRRORRRORRRRRRORRRRRRRRRRORRRORRRRORRRRORRRRORORRRRORRRRRRRRORRRRRRRRORRRRRRRROORRRRRORRORORRRRRRRRROORRRRORRRRRRRRRRRRRORRRRORRORRORRRRRRRRRRORORRRORRORRRRRRRRRRORRRRORRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROOORORORRRRRRORRRRRRRRRRRRRORRRRRRRRRROORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRROORRRROORRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRROORRRRORRRRORRORRRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRORORRRRRRRRRRRRRRRRRORRRRORRORORRRORRRRRRRRORORRRRRORRRRRRRORRRORRRRRRORORRRRRORRRRRRROORRRRRRRRRRROORRRORRRRROOOORRRRRORORRRRRRRORRRRORRRRRRRORRRROOORRRRRORRRRROORRRRRORRROORRRRRRRRRRRORRRRRORRRRRRRROOROORRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRROORRRRRRRROOORRRRRORRRRROORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRORORRRRRRRORRRRRORRRRRRRORROORRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRRRORRRRRRRRRRORORRRRRRRRORRRRRORORRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRROORORRRRRRORRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORORORRRRORRRRRRRRRRORRRROORRRRRRRRRROROORRROROORRRROORROOORRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRRORRRROORORRROROORRORRORORRRRRRRROOROORRRRRRRRRRRRRROROORRRRRRORRRRRRRRRRORRORORORRORRRRORORRORRRRORRRRORRRRRRRRRRRRRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRORRRRORRORRRRRRRRRRORROORORRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRORRROORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRORRORRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRROORRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORRORORRRRRRRRRRRRRRRRORRRRRORRORRRORORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRORRRRORRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRORRRRRRRRORRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRORORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRROORRRRRRRRORORRRRRRRRRRORRORORRORRRORRRORRRRRRRRRRRRRRRRRROORRORORRRRRRORRRRRRORRORORRRRRORRRRRRRRRRRRRRORORORRRRRROORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRROORORRRRRRRRRRORRRORRRRRRRRROROORRRRRRRRROOORORRRRRORROROROORORRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRORRORORRRORRRRRRRRORRRRRRORRRRRRORORRRRRRRRRROORROORRRRRORRRRRRORRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRRRRORRORRRRRRORORRORRRORRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRROROORRRRRRRRRORRRRRRRRRORRRROOORRRRRRORRRRRRRRRRORRRRRRORRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRROROORRORRRORRRRRRRRORRRRRRORRRRRRRORRORRRRROORORRRRRORRRRRRRRRRORRRRRRRRORRRRRORRRORRROORRRRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRORORRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRORORRROORROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORORRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRORORRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRORORRRRRRRRORORRRRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRRRORRRORRRORRRORRRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRRRORORRRRORRRRRRRRRRRORRRRRRRRRRORRORRORRRRRRRRRORORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRROORRRRRRRRRORRRRORRRRROROORRRORRRRRRRRRRRRRRRRRRROROROOOORORRRRORRRRRORRRRRORRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRORRRRRRORRRRRROORRRRRORRRRROORRORRRRRORRRRRRRRRRRRORRRRROORORORORRRRRORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRORORRORRRRRRORRRRRRRRRORRORRORRORRRRRRRRRRRRRRRRRRRORRRRORRORROORRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORORRRRRRROORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRORRRRRRRRRRORRORRRORRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRORRRRRORRRRRRRORRORRRRORROORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRORRRRORRROORRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROOOORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRROORRRRRORRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRORRORRRROORRRORRRRRRRRRORORRRRORORRRORRORRORRRROORRRRRRRRORRRRRRRORRRRORRORRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRORRRRRRRRRRRRRRRRORRORRRORROORRRRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROROORROORRRRRRRRRRRRRRRRORRRROORRORRRRRRRRRRRRRRORRRRRRRROROORRRRRRRORORRRORRORRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRORRRRRROROOORRRORRRRRRRRRRORRRRORRRRROROORORRORRRRRRRRRRRRRRRRORRRRROORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRORRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROROORRRRRRRRRORRRRORORRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRRROORRRRRRRRRRORORRRRRRRORRRRROORRRORRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRROORRRRRRRRRORORRRRRRORRRRRRRORORRRORORRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRROOORORRORORRORRRRRORRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRROOORRRORRRRORORRRROORRRRRRRRRRRRRRRORRRRRORRORRORRORRRRRRROORRRRRRRRRRRRRRORRRRRRRORROORRRRRRRORORRRRORRORRORRRRRRRRRRRRRRRORRORRRRRRRRRORRORRROORRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRROROORRRRORRRRRRRORRORRORRORRRRRORRRRORRORRRRRRRROORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRROROORRRRRRORORRRRRRRRRRRRRRRRRORRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRORORRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRROORRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRROORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROROOOORRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRRORRRORORRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRROROORRRORRRRRORRRRRRRRORRRRORRRRRRRRORRRORRRRRRRRORRRRRORRRRRORRRRRRRRORRRRRRRORRRRORRRRRRRRORRROOORRORRORRRRRORORRRRORORRROROROORORRRRRORRRORORRRRROORRRRRRRRRRRRRRORORRRORRRRRRRRRORRRORRRRORRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRORORORRRORRRRRRRRRRRRRRRRROROORORRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRRORRRRRRRORRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRORROORRRRORORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRORRRROORRRRROROORRRRRRRORRRRORORRRORORORRRRRRRRRRROOORORRRRRRRORRRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRORRRROORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORROORRRORRRRRRORRROOORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORROORRRRRORRRRORROORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORROOORRRORRRRRRROOORORRRRRRRORRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORORRRRRRORORRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRORRRRRORRRRRRORORRRRRORRRRROORRRRRRRRRORRRRRRRRRORORRORRORRRRRORRRRRRRRRRRORRRRRRRRROROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRORRRRRORRRRRRRRRRRORRRORRRRRRORRROORRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRROORRRORORRRRRRRRRROORRORRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRRRORRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRROROORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRROORRRRRRRRRRRRORRRRRRRORORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRORORRRRORRORRRRORROOORRROORRRRROOROORRRRRRRRORORRORRRRRRRORRRRRRORROOORROORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRRRRRRRORORRRORRRORORRRORRRRRRRRRRROROOROROORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORORRRRRRROORRORRRRRRRRRRORRRRRORRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRROORRRRORRRRRORROORRRORRRRRRRROORORRRRRRORRRRRRRRRRRORRROORRRRROOORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRORRRRRRRRRROORRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORROORORRROORRORRORRRRRRRRRRRRRORRORRORRORRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRROOORORRRRRRRRRRROOOORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORORRRORORORRORRRRRRRRORRRORRRORRORRRRRRRRRRRRRORRRORRRRRRROOOOORRRRRRRRRRRRORORRORRRRROORRRORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROROORRRRRRRRRORORORRRROORRRRRRRRRORRRRRRORRRRRRRORRRRRORRRRRRRORROORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRORRRRRRORRRRRRRRORRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRORRRRORRRRORORRRORRORORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRORORORROORRRRRRORRRRRORRRRRRRORRRRORRRRRRRORRRRRRRRRRROOORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRORRRORRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRROOROORRRRRRORRRRRRORRROORRORRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRROOORRRRORRRORRRORRRRRRRRRRRRORRRRRRRORRRRORRRRORRRRRRRRRRRRORRRROORRRRRRORRRRRRRORRRORRORRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRORRRRORRRRRORRRORORORRRRORRRRRRRRRRRRRRRRORRRRRRORORRRRRRORORRRRRORORORORRRORRRRRORRRRRRRRORRRRRRRRRRRRORRORRORROORRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORORRRRRORRRRRRROORRRRRORORRRORRRRRRRRRRRRRRRRRORRORRRRRRORROROORRRORRRRRORRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROORRORRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRROOORRORROOORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRRRORRRRROORRRRRORRRRROOOORORRRRORROORRRRROORRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRRORRRRRROORRRRORORRRRRRRORORORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRORRROORORRROOORORRRRRRRRRRRRRRRRRRRRORRORRRRRRROORORORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRORORORORRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRORRRROORRORORRRRRRORRRRRRRRRRORORRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORROROORRRORRRRRORRRORRRRORRRRORRRROORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRORRORRORRRRRRRRORRRRRORRRORRRRRRRRRRRRRORRROROORRRRRRRRRRRRORRRRRORORRRRRRRRRORRRORORRRRRRRORRRRRRORORORROOORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRORROORRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRORRRRORRRRRRORROORRRRRORROORRRRRRORRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRROOOORRRRORRROROOORRRRRORRRRRRRORROORORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRORORRRRRRRRRRRRORRRRRRORRRRORRRORRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRORRRRRRRORORRRRORRRRRORRRRRROORRRRRRRORRRRORRRRRRORRRORRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRORRROORRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRRORORRRRRRORRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRORORROOORRRRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRROORRRRORRRORRORRRRRRRROROOOOORRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRORRRRRRRRORORORROROORRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROORRRORRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRROROORRRROORRRRRRRRRRORRRROORRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROROROORRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRORRRROORRRRRRRRRORRRRRRRRORORRRRRRORRORRRRORRRRRRRRROORRRRRRRRORRORRRRRRROORRRORRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRORRRRRORRRRRRRRRROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRORORORRRRRROORRRRORRRRRRORRRORRRRRORRRRRRORRORRRRRRRORRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRORRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRRRROORRRRRRRRRRORRROORORRRRORRRORRORRRRRORROOROORRRRRRRRRRORRRRRRRRRRRRRRORRRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRORRRRRRORRRROORRORRRRRRRORRRRRRRRRRORRORORRRRRRRRROORRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRORRRRRRRRRRRRRORRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRRROORRORRRRRRRRRRRRORRORRRORRRRRRORRRRRRRRORRORRRRRORRRRRROORORRORORRRORRORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRRORRORRORORRORRRRORORORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROOOOORRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRORRRRRROORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRORRRORRRROORRRRRRRRRORORRRROORRRRRORRRRRRORRRRRRRRRRORRRRRRRRORORRRRRRRRORRRRRRROORRRRRRORORRRRRRRRRROOROORRRRRORRRRRRRRRRRRRRRRORRRRRROOORORRORRRRRRRORRRRRRRORRRRRORRORROORRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRORORRRRRRRRRRRORRORRRORRROORRRRRRRRRROORRRRRROORRRRRRRORROORRRRRRORROOORRRRRRRRRRRROORRRRRRRROORORRRRRRRRRRRRRRORRRRRRRRRRORRORRRRORRORRRRORRRRRRRRRRROORORRRRORRRRRRRORORRRRRORRORRRRRRRRRRRRRROOORRRRRRRRORRRRRRROORRRRRRRRRORROORROORRRRRRRRRRRRRORRRRRRROORRRORRRRRRORRRRRRRRRRRRRORROORRORRRRRRRRRRRORRRRORRRRRRRORRRORRRRRORRRRRRRRRRRORRRRRRRRRROROROORRRRORRRRRRRORRRRRRRRRORRRRRRROORRORRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRORRRRRORRRRRORRRRORRRRRRRRRRRRRRRORORRRRRRORRORRRROORORRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRRRRROORRRRRORRRRRORORRRROORRRRORRRORORRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRROORRROROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRROORRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRORRRRRRORRRRORRRORRRRRRRRRRORRRORRRRRRRRROORRORRRRRRRORRRRRRRRRRRRRROROORRRRRORORRRRRORRRRRRRRRRRRORRORRRRRRRRRRORRRRRORRRRRRRRORRRRORORRRRRRRRRORRRRROORRRRRRRRRRRRRRRORORRRRORRRORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRROORRRRORORRRRRRRRRORRORRRRRRRRRRRRROOOORRRRRRRRRRRRRRRORRRRRROORRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRORRRRRRORRRORRRORRRRRROOOORRRRRORRRRRORRRRRORRORRRORRRRRRORRRRRRROOOORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRORORRRORRRRRRRRRRRRRORRORRRRRRRRRRROORRRORRRRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRORRRRRORRORRRROORRRORORORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRROROROORRRRRORRRRRRRRRRRRRRORRRORRRRRRORRRORORRRRRRRRRRRRORORORRRRRRRRRRRRRRRRORORRORRRRORORRRROOORORRRRRRORRRRRRRRORRORRRRORRORRRRRRRRRRRORRRRORRRRRRRRRRORRORRORRRRRORRRORRORORRRRRRRRRRRRORRRRRRORRRRRRORRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRORRRRORRRORRRRRROROORRRRORRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRORRRORRRRORORORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRROORORORRRRRRRRORORRRRRORRRRRRRRORRRRRRRRORRRRRRRORRRRRORRRORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRROORRRRRRRRRROORRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRORORRRROORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRROORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRORRRRORRRORRRORRORORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORORORORRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRROORRORRRRRRRRRORRRRRRRRORRRRRRRORRRRRORRRORRORORRRRROROROORRRRRRRRRORRRORRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORRRORRORRRORRRRORRRRRRRRRORRRRRORRORORRRRRRRRRRRORRRRRRORRRRRRRRORORRRRORRRRRRRRORRRORRRRORRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRRROORRORRRROORROORRRRORRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRORORRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRORRRORRRRRRORRRORRRRORRRROORRRORRRRRRRRRROROORORORRRRRRRRRRORRORRRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORORRORRRORORORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRROORROOORRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRORRRRORRROORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRORRRRROORRORRRRRRROORRRRRRORRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRORRRORRRRRROOROORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRORRROROORROOORRORRORRRRRRRORRRRRRORRRRRRORRRRRRRRRRORRRORRRRRORRORRRRRRRRRRRRRRRRRORORRRRRORORRORRRRRORRRRRRORRRRRRRORRRRRORRRRORRRRRRRORRRRRRRROOOORRRRORRRRRRORRRRRORRRRRRRRORRORRRRORRRORRRRRRRRRRRRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRORRRORRRRRRRRRRRRORORORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRORORORRORRRRRRRORORRRORRRRORRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRROROORRRRRRORRORRORRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRROORRORRRRRORRRRRRRRRORRRRRRORRRRRRRROORRRRORRRRRORRORRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRROORRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRRRRRRRRRRORRROORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRORRORRRRRORRORORRRRRRRRRRRRRORORORRORRRRRRRORRRRORORRRRRRRRRRRRROORRRRRRRRORORRRRRRRRRRRRROROROORRRRRRRRRRRRRRRRRRORRRRRRROORORRRRRRRRRORRRROORRRRRRRRRRORRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRORORRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRORORRRRRRRORRRRRRRRORRRRRORRORRORRORRRRRORORRRRRRORORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRROORRRRORRORRRRRROOORRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRORRRRRORRRRRORRRRORRRRRRRRROORRORORRRRRRRRRRORRRRRORRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRORORRRRRRORRORRRRORRROORRORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRORORRRORROORRRRRRRORORRRRRRRRORRROORRORRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRORORRRRRROROORRRRRRRRORRRORRORROROOORRORROORRRRORORRRRRRRRRRORRRORRRORRROOORRRRRRRORRRRRRRORRRORRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORORORRORRRRRRRORRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRORRORRRRORRRORRRRRRRRRRRRRRRRORRRRRROORROORRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRRORRORRROORRRRRORRORRRRROORRRRRRRORRRRRORORRRRRORROROORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRRRRRRRROORRRORORRRORRRRRRRRRRRRORRRRRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRORRRRROOORORRRRRRORRRORRORRORRORRRRRRRRRORRRRORRRRRRRRRROOOORROORRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORROORRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRORRRRRRRRRORORRRRRRORRORRRRRRRRRRRORRRRRRRRRRRORORORRRRRRORRRRRRRRRRORRRRRORRORRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRROROORRRRRRRORRRRRRORRORROROORRRRRORRRRRORRORROORRRORRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORORORRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRORRRRRORORORORORRRRRRRRRRRRORRRRRRRRRRRRORRRRROORRRRRORRORORORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRORRRRRRRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRROORRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRORRORRRRRRORRRRRROORRRRRRRRRORRRRRRORORRRRORRRRORORRORRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRROORRRROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRORRRORRRORRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRORRROORRRRRRRORORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORORRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRROOORROORRORRORRORORRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRORORRRRORRRRRRRRORRROROORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRORORRORRORRRRRRRORRRORRRORRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRORRRORRRRROORRRORRRRRRRORRRRORRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRROORRROROORRRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRRRRRRORRRRORRRRROORRRRRRRORRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRROORRROORRORRRRRRRRRRRORRRRORRRROORRRRRRRORROORRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRROORRRRRORRRRRRRRRRRRORRRRRRRROORORRORRORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRORRORORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORRRORRRORORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRORORRRRRRRRRORROORRRRRRRORORRRRRRRRRRRRRRRRRRRRROORRORROORRRRRRRORRRRRRRRORORRRRRRRRORRRRRRRRRROORRRORRRRRRRRRRRORRRORORRRRRRORORRROOORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRROROORRRORRRRRRRRRRRRROOORORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORORRRRROORRRORRORRRRRORORORRRRRRRRRORRORORRRORRRRRORRORRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRROORRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRORROORRRRRRROORRRRRORRRRORRRRRRRRRRRORORRRRRRRRRRORRRRRRORRRRROOORRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORORRRRRORRRORRORRRORRRRRRRRRRRRRROORORRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORORRRRRRRRRORRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRROORRRRRRRRORORRRRROORORORRRRRRRRRRRRRRRRRORRRRORRORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRROOORRRRRROORRRRRRRRRRRRRROOORRRRRRRRORORRRORRRRRRRRRRRORRORRRRRRRRRRRRRROOORRRRRRRRRRRORRRRORRRRORRRORRORRRRRORRRRRRORRRRRRRORORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRORRRRRRRRROORRRRRORRRRRRORRRRRRRRRRORRRRORORRRRRRRRRRORRRRRRRRRRRRORRRORROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORROROROORRORORRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORORRRRRRORRRRRRRORRRRRORRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROORRROORRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRORRRRRRRRORORRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRORORRORRRORRRRRRRRRRRRRORRRRRRRRORRRORORRRRRRRRORRRRRRROROORRRRRRROROORRRRRRRRORRRORRRRRRRORRRRRORRRRRRROROROORRRRRRRRRRRRORRRRORRRRRORRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRORRRRRORRRRRRRORRRRROOORRORRRROORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRROORRRRRRRRRORRRRORRORORORRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRORRRRRRORORROORRRRRORRRRROORRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRORRROORRROORRRORRRORRORRRRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRORRORRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRORRORRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRORRRRRORRRORORRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRORRROORRRRRRRROORRRRRRRRRORRRRRRRORRRRRORRRRRRRRROORRRRRRRRRRRRRRRORRRRRORRROROROORRRORROORRRORORRRRRRRRRRRORRRRRRRORRRRRRORRRORRRRRORRRRRRORRRORRORRORORRRRRRRRRORRRRRRRRRORRRORRRRRRROORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRORRRRRRRORRRORRORORRRORRRRORRRORRORORRRRRRORORORRRRORRRRRRRROOORORRRORRRORRRRRORRORORORRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRORRRORRRORORRRRORRORRRORRRRORRORRRRRRORRRRORRRRRORORRORRRRORRORRRRRRRRRRRRORRRRRRRRORRORORRRRROORRRRORRRRRRRROORRRRRRRRRRRORROORRRRRRRRRROORORRRORRROORRRRRRRRRRRRORRROROORORRORRRRRRRRRRRORRRORRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORORRRRRRRRRORORRRRRORRRRROORRRRRORRRRRRRORRRRRRRRRRRRRROROROORRRRRORRROORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORORRRRRRORRRORRORRRRRRRRRORORRRRRRRRRRRRORROORORRRRRRRORRRRRRORRRRRRRRRRRRRRROOORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORORRORRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRRRROORRROORRORRRRRRRORRRRROORRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRORORRRRRRRRRRORRRRRRROORRRROORRRORRRROORRORRRRRRRRRRRRRRRRRRRRRROROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRORRRRORRRRRRRRRRORRORRRORRRRRRRRRRORRROROORRRRRRRRRORROORRRRRORORRRRRORRRRRRROOORRRRORRRORRROORRRRORRRRORRRORRRROROORRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRORRRRORRRRRRRORORRRRRORRRRRRORRRORRRRRRRRRRORRORRRROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRORORRRRORROORRRRORRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRROORRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRORRORRORRRROORRRORRORRRRRRRORRRRORORRRRRRRRORORRRRRRRRRRRRRRORORRRRRRORROORRRRRRRRRRRORORRRRRORRRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRRORRRORRRRRRORRORRRORORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRRRORRRROORRRRORORRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRROORRRRRRRORRRRROORRRRRRORRORRRRORRRRORORRRRRORROORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRROORRORORRRRRRORRRRRORORRRRRRRRRORRRORORRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORRRRORRRROORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRRRRRORRORRRROOORRRRORRRRRRRRRRRRROORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRORRRORRRRROORRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORORRRRRRRRORRRRRORRRRORRORRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORORROROORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRORRRRRRRRRRRRRRRRROORRRRRORRRRRRRORRRORRORRRRRORRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRORORORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRORORRRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRORORRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRRORRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORORORRRRRRRRRRRRRORRRRORORRRRRROORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRROOROOORRRRRRRORRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRORRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRRRORRRRRRRRRORORRRRRRRORRORRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRORRORRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROROORRRRRRRORRRRRRRRROORORORRRRRORRRROORRRRRRRORRRRRRRRRRRRORRRRRRORRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORRRRRRRRRRORRORRORRRRRRORRRRRRRRRRROORRRRRRRRROORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROROOOORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRROROORORRRROOORORRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRORRRRRORRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROORRRRRRRRRRROORRORRRRRRRRRRORRORRRRRRORRROORRRRRROROOORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRORRRRRORRRRRRORRRRORRRORRORRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRORRRRRRORORRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRORRRORRRRRRROOOORORRRRRRRRRRRRRORRRROROROORRRORRRRORRORORRRRORRRRRRRORRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRRORRRRORRRRRORRRRRRRRROROOORRRRRRRRRRRORRORRRORORRRRRRRRRRRRRRRRRRROROROORRRRRRRRRRRRRRORRORORRRRRRRRORRRRRORRRRRRORRORRRRORRRRRRORORORORROORRRRRRRRORRRRRRORORORRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRROORRRORRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORORRRRRORRRRRORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRORRRORRRRRRRRROORORRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRORORRORORRRRRORRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORORORRRRRORRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRROORRRORORORRRRRRORRRRRRRORRRRROORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRORRRRRORROOOORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRORRRRORRRORORRRRRORRRRRRORRRRRRRRRRORORRRORORRORORRRRRRRRRRRRRRRRRRRRROOOROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRORORORRRRRRORRRRRORRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRORORRRRORORRORRRRRRORRRRORRROORORRRRRRRORRRORRRORRRRRRRROORORRRRRRRORRORRRORRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRORRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRORRRRORORRRRORORORRRRRRROORRORRRRRRRRRROORRORRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRORORRRORRORRRRRRORRORORRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRROORRRROORORRRRRRRRRRORORRRRRRRRRRRRRORRRRRROORRRORRRRRRORRRORRRRORORRRORRRRRORRRRORORRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRORRRORORRRRRORRROOORROROORRRRRRORRRRRORRORRORORRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRORRRORRRORRRORRORRRRRRORRRRRRRORRRRRORRRORRRRRRORRRRRRRORORORRRORRRRRRRRRRRRRRRRRORORORRRRRRRORRRRRORORRRRRRRRRRRRRRRRROORRRORRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRROORRRRRORORRRRRRRRRRRRRRROORRORRORRRRRRRRRRRRRORORORRRRRRRRORRRORRRRRRRRRRRROORRORORRRRRRRRRORRRRRRRORRORRRRRROOOORROORRRRRRRRRRORORRRRRRRRRORORRRRRORRRRRRRORRORRRRRRRRRRRRRRRRORORRRRRRORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORORRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRORRORRRRRORRRRRRRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRORROORRRRORRRRRRRRORRRORROORRRORORROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORORRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRORRRRORRRRORRRRRRRRRRRRROROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRROOROORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRRRRROROORRRRRRRRRRRRRRRRRROORRRORRRORRRRRORRRRRRRROROOOORROORRORRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRORRRRORRRRRRRORRRRRRORORRRRRRRORRRRRRRORORRRORRRORRRRROORRRRRROROORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORORRRRROORRRRRROOORRRRRORRRRRRRORRRRRRRRRRRRRORRORROOORRRRRRRRRRRRRRRROORRRORRRRRORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRORRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORORRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRORRRRROROOORRRRRORRORRRRORRRRROROROORORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRORRRRRORRROORRRRRORRORRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRROROORRRRRRRRRROORRROOORRRORRRRORRRRRRRRRRRRRRRORRORRRRRORRRRRRRRORRORORRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRRRRRRORRORORROORRRRRRORORRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRORRRRRRRRRORRRRRRRORRRRRRRRRRORORRRORRRRRRRRRRROORRRORORRRRRRRORRRRRRRRRRORRRORRROOOORRRORRRRRORRRRRORORRRRORRRORRRRRRRRRORORRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORORRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRORRRORRORRORRRRRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRROORRRRRRRRORRRORRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRORRRRROOORRRORRORORORRRRRRRRRRRRORRORRRRRRRRRRORRORRRRORRRRRRRORRRRRRORRRRRRROORORRRORRRRRRRRRRRORORRRRRORRRRRRORRRRROORRRRRRRRRRROORRRRRRRRRRRRRORROORRRRORORRRRRRRRROORRRRRRRRRRORRORRRRRORRRRRRRRROORRRRRRORORRRRORRRRRRRRRROORRRRRORORRRRRRORRORORORRRRRRORRRORRRRRRORRRRRRRRROROORRRRRRRRRRRRROORRORRRRORRRRRRORRRRROORRRRRRRRRORRORRRRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRROORRRORRRORRRRROOORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRORRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORORRORORORORRROOORRRORRRRRRRORRRORRORRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRORORRORRORRORRRRRRORRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORORRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRORRORRRRRRRRORRRRRRRORRRRRRRRRORORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRROORRORRRRRORORORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRROORRRORRORRRRRORORRRORORRRRRRORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRRORRRORRRRRRRRRRROOROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRROORRRRRRRRRRRORRRROORRRRORRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRORRRORRRRORRRRRRORRRRRORRRRRRORRRRRRRRORORRRRRRRRROROORORORRORRRRRRORRRRRRRROROOOOOORRORRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRORRROORRRRRRRRRRRRRRORRRRRRROORRRRORORRRRORRRRRRRRORRRRORRORRRRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRORORRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRORRRRRORRRRRORRORRRRRRRROROORRRRORRRRRRORORORRRRRRRRORRRRRROORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROOOOOOORRRRRRRRRRRRORRRRRRRRORRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRORRRRRRROORORRROROOORRRRRRRRRRRRRRRORORRORRROROROORORORRRRRRRRORRRRRRRRORRRORORRRRRRROORRRRORORRRRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRROORORORRRRRROORRRORRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRORRORORRRRORRRRRRORRRORRORORRORRRRROORRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRROORRROOORRORRRRRORRORRORRRORRRORRRRRRRRRRRRRRRRRORRRORRORRRROORRRRRRRRRRRORRRRRRORORRRRRRRRROORORRRRRRORRRRRRORRRRRORRRORORRRORRORRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRORORRRORORRRRRRRORRRRRRRRRRROROORRRRORRRRRRRRRRRRROORRRRRRORRORRRRROORRROORRRRORRRRRRROROOORRRRRRRRRRRORRRRRRORRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRROORORRORORRRRRRRORORRRRRRROORRRRRRRORRRRORORRRRRRRRRRRORRRRRRRRORRORRRORRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRORRRRORRRRRRRRROORORRRRRRRORORRRRRRRRORRRRRORRRRRRRRRORORORRRRRRRRRRORRRRORRRRRRRRORROROOORRRORRORRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRORRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRRORORORRRRRRRRORORRRORRRRRORRRRRORRRRRORORRORRRRRRRRORRRRRRRRRRRROORRRRRRRORRROOORRORRORRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRORRRRRORRRRORRORRRRRORORRRORRRRRRRRRRRRORRORRORRRRRORRRRRRRORRRRRRRRRRRORRRRRORRRORROOORRRRRRRRRRORORRRRRRRRRRRRRRRRROORRRORRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRORRRORRRRRRRRRRRRRORRRRRORROORRRRORRRRRRRRRORRRRRORRRRRORRORORRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRORRRRRORRRRRORORRRRRORRRRRRROORRROORRRRRORRRORRROORORRRRRORRRRRRRRROORRRRRRRROORORORRRRORORRRRRRRRRROORRRRRRRORRRORRRRRRRRORRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRROORROOORRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRORRRRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRRRRORRRORRRORRRRRRRRRRRORRORORRRRRRRRRRRRORRRRRRRORORROOORRORRORORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRORRRRRRRRORRRRRRRRORRORRRRRORRRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRORRORRRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRROORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRORRRRRRRRROORRRRRRRRRRRORORRRRRRORRORROOROORRRRORORROORRRRRORRRRRRRRRRRRRRRRRORRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORORORRORRROROORRRRRRRRRRRRRRORRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRORRRRRRRORRORRRRORORRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRROORRRRORRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRROORORRRRRRRRROORORRRRRROORRRRRRRRRRRRRRRRRRRORRORRRRRRRROORRRRRRRRRRRRRRRRORRRORRRORORORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRRORRRRORRRRORRRRRRRORRRRRRORRRRORRROORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRROORRORORRRRRRRRORORRRRRRRRRRRORRRRORRORORRRORRRRRRRRRRRORRRRRORORRORROORRRRRRRRRRRRRORRRORRRRRORRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROOORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRORRROORRRRRRORORORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRORRRRRRORORRORRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROOORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRROORRORRRORRRRRRRRRRRORORORRRRRRRRRRRRRRORRRRRRRROORROROORRRRRRRRORRORRORRRRRRRRRORRRRRRRRRRRRRRRORRROROORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORROORRRROORRRORORRRRORRROOORRORRRORRRRRRRRRORRORRRRRORRRRRRRRRORRRRRRRORRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRORORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRORRROOORRRRRRORRRRROOOORRRRRRRRRRRRRRRRRROORRORRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRRRRORRRROORRORRRRRRRRRRRRROOORRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORORRROORRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORROORRRRRRRORRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRRRRRRRROORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORORRRRRRRRRORORRRRRRRROROORRRROORRRRRRRORRRRRRRRORRRRRRROROORORORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORORRORORRRRORORRRRRORRRRRRORRRRORRRRRROORRORRRRRRRRRRORRRRRRRRRRORRRORORRRRRRRRRRRRRRRORRRRRORRORRORRRRORRORRORRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRORORRRRRRRORRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRRORRRRRRRRRORRRRROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROORRRORRRORRRRORRRRORRRRRRRRRRRRRRRRORROOORRRORORORRORRRRRORRRRRRORORRRORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRROORORRRRRRRRRRRRRORRROORORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRROORORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRROORORORRRRROORORRRRRRRORRRRORORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORORRRRRRORRRRRORRRORRRRROORRRORRRRRRRORORRRRORRRRORRRRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRORRRRRRRRRRRRRRROORRRRRORRRRORRRRRRORRROORRRORRORRRRRRRRRRRRORRRRRORRRRRRRRRRORORRORORRRRORRRRORORORRRRRRRORRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRORRRRORRORRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORORRRRRRRRRRRRRORRRRROOORRRRRRRRRROORRRRRRRRRRRRORRRORORORRRRRORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRORRRORRRRRRROORRRRRRRRRRRRRRORRORRRRORRRRRRRRORORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORRRRORRRROOROORRRRRRRRRORRRRRORRRRRRRRORRRRRRRRORRRRRROORRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRORRRRRRRRRRRROORRRRRRRRORRRRORRRRROORRRRORRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRROORRORRRRRORRORRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRROOORRRRORRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRROORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRORRRRORROORRRRRRRRRRRRRORRORRRORRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRROORRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRORRORORRORORRRRRRRRRRRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRORROORRRRRRRRRRRRRRRRRRRORRRRRROROOOORRRRRROORRRRRRRRRORRRRROORRRRRRROROORRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRROOORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORORRRRRRRORRRORRRRRRRROORRRORRORRRRRRRRRRRRRRRORRORRRRORRORRRRORRRRRRORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRRORRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRORORRRORRRORRRRRRRRRRRORRRORRRRRRORRRRRORRRRRRRRORRRORRRRRRRRRORRRRRRRROORRRRORRORRRRRRRRORRRRRRRRORORRORRRRRRRRRRORRRRRORRRRORRRORRRRRORRRRORRRORRRRRRRORORROORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROOORRROORRRRRRRRRRORRRRRORRROOOORRRRRRRRRRRRRORRRRROOROOORRORRRRRRRORRRRRRROORRRRRRRRRRRROORRRRRRRRRRRRORRORRORRRRRORRORRORORRRRRRRRRRRRRORRORRRORRRRRRRRRRORRRRRORRORRRRROROROORRRRRRRORRORRRRRRRRRRRORRORRORRRRRRRRORRORRRRRRRRRRRRRRRRRORRORRORRRORRRRRRRRRORRRORRRRRRORRORRRRRRRRRRORORRRRRRRORRRORRRRRRRRRRRRRRORRRRRRROORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROORRORRRRRRRRRORRRRROORRRORRRRROOORRRRORORRRORRRROOORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRORRRRRORORRRRORRRRRROORRORRORRRRRRRRRRORRRORORRRRRRORRRRRRORRROORRRRRORRORROORRORRRRRORRRRROORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRORRRRRRRRRROORRRRORRRRRRRRRORRRRRRRRRORORROOORRRRRRRORRRORRRRRORRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRORORRROORRRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRROORRRRRORRRRORRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRRORRRORRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRROORORRRROOORRRRRRRRRRRROORRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRORRORRRRRRRRORRRORRORRRRRRRORRRRRRRRORRRRRRRRRRORRORRRRORRORRRORRRRRRRRRRRORRRRRROORRRRRORRRORRRRRRORRRRORRRORORORRRRRRRRORRRRRORORRRRRRRRRRORRRRRORRRORRORRRRRRRRRRRORRRRRORRRRRRRRORORRRRRRRRORRORRRRRRRRRRORRROORROORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRORRROORRRRRRRRORORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORROORORROORRRRRRRRRRRRRRRORRRRRORRRRRRRROOROOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRRRRORRRORRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRORORRRORRRRRRRORROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORORRORORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRROROORRRRRRRRRROORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRROORRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRROORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRORRORORRRRORRRRRRORRRRRRRRRRRRRROORRRORORRRRRRRRRRRRRRRRRRRRORROORRRORRRRRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRRRORORRRORRORORRRRRRRRRRRRRROROORRRRRORORRRRRRRRRRRRRRRRRORORRRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRORORRORRORRRRRRRRRRRRRRRRRRRRRRORRROORRORROORRRORRRRRRRORRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRORORORRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRORRRRRORRORORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRORORRRRORRRRRRORRRROROORROOORRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORORRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRORRRRRRRRRRORRRRRRRRROROOORRRRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRRRORROROORRRRORRRRORRRORRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRORRORRORRROORRRRRRORRORORRRROROORRORRRRRRRRROOORRRRRRRRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRROORRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRORROORRRRRRRRRRRRRRORRORRROORRORORRRRRRRORRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRROOORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRORORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRRRRRROOORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRORRRRRRORRORRRRRRORRORRORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRROOORRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRORRRORRRRRRRRRRRRRRROORROORRRRRRRORRRRORRRRORRRRRORRRORRROORORRORRRRRRORORRRRRRRRRRRRRRRRORRRORRORRROROORORRRRORORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORRRRRRRORRRRRRRORORORRRRRRRRRRROOORRRORRRRRORORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRROORRORRRRRRRRORRROOORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRROORORRRORRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRORRORRRORRRRORORRRORRRRRRRRRRRRRRORRRRRRORRROORRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRORRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRROORROORORRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORORRORRRRRRRRRORRRRORRRORRRRRRRRROORRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRORRORORRRRRRRRRORRRRRROORRRRORROORRRRRRRRRRRRRRRRRRRORRORORORROORRRRRORRORORRRRROORRRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRORRRRORRRORRRRRRORRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROROROORRRRRRRRRORRRRRRRRRRRRRRROORRORORRRRRRORORRRRROORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRORORORORRRRRRRRRRRRRORORRRRRORORRRRRRRORRRRRORRRRRORRORRROORRRRRRRORRRRRRRRRRORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRROOORRRRRRRRROORRORRRRRRRRORRRRORRORRRRRORROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRORRRRRRRRROORRRORRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRORROORRRRORORRRRRRRORRORRRRRORRRRRRRRRRRRORRROROORRRRRORRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRORORRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRORRRRRRRORORRRRRRORRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORORRRORRRRRORRRRRRRRRRRRRRRRRORRORROORRRRRRRRRRORRRORRRRRORRRORRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRROORROORRRRRRRRRRORRRORORRORRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORORRRORORRRRRORRRRRRRRRORORRRRRORRRRRRRRRRORRRRRRRRRORRRRORORRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRROORRRRRRRRORORRRRRRRRRRRRORRRORORRRROORRRORRRRRRRRRRRRORORRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORRORORRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROOOORRORRRRRRRRRRRORRROROORORRRRRRRRRRRRORRRORORORRRRRROOOORRRRORRRRRRRRRRORRRRRRRRRRORRRRRROORRRRRROORRRRRRRORRRRRORRROORRORRRORRRORRRRRRRRRRRRORRRRORRRROORRRRRRRORRRRRRORRRRORRRRRRRRRRRRORORRORRRRRRORORRRRRORRRRRRRRRRRRRRRORRRRORRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRORRRRORORROOORRRRROORRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRROORRRRRRRORRRRORORORRRRROROORRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRORRRRRRRRRRORRROORRORRRRRRRRRORRORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRORRRRRRORRRRORRRRRORRRRRORRRRORRRRRRRRRRRRRRRROORRRORRRROORRRRORORORRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRRORRRRRRRRORRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRROOORRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRORORRROROORRRRRRRRRRORRRORRRRRRRRRRRROROORRRROORRRRRRRRRRRRRRRORRORRRORRRRORRRRRORRRRRRRRRRORRRRORRRRRORRRRRRRORORRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRORRRRORRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRRRRRRORRORRORRORRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRROOORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRORRORORRRRRRORRRRRRRRROORRRORRRRORRRRORRRRRROORORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRORRRORRRRROORRRRRRRRORRRRRRRRRRROORRRRRRRRROOORRRROORRRRRRRRRRRRRRORRRRRRORRRROORORRRRRRRRORRORRRRRRRRRRRRRRROORORORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRORRRRRRRRRRRORRRORRRROORRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRORRRRRRRORORRRRRRRRORROORRRROORRRRRRRRRRRRRORRRRORRRORORRORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRORRRRROORRORORRRORRRRRORRRRRRRRRRRRORORRRRRORRORRRRRORRORRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRORRRRRRORORRRRORRORRRRRROOORRRORRRRORORRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRORRORROROOORRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORROORRRRRRRRORRRRRRORRRRRRRRRROROORRORRRRRRRRRORORRRRRRRORRRRRRRRRRRRORORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRORRORRRRRROORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORORORRRRRRRRRRRORRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRROOORRORRORRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRORORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRRORRRRRRRRRRRRROORRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRROOOOORRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRROOORROORRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRORRRORRRRRRRRRRRORRRRRRRRRRROORORRRRRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRORRRRRRRRRRRRRRROORRRRRORRRRRRRRRRORORRRORRRORRRRRRRRRRRRRRRORRRRRRORORRORRRRRRORORRRRRORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRORROORRORRRRRRORRORRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRRRRRRRRRRRRRRRRROORORRRRRORRRORRRRRRORRRORRORRORRRORRRRRRRORRRRRRRORRRORRRRRRRORRORORRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROOORRRRRRRORRRRORRORRORRORRRRRRORORRRRRRROORORRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRRRORORRRORRRRRRRORRRRORRRORRRRRRRRORRRRORRRORRRRRRRRORRRRROORRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRROORORRRRRRORRRRRRRRRRRRRRORRRRRORRRRORRRORRRRORRRORORRRRRRRRRRORRRRRROORRRORRRRRRRRRRRRORRRORORRRRORRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRORROORORORRRRRRRRRRROORRRRRRORORRRRRRRRRRRRORRRRROROROOOORRORRRRORRRORRRRRRRORROORRRORRORRRRORROORRRORORORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRORRRRRRROORRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORORRRRORRORRROORRRRRRRROROORRRRORORRRORRRRRRRRRORORRRRRRRRROROORORRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRORRRORRORRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRROORRRRRORRRORORRRRRRORORRORRRRRRRRRROOORORRORORRRRRRRRRRORRRRRRORRORRROOROOOORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRROORROORORRORRORRRRRRRROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRROORORRRRRRORRRRRORRORRRRRRRRRORRORRRRRRRRROROORORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRORRRRRRRRRROORORORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORROORRRRRRRRRRRORORRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRROORORRORRORRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORRRORRRRRRRRRRRORORORRRORRRRRRRRRORRORRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRORRRRRRRRORRRRORRORRRRRRRRRRRRRRRRORORORRRORRORRRRRRRORRRRRRRRRRORORRRRORRRRRRRRRORRRORRRRRRRRRRRRRRORRORRRRRRRRROROORRRRRRRROOORRRRORRRRRRRRRRRRRRRRORRROOORRRRRORRRRRORRRRRRRRRRORRRRRRORRRORRORRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORORRRORRRRRRRRORRRRRRRRRRORORRRORROORRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRROORRRRRRRROOORRRRORRORRRRRRRRORRRRRORORRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORORRRRRRRORRRRRORRRRRRRROORRRRRRRROORRRRRORRRRRRORRORRRRRORRRORORRRRRRROORORRRORRRRORRRRRRRORRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRORRRRRROROORRRRORRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRROORRORRORRRRRORRRRRRRRRROOORORRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRORRRRRRRORRORRRRRRRRRRROROORRROORRRRRRRRORRRRRORRRRRORRRRRRRRORRRRORRRRRORRROROORRRRRRORROROORRRRRRRROOORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRROROOROOORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORRORORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROOORRRRORORRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRROORRRRRORRORRRRORRRRROROORRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORROORRRRRORRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRROOROORRRRORORRRRRRRRORRRRRRORRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRORRRRRRRRRORRRRRROORORRRRRRORRRORORRRRROORRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRORORRRRORROORORRRRRRRRRORROORORRRRORRRRORRRRORRORRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRORROROOROOROOORRRRRRORRRRRRRRORRRRRRRRRORRORRRRRROORORORRRORRRRRRRRORRORORORRRRORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRROORRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRORRRORRRRRRRRROORRROORRRORRRRRRRRORORRORRRRORRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRROORORRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORRORRRRRRRRORORRRRRRRRRRRRORRRRORRRRORORORRRRORRRRRRRORRRRORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORORRORRRRRRRRRRROOOOORORRORRRRRRRRRRRRORRRRRRRRRORRORRRRORRRRRRRORRRORRRRRRRRRRRRRRORORRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORORRRRRORRORRRORRRRRRRORRRRRRRRRRRRRRROORORRRRORRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRORRRRRROORRRRRRRRRRRRRROORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRORRRRORRRRRROOORRRRRRRORRRORRRORORRRRRRRRRRRRRRRORORRORRRRRRRORRRRRRRRRRRRROOORRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORORRRRRORRRRORRRORRRORRRRORRRRROORRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRORRRORORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORROORRRRRRRRRRRRRRORRRORROORRRORRORORRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRORRORRRROOROORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROOOORRRRORRRRRRRRORORRRRORRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORORRRROORORRRRRRRRRORRROORRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRORRRORRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORRRRORRRRRORRRRRORRRRORROORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRORRRRRRRROORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORORRRORRRORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRORRRRORRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRROORRORRRORRRRORORORRRRORRRRRRRRRRRRRORRORORORORORRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRORRRRRRROORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRORRRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROOORRRRRROORRRORRRRRROORRRRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRORRRORRRORRRORRRRRORRRORRRRRRRORRRRRORORRRRORRRRROOORRRRRRRRRORRORRRORRORORRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRORRORRRRRRRRRRRRORRRRRRRRRRRROORRRORRRRRRROORRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRORRRORRROORRRRRRRRRROOORRRORRRRRRRRRRRRRRRRORRORRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRORORRRRRRRRRRRRRRRRRRORRORRORRROORRRRRRORRRRRRORRRRRRRRRORRROORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRORRRORRRRRRRORRRRORRRORRORRRRRRRRRRRRRRORRRRORRRRRRROORRRRRRRRRRRRRRRRRROROORRORRRRRORRORRRRRRROORORRRRRRRRRRRRORRRORRORRRORORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRROORRRRORRORRRRORRRRRORRORRRRORRORRRRRRRORRORRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRROORRORRRRRORRRRRRRRRORRRRRRORRRORRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRROROROORROORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRORRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRROROORRRRRORRRRRRRRRRRRRRROROORRRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRORRRRORRRORRRROORRRRORORRORRRRRRRRRRRROOROORORRORRRRRRRRRRORRRRRRRRRRRRRORRORRORRRORRRORRRRROORRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRORRRRRORRRORRRRRRRRORROORRRRRRORORRRORRRORRORORRRRRRRRRRRORRORRRORRRRORRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRORRORRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRORRRRRRRROROORRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRORRRORORORRORRRORRORRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRROORORRRRRRORRRORORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRRORRORRRRRORRRRRRRRRRRRRORRROORORORRRRORRORORRORRRRRRRRRRORRRRRRORRRRRROOORRRRRRRRRROORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRROORRRRORORRORRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRORRORRORRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRROOROOORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRROORRRRRRORRRRRRORROORRRRRORRRRROOORRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRORROORROORRRORORRRORRRRRRRRRORROOOORRRRRORRRRRRRRRRORRRRRRORRRRRRRROORRRRRRRRRRORRORORORRROORRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRORRORRORORRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRORORRRORORRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRRRRORRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRROORRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRROORRRRRORRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRROORRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORRRRRRRRROROROROORRRRRRRRRRORORRORRORRORRRRRRORORRRRRROORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRROORRRRRRORRORRRRRRROOROROORRRRRRRRRRRRROROOORRORRRRORRRRRRORRRROORRORRORRRRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRORRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRORRRRRRRRRORROORRORRRRRRRRRRRRRRRRORORRORRRRROORORRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRRRRORRORRRRRRRRORORRRRRROOORORRRRORRRRROORRRRORRRRRRORRORORRORRRRRRRRORRRRRRRRRRRRRRRRRRORROORRRRRRRRROORORRRRRRRRRRRRROOOORRRRRRRRRRRRRRORRRRRRORRORRORRRORRORRRRRRRRRRRRRRORROORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRORROROOORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRORRRRRRORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRROORORRRRRRRORRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRORRORRORRRRRRRORRORRRRORRRRRRORRORORRORORRRRRRRRRRORROORRRRRRORRRRORRRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRROOORRORRRRORRRRRORRRRRRRRORRRRRRRORROORORRRRRRRRRROORRRRRRORRRRRORRORRORORRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRORORORRRRORRRRRORRRORRRORRRRRRRRRRRRRRRRRRRORRROORORRORORRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRROOROORORRRRRRRRRRRRRRRRORRORRRRRRRRROORRRRRORRRRRRRRRROROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRORRRRRRRRRRROORRORORRRORRRRRORRORRRRORRRRRORRRRRRRRRRRRRRORORRRORRRRRRORRRRRROORRORORRRRRRRRRRORORRRRROORRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRORORRRRORRRRRRORRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRORORRRRRORRRRRORRRRRORRRRRRRRRRRRRORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRORROORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRORORRORRRRRRRRORRRRRRRRRRRRORRRRRRROOORRRRRRRRRORORRORRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRORRRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRRRORORORRRRORRRRRORORRORRRRRORRRORRORORRRRRRRRRRORRRRRRRORORRORORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRORRROORROORRRRORRRRRRRRORRRRRROORROOORROORRRORRRROORRRRRRRRRRORRRRRROROORRRRRRRRRORRRRRORRRRRORRRRRROORRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRROORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRROORRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORORRRORRRRORRRRORRRRRRORRRRRORRRRORRRRRRRRRRRORRRRRRORRRRRRROOORRROORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRROORRRORRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRROROROORORRRORRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRROORRRRRRRRRORRRRRRRROORRORRROORRORRRRROORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRORRRRORORRRORRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRROOOOORRRRRRRRRRRORRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRORRRRRRRORROORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROORORRRORRRORRRRRRRRRRORORRRRRORRRRRRORRRRRRORORRRRRRRRRORRRRRRRRRORRRRRORORRRRRRRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRRRRRORRRRRORROORRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRROORRRORRRRORRRRRRRRRRRRORRRRRORORRRORRRORRRRRRRRRRRRORRORORRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRORRRRRRORRRRROOROOORRRRORRORRRROROORRRORRRRRRRRRRRRRRRRRORRORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRRORRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRORRRRRRRORRRORRRRRORRRRRRRRORRRRRRRRRRRRORRRORRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROOORRRRRRRORORORRRRRRORRRRRRRRRRRRRRORORRRRRRRRROORRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRORRRORRRRORRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRROORROORRRRORRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRORRRRORRRORRRORRRRORRRRRORRRRRRRORORRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRROORRRRRRRRROOORRRORRRRRRRORRRRRRRRRRRRRRRRRORRRROOORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRORRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRORORRRORRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRORRRRROORORRRRRRORRRRRRRORRORRRRRRRRRRORRRRRORORRRRRRRORRRORRORRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRORRRORRRRRRRORRRROORRRRRORRRRRRRRRRRRRRORRRORRORRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRROORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRROORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORORRRRRRRRRORRRORRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRORRRRRORRORRRRRRRRRRRRRRRRORORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRORRORRRRRRRRROORRRORORROOORRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRORRRRROOORRRRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRORORROROOORRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRRRORORORRRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRORROROORRRRRRRRRROROORRRORRRRRRRRRRRROROORRRRORRRRRRRRRORRRRRRRORORRORRORRRRRORRRORRRRRRORRRRRRRORRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRORORRRORRRRRORRRRRRRRRRRRRORRRRRRRRORRORRRRROORRRRORORRRORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRROORRRRORRRROORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRROORRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRROORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRORRRRRRRRRRORORRRRROORRRRRRRRRORRRORRRRROORRRORORRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRRRROOROORRRRRRRRORORRORRRRRRRRRRRROROORRRRRRORRORRORRORORRRORRRRRRORRRRRRRROROOORRRRRRRORRORORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRROROORRRRRRRRRRRORRORRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRROORRRRRRRORRRRROORRRRRRRRRRRRROORRRRORRRRRRRROOORRRRRORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRROORRRRRRRRRRORRRRRORRRRRORRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRORRRRRRRRRRRRORRRRRORRROORRRRORRRRRRRRRRRRRRRRRRRRROORORRRORRORRRRRRRRRRORRRRRRROORRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORORORRRRRRORRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRRRRORRORRRORORRRRRRRRRORRRRRORRRRRRORRRRRRRROROOORRORRRORRRRRRORRRRRRRRRRRRRORROOORRRRRRORORRORORORRRRRRRRRRRRORRROROROORRRRRORRRRRORRRRRRRRRRRRORRORRRORRRRRRRRRORRRRRRORRROROORRRRRRROORRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRORROOORRRRRRRRRORRRRRORRRRRRRORRRRORRRRORORRRORRRORRRRRRRORRORRRRRRORRORRRRRRRRORRRORORRRRRRRRORRRRORRORORRRORRRRRRRRRRRRRORRRORRRORRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORRRRRRRRRRORORRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRORORRRRRRRRRORRRRROROORRRRRRRRRRRRRORRRRRRORRRRRORRRRORRRORRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRORRRRORRRRRRRORORRRORRRRRRRORRRRRROORRRROROORRRRRRRRRRROROORRRORRRROORRRORRRRROORRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRORROORRRORRRROORRRRRRRRORRRRROOORRORRRRRROORRRRRRRRRRRRROORORORRRRRRRRRRORORRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRORORORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORROORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRROORROOORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRROOOORRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRORRORROROORROORRRRRORRRRRRORRRRRRRRORRRORRRRRRRORRORRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRRORRORORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORORRRORORORRRRRRRRRRRRORRRRRRRRRRRRRROROORRRORORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRORRRRRRRRRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRORRRRRRRORORRORRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRORRRRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRRROROOROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRORRRRRRRRRORORRRRRORRROOORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRRORORRRRRRORRRRRRRORRRRRRRORRRRRRRORRORRRRRORRRORRRRRRRRRRRORRRORRRRRRRORRORORRRRORRORRRRRRRORRRRRRRRRRRORRORORORRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRROORRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRORORRRRRRRRRRRORORORRRRRRRRRRRRRRRORRRORORRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRROORORRRRRRORRRRRORRRRRRRRORRROORRORRRROROORRORRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRORRRRRRRRRORRRRRRRRRRRRRORROORRRORORRRRORRRROORRRRORRRRRORRRRRRRRORRRRORRROORRRRORRRORORRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORORRRRRRORORRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRROORRORRRORRRRRORRRRORRRRRRRROORRORRRRRORORRRRRRRRROORRRRORRRRRRRRRRRORRRRROOORORRRRRRRRRRRRRRORRRRRRRRRORRRRORRORRRRRRORRRORRORRRRRRRRORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRRORORRRORRRRORRROORRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRORRRRRROOOORRRRRRRORRRRORRRRRORRRRRRROOORRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORROORRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRORRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROORRRRORRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRROOORORRRRORRRRRORRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRORORRRORRRRORRRRRRRRRRORRROORRRRRRRRRRRRORRRRRRRRRORRORRORORRRRRORRROOOORRRORORRORRORRRRROORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRROROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRORRRRORRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRORRRRRROROORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRROORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORORRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRRRRRRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRORROORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORORRRRRRRRRRRRRRORRORRRRORRRORRRRRRORRRRRRRRRRRRRRRRRORRROORRRRRORRRRRROORRRRRRRRRRRRROORORRORRRRRRRRRRORRRRORRRRRRRRRRRRORRRORRROORRRRRRRRRORRRRRORRRRRRRRORRRRRRORRRRRRRRRRORRRORRRORRRRRRRRROORRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRORORORRRROOORORRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRORRRRRORROORRORRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRORRORRRRORRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORROROORORORRRRRROORRRRRRRRORRRRRRRORRRORRRRRORRRRRRRORRRRRORRRRRRRRROOOORRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRORRRRRRRROORRRRORRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRORRRRRRRRORRRRRRRORRORRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRRORRRRROORRORRRRRROORRRRORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRORORRRRROORRRRORRRORRRRROOROORRRROOORORRRRRRRRRRRRRRRRRORRRROORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRORRRRRRRRROORRRRRRRRRRRRRRRRRROORORRRRRRRORRRROORRRRORRRRORRRRRRRRRRORRORRRRRORRRRRRORRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRORRRORRRRRRROORRRORRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORORRRRRROORRRRRRRRRORRORRRRRRRORORRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRORORRRORRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRORRRRRORRRRRORRRRRRRORRRRROORRRRRRRRRRRRRRRRRRORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORORRRORORORRRRRRRRRROOORORRRORRRRRRRRRRRRRRRRRRORRRRRRRRROOORRORORRRRORRRRRRRRORRRORRRRRRRRRRRRRRORRORORRRRRRRRRORRRROORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROROORRRRORRRRORRORRRRRRORRRRRRRORRORRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRORRRRRRRORRORRRORORRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRORRORRRRRRRORRRRRROORORRRRORRRRRRRRRRRORRRORRORRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRORORRRRRRRRRORRORRRRRRRRRRRRRRRROORRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORORRORRRORRRRORORRRRRRRRRRRORORRRRRRRRRRRORRORRRRRRORRRORORRORRRRRORRRRRRRRRRORORRRORRORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRORRRORRORRRORRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRROOORRRRRRRRORRRRRRRORRRRRORRRRRRRROOORRRRRRORORRORRORRRRRORRRRRRRORRRORRRRRORRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRORRRRRRRRRRRRRRORRORORRRRRRRORRRRRRRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRORRRRORRORRRORRRRORRORRRRRORRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRORRRORROORRRRRRRRRRRORORORRRRRRRORRRRRRROOORORRRRRRRRRRRRRRORRRRRRORRRORRORRORRRORRRRRRORRRRRORORRRRORRRRRRRRRRRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRORORORRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORORRRRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRORORRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRROORORRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRRRRRRORRORRRRRORRRORRRRORRRRRRORRRRORRRRRRORRORRRRORRRRORRRRRRRRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRRRORRROROORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRORORRRROROORRRORRRRORRRRRRRRRRORRRRORORRRRRORRRRRRRRORRRROORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRORRORRRORRROORRRRRRORRORRRRRRRRRRRORRRRORRORRRORRORORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORORRORRRRORRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRORORORRRRORRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRRRRRRRORORORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRORRRRRRRRRRRROOORRORRRORORRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORORORORRRRRRRRRORRORRRRRRRRRRRROROORRRRRRRRRRORRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORORRRRRRORRRRRORRORRROROORRRRORRORRROORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRORROORRRRROORRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORORRRRRORRRRRRRRRRRRRROORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROROORRRROORORRRRRRORRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRROOOORRRORORRORRRRRRRROOORRROORRORRRRRRRRRROORRRRRRORRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRORRRRORRROORROOORRRRROORRRRRRRROORRRRRRORRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRORRORRORRORRORORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRROORRRRRORRRROORRRRORRRRRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORROORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRORRRRRRRORRRRROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORORORORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRROOORRRRORRRORRRRORRRRRRROROORRRRORRRORRRRROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRROORRORRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRORORRRRORORRRRRRRRRROORRRRRRORRORRRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROROOROORRRROOORRRRRRRRRRRRORRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRORRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRRRORRORRRRRRORRRRRRRRRRORRRRRORRRRRRORRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRROORORORRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRORORRRORRRORRRORRORRRRRORRRRRRRRRRRORRRRRROOOORORRRRORRRORRRORRRORRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRORRRRRORORRRRRORRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRORRRRORRRRRRRRROROOROORRRRORRRRRORORRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRORORRRRRRORRRORRORRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRROORRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRORRRRRORORORRORRRRRRROORRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRORRROORRORORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRORRRRROORRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRORORORRRRRRRRRORRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRROORRRRORRRRORRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRORRRRRRORRRORRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRROOROORRORRRORRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORORRRRRRRRRRRRROOROORRRRRORORRORRRROORRORRRRRRRRRRRRORRRRRRRORRROORRRRRRRRRRRRROORORORRORRRRRRRRRRRRORRRORRRRORRRORRRRRRROORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRROORRRRRRRRORRRRRRRROORRORRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRORRORRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRORRRRRORRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRROROORORRORRRRRRRRROORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRORRRRRRRRRRRRRRRORROROORRRRRRRRRRRRORRRRRRRRRRROORRRORRRRRRRRRRRORRRRORRRORORRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRORRRRRRRORORRRRORRRRRROORRORRRRRRRRORRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORORORRRORRRRORRRRRRRROROORRRRRRRRORRRRRORRRRROOORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRROOORRRRRRRRORRRRRRRRRRRORRRORRRRRORRROORRRORRRORRRRRORORRRRRROROROROORORRRRRRRRRORRRRORRORORRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROROORORRROORRRRRORRORRRRORORRRRRRRRRRORRRRORRRRRRRRRRRORORRRRRRRORRRRRRRRRRORRROOORRRRRRRRRORORRRORRRRORRRRRRRRRORRORRRORRRRRORORRRRRORRRRRRRRROOORRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRROORRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRORORORRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRROORRORRRORRORORRRRRRRRROORRRRRRRRRORRORROORRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRROORRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRROORRRORRORRORRRORRRRRRORRRRRRORRORRRRROORRORRRRRORRRRRRRRRRORRORRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRRORRRRORRRRRRRRRORRRRRRRRORORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORORRRRRORRORRRRRRRRRROORRRRRRRRRRORRRRRRRROORRRRRRRORRORRORRRRRRRRORRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRORRRROOORRORRRRRRRRRRRROORRRRORRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRORORRORORRRORRORRRORRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORRRROORRRRRRRROROROOORRRRROORRRRRORRRRRRORRRORRRRORRRORRRRRRRRRRRRRORRORRRRORRRORRRRROORRRRRRORORRRRORROORRRRRRRROORRRRRORRRRRROORRRRRRRRRRORRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRORORRORRRROORRORRORRRORRRORRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRORORRROORROORRRRRROOROORRORRRRRRRRRORRORRORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORRROORRRRORRORRORROOORRROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRORORRORRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRORRRRRRRORRORRRRRRRRRRRRRORORRORRRRORRRRRRRRRORRORRRORRRRRRRRRRRRRRORORRRRRRORRRRROORORRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRORRRRRRRRRRROOORRRROOORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRROORRRRRORRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRROROORRRRRRORRORRRORRRRRROORRRRRRRORRRORRRRRRRROOORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRORRRRORRRRRRRRORRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRORRRRORRRORRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRORRROOOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRORRRRORROORRORORRRRRRRRRRRRORORROORRROORRRRRRROORRRRRRROORRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRROORRRRORRRORRRRORORRORRRRRORRRRRRRRRRRORRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRRRRRRRORROORRORRRRRRRRRORRRROORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRROORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRORROOORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORORRROOORRROORRRRRRRROORRRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRROORORRRORRRRRRRRRRRRROORORORORRRRRRRRRRRRRRORORRORRRORRORRRRRRRRRRRRRORRROORORRRORRRRORRRRRORRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRORORRORORRRRRRRROORRRRRRRRRRRRRROORRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRRRRORORRRRRRORRRRRRROORRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRORORRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRORORORRRRRROROORRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRROORRRROORRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORORRRROOORRORRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRORRRRORRORORRORRRRRRRRORRRRRRORRRRRRRRORRORORRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRRRORRRROORROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRORRRRORRRRRRORRROORRRRRRRRRRORRORRRORRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRORRRRRRRROORORORRRRRRRRRRRRORORORRRRRRRORRRRRRRRRRRORRROORRORROORRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRROORRRRRORRRRRRRRRORORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRRRRORORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRORRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRRRROORRORRORRRRRRRRRRORORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRROOORRRRRRRRRRRRRRRRORRRRRRORRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRORRRRROORRORORRRORRORRRRRRRORRRRRRRRRORRRORRRRORORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRORORRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRROORRRRROROOOORRORRRRRRRRRRORRRRRRRRRORRRRRRORRORRRRORROROORRRRRRRRORRRRRRRORRRRRRORRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRORORRRRORRRRRORRRRRRRROORORORRRRRORRRORRRRRRRORRRRRRRRORRRRRRRRRROORORRORRROOORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRRRORRRRRRROORRRRORRRRORRRRRRORRRRRRRRRRRRORRRORRRRRRROOORORRRRORRRRRRRRRRRORRRRORRRRRRRRRRORORORRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRROROORORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRORRRRRRRORORRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRORRRRRORRROORRRRORRRORRORRROORRRRRRRRORRORRORRROROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRROORRRRRROORORRRRORRRRRRRRRRRRRRRRRRRORROORRRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRORRROORORRRRORRRORRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRORRORRRORRORRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRRRRRRROORORRRORRORRRRRRRRRORRRRRRRORROORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRORRRORROORRORRRORORRRRRRORRRRRRRRRORRRORRRORRRRORRRRRRORRRRROORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORRRRROORRRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRRRRRORRORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRROORRRRORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRORRRRRRRORRRRORRORRRRRRRRORROOOORRRORORRROROOORRRRRRRRRRRROROOROORRRRRRRORRRRRRRRRRORRRORRRRORRRRRORRRORRRRRROORRRRRORRRRRRRORRORROORRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRROOROROORRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRORRRRRRRRRRRRORORRRRRRORRRORRRORRRRRRRRROORORRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRROORRRRRORRRORRORRORRRRRROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRORRRROORRRRRRRRRROORRRRRORRRRRRRRRRRRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRROORRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRORRRORRRRRRRRORRRRORRRRRRRRROOOORRRRRRRRRRRORRRRRRRRRRRRRROROORRROOROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRROROORRRRORRRRRRRRORRORRORRRRRRRRORRRRRROROORRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRROOORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRORRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORORRRORRORRRRRRRORRRORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRRRRORRRRROORRRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRORRRRORRRRRRORRRRRRRRORRRRRRRRRORRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRORORORRROROORRRRRRRRRRRRRRROORRROORORRRRRRORRORRORRRRRRRORRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORORORRRRORRRRRRRRRRRRRORRRORRRRRRRRORRRRRORORRORRRRRRRRRRORRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORORROORRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRORRRORORRRRRRRRRRRRRROORORRRROROORRORRRORRORRRRRRRRRORRRORRORRORRRRRRRRRRRRRRRRORRRORRRORRORRORRRRORROORRRRORRRRRRRRRRRRORRRRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORORRRRRRRORRRORRORRRRRRORRORRRRORORRRRRRRORRORRRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRROORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRORRROORORRRRRORRRRRRORRRORRORRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRORRRROROORRORRRRRRORROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRROORRRRORRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRORORROORRRRRORRORRORRRRORORRRORRORRRRRRRRRRRRORRRRRORRRRORRRORROORRRRRORRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRORRORRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRORRRRORRRRRRORORRORRRRRRROORRRRRRRRRRRRRRRRRRROORRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORORRRRRROOORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRRRRORRRRRRRRROOROORRRRRRORRRRROORRORRRRRORRRRRRRRRRRORRRRRROOOORORRRRRRRRRRORRRRRORRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRORRROORRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRROOORRRRRRRRRRRORRORRORRRRRRRRORORRRRRRRRRRORORRRRRORRRRRRRRRRRRRRROORRRRRRORRRORRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROORRRRORORRRRRRRRRRRROROORRROORORRRRRRRRRRRRRRRRRRORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRROORRRRRORRRRRROORRRRRORRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRRORORORRROROOROORRRRORRORRRRRORRRRORRRRRORRORRRRRRRORRROORRRRRRRRRRRROORRRRRRORRRRRRRRORRRRRROROORORRRRRRORRORRRORRRRRRRRRRORROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRROORORRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRORORRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRROORRRRRRRORRRORRRRRORRRRRRRRROORRORRORRRRRORRRRORRRRROORRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRORRROORRRORRRRRRRRRRRORRORORRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRROORRRRRRORRRRORROORRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRRRRORORORRRRRRORRRRRRROROROROORRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORORRRRRRRRRORRRORRRORRRORRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRROOORRRRRRRRRORORRRRORRRRRRRRRRRRRROORRRRRORRRRRRRORORRRRRORRROROROORRRRRRRORRORRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRRROORRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRROOOORRRORRRRORRORORRROROORRROORRORRRRRORRRRRRRRRRRORRORORORORRRRRORRRRRRRRORRRRRORRRRRORRRRRORRORRRRRORROORRRRRRORRRRRRORORRRORORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRORORROORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRORORRRRRRORORRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRORORRRRRRORRORORROOROORRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRROORRRRRRRRRRRRORRRRORRRRRRRRROROORORORRRRRRRRRRORRORORRORRRRRRRRRORRRRRRORRRORRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRORRRRRROOORRRRRROORROORRRRORORORORRRORRORRRRRROORRRRORORRRRRRRORRRRRRRRRORRORROORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORRORORORORORRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRORRRORRRRORRRRRRRRRRORRRRRRORROROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORORORRRRORRORRRRRORRRRRRRRRRRRRRRRRRORORRRRORORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRRORRRRRRRRORRRRRRRRROOORRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRORRRORRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRORORORRORRRORRRRRRRRRRORRRRRORRRORRRRRRRROORORRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRROROROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRROORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRORRORRRRRRORRRRRORORORRORORORRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRORORRRRRORRRRRRRRRORRRRORRRRRRORRRRRRRRROORRROORORRRRRRRORRRRRRORRRORRRRORRRRRRORORRRRRORRRORRRRRRRRRRRRORRORRRRRRRRRRRORRRRRORRROOORRORORRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRROOROORRORRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRRORRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRORORRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROROORRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRORORRRORRRRRRRRRRORRRRRORRRRRRRRRRRRORRRROORRRORRRRORRORRRRRRRRRRRORRRRRRORRRRROORORRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORROOORRRRRRORORORRRRRRRRRRRRORRRRRRORRRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROROORRRORORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRORRORRRRORORORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRORRRRORRRRRRRRRRRRRROOORRRROORRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRORRORRRRRORRRORRRRRORRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORORORRRORRRRRRRRRRORRRORRRROROORRORRRRORRRRRRRRRRRRRRRRROOROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRORRRORRRRRRROROROORRRRORRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRORRRRRRRROORRRRRRRORRRRORORORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRORRROROORRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRORORRRRRRRRROORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRORRRRRRRRORRORRRRRRRRRORORRRORRORORROORORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORROORRRRORRRRRRRROORRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRORRRRORRRRRRRORRORORRROORRORRRRRRRRORRRRRRRRRORROOORRRRRRRRRRORRRRORRRRRORRRRRRRRORRRRRRRORROORRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROOROORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRORRRRRORRORORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRORRORRRRRRRRROORRRRRRORRRROORRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRORRRRROORRRRRRRRRRRORRORRRRRORRRRRROORRRRRRRRROORRRRRRRRRRORORRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRORRRRRRRRORRRRRRRORORRORRRRRORRRRRRRRRRORRRROORORROORRRRROORRRRRRRRRRRRRRRRRROROOROORRRRRORRRRORRRRRRRRRRRROROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRROORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRORRRRRORORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRRRRRRRRRRRORORRRRRRRRRRRRORRRROOORRRRRRRORRORRRRRRORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRROROORRRORRRRRRRRRRRRRRRRORRORORRRORRRORRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRORRORRRRRRRRRRORRRRRRRROORRRRORRRRRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRORRRRRORRRRRROOROORRRRORRORROORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRORORRROORRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRROOORORROORRRRRRRRRORRRRRRORRRRORRRRORRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRORRRRRRORRRROORRRRRRORRRRRORORRRRRRORRRRORRRRRRRRRRROORRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRRROOORRRRORRRRRRORRRRRRRRRRORORRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRROORRRRRROROORRRRRORORORRRRRRRRORRRORORRRRRRORRRROORRORRRRRRRROORRRRRRRORORRRRRRRRRRRORRRORRRRRRRRRORRRORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRROORRRRRRRORRRRRRRRORRROOOORRRORRRRORRORROORRRRROORRORRRRRORRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRORRRRRRRORRRRRRORRRRORRRRRRRRORRRRROORRRRRRRRRRRRRRRORRORRRRRRRRRORRRRORRRORRRRRORRRRRRORRORORRRRRRORRORRRRRRRRORORRRRORRRRRRRRRRORRROORRORRRRRORRRRRRRRORRRRRRRRROOORORRRRRRORRRORRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRORRRORRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRROORRRRORRRRRORRRRRRRRRROORRROORRRRRRORORRRRRRORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRROORORRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRORRROORORORRORRRORORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORORORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRORORORRRORRRRRRRORRORRRORORORRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRORRRRRRRRORRORORRRRRORRORRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRORRRROORRRORRRROORORRRRRRRRRRORORORRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRROOORRRRRRRRORRRRRRRRORRRRRRRORRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRROORRROROROOROORRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRORRRORRRRRRRRRROORRORROORRORORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRORORRRORRORRRRORRRRORRORRRROORRORRRORRRRRORRORRRRRRRRRRRRRRRRROOORRORORRORROORRRRRRRRRRRORRROROORRRRRORORRRROORRORORRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRORRRROORRRRRRRRORRRRORRRRRRRRRRRORORRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRORROOROORRRRORRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRORRRRRRRRRRRRRRRORRORRORORRRORRRORROORRRORRRRRROROOORRRRORRRORROROORRRRRROOORRRRORRRRORRRRRRRORRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRORROORRRRORRRORORRORORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRROORRRRRRRROOORORRRRRRRRRRRORRRROORRRRRRORRRRRRRRRORRRORRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRROORORRRRRRRRRORRROORRRRRRRRORRRRRRRRRRRRRROOORORRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRROOORRRRRRORRRRRROORRRRRRORRORRRORRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRORRRRRORRORRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRORORRRRRRORRORRRORRRORORRRORRRRRRRRRRORRRRRRRRRRORRRORRORORRRRRRRRORORRROORRRRRRRRORRRRORRRRRRRRRRORRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRORRRRORRRRRORRRRROORRRRRRRROROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRROORRRORRRORRORRRRRRRORRRRRRORRRRRRORRRRORRRRRRRRROORRRORRORRRRRRORRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROOORRRORRRRRRRRRORRORORRRRRRRRORROOORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRORRRRRRORROORRRRRRORRRRRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRRRRRROORORRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRROORRORRRRRORRRRRRRRRRRRORRRRRRORRRROORRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRRRRRRORRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROORORRRORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRRRRORRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRRRORRRRORRRRORRRRRRORRRRRRRRRRRORRRROORRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRROORRORRRRRORRRRRRRRRRRRRRRRROROORRORRRRRROOORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORORORRRRORORRRORRRROORRRRRRRRRRRRORORRRRORRORORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRORORRRRORRRRROORRRRRRRRORRRRRRRRRORRORRRRRRRRORORORORRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRROOROORRRRRRRRRORORRRRROORRRRORRRRRRRRRORRRRRRRORRRRROORRRRRROORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRROOOORRRRRRROROORRRRRRRRORORORRRRRRRRRRRORRRRRRROORRRRORRRORRRRORRRORRRRRRRRRRRRRRRROORORRRRROORRRRRRRRRORRRRORORRRRRRRRRRRROORRRRORRORORRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORRRRROROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORORORRRRRRRRRRRORRRRRRRRRRRRRRORRRRORORRRRRRORRRRRORORRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRORORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROROROORRRRROORRRRRORRRRRRRRRRRORORRRRORRRRRORRRRRRRORRRRRORRORORRRRRRRRRRORRRRRRRRRORRORRRRRRRRORORRORRRRORRRRRRORRRRROORRRRRRRRRRRRORRRRRRORRRRRRRORRRORRRRORRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRORRRRORRRRRROROOORRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRROORRRRRRRRRRRORRRRORORRRRRRRRRRRRORORRRRRRRRRRRORRRRROORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRORORORORORRRRRRRRORORRORRORRRRRRRRRRRRRORORORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRORRORRRORRORRRRRRRRRRRRRRRROOORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRROORRORRORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRROORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRROORRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRRORROOORRRRRRORRRORORORRRRRRRRRRRRRRRRRORRRORORRRRRRRRORORORRRORRRORORRRRRRRRRORRRRROORRRRRRRORORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRORRRRRRRROROORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRORORORRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRORROORRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORORORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRORORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRROOORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRRRRRORRRRORRRRRRRRORRRORORRRRRRRRRRRRRRRRRORRRRRORRRRRRROORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRORRRORRORRRRORRORRRRRRROORRRORORRRRRROOORRRRRRRRRRRRRRRRRROORORRRRRRRRRRRORRRORRRRRORRRRRRRRORRRRRRRRRORRRRRRRRORROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRORRRRRRROORRRRRRORRRRRRRRRRORRRRORORRRRORRRRORRRRRRRRRRRRRORORRORORORRORRRRORRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRORRRRORRRRRORRORRRRORRRRRRRRRRRRRRORRORRROORRRRRROORRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRRRROORROORRRRRRRRRRORRRORRRRRROORRRORRRRRRORRRRRRRRORRORRRRRRRRROOORRRRRRRRRRRRORRORORORRRRRRRRORORRROORRRRORRORRORRRRORRRRRRRRORRORRRRORRORRRRRRRRRRRRRRRORRRRRROOORRORRRRORRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRORORRRRRRRORRRROORRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRORORORRORORRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRORRRRRRRRRRROROOOORRORRRRORRRORRRRRRORRRRRRRORRRRRRRORRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORORRRORRRRRORRORRORORRORRRRORRORRRRRRRORRORRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRROORRRORORORRRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORORORRRRRRORRRORRRRRORRRRRORRRRORROOORRRRRORORRRORRRRRORORRRRRRRRRORRRRRRRRORRROORRRROORRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRRORRRRRRRRRRRRRRRORRRRRRRORRORRORRRRRORRRRRRRORRRRRRRORRORRRORRRRRRORRRRRRRRORRRRRRRROORRRRRRRRORRRRRORORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRROROOOOORRORORORRRRRRRRRRRRRRRRROORRORRRRRRRORRRRROORRRORRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRROORRRRRRRRRRRRRRRRRRRRORRRRRROORORROORRRRRRRRRRRORRRRROORRORORRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRORRRRRRROORRROORRRRRRRRRORRRROORRRRRRRRORRRRRRRRRRROORRRRRRRRRRORROORRORRRRORORRRRRRRRRRRRRORRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRORRROORRRRRRROOORORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRORRORRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORROORRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRRRRRRRRRRRORRRRROORRRRRRROORRRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRORORRRRORRORRRRRRRRRRRRRRRORORRRRROORRRRRRRRORRRORROORORRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRRORRRRRRRRRORRRRROORRRORRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRORRRRROORRRRRRORRORRRRRRORRRRRRRRRRRORRRRRRORRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRROOORRRRRRRRRRRORRRRRRRRRRRRRRROROORRRORRRROROORRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRORORRORRRRRRRORRRRRRRORRRRRRRORRRRORRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRORRORRRRRRRRRRRRORRORROOOROORRRORRRORRORRRRRRRRRRRRRRORRRRRORRORRRRRORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRRRRORRROORRRRRRRRORROORRRRRORRRORRRRRORRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRORORRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRORRRORRORRRRROORRRRRRORORRRRORRRRRRRRRRROORRRRRRRORRORRRRRRRRROORRORRRRRRRRRRRORRRRRRORRRORRRROROORRRRRRROORRRRRRRRRORORORRRORRRRRRRRRROORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORROORRRORRRRORRRRROORRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRROORRRRRORRRRRRORRRRRRRRRRRRRRRORRRRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRORRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRRRORRRORRORRRRRRROORORRORORORRORRORRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRROORRRROORORRRRORRRRRRRRRRRORRRRRRRRRORRRORRRORORRRRRRRRRRRRRRRRRRORRORRORORRRRORORRRRRRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRRRRRRRORRORORRRRORRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRORORRRORORRRRRRRRORRRORRRRRRRRRRRROOROOOORRRRRRRRRRRRRRRRRRORRRORRRRORRORRRRRRRRRROORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRORRRRRRORRRORRRORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORROOORRRRRRRRRROORORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRORRRROORRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRROORRRRORRRRRRRRRRORRRORRRRORORRRRORORRRRORRRRRRRRRRRRRRRRROORRRRORRRRROORROORRRRRORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRORRRORRRRRRORRRRORRORRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRORRRRORROORRRORORRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRORRORRRRRROORRRRRRRRRORRRRRRROORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRROORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORROROORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORORORRRRRRRRRRORRRORORRRRORORRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRROORORRRRRRRRRORRRRRROORORRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRRORRRRROOORRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRROORRORRRRORRRORRORRROORRRRRRRRRRRROORORRRRORROORRRRRRRRRRRRRORRRRRRRRRRROORRORORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRROORORRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRORRRRRRRORORRROORRRORRRORRROORRORRRRRRRRRRORRORORRRRRRORRRRRRRORRRRRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRROOORRRRRRRRRRRRRRRORRRORRRORRRRRRORORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRORORRRRRRROORRRRRRRORRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRORRRRRORRRRORRRRRRRRRRRORRORRRRRRRRROORRRRRRRROROORRRRRRRRRRRROORRRRRRRRRRRRORROORRROORRROROOORRRRRRRRRRRRRRRRRRORRRRORRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRRRORRRRRRORRRORRRRRORRRRRRRORRRORRRRRRORORRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRROORRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORORRRRORRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRORRRRRRRRRORRROORRRRRRRRORRROOOORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRORROORRRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRORRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRORRRRRORRORORRRRROORRRRRRRROOORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORORRRRRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRROORRRRORRRRORRORRORROORRRRORRRRRRRRRRRRRRRRORRRRROORORRORRRRRRRORRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRRRRRRORRRRRRRORRRRRORORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRORROOORRORORRRRRRRRRRRRRRORRRRRRORRORRRRORRRORRRRRORRRORRRRRORRORRRRRRRROROORRRRRRRRRRRORRRORORRRRRRRORRRRRORRROORRRORORRRORORRRORORRRRRRRRRRRRRRRRRRRRRROORRORRRORRORRRRRRORRRRRRRRRRORRORRORRRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRRRORRRRRRRROORRRRRRRRRRRRRRORRORRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRROORRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRORRRRORRRRRORRRRORORRRORORORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORORRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORROORRORRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRORRORRRRRRORRRROORRRORRRRRRRRORRRRRRRRORROORRRRRORRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRROORRRRRRRRRRRRRRRRRROOROORRRRRRORORRRORRRRRRRRRRORRRRRRRRROORRROOORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRORRRRORORORRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRORROOORORORRRRRRRRRRRRORORORRRRRRRORRRRRRRROROORRRRRRRORRORRORRORRRRRRRRORORORRRORRRRRRRRORRORRRRORRRORROOOORRRRRRRRRRORRRRRRRRRORORRRRRRRRORRRRRRRRORRRRRRROOORRRRROORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRROOORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRORORRRRRRRRROOORRRRRORRRRRRRORRORRRORRRRRORRORRRORRORRRRORRORRRRROROORORRRRRRORRRRROORRORRORRRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRORRRRRRORRRRRRRROORRRRORORRORRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRORRRRRORRORRRRRRRRRRROOROORORRRORRRRRRRRRRROORROORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORROOORRORRRRORORRRRRRRORORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRORRRORRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRORRORRRORORRRRRRORRRRRRORRRRRORRRRRRROORORROORRORRRRRORRRRRRRRRRRRRORRRRRROORROORRRRRRRRRRRRRRRRRRROOROORRORORRRORRRRORRRRRRRRORRRRORRORRORRRRRRROOOOORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRORRRRRORRORRORORRRORORRRRRRRRROOORRRRRRRRRROORROOORRROORRRRRRRRRRRRRORRORRRRRRORRRORRORRRORRRRORORRRRRRRRRRRRRROORRRORRRRRRRRRRORRRRRRROORRRRRRROROORORORORRRRRORRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRORRRORRRRRORRORRRRRRRRRRRRRRRORRRRROORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRORRRRORRRRRROORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROORROROORRRRRRRRRRRRRRRRORORRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRORROROORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORROORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRROOROROORRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRORORRRRRRRRRRRORRRRRRRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRROOORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRROORORRRORRRRORORRRRORRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOORRRRRRRRROOORRORRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRRORRRORRRRORRORRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROROORRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRORRRRRRRRRRROOORORRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRORRRRORORROORRRORRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRROORRRRRROORRRRRRORRORRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRRRRRROROROROORRRRRRRRRRORRRORRRRRRRRORRRRORRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRORRRORRRRORRRORRRRRORORRRRRORRRROOROORORRRRRRRRRRRRRRRRRORRRRRRRRROROORRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRROORRRRRRRRRRRRORRORRRRRRRORORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRROORRRRRRROROROORRRRRRRORORRORRRRRRRRRRORRRRRRRRRRRRRRRROROORRRRRRORORRRROORRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRROORRRRORRRRRRRRRRROORORORRRORRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORORRRRRRRRRORRRRRRRRRRROORORRRRRRRORRORRRRORRRRRORRRRRRRORRRRRRORORRRRRROOORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROOORRRRRRRROOORROORRRORRROORRRORRORRORORRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRORRRRRRROOORRRRRRRRRRRRORRRRORRORRRORRRRRRRRRRRRRRRRRORORRORRRRRRRORORRRRRRORORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORORORORRORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRROORRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORORRRRORRRROORRRRRRORORRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRROORRROORRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRORORRRORRORRROORRRORRRRORRRORRRRRRRRRRRRRRRRRORRRRROORRORRRRRRRRORORRRRORRRRRRRORRRRRRROORRRRORRRRRRRRRRRRORRRRRORRRRRORORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRORRORRRRROORRRRRRORORRRORRORRRROROORRRRORROORRRRRORRRRRRRRRRORRRRORRRRORRORRRRORRRRRRRRRRRRRRORRORRRRORRRRORROOORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRROROROOORRRRRRRRRRRRRORRRRORRRRRRRORRORORRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORORRRRORRROORORRRRRRRRRRRRRRORORRRRORRRRRORRRROORRRRORRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRROROROORRROORRRRRRORRRRRRRRRRRORRRRRRRORRRROORRRRRORRRRRRORORRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRRRRRRRROROROORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRORRRRRRRRROOOORRRRRRROROORRRRRRRRRRORRROORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRORORRRRRRRRORRRRRORRORRRRRRRORRRRRORRRRORROROOROORRORRORORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRORRRORRRRRORRRRRRRRRRORRRRRRORRRORRORRRRORRORRRRRRRRRRRRRRORRRRRRRRROOORRRRRRRORRRRRRRRORRRORRRRRRRORRRRRROORRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRROORORRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRROORRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRORRORRRRRRRORRRRRORRRRRRRRRRORRRORRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRROORRRORRRORRRRRRORRRRRRRRRRRRRROOORRRRORORRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRORROORRRRROORRRRRORRRRRRRORRRRRRORRRRRRROORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRRORRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRROOROORRRRROORRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRORRRRROORRRORRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRRORRRRRRORORRRRRRRRORRRORRRRRRRRRORRRRRRRRRRROROROORRRRRRRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRORRRRRORRRRRORRRRRRRRORRRRRRRRRRRRROOORRRRRRRORRRRRORRRRRRORRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRORORRRRRRRROOROOORORRORRRRRRRRRRRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRORORRRRRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRORRRROORRRRRRORRRRRORORRRRRRRORRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRORRRRRORRRRRORORRRORRRRRRRRRRRRRRRRRRRROORRRROOOORRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORORRRRORRROORORRRRRRRRRRROOORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRORROOORRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRROORRRRORRRRRRRRRRRORRRRRRRRRRORORRROORRRRRRORRRRRRORRRORORRORRRORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRORORRRRRRROOORRRRRRRRRRRRRRRRRORRRRRRROORROORRRRRORRRRRRORRRRRORORORRRRRRRRRORRORORRRRRRRRRORRRRORRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRORRRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRRRRRROORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRROOORRORORRRORRORRROROROORRRRRRRORRRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRROORORRRRRORRRORRRRORRORRRRRRRRORRORRROORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRORRRRORORRRRRORRORRRRRRRORRORRRRRRORRORRRORRORRRRRROROORRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORROORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRROORRRRRRRRRRROORRRRRRRRRRROORRRRORRORRRRRRRORRORROORRRRRORORRRRORROORRRRRRRRORRRRRRRRRRRRRRRRORRORRRORRROORRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRORRRORORRRRORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRORRRRRORORRROORORRRRRRORORRRORRORRRRRRROORRORORORRRORRRRRRRRRRRRRRRRORORRRRRORORRRRRRRRRRRRRRRRRRRORRORROORRRRRRRORRRRRRRORRRRRRORRRROORRRORRRRORRRRRRRRRRORRRRRRRRORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORROORRRORRRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRRRRORRRRROORRRORRRRORRRRRRRORROOROORRRRRRRRRORRORRORRRRRRRRRRRRRRRRROORRRRRRRORROROORRRRRRRROORRRRRRRRRRRRROOORORRORRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRROORRRRRRRRRRORRRRRRRORRRRRRRRRRROORRROORRRRRRORORRRRROORRRRORRRRRRRRRRRORRORORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRORRRRORRRRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRROORORRORRRRRORRRRRORRRRRRROORRRRRORRRRRRRRRROROROORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRORRRRRRORRRRRRRRRRRRROROORRRRRORRRRROROORRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRORRORRORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRROORRRRRRRRORRORRORRRRRRRORRRRORRRRRRRRRRRRRRRRROORRRRRRRRRORRRROORRRRRRRORRRRRRRORRRRRRORRRRORRORRRRRRRRRRORORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRROORRRRORRRRORRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRORRORORRORORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORROORRRRORRRRRRRRRRRORRRROORRRRRRRORORRRRRORRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRORRRORRORRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRORRRRRORORRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRORORRRRRRRRRRORRRRRRRORRORRRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRRORRRRROORORRRRRRRORRRRRRRROORRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRORRRRRROORRRRRRRRRRRRROROOORRRRRRRRORRORRRORRRRRRRRRRRORRRROORORRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRORRRRRORRRRRORRORRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRORORORRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRORRRRRRORRRRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRROORRRRRRRORRORRRRRRORRRRORORRRRRRRRORRRRRRORRRRRRRRRROORRORRRRRRRRRRRRRRRRRORORRRRRORRRORORRRRRRRORRORRRRRRRORRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRORRRORRRROORRROROORRRORRRORRRRRRRRRRRORRORRRRRRORORRORRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRROORORRRRRRRRORRRRRRRRRRRRRORORRRRRROORRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRROORRORRRRORRRRRRRRRRORORRORRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRORRRRRROORRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRORRRRRRRRRRRROROORRRRRRRRRROROOORRRRRORORRRRRRRRRRORRRROORRORRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRROORRRORRRORRRRORRRRORRRRRRRRRRRRRRORRRORORRRRORRRRRRRORRRRRRRRRRRRRRRRORRORRORORRROORRRRRRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORORRRRORRRRRRROORORRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRROROORRRRROORRORRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRORRRRRRRRORRROOORRORORRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRRORORRRRRRRRRRORROOOORRORRRRRRRRRRORRORRRORRROORORRRRRRRRRRRRRRRRORRORORRRRRRRORRRRRRRRORRRRORRRRRRRORRRRRRRORRRRRRROORRRROORRORRRRRRORRRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRRRRRORRRRRRRRORRORRORRRRORRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRRRORRRRRRRRRORRORORORRRRROORRRRRRRRRRRRRORRORRRRRRRORRRRRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRROROORRRRRRRRRRROORRRORRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRORRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORRRROROORRRORRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRORRORRRRRORRRRRRRRORORRORRORRRORRRRRRRRORORRORRRRRRRRRRRRRRORRRRRRROROORRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRORORRORRRORRRRROORRRORRRORRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRROORRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRORORRRORRRRORRORRRRRORRRRRORRRORORRRRRRRRRRRRROOOORRRRRORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRORORRRRRRRRRRRRRRORRRRRRRRORRRORORRRRRRORRRRORRRRRORRRRRRRRRRRRRRORRRRRROORRRRRORRORRRORRRRRRRRRRRRRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRROORORRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRROROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRORRRRORRRORRORRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRORRRRORRRORRRRRRRRRORRRRRORRROORRRRRRRORRRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRROORRRRRRRRRRRROROORRRORRRORRRORRRRRORRRRRORRRRRRRRRRORRRRRRRROORRRRORRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRROORRORRRRRRRRRRRRRORRRORRORRRRRRORRRRRRRRROORRRRRRROORORRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRORRORRRRRRRRRORRRRORRRRORORRRRRRRRRORORRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRRRORRRORRRRRRORORRRRRRRORRROORRRRRRRRRRRRRROROORRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORORRORORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRORORRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRROOOORRRRRRRRORROORRORORORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRROORRRRRORRRRRORRORRORRRRRRORRRRORRRRRRORRRORRRORRRORRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRORRRROORORRRRRORRRRORRRRRRRORRORRRRRRRRRRRORROROORORRRRRRORRRRRRRRRRRRRRRRRORROORRORRRRRRRRRRORRRORRRRRRRORRROORRRRORRRRRORRRORRROORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRORRRORRORROOORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORRROORRRRROROROOORORRRRRRRRRRORRORORORRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRROROORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRRRRRRORRRRORRORRORRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRROORROORRRRRRORRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRROOORRRRRORORRRRRRRRRRRRORRRROORORRRORRROROOORRRRRRRORRRORRRRRRRORRRRRORRRROORRRRRRRORRRRRRRRORRORRRRORRRRORRORRRRRRRORRRRRRRRROORRRRRRRRRRORORRORRRRRRRRRRRRROROROORRRRRRRRORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRROORRRORRRRRORROOROORRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRORORRRRRRRRRRRRRRROORRRRRRRRRORRRORRORRRROORRRRRRRROOORRORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRORRORRRRRORROORRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORORRRORORRRRRRRRORORRRORRRRRORORRROORRORORRRRORRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRORRRRRRROORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRORRORORRRRORRRORRRRORRRRRRRRRRRRROORORORRRRRRORRRRORRRRRORRRRORRORRRRRRRRRRORRRRRRROROROROORORRORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRORORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRRRORRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRRORRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRROORRRRRORRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORORRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRORRRRRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRORRRORRRRRRRRROROORRRRRRRRRRRORRRRROORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRORORRORRRRRRORRRRORRORRRRRRRROORRORRRRRRRRRRRRRROOOORRRRRROORRRRRRRRRRRRORORRRORRROORRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRORORROORRRRORRRRRRRORRRRRORRRORRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRROORORORRRRRRRRRORRORORRRRRROORRRRORRRRRRORRRRRRRRROORRRRRORRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRORRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORORRRRROORRRRRROORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRROROROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRROROORRRRRRRRORRORORRRORRORORRRRRRRRRRRRORROORRRORRRORRORRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRORORRRRROORRRRRRRRRRRRRROORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRORRORRRRRRRROORRRRRRRRRRRRORRRRRRRRRORORRORRORORRRRRRRRORRROORRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRROORRRRRORRRORRRRRRORRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRROORRRROORRRRRRRRRORRRRROORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRORRORRRRRRORRRRORORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRROORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRROORORRRRRRRRRRRRRRRRRRRRRORRRROORROORRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORORRRRRRRRRRRRORRRRRORRRORRRRRRRRRORRRORRRRRRRRRRRRRRROORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORRRROROORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRORRRRORRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRROOORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRROORRRRRRRRRRRRRRORRORRRRRRRROOOOORRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORORRRORRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRROORRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRORRORRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRROROORORRRRRRRRORRRORRRRRORROORRRRRRORORRRROORORRRRRRRRRRORORRRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRORRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRORRRROORRRRRRRRRRRRRRORRRORRRRRRRRROORRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRORRRRRRORRRORORRROOORRRRRRRRRRORRRRRRRRRORRORRRRRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRROORRRRROOROORORRRRRORRRORRRRRRRRRRRRRRRRRORRORORRORRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORORRRRRORRRRROOORRRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRROROORRRORRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORORORRRRRRORRRRRRRORRRRRRRRROORRORRRRRRORRRRRRRRRRORRORRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRRRRRRRRORRROORRRRROORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRORRRORRRRORRRRRRORRRRRRROORRRORRRRRRRRRROORRRRRRRRRRRRRRORRRORORORRRRRORRRRRORRRRRRRRRRORRRORRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRORROORORRRRRRRRRRRRORRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRROORRRROOORRRRRRORRRRRORRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRROOORRRORRRRRRRRRRORRRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRORRRRORRRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRORRRRRORORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRORROORORRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRORROORRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRORRRRRRRRRORRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOROORRORROOORRRRORRRRROORORRRRRRRRRRRRRORRORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRORORRORRRORRRROROORRRRORORRRRRRRRRORORORORROORORRRRRROORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRORRORRORRRRRRRRRRRRORRRRRRRRRORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRROROOORRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRROOORRRORRORRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRORRRROOORRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRROROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROOORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORORRRRRORRORRRRRRRRRORORRRRRORORRORRRRRRRRRRRRORRRORORRRRRRRRRORRRRRORORORORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROORROORRROORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRROORRORRRRRRRRORRRRRRRRRRRRRRORROORRRORRRORRRRRRORRRRRORRORRORRRRRORRRORRRRRRRRORORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRORRRRROORRRORRRRRORORRRRRRRRRRORORORRRORRRORRRRRRRORRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRORORRORRRRRRRRRRRRRRORRRRRORRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRROORRRRRRORRROORRRROORRRORRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRORRRORRRRRRORORRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRORRRROORRRRRORORRRRORORRRRRRRRORRRORRORRRRRRRRORRRRRROORRRRORORRRRROORRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRORRRRRRRR\n"
  },
  {
    "path": "challenge1/tests/mon7b.out",
    "content": "332673\n"
  },
  {
    "path": "challenge1/tests/mon8a.in",
    "content": "843212 3\nORRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRORRRRORRRORRRRRRORRRRORRRRRRORRRRRORRRRORRRRRRRRRRRRRORRRRRRORRRRRROROORRRRORRRRRRRORRRORRRRRRRRROROOORRROORRRRORRRORRRORRRRORRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRORRORRRRORROORRRRORRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRORRROORRRRRRORRORRROORRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRROOOROORRORORRORRRRRRRRRRRRRORRRORRRRRRORRRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRORORRRRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRORROOORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRROORRRRRORRROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRROOORORRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORROORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRROORORRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORORRRORRRRRORRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRRROORRORRRRORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRORRRRROROORRRRRRRRRROORRRORRRORRORRRRRORRRRRRORRRRRRRRRRORRORRORRRRRRORRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORORRRRORORORRRRRRRRRRRORORRRRRRORRORRRRRORORRRRRRORRRRRRRRRRRRORRORRRRRRRRRRORRRRRROROOORRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRROOORRRRRRROORRRORRRORORRRRRRRORRORRORRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROROORRRRRRRRRRRRRRRORRRRRRORRROORORRRRRRRRORRORRRRRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROOORORROORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRROORRRRORRRRORRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRROORRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORORRRRRRORRRRRORRORRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORORRROORRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRROORRRRORRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRROORRRRRRRRROOORORRRRRRRRRRRRRRRRROORRORRRRORRRRRRROORORORRORORRRROORRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRORRORRRORRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRORRORORRRRORRRRORRRRRRRRROORRRRRRRRRRRRORRORRRRRRRRRRRRRROROORROORRRRRRRORRRRRRRRRORRORRORRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRORORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRROOORRRORRORRRRRRORRRORRRRRRORRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROOORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRROORRRRORORRRORRRRRORRORRRRRROROORRROORRRRRORRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRROORRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRORRRRRORRORRRRORRRRRRORRRRRRRRRRRRORORRORRRORROORRORORRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRORORROROORRRROORRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRORORRORRRRRRRRORROORRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRROORRRRRRRRROORRRRRRRROOORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRORRORRRRRRRRORRRRORRRRRRRRRRORRORRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORORRRRRRRRRRORORRORRRRRRRRORRRRORRRRRORRRRRRORORRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRORRRORRRRRORRRRRRRRRRORRRORRRRORRRRRRRRRORRRRRORRRRRRRRRORORRORRRRRORRRORRRRRRRRORRRRRORRORRRRRORRRORROORRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRROORRORRORRRRRORRORRRRROOORRRORRRRRRRRRRORRORRRORRRRRRRRRRORORORORORRRRRRRRRRRRORRORRRRRRRRRRROROORRRORRRRRORRORRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORORRORRORRRRRRRORORRORRRRRRRRRRRRRRRRRORRORRRORRRORROROOORRORRRRRRRRRRRRRORRRRORRRRORRORORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRORRRRRORORROORRRRRRRRRORRRRRRRROOORORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRROOORRRRRRRRRRRRROORRORRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORRRROORORRRRRRRORRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORROORROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRROORRORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRORRROROOORRRORRORRORRRRRRRRRRRRRRRORRORRRROORRORRRRRRRRRRRRORORORRRRRRORRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRORRORRORRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRORRRRRRRRORRRRORORRRRRRROORRORRRORRRRRORRRRRRORRRRORRRORRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRROORRRRRORRORRRRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRRRORRRORROORRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRROORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRORRRORRRRRORRRRRORRROORRRRRORRRRRRRRORRRROROORRRRRRRRRROORRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRROORRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRORROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRORRROOROOORRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRRORRORRRRRRRORRRRRRRRRRRRORRRRRRROOORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRROROORRORRRRROORRRRORRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROROOORRRRRRRRORRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRORROORRORRROORRRRORRRRRRRORRRORRRRORRRRRORRRRRRRRORRORRROORRORRRORRRRORRORRRRRROORRORRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRORRROORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRRRRORORRRRRRRRRRORRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRORRORRRRRORRRORRRRRRRORRRRRRORRRRRRRRRRORRRRRRROORRORORRRRRRRRRRRRRRRRORRRORRORRRRRRORORRRRORRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRORRORRRRRRRRRRRRORORRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRORORRORRRRRRORRRRRRORRRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROORRRRORRRRRRRRRRORORRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRORRRRRRRRORRORRRRRRORORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRRORRRORRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROORRORRRRRRRRRRORROORORRRORRRRRRRRRRRRORORRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRORRORRRRRRRRRRRRROORRRRRROORRRRRRRRRRORRRRRRRRORROORRRORRORRRRRRRRORRRORRRRRRORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORORRORROORRROORRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRORRRORRRRRRRRRRRRORRRRRRRRORORRORRRRRRRRRORRRRRRROORRRRRRRORRORRRRORRROORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROROORORRRRORRRRRRRRRRROOORRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROROORRRRRRRRRRORRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRRRORRORRRRRRORORRRRRRRRRRRROORRRRORRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRROORRORRROORRRRRRRRRRRRRRRRORRRRRROORRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRORORRRRRRRORRORROOORRRRORRORORRRRRORRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRRROROORRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRORORRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORORORRRRRRRRRROOORRRRRROOORRRRRRRRORRRRRORRRORRRRORORRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRORRRRORRRRRRRRRRORRRRORRRRRRORRRRRRRRRORRRRRORRRRRRORORRRORRRRRRRRRRRRRRRRRROOORRRORRRRRRRRRROORRRRRORRRRRRRRRRRORRRRRORRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORORRRRORRROORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORROORRRRRRRRRORRRRRRRORRRRRRRRRORRRRRORRRRRRRROORRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRORRORRRORRRRRRORORRRRRRORRRRRRRRROORORRORRRRORRRRROORRRRROORRRRRRRORRORORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRORRORRRRROORRORRRRRRORRRRORRRRRORORORRRRRRRORRRORRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRROOORROORRRORRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORORRRRORRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRROOORRRRRRRRRRRRRRRORORRRRRORORRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRORRRRRRRORORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRORRRRRRROORORRORORRRRRRRRORRRRRRRRRRRRRRRORRRRRORRROORRRRRRRRRRORRORRRORRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROROORRRORRRORRORRRRRROORORRRORRRORRROOROORORRRRRRRRRRORRRORRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORORRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRORRORRORRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRORRRRRRROORRRRRRRORRORRRRRRRRRRRORRRRORRORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRORORRRRRRORORRRRRRORRRRRRRRRRRORRRRRRRRRROOROORRRRRRRRRRRRORRRRRRRRROORRRRRRROROORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRORRORRRORRRRRRRRRRRORROORRRRROORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRORRRRROORRRRRRRRRROORRROORRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORORRRRRRRRRRRRRRRRORRORRRRORRORRRRRORRRRORRRRRRRRORRRORRRRRORRRORRRRRRORRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORORROORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRORRRRRRRRORRRRRROROORRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRRRRRROORRORRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRORRRRORORRRROORRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRORRRRROROROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORROORORRRRORORRRRRRRRRRRORRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRROOORRRRRRRRORRRRRORRRRRRRRRORRRRRRRRORRRROORRRORRRRORRRRORRRRRORRRRORRORORORRRRRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRROROOORRRRRRORRORORRRRRRRRRRRRRRRRRRRRRROORRRORRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRROORRRRRRRRRRRRROORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRORRRORRRRRRRRRRRORRROROORRRRRORRRRORROORORRRRRRRRRRRRRRRRORRORORRRRRRRRRORRORRRRRRRRRRRRRRRROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRRORRORRORRRRRROORRRRRRRRRRRRRRRRRORORRORRRRRRRORRRRORRRRORRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRROROORRROORRRORRRRRRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRORROROORRRRORORRRRRRORRRRRRRRRRRORRORRRRRRRRRORORRRRORRRORRRRRRRRORORRRRORRORRRRRRRRRRORRRRRRRRRRRORORRRRRRORRRRRRRORORRORRRRORRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRORRORROOORRRRRRORRRRORRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRROROORRORROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRROORORRRRRRORRORRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRRROORORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRROORRRRRRROORRRRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRORORRRRRRORRRRRRRRRORRRRRORRRRORRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORROORORRRRRRORRRRRRRRRRRRRRRORRRROORORRRRRORRRRRRRRRORORRRRRRRRRRORRROOORORRRRRRRORORORRRRRRORRRRRRRRRRRRRROROORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRROORORRRROROORRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRRRRRRRROORRRORRRRROROORRRORORRORORRRRRRRRRRRRRRRRORRRRRORRRRRROORRRRRORRRRRRRRRRRRRRORRRRROROORROROORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORORRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRROORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRROORRROORRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORROORORRRRRRRRRRRRORRRRRROORORRROORRRRRRRRORRROROORRRRORRRRORRRORRRRRRRRORRRRROORRRORRRRRRRRORRRRORRRRRRORRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRORORRRRRRORRRRRRRRORRRORRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRROORRRRRRRORRRRORRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRORORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRRRRROOORRORRRRRORRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORORORRRRORRRRRRRRRROOORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRROORORRRRRRRORRRORORRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRORRRRRRORROORRRRRRRRRRRRRROOORRORRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORORRRRORRRRRORRRRRROOOORRRRRRRRRORRRRRORRRRRROOOORRORRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORRRRRRRRRRROORRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRORRRRROOORRORRRRRRRRORRRRRRRRROOOORRRRRRRRRORRRRORRORRRRRRRRORRRRRRORRRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRRORORRRRRRRRRRRROORRRRRROOROOOORRRRRRORRORRRORRRRRORRRRRRRRORORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRORRRRORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRRRORORRRRRRRRRRRRORORRROROOORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRORRRRRRRORRRRRRORRRRRRRORRRRRRORRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRORRORRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRROORRRORORRRRROORRRORRRRORRRRORRRRORRORRRORRRRRRRRORRRRRRRRRRORRRORRRORRRRRRRRRRRROORRRRRRRORRRORRORORRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRORRRRORRRRRRRROROORRRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRROROORRRORRORRRORRRRORRRRRRORRRRRRRORRRRRRORORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRORRRRRRRORRRRRRORRORRRRRRRORORROORRRRRROORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRRRRORRRRRRORRRRRRROORRORRRRRRRRRRRRRORRORRRRRRRRRRRRROOORRRRORRRRRRORRRRRRRRORRORORRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRROOORRORRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRROROORRRRORRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRORRRORRRRORRRROROORRRRRRRRRRRORRRRRRRRORRRRRRRORRRORRRRRORRRRORRORRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRORRORORRORORRROROORRRRRRRRORRRORRRRORRRRRROORRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRROOORRRRRRRROORRRRRRRRRORRRRORORRRRRRRRROROOROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRROORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRORRROROORRORRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRRORRRRORORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRORRRORRRRRRRRRRRRRRORRORRROORRRRRORORRRRRRRRRRRRRRORORORRRRRRORRORRORRRRORORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRORRRRRRORRRRORRRRRRRRORORORORORORRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRROOORRRRRRRRRRRRROORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRORRRORRRRRORRRRORRRRRRRRRRRROORRRRRRRORORRRRORRRRORRRRRRRRRORRRORRRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRROOROROROORRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRORRRRRRORRRORRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRRRORRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRORRRORRRORRRRRRORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRORRRRRRRROORROORORRRORRRRRRRORRROORRORRRRRRRORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRORORRRRORRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORRRORRRRRRRRRRORORRRRORRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRORRRRRRRRRRRORORRRRRORRRRRRROROORRRRRRRRRRRRRRROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRROROORRRRORRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRRORRRRRRRROOROOORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRROORRRRORORRRORRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRRORRRRRRRORRORRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRORROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORRRRROORRRRRRORRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRROROROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRROROORORRORRRRORRRRRRRRRRORRORRRRORRRRORRRRRRORORRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRORRORRRRORRRRRRRRRRRRRORORRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRROOORRROORRRRRRRRRRRROOORORRRRRORRRORRRRRRRORRRROORRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRROOORRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORRRRROROROOORRRRRRORRRRRRORRRROORRRRRRRRRRORRRRRRRORRRRRORRRORORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRORRRORRRRRORRORRRRRRORORRRRRORRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRORRORORRRRORRRRRRRRRRRRRRRRRORORORRORRRRRRRORRORRRORRORORORRRRRRRRRRRORRRRRRRORRRRROOOORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRROORRRRRRORRRRORRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRORROORRRRRRRORRORRRRRRRROORORRROORRRORRRRORRRORRRRRRROORORRRRRRRORRORRRRRRRRRRRRORRRRORRRORRRRORRRRRORRRRRORRRRRRRRORRRORRRORRRRRORRRRRRRRRRRORRRORORORRRORRRRRRRRRRRORRRRRRORRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRORRRRRRRORROORRRRRRORRRRRRRRRORRORRRRORRORRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRORRRORROOORRRORRRRRROROOORORRRRRRRRRROROORRRRRRRRRORRRRRRRRRORRRORRRRRRRORRRRRRRRRORORRRRRORRRRRRRRRRROORRRRRRRRORRRRRRORRRRRRRRRROROORRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORORRRRRRORRRRRRRORORRRRRRRRORRORRRRRRRRRORORRRROORRRRRORRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRORORRRORROORRRORORRRRRRRRRRRRRRRRRORRRRRRROORRRRRRORROORORRRRRORRORRRRORRRRRRRRRRRRORRRRRORRRRRRRORRROORRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORRRRRROORRRRRORRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRORRORRRRORRRRRRRRRRRORRRORRRRRROORRRRRRRRRROOORRORORRRRRRORRRORRORRRRRRRRORRRRRRRRRRRROORRRORRRORRRRORRRRRRRRORORORRRRORRRORRRRRRRRRRRRRRORRORRRRRRRRRROOORRRORRRRRRORORRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRRORRRRRRRRORRORRRROORRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRORRRRORRRRORRRRRRRRRORRORRRRRRRRRRRRRORRORROORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRROOORRRROORRRRRRROORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRORRRORRRRRRORORRRRROOOORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRROORRRORRRORRRRRRRRRRRRRORRRRORRORRRRRRRRRRORORRRRRROORORRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROOORRRRRORRRORRRRRRORRRRRRORRRRRRRRRRRORRORRORRRRRORRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRORRORRRRRRRORRRRRORRRRRRRORRRRRRORROORRRRRRRRRRRRRORRRRRRRORRRRRORRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRROORORRORORRRRORRRORRRORRORORRRRORROROROORRROROORORRRRRRRRRORRRRRRRRRRRRROORRRRRRROORORRRRRRRRRRRRRORRRRRRORORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRRROORRRRRRORRRRRRORORRRRRRRRRORRRRROORRRRRRRRRROROROORRRRRRRRRRROROORRRRRRRRORORRRRORRRRRORORORRRRRRRRRRORORRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRORRRORRRRRRORRORORRRRRRRRRRRRRRRRORRRRROORORRRRRRRRRRRRORRROORRRORRRORRRORRRRRORORORRRRRRRRRRRRRRRRRRRORORORRRORRRRRRRRRRORRRRRRRRRORORRRORRRRRRRORRRRRORRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRRRORORRRROORRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORORRORRRRRRROORRRRORRORRRROROORRRRORRRRRRRORRRRORORROORRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRORRRRORRORRORRRRRRROORRORRORRRRRORRRRRRRRRRRROORRRORRRRORRORRRORRRORRRRRROORRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRORORORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRORORRORRROORRRORRROORRRORORRRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRROORORRRRRORORRRRRRRRRROROORRRRORRRRRRRRRRORRORRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRROORRRRRRORRORRRRRRRRRROORRRROORRORRRRRRRRRRRRORORRRRORRRRORRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRROORRRRRRRRRRRORRRRRRRRRRRORROROORRRRRROORRRRRRRRRRRORRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRORRORRRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRORRRRORRORRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRROOORRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRRRRRRRRORROOORORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRRORORRRRRRORRRRORRROORRRRRRRORORRRORRORRRRRORRRROOORORRRRRRRRORRRORRORRRORRRRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRORORORORORRRRRRORRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRORORORRRRRROROORORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROOORRRRRRRRRRRRRRRROORRROOORRRORRRRRRORRRRRRRRRRORRRORRRRORRRRRROORRRRRORRORRRORRRRROROORRRRRRRORRRRRROORORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRORRRRRORORRRRRRRRRORORRORORRORRRRRRRRRORORRRRRRRORRRRRRORRRRRRRRORRRRRRROORORRRRRRRRRRORRORRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRORRORORRRRRORORRRRRRRRROORRRRRORRRRRORORRRRRORROORRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORORRRROORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRROROOOORRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRORORORORORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRORRRRRRRRRRRRRRRORORRORORRRRRRRRRRRRORRRRRRROROROOORRRRORRRRRRRRORORRRRRRRRRRRRRRRORORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRORROORORRROROORORRRRORRRORRORRRRORRRRRRRRRRRRRRRORRORORROORRRRORRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRORRORROORRRRRRRRORRRORRORRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRORRRORORRRRRORRROROROOORRORRRRRRRRRRRRRRORROORRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRRORRRORRORRORRRRRRRRRORRRORRRRRORRRRRRRROORRRRRRRRRRRORRORRRORORORRRORRRRRRRRRROORRRRRRRORRRRRORRRRRORORRRROORRORRRORORRRRRRRROORRORRORRRRRRRRORRRRRRRRRRRORRORROOORRORRRRRORRORORRORRRRRRRRRORROOORORORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRORORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRORRRORRRRRRRRORRRRROORRRRRORRRORRRRRRRORRRORRRRRRRORRRRRORRRRRRRRRRRROORRORRRRRRRRRRRORRRORRRROOOORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRORRRORRRRRRRRRRORRORRRRRRRRRRRORORRRRRORORORRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRORROROOORRRRORORRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRROORRRORORRRRRRORRRRORRRRRRRORRRRROORORRRRROROORRRRRRRRRORRORRRROORRORRRRRORORRRORRRRRRRRORORRRRRRRRRORRORRORRRRORRRRRORRRRRRORRRORRRRORORORRRRRORORRORRRRRRRROORRRRRRRRRRRROOORROORRRRRORRRORRRRRRRORRRRORRORRRRRORRRRRRRRRRRROORRORRRORRRRRRORORRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRORRRRRRORRRRORRRRRRORRORRRRRRRRRRRRROORRORROORRRRRRRRRRORRRRORORORRRRORRRRORRRRRRROOORORRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORROORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRORRRORRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRROORRORORRRORRRRRRORORRRRRRRRRRORORORRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRRORRRRRRRRROORRRRRRRRROORRRRRRRRRROORRROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRORORRRRRRORORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORORRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROOORRRRORRRRRRRRRRROORRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRORRRRRROORRRRRRRROORRRRORROORRRRRRRRORRRRORRRRRORRRORRROORRRRRRORRRRRRORRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORROROORRRORRRORRRORRORRORRORRRRORRRORRRORORRORRRRORRRRRRRRRRRRRRRRROOOOOORRRRRRRRORRRRORRRRRRRRORORRORRRRORRRRRRRORORRRRRORRRROORRRORRRRRRRRRRRRRRROOOOORORRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRORRORRRRRRRORRRRRRRRRORRRRRRRRORRRROORRRRRRRRORRRRROORRRRRRRRRRRRRRROOOORRRRROROORRORRRRRRRRRRRORRRRRRRORORRRRRRRRRRORRRRORRRRRRRORRRRRRORRRRRRRORRORRRRORRRRRRRRORRORRRRRORRRRRRRRRRORRORRRRORRRRRRRROORRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRROOOORRRRRRORORORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRORRRRRORRORRROORRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRORRORRRRRORRRRRRRRRORORRRRORRRRRORRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRORROORRRRRRRRRRRRRROORRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROROORRRRRROORRRRRRRRRRRRRRRRRORRRRRORORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRROROORRRRRROORRRRRRROORRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRROORRRRRORORRRRRRRROOROORRRRRRRORRRROORORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROOORRORRRRRRRRORRRORRROORRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRORRRRRRRRRRRRRRROORRRRRRORROOORRRRRORROORRROORRRRORRRORRRRRRRROORRRORRRRRRRRRROORRRORRRRRRORRRRORORRRRROORRRRORORRRRRRRRORRROORRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRROROORRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRORRORRRRRORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRROORRRRRRORRRRRRRRORRRORORRRRRRORRRRRRORRRORORORRRRRRRORRRRRORRRRRRORRRRRRRRRRRRORRRRRRORRRRROORORRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRORRRRORRRRRRRRRRRRRORORORORRORRRORRORRRRRORRRRORRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRORRRORRRRRRRRORORORRRORRRRRRRRRRRORRRORRRORRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORROORRRRORRRRRRORRRRRRROORRRRROORRRORRRRRORORRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRORRRRRROORRRORORRRRRRRRRRORORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRROORRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRROORRORRRRORROORRRRRRRRRRRRRORRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRORRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRORRRRRRRRRRRORORRRORRRRRRRRRRORRRRRORRRRRRRRORRRRRORRRRRRORRORRRRRRRORRRRRROORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRROORORRRRORORORRRRRRROORRRRRRRRRRRRRORORROORRRRORRRRRRRRRRRRORRRRRRRRRROORRRRRRORRRORRRRRRRRRRRRRRRRRRRROORROORRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORORRRORRRRRRRORORRORRRRRRRRRORRRRRRRRORRRRRRRRRORRRORRRRRRRORRORRRRRRRRRROROORRRRRRRORRRRRRRORRORRROORRRRRRRRORRRRORRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRORRROORRRRRORRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRORORRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRORRORORRROROORRRRRRORRRRRRRORRRRORRRRORRRRRRORRORRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRORRRRORRRRRRRRRRRRRRRORRORRRRORRRRORRRORRRRRORORRRORRRRRORORRORRROORRORORRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRORORORRRRRRRRRORRRRORRRRORRRROOORRRROORRRORRRRRRRRRRRRRRRRORRRRRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRRORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRROROORRRRRRRRORRRRRRRRORRRRRRRORRRRORRRRRORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRROOORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORORRRRRRRRRRRROOORRRRORRRRORRRRRRRROROORRRRRORRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORORRRRORRRRRRORRRRRROOORRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRRRORRRORRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRRORRRORRRRORRRRRRORRORRRROORRRRRRORRRRRRRRRRORRRRRRRROORORRORRORORRRRRRRORRORRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRORRRRRRRORRORRRRROORRRRRRRRRRRRRRRRRRRRORRORRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRORORRRORRORRRRRRRORRRRRRRRRORRRRORORRRORRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRORORRRRORRRRRRRRRRRRROORRRRRRORRRRRORRRRORRRRRRORRRRRROORRRRRRRRRRRORRRRRRRRRRRRRROORORRRORRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRROROORRRRRORRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORORRORRRRRRRRORRRRRRRRRRRRRRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRORRORRORRRRORRRRRRRRRRRRRRORROOORRRRRRRRRRRRRRRRORRRRRORRRORRORRRORRRROORORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRORRRRRRORRRRRRRORROORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRORRORRORRRRRRRRRRRRRORRRRRRRROORRRRROORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRORRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRROORRRRRRRRRRRORRRORRRRRROOOROROORRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRORRRRRRRRORORRRORRRRRRORRRRRRORRRORRRRORRRRRRRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRROROORRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORORRRRRRRRRORRORRRRRRRROORRRRRRRRRRRRRRROORRROORRRORRRRRRRRROOORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRROOROORORORRROORRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRROORRRRRRORRRORORRORRRRRRRRRORRRRRORRORRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROROORRRRRRRRRRRRORRORRRRRORRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRROORRROROORRRRRRORRRRRRRRRRRRRRORRRRORRORRORRRRORRRORRORRRRRRRRRRORORRRRRRRRRRRORORRORRRRORRRRORRRORORORRRRRRRRORRRRORRRRORRRRRRROORRRRRRRRRORRRRRRORRORRRRRRRORRORRRRRRRRRRRROORRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRORORORRORRRRRRRRROROORORORRRRRRRRRRRRRRRRRORRRRRRRRRORROROOROORRRRRRRRRRORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRROORRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRORRRRRORRRORRRRRRRRRORRORRRRORRRRRRRRRRRROROORRRRRRORRRRRRRRRRROORRRORRRRRRRRRRRRORRORRRRRORROROROORRRRRRRRORORRORRRRRRRRRRRRRRORRRORORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRRRRRORORRRORRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRRRROORRORRORRRRRRORORRRRRRORRORRRRRRRORRRORRRORROORRRRRRRRRRRRRRRRRRRRRORRRRORORROORRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRORRRORRORRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRROORROORRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRORORORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRORRRRRRRRRRRRROROOORRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROORRROORRRRRRRRRRRRRORRORRRORORRRRRRRRRRRORRRRORORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRORRRORRRRRRRRRRORORRORRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRORORRORRRRORRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRORRRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORORRRRORRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRORRROROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRORORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRORORORRRRRRORRROORORRRRRORRRRRRRRRRRROORORRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORRRROORRRRRRRRORRRRRRRRRORRRRORRRRORROORRRRRRRORRRRRRRRROORRRRRORRRRRORRRRRRRRRROORRRRORRRORRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRROROORRRRRORRRRRRRRRRORORRRRORRRRRROORRRORRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRORRRRRRRORRORRRRRORRRRRRORORRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRROORRRRRRRRRRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRROORORRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRROORRRRRORORRRRORORRRORORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRORRRRRRRORRRRORRRRRRRRRRRRRRRROORRRRRORRORRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRORRRORRRRRRORORRORRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRRORRROORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRORRRRORRORRRRRRORORRRRRRRRRROOROORRORRORRRROROOORORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORROORRRRORRRRORRORRRRRORRRRRORORRORRRORRRORRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRROORRRRORRRRRROORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORROORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRROOORORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRRROORRRRRROOORORORRORORRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORORRRORORORRRRRRRRRRORRORRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORROORRRRRRORORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRROROORRROORRORRROROORRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRORORRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRORROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORRRRRORRRRORORORRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRROORRRRRROORRRRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRORRRRRRORRRRRRORRRORRRORRORORRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRORORRORRRORORRRORRRRRRRORRRRRRRRORRRRRRORRRRORRORRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRORRRRORRRROORRRRRRRRRRORRRRORRORORRRRRRRRROORRRRRROORRORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRORRRRRRRRRORRORRRRRRRRRRORRRRORRRRORRORRRRRRRRRRORRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRORRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRROORRRORRRRORRORRRRROORRRRORRRRRRRRRRRRRRORRRRRRRORROORRRORRRRRRRRORRRRORRRRORRRRRRRRROORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRROOORRRRRRRRRORRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRORROORRRRRRRRRORRRRORRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRORRORRRRRRRRORRRORRRROROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROOORRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRORRROORRRRRORRORRRRRRRRROOORRRORRRRRORRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORORRRRRRRORRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRORORRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRORORRRORORRRORRRRORRORRRORRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRRORRRRROORRRRRRRORRRRRRRRRRRRRORORORRRRRRRRRRORRRRRRORRRRROOROORRORRRRRRROORRORRRORROOOORORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRORRRRRRORRRRRORRRRRRORORROORRRRORRRRRRRRRRRRORRRRRORRORRRRRRRRROORRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRROORRRORRRRRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRROORRRORRRRRRROORRRRRRRRRRRRRROORRRROOOROORRRRRRROORRRORRRRRRORRRRRROROORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRORRRRRORRRORRROORRRRRRRRRRRRROROORRRRROORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRROORRRRRRORRROROOORORRRRRRORRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRORRRRRRORORRRORRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRROROROORRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRORORRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRROORROORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRROOORRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRROORORORRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRRRRORRRRRRORORRRRRRROORORRRRRRRRRRRRRRRROROORRRRRORRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRORRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRORRRRRRRRRRRORRRRORORRORRRRORRRORRRRRRROORRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRROORRRORRRORORRRRRRRRRRRRRRRRROROORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORORORRRRRRRRRORORRRRRRORRRRRRRORORRORRRRRRRRRRRORRORRRRRORRRORRORRRRRRRRRORRORRRRRRORRRRRRRORORRRRRRRRRRORORRRRRRORRRORRRRRRRRRRRORRROORRORRRRORRRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRORORRRRRRROORRRRRRRRRRORRORRORRRRORORRRRRRRORRROORRRRRRRROORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRORRRORRRRRRORRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRROORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORORRRRORORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRORRRRRRORRORRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRORRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRROORRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRROORRRRRRRROROORRRRRRRRORRRRRRRORORRRRRORRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRRORRRRRRRRRRORORRRRRRRRRORRRROROORRRORRRRRRRORORRRRORRRRRRORRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRROORRRRRRRORRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRORRROORORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRORRRRRRORRRRRORRRRRRRORRRRRRORRRROROROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORORRRRRRRORRRRRRRRRRRRORRRRRRRRORORORRRORRRRRRRRRRRRRORRRRRRRRRRRORRORRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORROORRRRRRRORORRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRORORROORORRRRROROORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRORORRRRRRORRRRRRRRRORRRRORRRORRRRRRRRRRRRORORORRRRRORRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRROORORRRRRROORRRRRORRRRRRRRRRRRRORRORRRORRRORORRRRRROOORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRORORRORORRRRRRRRRRRRRORRRORRORORRORROORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRROORRRROORRRRRRROORRORRRRRRRRORRRRRRRORRRORRRRRRROORRROORRRRRRRRRRRORRORRORRRRRRORRORRRRRRRRRRRRROORRRRRRROORRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRORRRORRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRORRRRRROORRRRRRRRRRRORORRRORRRORRRORRRRRRRRRRRRRRRRRRRORORRRRRORRORRRRORRRRORRRRORRORRRRRRRRRRORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRROOORRRROORRORORRRRRORRRRRRRRORRORRRRRRRRORORRRRORRRORORRORRRRRRRRRRRRRRROOORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRRRRRRRRORRRRORORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRRRRRRRORORRRRROORRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRROROORRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRRRORRRORRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORORRRRORORRROORRRRRORRRRRRORRRRRRRRORRRORRRRORRRRORRRRRRRRRRRRORRRRRORRRRRORRRRORROORORRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRORRRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRRRRRRRRORRRRRRRRRRRRORRRORRORRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRROORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRROROOORRORORRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRROORRRRRRORRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRORRROOORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRORRORRRORORRORRRRRRRRRRRORRRRRRRRRRRRRORRRORORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRORRRRRROORORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRROORRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORORRRORORRRRRRRRRRORORORRRRRRRRRRRRRRRRRROOORRORRRRRRORRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRROORRRRROORRORRRRRORRORRRRRORRRRRORRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRORORRRRRRRORRORROORRRROORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRORRRRRRRRORRRRRRRRROROOROORRRRRORRRORRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRROOORRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRORROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRORRRORORRRROORRRRRRRRRRRRRORRRRRRRRRRORORORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRROROORORRRRROROORRRORRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRROROORRRRORRRRRRRRRRORORRRRRORRRRRRRROORORRRORROORRRRORORRRRRRRRRORRRRRRRRRORRORRRRORRRRRORRORRORRRRROORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRORORRRRORRORRRRRRRRRRRRRRRRORORRRORRRRRRRORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRORRRRRRRRORORRRORRORRROORRRRRRRRRRORORRRRRRRRRRRRORRRRRRROROORRRRRROOORRRRRRRRRRRRRRROROROORRRRRROORORRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORORRRRRRRRRRRROOORRRRORRRRORRRRRRRROOOORORRRRRRORRRRRRRRRRRRORRROORRRORRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORROOORRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRROORORRRRRRORRORORRRRRRORRRRRORRORRRRRORRRRRRORRRRORORRRRORRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRROORORRRRRRRRRORRRRORROOROORROROOROORRRORRRRRRRRRRRRRRRROOOROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRORRRRRRROROROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRROORROORRRRRRROOOORORRRROROORRRRRRRRORROORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRROORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRORRRRORORRRRORRRORRRRRORRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRROOORORRRRRRRROORRRRRRRRRRORORRRRRORRRORRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRORRRRRRROORRRRRROORORRRRRRRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRORRRRRRORORRRRRORRRORRORRRRRRRRRRRRRORRRRRORRRRRRRORROORRRRRRORRRORROORRRRORORRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRORORRRRRRRRRRRRRRORRRRRRRRORROORRRRRRRORRRORORRRRORRRRORRORRRRORROORRRRRORRORRRORORRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRROOOORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRORRRRRRORRORORORRRRRRRRORRRRRORRORRRRRRRRRRRRRRRROORRRRROOORRRRRRORRRRRRRRRRRRRORRRRORROORRRRRRORRRRRRRRRORRRRRRRRORORORRORRRRRRRRRRRRRRRRRRRRRORRORRROORRRRRORRRRRRRRRRRRRRRRORRRRORRORRRRRRRRORORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORROORRRRRRRRRORRRRRRORRRRRRORRRRRRRRRORROORROORRRRROORRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRRROOORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRROOORRRRROROORORRRRORRRORRORRRRRROORORRRORRORRRRRRRORRRRRRRRRRRRORROOORRRRRORRRRRRRRRRRRRRORRRRORRORORRRRRRRORRRORRRRRORRRORRRRRRORRORRRORRRORRRRRRORORRRROROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORROORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRROORORRORORRRRRORORRROORRRRRRRRRRRRRORRORRRRRRORORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORROORRORRRORRRRRRROOORRRRRRRRRRRRRORROORRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRORRRRORRRRRRRORRRRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORRRRRRRRRRRROOORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROORRRRRRROORRRRRRRRRRROORRORRRRRRRRORRRRRRRRRRROORRROORRRRRRRORRORRRRRRRRRRRORROORRRRRRORRRRRORRRORRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORORRORRRRROORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRORRRRRRRRORROORRRRRRORRRRRORRRRRRORRROORORRORRRRRRORRORRRORRRRRORRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRORORRRRRRRRORRRRRRRRRRORRRRRORRORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORORRRRRRRRORROORRRRRORRRORORORRRRORRORRRORRRRORRRRRRRRRORRORRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRROORRRRRRROORRRRRORRRRRRRRORRRRRROORRRRRRRRRORRRRRRRRRROORRRRRRORRRRRRRROORRRRRRROOORRRORRORRRRRRRRRRORORRROOORRORRORRRRRROOORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORORRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORORRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRORRRRORRRORRRORRRRRRORRORRRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORORRORRROORRRRRRRORRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRROORRROOORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORROORRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRRRRORRORRORRRRRRORRRRRRRRORRRORRRORORRRRRRRRRORRORRRRORRORRRRRRRRRORRRRROROOROORRRRRRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRROORRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROOORRRRORORRORRRRRRORRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRRRRRROOORORRORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRORORRRRORRORROORRORRRRRRRRRRRORORRRRORORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRORRRROORRRRRORRRRRRRRORRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRORORRRRRROORRRRRRRRORROROOORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRORRRRORORROORRRRRRORRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRORRRRRORRRRRORRRORRRRRRRRRRRORORORRRRORORRORRRRRRORRRRRRRRRRORRORRORRRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRROROORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRORRRRRRRRROOORRRRRRRRRORRRRRORRORRRRROORRORRRRRRRROORRRRRRRRRRRROORRRRROROOORRRRRRRRRRRRORRRRRRRRORRRRRORRRORORRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRORORRRRRRORRRRRRRRRRORORORRRRRORRRRRRORRRRRORORRRRORRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORORRRORRORRRORORORRRRRROORRRRRRRRRORRRRORRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRROORRRRRRORRRORORRRORRRRRRORRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRROOOOORRRRRRRRRORRRRRRRORRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRORRROORRRRRRRRRRRRRRRRRRRRORRRRROROORRRRORRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRROORRRORRRROOORRORRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRORRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRORRRRRORRORRRRRRORRRRRORRRRRORORRRRRRRORRRRRORRRRRRRRRORRRRORRRRRRRRRROORRRRRRRRRRORRORRRRRRRRRORRRORRRRRRRRRORRRROORRRRRRRRRRRRORRRRROROROORRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRROORROROORORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRORRRORRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRROORRRORRRRRORORRRRRRRRRRRRRRRRRORRRROOORRROORRRRORRRRRRORRRORRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORORRRRORRRRRRRRRORRRRRORRRORRORRRORORRRRRRRORRRRRRRORRRRRRORRRROROORRORRRRRORRRORORRRRRRORORRRRRORRRRRRRRORRRORORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRORORRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORROORRRRRRRORRRRRRORRORORORRRORRRRRRRRRRRRRRRRORRORRRRRRRRORRORRORRRRRRRRORORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORORRRRRRORRRRRORRRRORRORRRROORRRRORRORRRORRORRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRORRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRROROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROORORRRORRORRRRRORORRRRORRRRRRRORRORRORRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRROORROORORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRORRRORORRRRRRRRROOORRRORRRRRORRRRRRRRRRRRRORRRRRRRRORRROORRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRORRRRRRORRRRRORRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRORRRRRROORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRORRRRRRRRORRRRRRORRORRRRRORRRRRRRRRRRRRORORORRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRORRRRORRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRROORORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORORRRRRRRRRRORRRRORRRRRRRORRRORRRRRRRRRRRRORRRROROOOORRORORORRRORRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRORRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRROORRRORROORRRORRRRRRRORROORRRRRRRRORRRRRRORROOOORRORRRRRRRORRRORRORORRRORRRRRRRRRRRRRORORRRRRRORRRRRRORRRROORRRRRORRORRRRORORRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRORORRRRRROORRRRRRRRRRRRRRRRRRORROORORRRRRRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRORORRRRROORRRRRORRRORRRORORRRRRRRRRRRRRORRRRORRRRRRRORRORORRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRRORRRRRRRRORORRROORRRRRRORRRORRRRRRRORRRORRRRRRRRRRRRRRRROROROOOORRORRRORRRORRORRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRORRRRRRROOORORRRRRRRRORORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRORORRRORORRRRRRRRRRRRRRRRRRRORRRORROORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRROORRRORRRRRRRRRRRRRRRRRORRORORRRRORRORRORRRRROROORROOOOORRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRROORORRRRRRRRRORRRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRORRORRORRRRROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORORRORORROORORRORRRRRRRRRRORRRRRORRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRORROORRRORRRRRORRRRRORRRRRRRRRRRRRORRRORRRRRORRRORRORRORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRORRRORRRORORRRRRRRRRRRRORROROORRRRORRRRRRRRRRRORRRRRRRRRORRRORRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRORRRRRORRRRRRRRRORRRRRRRRRORRRRORORRORRORORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRORORRRRRRRORORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROROORORRRORRRORRORRRRRRRRRRRORRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROORRRORRRRORRRRRRRRRRRRORORRRRRRRRRORORRRORRRRORRROORROORRRRRRRROORORRRORRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRRRRORORORRRRRRRORRRRRORORORRROORORRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRORRROORORRRRRRRORRRRRRRRRRRRRRRORRORRRORORRRRRRRRRRRRRRRRRRRROROORRRRRRRRRORRRRRORRORRORRRRRRORRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRORRRORRRORRRRRRRORORRRRRRRRRORRRRORRORRRRRRRORRORRRORRRRRRRORRRRRRRROORRRRRORRRRRRRRRRRRRRORRRRORRRRRRORRRRORRRRROROORORORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRORRRRRORRRRORROOORORRRORRRRRRRORRRRORORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRORRRRORRORRRRRRRORRRORRORRRRRRRRRRRRRRRRORORRRRRRRRRORRRORRRRRORRRRRRRRRRORRRRRROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRROORORORRRORRRRROORORRRRRORRRRRORORRRORRROOROROOROORRRORRRRRRRORROOROORROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRORRRRRORRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORORRRRRRRRRORRRORRORRRRRORRRRORRRRRRRRORRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRROORRRRROOORRRRRRRORORROORORRRRRRRRORRRRRRRRRRRRRRORORORROOORRRORRORRRRRRRRRRROROORORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRORORRORRRRRRORRORRRRRORRRORRRRORRORRRRRORRRRRRRRRORRORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRORRRORRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRROROORRRRRORRRRRRRRRRORRRRRRRRRRROORRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRORRROOORRRRRRRRRRORRRRRRRRRROORRRRORRORRRRRRRRRRRRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRORRRRRRRRRRORRRRRRRRRORRRROORRRRRRRRRRORRRRRRORORRORRRORRRRRRRRRRRRRRORORRRRRORORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRORRRROORRRRORORRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRORRORRORORORRRRRRRRRORRRRRRRRORRROORRRRRORRRRRRROORORRRRORRRRRRRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRORORRRRRRRRRRROROORRRRRRRRRRORRRRRRRRRORRRRORORRORRRRRRRORRRRORRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRORRRRORORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRORRRRROORRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRORRRRROORRORRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORROOORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORORRRRRRRRRRRROORRORRRRORORRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRORRROOOORRRORRROOORRORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORORRROORORRRRRRRRORROORROORRRRRRRRRRRRRRORRORRORRRORRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRORRRRORRRROOORRRRORRRRORRRRRRRRRRRORRRRRRRRROORRORRRORRRRRORRRRRORORRRRRRORROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRRRORRORRRRROORRRROORRRRRRRRORRRRORRRRRRRORRRRRRORRRRRRRRORRRRORRRROORRRORRRRRORRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRORRRRRRRRORRRORORRORRRORRRRORORRRRROOORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORORRRRRRORRRRRRRRRRRRRRRRORRRRRRORORRORRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRROORORORRRRRRORRRRRRORRRORRRORRRRRRRRRRRRRRORRRRRORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORROORRRRORORRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRROORRRRRRRRORRRORORRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRORORRRRORRRORRRRRRROORRRORRRRRORRORRRRRORRORRRRRORRRRRORRROROORRRRORRRRRRORRRROORORRRRRRRRRRRORRRRRRORRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRORORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORORORRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRROORRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRORROORRRRRRRRRRRORRROORRRRORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRROORRRRRORRRRRRRRORRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRROORRORRRRRRORRRORRRRRORRRRRRRRRORRRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRORRRORRRRRORRRRRRROROOORRRRRRRRRRRORRRRRRRRRRRRROROORRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRROORRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORORRRRRRRORROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRORRORORORORORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRRRRROORORRRORRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRORORRRRRRRRORRRRRRRORRORORRRRRRRORRRRRRRRORRRRORORRORRRRORRRORORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRRRRRORRRRROORRRRRRORRORORRRRRRRRRRRRRRRROORORRRRRRORORORRRORRRRRRRRRRORORRORRRRRRRRRORRRRRRRORRRRRORORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRORRRRRRORORORRRRRRRORRORRRRRRRRORRORRRRRORRRRRRRRRRRROORRRRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRORORRRRORORRRRRRRRRRRORRORRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORROORRORORRRORRRRRRRRORRRRRORRORRORRRORRORRORRORRRRORRRRRRRRRRRORRORRRRRRRRORRORRRRRRRRROOOORRRRRRRORORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRROORRORRRORRORROOOROORRRRRRORRRRRRORRRRRRRRORRORRRRRRRRRRRROORRORRRRRRRRRRRRROORRRRRRRORRORRRORRRROORRRORRORRORORRRORRRRRRRRRRRRRRRRORRORORRRRRRRRRRORRRRRORORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRROOORRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRORROORRRRRRRRORRRRORRRRORRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRROORRRORRORRRRRRRRRRRRRORORRRRRRRRRORRRORRRRRRORRRRORORORORORORRROORORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRROOORRRRRRORRRRRRRRRORRRORRRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRROOORRRORORRRRRRROORRRRORRRRRORRRRRRRORRRORORROORORRRRRRRRRORORRRRRRRRRRRRORRORORRRRRRRROOOOORROORRROORRRRRORRORRRRORRORORRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRORORRRRRORRRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRORORORRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRROORRRRRRORRRRROOORORORRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRORRROROORRRRORORRRRRROORROORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRROORRROORRRRRRRRRORRRRRRORRORRRRORRRRRRRRRORRROORRRRRORRRORORRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRORROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRORRORRORRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRORRRRRRRRROORRRRORRRRORRRRRORRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORORRRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRROORRRRRRROOOORRRRRORRRRRRRRROOROORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRORORRRRORORRORRRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRROORRRRRRORRRRORRRRORRRROORRRRRRRRRRRRRRRRRORRORORRORRRRRRRRROORROORRRRRRRRROORORRORRROORRRRRRRRORRRRRRRRRRRRRRRORRRRRRROROORRRRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRORRRRRRRORORORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRROOORRRRRRORRRORRRRRRRRORRORRRRORRORRRRRRRRRORORRRRRRRRRRRORRRRRRROORRORRRORRORRRORRRRRRRRRRRRORORRRRRRRRRRRRRRORORRRRORORRRORRRRRRRRRRORRRRRRORRRORRORORORORRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRORRORROORORORRORRRRORRORRRRORRRRRORRRRRRRORRORRRRRRRRRRRRORRRORRRORRRRORRRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRORRRORRORRRRORRORRRRRRRRRRRRORRRRRRRRORORRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRORORRRROORRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROORRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRORRRRRRRORORRRORRRRROORRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRROOORRRRRROORRROOORRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRORRRRRORORRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRORORRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRROORRRRRRRRORRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRORRRORRRORRRRRRORRRRRRRRRORRRRRORRRORRRRORRRRORRRRORRROORRRROORRRRRORRRORRRROORRRORRROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRORRRRRRRRRRRRRRRRRRRROOORRRRROORRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRORORORRRORRRRRORORORRRRORRRRRORRRRRORRRRRORRRRRRRRORRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRORRORRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRORRRRRRRRORORRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORROORRRRRRRROORORRRORORRRRRRRRORRRRORRRRRRRRRRRORRORRORORROORORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRORORRRORRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROORRRORORRRRRRORRROORRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRORRRRRORRORORRRRRRRORRORRRRRRRRRRROORRORRRRORRROORRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRORRRORRORRRROORRRRRRRRROORRRRRRORORRRRRORRRRRRRRRRORRRRORRORRRRRRRRRORRRRRORRRRRORORORRRROORRORRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRORRORRRRRORRRRRRRRRRORROORRRRRRRRRRORRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRROORRRRRRORORORRRRRRRRRRRROROORRORRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRORORRRORRRORRRRRORRORRRRRRRRORRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRRRRRRORRRORORORRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORORRRRRORRRORRRRRORORRRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRORRRRRRRRRRRROORRRRRRRRROORRRORRRRRRRRRORRORRORRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRROORRROORRRRRRRRRRRRRRRORRRROORRORRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRORRRROORRRRRRRORRRRROROORRORORROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORORRRRRRRORRRRRRRRRRRRRRORRRRORRORRROORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRORORRRRRRRRRORRORRRRORRRRORRORRRRRRRRRRROORRRRRRRRORRRRRRRRRRROROORRRRRRRRROORRRRRRRRORORRRRORRORRORRRRRRORRRRRORRRORRRRRRRRRRRRORRROORORRROROORORRORRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORORRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORORROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRORRRROORORRRRRRRRRORRORRRORRRRRRRRORRORRRROOORRRRRRRRRRRRORORRRRRRRRORRRORRRRRRRROORRRRRRRRRRRRRROORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRORRROORRRRRRORRRRRORRRRRORRROROOORRRROORRRRRRRRRORRRRORRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRORRORRRRRRRRRRROROOORRORORRRRRRRRRRRORRORORRRRRRRRRRRRRRORRRRRORRRROORRRRRRRRRROORRRRRRRRRRROORRRRRRORORRRRRORRORORRRRRRRRRORRRORORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRROORRRRRRRORORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRORORRRRRRRRRRRRRRRRORRORRRORORRORRRRORRRRRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORORORORRRROORRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRORRRRRRRROORRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRORRRRRRRORRRORRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRORORORRRRRRRRRRRRRROROORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRORORORRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRRORRRROORRRRRRRRRRRRRRRRRRRRRRORORRRRRORORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRORROORRRRRRRRRRRRORRRORRRROORRRRORRRORRRRORRRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRORRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOROORORORRRRRRORORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRROROORRRRRROORRROORRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOOROORRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRORRORRROORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRORRRRORRRORRRRRROORORRORRRRRRORRRRRORRRRROORRRRORRRRORRRRRORROORRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRORRRRORRORRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRROORORRRORRRRRRRRRRRRRRRRRRRRROROORORRRRORRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRORRRRRRORRRRRRORORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRORRRRRROOORRRRORRRRRRRORRRRRORORRROORRRRRRORRORRORRORRRRRRORRRORRRRRRRRORRRRORRORRORRRRRRRROORRRORRRRORORRRRRORORRRRRORRRRRRRORORRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRROORORORRRORRROORRRRRRRRORRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORORRRROORRRRRRRRROORORRORORORROORRRRRRORRRRROORRRRRRRRRORRORRORRRRRRRRRRORROORORRROORRORRORRRORRRRORRRRRRRRRRRRORRORRORRRRRRORRRRRROORRRRRROROORRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRORRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRORORRRRRRRRRROORRRRRRRORRORRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRORORRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRROORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRORORRORRRRRROROORRRRRRRRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRROORRRORRRRRRRRRRRRRORRRRRRRRRORRRORRORRRORRRRRRRRROOORRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRROORRRRORRRRRRRORRORORRRRRRORRRRRORRRRRRRORRRRRORORRORRRRRRORRRORRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRORRRRRORRRRRRRRORRRRRRRORRRRRRROORRRORORRRRRORROORRRRRORRRRRRRRRRRROOORRRRRRORRORRRRRRRRRRRROROORORRRRRRRRRORRORRRRRRRRRRRORRORRRRORRORRRRRORORRRRORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRROORRRRORRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRORRORRRRRORRRRROORRRORRORRRORRRRRRRRRRRRRRORRRRORORRRRRRORRROOORRRRRRRRRROORRRRRROOORRRRRRRRRRRRRRROORRRRRRRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRRROORRRRRROOROORRRRRRRRRRRRRRRRRRROORRORRRRRRRORORRRRRORRROORRRRRRRRRRORRRORRORRORRRRRRRRROORRRORRRRRRORROOORRRRRRROORORRORRRRRRORRRRRRRORRRRORRRRRRRORRORORRORRRRRRRRORRRRRRRRRORRRRROORORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORORRRRRRRRRRRRRORRRORRRRRORORRRRORRROORRRROORRRRRRRRRRORRRORRRRRRRORRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRORRRROORORRRORRRORRRRRORRRRRRRRRRROORORRRRRRRRRROOORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRORRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRROOORRRORRRRRRORRORRRORRRRRRRRRORRORORRRRRRRORRRORRRRRORORRRRRRORRRRRRRROOROORRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRORRRRORRRRROORRRRRRRRRRROOORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRORRORRRRRRRRRROORRRORRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRROORRRRRORRORRRRRRRRORRRORRORORRORRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRORRRRORRRRRORRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRORRRORORORRRORRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRORRORORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRORRRRORRRRRRRRRORRRORRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRORRRRORRROORRRRRRRRRRRRRRRORRRRRRRRRRORRRROORRROORRRORRORRRRRROORRRRRRORORRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRORORRRRRRRRORRRROORRRRRRRRRRORORRORORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRRORORRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRORORRRRRRRRRORRRORRORRRRRRRRRRRRRORRORRRRRRORRORRORRROOORORRRRORRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRORRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRROORRRROORRRORRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORORRRRRRRROORORRRRRRRRRRORRORRORRORRRRRRRRRRRORRRRORRRRRRORROORRORRRRRRRRRORRRORRRRRRRRRORORORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRROORRRRROORROORRRRORRRORRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRORRORRORORRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRORORRRRRRRROORRRRRRRORRORRORRRORORRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRROORRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRORRORRRORRRRORRORRRRRORRRRRRORRRRORRRORRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRORRRRORORRORRRRRRROORRRORRRRORRRRRRRRRRRRRRRORRRRRROROORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROROORRRRRRRRRRRROORRRORORRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRORRRORRRRRRRRRRORRRRRORRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRORRRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRORRRORRRRORRRRRRRRRRRORRRRRRRORRORORRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRORRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRORRRORRRORRRRRRRORRORRRRRRRRORRORORRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRORRRORRRRRORORORRRRORORRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRORRRRORORRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRORRRRRRRRRRROOORROORORRRORRRRORRROORORRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORORRRRORORRRORRRRROORRORRRROROORRRRRRRRORRRRRRORRRRRRRRRRRRRORORRRRRRRRRRROORRRRROORRRRRRRRRRRRRORRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORORORORORRRRRRRRRRRRRROORORRRRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRORRRRRRRRRRRORORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRROORRORRRRRORRRRRROOOORRRRORRRRRRRRORORRRRRORRRRRORRORRRRRRRRRRORORRORRRRRRORRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRRRORORRORRRRRORRORRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORORRRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORORORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRORORRRORRRRRRRORRRRRRRRRRORRRRRRRRRRORORRRRRRORORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRROROORRRRRORRRORRRRRRROOOROORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRORRRORRRROROORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRROORORROORRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRROORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRORRRORRRRORRORORRRRRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRORROROOROOORRRORRRRRRORRRRRRRRRRRRRRRORRRRORRORORRRORORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRROROORRRRRRRRRORORRRRRRRRRROORORRORRRRRRRRRRRRRRRRRRRRRRORRORRORRORRRRRORRRRRRORRRRORRRRRRRORRORRRRRRRRRRRRRRRRORROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRROORRRRRRRRORORRRRRRORRRRRRORRRRRRORROORRRRRRORRORRORRORRORRRRRRRRORRORRRRORRRRRRRROORRRROORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRROORRRRRROORRRRORRRRRORRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRORRORRRRRROORRRROROORRRRROORRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRORRRORRRRORRRRRRRROOOORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRORRRRRORRRRRORRRRRRRORRRRRRRORRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRORORRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORROORRRRRRRRRRRORRRRRRRORRRORROOOORRRRORRRRRRORRRRRRRRRRORRRRRORRRRRRRORRORRORRRORRRROORRRRRORRRRRRRRRRORRRRRORRRRRRRRRORORRRRORRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRROOORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRRRRRRRRRRORORRROORRRRRRRRRRRRRRRRRRRROORORRRRRRRRORRRORORRRROORRRRRRRRRRORRRORRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROOORORORORRRORORRRRRRORRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROORRRORRRRRRRROORRRORRRORRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRORRRRRRRRRORRRORORRROORRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRORRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRRORRORRRRRORRRORORRRRRRORRRRRRRRRRRORRRRRRORRORRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRORRORORRRORRRRRRRRRRRRRRRORRRORRRRRRRRORORRRORORORRRRRRRRORRORRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOOORRRRORRRRRRRRORORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRORORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRROORRORRRRRRRRORRRRRRRRRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRROORRRORRORRRRRRRRORORRORORRRRORRRORROORRRORRRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRORORRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORROORRRRORORORRRORRRRRRRRRRORRRORRORRRORORRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRRORRRRRRRRRORORRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRORRROORRORRRROORRRRRRROORRRRRRRRRRORROOORRORRRRORORRRRORRRRROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORORRRORRORRRRORRRRRRORRORORORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRROORRORRORRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRRRRORROORORRRRRORORRRRORRRORRRRRRRRRRRRRRRRRROROORRRRRRRRRORORRRRRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRORRRORRRRRRRRRRRRRRRRRRRORORORRORRRRORRORRRRRRRRRRRRORRORRRRORRRORRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRORORRRRRRRROORRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRORRRRROORRRRRRORRRRRORRRORRRRRRRRRRRRRRROROROROORRRRRRRRRRRRRRORRRRRORROORRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRORRORRRRORRRRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRORORRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRORRRORRRRRRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRROORRROOORRRRRRORRRORRROORRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORRRRRORRRORRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRORORRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRORORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORROROOORRRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRROORRRROORRRRRORRORORRRRRRRORORRRRRRRORRRRORRRRORRRRRRRORRRRRROOORRRRRORRRRRRRRORORRRRRRRORRRRRORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRROORRROORRRRRORRRORRRORRRRRRRRORRRRRRRROORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRORRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORROOORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRRRORRORRRRRRRRRROROORRRRRORRRRRRRORRORRRRRRRRORORRORRORRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRROORRORRRRRRORRORRRRRRORRRORRRORRORRRRRRRRROORORRRRRRRRORRRRRRRRRROORRRRRRRRRROORRRORRRORRRORRRRRRRRROORRRRROROROORRRRRRRRRROOORRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRROORRRRRORROORRRRRRROORORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORORRRORORRRRRRRRORRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRORRRROORRRRRRORRRRRRRRRRRRROORRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRORRRRRORRRRRORRRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORROORORRRRRRRRRRRROORRRRRORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRORORRRRRRRRRORRRRRRRRRORRRROORORRRRRRRORORORRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRROORRRRORRRRRORRRORRRRRRRRRRRORRRRROORRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRROROORRRORRRORORORRRRRRRORROOORORRORRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRORRRORRRRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRROORRRRRRRRRRORORRRRRRRRRRROOOOROORRRRORRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRRRORRRRRRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRORRORRRRRORRRRROOOOORRRRRRRRRRRRRRRRRROORRRRRROORORRRORRRRRORRRRRRRRRRRRRRORRORRRRROORRRORORORRRORRRRRRORRRRRRRRRRROORORROORRRRRRRORRRORRRRRRRORRRRRRORROORRRRRRORORRRRRORRRRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORRORRRRORORRRORRRRORRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORORRROORRORORRRRRRRRORRORRORRRRRRORRORRRRORRRRRORRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORORROOORRRORRORRRROORRRRRORRORRRORRORRRRRRRORORRRROORORRORRRRRRORRRRRROORRRRROORRORRRRRRORRORORROOORRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRROOORRRRRRORRORRRRRRRRRRORORORORRORORRRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRORORRRRRRRRROORORRORRRRRRRORRRRRRRORRRRRRRRROORRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRROORRRRRRRRORRORRRORORRRRRRRRRRRRRRRRRORRORORROROORRRRRRRRRRRRRORRRRRORRRRRORORROORRRORRRORORRRRRRRRRRORROORORRRORRORRRRRRRRRRORRRRRRRRORROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRROOOROORRRORRRRORRRRRRRRRRRORRRRROROORRORRRRRRRRRRRRRRRROORRRRRRORRRORRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRRORRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRORORRRRRORRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRROORRROOROORRRORRRRRRRRRRRRRRROORORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRROOORRORRRRRRRRRRORRRORRORRORRRRRRRRRROORRRRRORRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRORRRRRORRRRRRROOORRRORRRRRRRORRRRRRRRRORORORRRRRRORORRRRROORRRRRRRRRRRRRRORRRRRRRROORRRRRROOORRRRRRRRRRRRRRRORRORRORRROORRORORRRRRORRRRRRORORORRRRRRRRRROORORRRRRRRRRRRRRORRRRRRRRORRROORRORRRRRRRRRRRRRRRORRROROOOOORORRRRRRORRRRRRRRRRRRRORRRRRRRRORRORRRRRORRRRORRRRRRRORRORRRRRRRRORRRRRRORRRORRORRRORORRRRRORRRRRRRRROORRRRRRROOORRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRORRRORROORRORORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRROORRRORRRRRORRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRORRRRRORRRRRRRRRORRORRORRORRRRRRORRORRROORRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRORORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROROORRRORRRRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRORRORRRRRRRORORORRRRRRRORRROORRORRRRRRRRRRRRORRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRORRORRRORRORRORRRRRRRRRORRORRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRROOORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRROORRRRORRRRORRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRROROORRRORORORRRRRORRRRRORRORROORROORRRRORRRORORRORRRRRRRRRRRRORROORRRORORRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRORRRRRRRRRRRRRRRORRROORRRRORRRRRRORRRRRORORROORORRRRRRRRROROOROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRROORRRRRRRRRRRRRORRRROORRRRRRRRRRORRORRRRRRRORRRRRORRRORRRRORRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRROORRRRRRRRRRRRRRRRORORRRRRRORRRORRRRRORRRRORRRRRRORRRORRRRRRRRRRRRORORRRRRORORRROORRRRORRRRRRRRRRRORRORRRRORRRRRRRROORRRRORRORRRRRROORRRRRRRRRRRRRRRRRORRRRRRORORRORORRRORRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRORRRRRRRORRRRRRROORRRORRRORRRRRRRRRRRRRRRRRRORRRRRRORORROORRRRRRRRROORORRRRRRORORRORRRORRRRRRRRROORRORRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORRRORRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORORRRRRORORRORRRRORRRRRRRRRRRRRRRORRROORROORORORRRRORRRRRRRRORRRRRRRRRORRRORRRRRRRORRRRORRRRRORRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORORRRRROOORRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRROROORRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRORRROORRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRROOOORRRRRRRRRORRRROORRRRRRORRRRRRRROORRRRRRRRRRRORRROORRRRRRRRRRRRORRRRRRRORRRRRORRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRORROROOOORRRRRORORRRRRRRROORRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRROOORRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRORRORRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRORRROOORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRRRRRRROORRORRRRORRRRRRRORRRRRORRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRORRRRRORRRRRRRRRRORRRRRRRORRRRRORRRRRORRRRROORORRORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRRORRRRRRORRRRORRRRRRORRRRORRRRRROORRRRORRRRRRRORRRRRRORRRORRORRRRRRRRRORRRORORORRRRRRRRRRRRRRRORRRORRORORORRRRORRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRORRORRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRORRROROOORRRROORRRRRRRRRRRORRRRRRRRORROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRORRRORROOORORRRRRRORRRRRRRRRRRRORRRRRORRRRORROORRORRRRROORRORRORRRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRORORRRORRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRORORRRORRRRRRORORRRORRRRRORRRRRORRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRORORRRRORRORRRRRRRRRRRORRRRRRRRRORRROORRRRORRRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRROORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORRROORRRRRRRRRORRRRORRORRRRRRRORRRRORRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRORORORRRORRRRRRRROORRRRORRRRRORRORRRRRRRRORRRROORRRRRRRRRRRRRRRRORRRRORRORRORRORRRRRRRRRRRRRRRRRORRROOORRRRRORRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRORORRRRRRORORRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRORORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORROORRRRRRRRRORRRRRRRRRRRRRROROORRORRRRRORRRRRRRRRROORRRRRRRRRORRORRRRRROORRRRRRRRRRRRRRRROROORRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORROROOOORRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRORRRRRORRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRRORRRRRRRRORORRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRROOOORRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRROORRRRRORRORRRRRORRRRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRORORRRRRRRRRRRRRRRRRRRRRRRROORRORORRRRRRRRRRRORRRRORRRRRORROORRORORRRRRRRRRRRORRRRORORRRRRRORRRRRRRRORRRRRRRRRORRORRRORRRRRRRRRRORRORRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROROROROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORORRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRROORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRROOROORRRORRRRRRRRRRRRRROORORRRRRRRRRORRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRORRROORORRRRRRRRRRROOROORRRORRORRRRRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRROORRRRRRRRRRRRORRORRRORRRRORRRRROORRRRRRRRRRRRORRRORRRORRRRRORRRRROROROORRRRORRRORRORRRORORRORRRRRRRRRRRRROORRRRRRRRRRORRRRRRROORRRRRRRRORRRRRRRRRROOORORRRROORORRRRORRORRRRRRRORROOORRORORRORRRROORRRRRRRRRORRORRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRROORRRORRRRRORRRRRRRROOOROORRRRRRRRRRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRRRORROORRRRRRRRRRRORRORRRRRRRRRRORORRORRRRRRRRRORRRRRRRRORROROOROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRORRORRORRRORRRRRRRRRORRRORRRRRRRRRRRORRRORRORRRRORRRRORRRRRRRRRRORRRRROORRORRRORRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRORORRORRRRORRORRRRRORRRRRRORRRORRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRROOROORRRRRRORRRRRORRRRRRRRORORRRRRRRRRRRORRRORRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRORRRORRRORRRRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRORRORRRRRRRRRROORRRORRRRRRORRRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROROROORORRORRRRRRORORRRRRRRRRORRORORRRRRRRROORRRRRORRRRRRRRRRRRRORRRRROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRROORORRRRRORRRRRRORRORRRRRRRRRRORRRRRRRRORRRORRRRROROORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRRRRORRRRORRRRRRRRRORRORRRRRORORRRRRRRROORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRRROORRRRRRRORRRRRRRRRRRORROORRRRRRRRROOORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRORORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRROOORRRRRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRRROORRRORROOORRRRRRORRRRRRRRRORRRRRRORRRORROROROORORRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRORRRRRRRORORRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORORRORRRRORRORRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORROORRRRRRRRRRRRRRRORRRRRRRORRORORRRRORRORRORRRRRRROOORRORRRORORORRORRRORROOORORRRRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRORRRRORRORORORRRRRRRRRORRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRORRROORRRORRRRRRRRRRRRRORRORRORRRRORRRRRORROORRRRORRRORORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORORRRROORRRRRRRRROOORRRORRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRORORRRRRRORRRRRRRORORRRRRORRRRORORORRRORRRORRRRRROORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRRORRRORRRRRRRRRORRRRRRRRRORRRRRRRRRROORORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRORRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROOORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRORRRRRRRRORORRRRORRRRORROORRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRORORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRORRRROORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRROOROORRRRRRORRRORORORRRRRORRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRORORRRRRRRRRRRRRORRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRORORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORORRORRRRRRORRORORRORRRRRRRRRRRRRRRRORRRRRORRORRRRRORORRRRRORRRRRRRRRRRRRRORRRRRRORRRROORORRRRRRRRORRRRRRORRORRROORRRORRORRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRRRRRORORRRRRRRRORRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRORRRRRRORRRRRORORORRRRRRRRRRORRORRRRRRRRRRRRRRROOORRRRROORRRRRRRRRRRRRRRRORRORORRORRRRRRRRRORORRRRORRRRRRRRRRRORORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRORRRORRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRROROORORRORRRRROOORRRRRORRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRORRRORRORRORRRROORRRRORRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRROORRROORRORRRRORRRRRRRRRRRRRRRRRRROORRORRRRRORRRRROORRRORORRRRRRRRRRRRRRORORRROROOORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRORRRRRRRORRRRRRRORRRRRORRRRRRRRRRRORORRORRRRORRRORRRORRRRRRROORRRRRRRRRRRRRORRRRRRORRRROORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORROORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRROROROORRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRORORRORRRRRRORRRRROROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRROOORRORRRORRRRORRRRRRRRRRORRRRRRRRRRORRROOORRRRRRRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRORRRRRRRORROOROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORORRORROORRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRORRRORRRRORRRORRRRRRRRRRRORRRRRRRRRORRRORRROORRRORRRRRRROORRROOORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRROOORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRROORRROORRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRORRRRROORRRRORRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRORRRORRRRRRORRORRRORORRORRORRRRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRORORORORRRRORRRRORRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRROORORRRRRRORORRRRRRRRRRRRORRORRRRRRRRRORRRORRRRRRORRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRORRRRRRRRORRORRRRRRRORRRORORRORRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORORRRRRRRRROORRRRRRRRRRRRRRROORRORORRRRRRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRORRRRRRRORRRORRRORRRRROORRRORRRRROORRRRRRRORRRRRRRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRORRRRRRRORRROORRORRORRRRRRRRRRRRRORRRRORRRROORRORORRRRRRRORRRORRROORRRRRRORRRRRRRORRROOOORRROORRRORRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRROORRORRRRRORRRRRRRRRORRRRRRRRRRRRORRRORRRRRRORRRRRRRORORRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORRRRRRRRRRRRROROORRRRRORRRRRRRRORRRORRRRRRRRORRORRRORRRORRRRRRRRRRRRRROORORRRORRRRRRRORRORRRRRRRRRROROOOORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRRRRRORRRRRRORRRRRRRRRRORRRRORORRRRRRORRRORRRRORRRROROORORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRORRRROORRORROORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRORORRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRORRRORRRRORORRRRRRRRRRORRRRRRRRORRRRRRRRRRROORRROROORRRRROORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRORORRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRRRRRROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRORRORRRRRRRRRORORRORORRRORRRRRRRRRROORRRRRRRRORRRRROROORRRRRRORORRRRRRRORRRRRRRRRROORORRRRORRORRRRRORORRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRORRRRRRRRORRRROORRORRRORRRRRRRRORRRRORORRRORRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRROROORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRORORROORRRRRORORRRRRRRRRORRRRRRORRRRRRRRRRORRORRRRRRRRRRRROORRORRRRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRORORRRRORRRRORRRRRORRRRRRRRRRROORRRRORRORRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRORRRRRRRRORRRRROROORRRORRRRRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRROORRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRORRORRORRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRROORRRRRRRORRRRRRRORRROROROORORRORRORRRORRRRRRRRRRRRRRRROORRORRROORRRORRRORRORRRORRRRRRRRORRRORRORRRRRRRRRRRRRRORRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRORORRRRRRRORRRRORRRORRRRRRORORRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRRRRRROORRRORRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRRRRRORRRRRORRRRRORRRRRRRRRRRROOROORRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRROOROORRROORRRRRRRRRRRRRROORRRRRORRRRRROROORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRORRRORRROORRRRRRRRRRRRORRORORRRRRRORORRRRRRRRRRORRORRRRRROORRRORRORRRRORRRRRRRRORORRRRRRRRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRROORRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRROROROORRORRRRRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRORORRRRRRRRRORRRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORORRRRORRORORORRORRRRRRORRRRRORRRRRORRRRRRORRORRORRRRRRRRRORRROORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRORRORRRRRRRORRRRROOORRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRORRORRRORRRRRRRORRORRROORRRRRORRORRRRORORORRORRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROROOORORRRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRORRRORRRORROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRORRROORRRORRORRRRRRORRRRRRRRRORRRRRRRRORRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRORRRRRRORRRRORORRRRRRRRRRRORRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRRRORRRRORRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRROROORORORRRRORRRROORORRRRRRRRORRRRRRRRRRRORRRRORRORRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRORRRORRRORORRRRRRRRRRRRRRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRRRORRRORRRRRRRORRORRRRRRRORRRRRRRRORRORRORRRRRRORORRRRRRRRRRORORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRORRRRROROORRRRRRRRRRRROROORRORROORRRRRRRRRRRROOORRRRRORRORRRRRRRRRRORRRRRRORORROORRRRRORRRORRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRRRRRORRROORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRORRRORRRORRRRRRORRRROORRRRROOORORRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRORRROORRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRROORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRORORORRRRRRRORORRRROORROORORRRRRORRORRRRRRRRRRRORORRRRRRORRRRRRROORRRRRRORORRRRORRRORRRRRRRRRRRRORRORRRORRRRRORRORORORRRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRORRRRRRRRORRRORORRRRRROORORRRRRRRRRRORROORRRRRRRRRRRORRRRORRRORRRRROROORRRRRRRRRRRRROORRORRRRRRRORRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORORRRORRRROROORRRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRORROORRORORRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRORRORRRRRRRRORRRRORORRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORORRRORRRRRORRRRRRROORRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRROORRRRRORRRRORRRRORRRRRRORORRRRRRRRRRORRRRRRRRRRRRRROROORRRRRRORRRRRRRRRORRRRROOROORRRRRRRRRRRRRRORRORRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRRRORRRORRRRRRRRRRRORORRRRRRORRRRRORORRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRROORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORROORRRORRRRRRRRRRORORRRRRRROORRRRRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRROOROORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRORRORRRROORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRROORORRRRRRORORRRRRRRRORRORRRRRROROORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRORORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRRORRRRRRRORRROOROOORRORRRRRRORRRRRRRRRRRRRRRORRRRRORRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRROORORRRRRRRRRORRRRORRORRRORRRRORRRRRRRRRROOROORRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRRRRRRRRRRRRRROORRRROROORORRRRRORORORROORRRORRRRRRORRORRRRRORRORRRRRRRRRRRRORRRRRRRRRRRORRORRRRROORRORRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORORRORRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORRRRORRRRORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRROOORRRRRRORORRRORRRORRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRORRORRORORRORORRRRRRRRRRRRRORRRRRRRRORRORORRRRRRRRORRRORRRRRRRRRRORRRRRRRRROORRRRRORRROORRRRRRRORRRRORRORRORORRRRRRRRRRRRRRRRRRRORRRORRRORROROORRORORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRROORRRRORORRRRRRORRRRRRRRRORORRRORRORRRRRRRRRRORRRORORRRRRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRROORRORORRRRORRROOORRORRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRROORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRROOROOORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRORRRRORRRRRORRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORRRORRRRORORRORRORRROORRRRRORRRORRRRORRRRROORRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRROORRRRORRRROOORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORORRRRRRRORORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRORRRRORRRROORRRRRRRRRRORRRRRRRORRORORRRRORRRRORRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRROORRRRRRRRRORRROORORRROROORRRORRORORRRRRRRORORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRORRRORORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRORRRORRRRRRRRRRRORRRRRRORRRORRRRRROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRRRRRRORRRROORRRRORRRRRRRORRRRRRROORRRRRRRRRRRORRRORRRRRRRRRRRRRORRORORRRRRRORRRROORRRORORRRRRRRRRORRRRRRRORRORRRORRRRRRRRRRRRRORRORRRORRRORRRRORRORORROORRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRROOORRRORORRRRRRORRORRRRROORRRRRORRORRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRORROORRORRRRRRRRRORRORRRRRORRRORRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRORORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRORRRRRRRRRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROORRRRRRRRRRORRRRRRROORRORRROORRORRORRRORRRRRRRRRORRRRORORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORORRRRRRRORRRRRRRORORORRRRROORORRORRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRROOORRRRRORRORRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRORRRRRRORRRRORRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORROORRROORRRRORORRRRRORRRORRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORORRRRORRORORRRRRRRRORRRRRRRORORRRRRRRRORRRORRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRORRORRRRRRRRORORRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRORRRRORRRRRRRORORROROORRRRRRRORRRRRRRRRRORRRRRRRRRRROORRRORRRRROORRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRROROOORRRRORRRRRORRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRORORRRRRRRRROORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRRRRRRRRRRRRRRORRRRRRRRORRRRRROORRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRROORRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORRRORRRRRROORRRRRRORROORORROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRROOORRRRRRORRRRRORRRRRRRORRRRORRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRROORORRRRRRORRRRRRORORRRRRRORORRRORRRORRRRRRRRRRRORRRRRRRROROORRRROORRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRRRRRRRRRORRRORRRRRRRORRRRRRORRRRRRRROOROOORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRRRRRORORRORRRRRORRRORRORRRORORRRRRRRORROORORRRRRRRRRRRRRRRRRRRORRRROROORRORRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRORRRRRRORRRORRORRRRRORRRORORRRRRRORRORRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRORROORROOORROORRRORORORRRRRRRRRRRRRRORORORRORRRRRRRORORORRRORRRRRRRRORRORRORRRRRRORRORRRRORRRRRRRRRORORRRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRRRRROORRRRRRRORRRRRRRRRRRRORRRRRRRRORRRORRRRROROORRRRRORRORRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORROORRRRRORRRRORRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRORORRRRRRRRRRORRRRRRRRRRRRRRRORRROORRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRORRRROORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRORROOORRORRRRRROORRRRRRRRRRRRRRRRRROORRORRRRRORRRRRORRRRRORRRRRROROOORRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRORRRRORRRRORRORRRRRRRRRRRORRRRRRRROORRRORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRORRORRRROOORRRORRRRRRRORRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRROORRROORRRRRRORRRRORRRRRRRRRORRORRRRRORORORRORRORRRRRRRRRRRORRRRRRRORRRRRROORRORORRRRRRRRRRRRRRRRRRRRRORRORORROORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRORRRRRRRRORORORRRRRRRRORORRRRRORORRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRORRRRRRRRRRORRORRRRRRORRRORRRORRORRRRRORRRRRRRRRRROORRRORRRRRRRRROORROOORRRRRRRORRRRORRRRRRRRRRRRRRORRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRORRRRRRRRRRRRRRRRORRORRROORORRRRRRRROORRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORROORORORRRRRRRROORRRRRROORRROORRRRRRRRRRRORORRORRRRORRRRORRORRORRRRROORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRORRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROORRRORROOORORORRRORRORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRORRROORRRRRRRRRROORRORRRRORRRORORRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRORORORRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRORRRROOORRRORRRRORORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRORRRRRORRORRRRRRRORRRRRRRROORRRRRRRRORRRRRORRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRROORRRORRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRROOORRRRORORRRRRRRRROOORRRRRRRRORRRRRORRRRRRRRRRRORRORRRORRRRRRRROOROOORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRROORRRROORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORORRRORRRORORROORRRRRRRRRRRRRORORRRORRRRRRRRRRROROROORRRRRRORRORRRRORRRORRRRRRORRRRRRRORORORRRRRROORRRRORRRRRRROORRRRRRRRRRORORRRRRORRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRORRRORRORRORRRRRRRRORROOORRRROORRRRRRRRRRORORRRRRRORRORROORRORRRRRRRRORORRORRORRRORRORRRRRRRRORRRRORRORRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRORRORRRRRRRRRRORRRORRRORRRRRRRRRRRRRRORRORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRROORRROORRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRORRORRRRRORORORRRRRRRRRRRRROORRROORRRRRORRRRRRRRRRRRRRRORRRRRRORRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRORORROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRORRRRRROORORORRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRROROORRORRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORRRRRORRRRRRRRRORORORRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRRRORRRRRRRRROROORRRRRRORRRRRRRRRRROORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRROROORRRRORRORRROORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRORORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRORRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORRRORRRRRORRRRRRRRORORRRRRORRRRRRRRRRORRRRRORRRRRORORRRROROORRRRORORRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRORRRORRRRRRRRROORORRRRORRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRRRRRRRORRRROORRRRRRRRRRRRRRORRORRRRRRRRORRRRRRROORRRRRRORRORORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRORRRRRRRORRORRORRRRRORRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRROORROORRRRRRRORRRRRRORRRRRRROOORORROORRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORORRRRRORRRRROORRRRRORRRRRRRRORRRRRRORORRRRRRORRRRROROORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRROORRORRRRRORRRRRRRRRRRORRRRRORRORRRRORORRORRRRRRRRRRROOORRRRRRRRRRORRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRORRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORROORRRRRORRORORRROORRRORRRRORRRRRORRRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRORORRRORRRRORRRRORROROORRRRRRRRRRRRRORROORORROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRORRRRORRORRRRRRROOORRRRRORRRRRRRRORORRRRORRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRRORORRRRRRROORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRORRROORRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRROROORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRORRORRRROORRRRRRRRORRRRORRRRORRRRRRRRRORRROORRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRORRORRRRRRRRRRRRRRORORRORRRRRRRRRRRRRROORRRRORRRORRRORRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRORRRRORORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRORRRRRORORRRRRRORRRORORRRRORRRRRRRRRRORRRRRRRORRRRRRRRORRORRRRORRORRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRROROOROORRRRRRROORRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRORORORRRORRRRRRRORRRRRRRORRRORRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRORRRRRRRRRORORRRRRRROORRRORRRRRORRRRRRRRRRRRRRORORRRORRRRORRRRORRRRRRRRRORRRORORRRRRROORRORORRORRRRRRRRRORRRORORRRRRRRORRRORRORRRRRRRRRRRRRORRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRORORRRRORRORRRRRROOORRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRORORRORRRRRRRRORRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOOROORRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORORRORRORRRRRORRRRROOORRORRRRRRRRRRRORRRRORRRRORRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRROORRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRROORRRRRRRORORORRRRRRRRRORRRRRRRRRRRRRRROROORORRRRRRORRRRRRRRORRORORRRORRROORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRRORORROORORRRRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRORRRRRRRRRORRRROORRORRRORRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRORORORRRRRORRRRRRRRORRORRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROOORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRORRRRORRRRRRRROORRRRRORRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRROOROOORRRRRORRRRORRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRROOORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRORRROORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRORRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRORRRRRRRRORORRRORRRRRRRRRRRRRROORRRRORORRRRRRRRRRORORRRORRORRRRORRORRRRRROORRRRRRRRRROORRRRRRROORRRORORRRRRRORRRRRRRRORORRRRRRORRORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRORORRRRROORRRRRRRROOOORRRRRRRRRRRRORRRRRROORRROORRORRRRORRRRRRRRRRRROORRRRRORRRRRRRRRRRORRRRORRRRRRRRROORRRRORORORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRORRRRRORRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRORORORRRORRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRROORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRORRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORORRORRRRRRRRRORRORRRRRRRORORRRRRORRRROORRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRORRRRRRORORRRRROORRRRRRRRRRRORORRRROORORRRRRRORRRRRRRRRRROORRORORRORRORRRRRORRRRORRRORORROORRRRRRRRRRRORRRRRRRRORORORRORRRRORORORRRRRRRRRRORRRRRRRORRRORRROORROORRRRRRRORRRRRRRORRRORRORRRORORRRRRRRRRRORRRRRRRORORORRORORRORRRRRRRORRORRRRRRRORRRRRRRRRORRRRRRRORRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORORORROOORORRORRRRRRRRRRRRRORRRRRRORRORRRRORRRRRRRORRORRRRRRRRROORRRRRROORORORRRRRRRRRRRRRRRORRRORORRRRORRRRROORRRORRORORRRRRRRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRORRRRORRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRORORORRRROOOORRRRRRORRRRRRRRRRRRROORRRRRRRROOORRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRORRRRRRRRRORRRRRROORRORRRRORRRRORRRRRRRRRRRROORRRRRORORRRORRRRRRRRRRROOORRRRRRRRRRRRRRRRROOORRRRRRRRRRRRROORRRRORRRRRORRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRORRRRORRRRROORRRRRRORRRRORRRRRRRRORORRRRRRRRRRRRRORRRORORRRRROORRRRRRRRORORRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRROROORRORRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROOORRRRRRRORRRRRRRRRRRORORRRRRRRRRRORRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRORROORRRROORRORRRRORRRRRRORRRRRRRROORRRRRRRORRRRORRORORORRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRORORRORRRORRRORORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRORORRRRRRORRRORRRRRRRRORRRRRRRRRRRORRORRORRRRRRRRRORRRRRRRRRRRRRRRRRORROOORRORRRRRRORRRORRRORRRRRRORORRRRRRRRRRRRROORROORORRRRRRRRRRRRRRRORRORRRRRRRRROORRORRRRRRRRRORRRRRORRRORRRRRRRORRORRRRRORRRRRRRRRRRRORRRORRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRORRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRORRORRRRROROORRRRRORRRRRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRROROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRROORRRRORRRRRRRRRORRRRRORRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRORRRORRROOORRRRRRRRORRRORRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRORRRRRRRORORRRORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRRRRRORRRROOORRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRROOORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRRORRRRRORRORORRORRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRORROORORRRRRRRRRRRRORRRRRRRRORORRRROORRRRORORRRRRRRRROORRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRORRRROORRRROOORORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRROOOORRRORRRRRRRRRRRRRRRORORORORRRRORORRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRORORRRORRROORRRRRORRRRRRRRRRRRORORRRORRORRORRRORORRRRRRRRRRRRRRRRRRORRROORRRRORRRRROORRRORRRRRORRRRRRRRRRRORRRORRORRRRRRORORROORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRORRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORORRRROORRRRRORRORRRORRRRRRRRORRRRRRRRRRROROORRRORRRRORRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRROORRRORORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRROORROORRRRORORORRROORRRRRRRORRRRRRRRRRRRRRROORRRRRRORORRRRROORRRRRORRRORORRRRRROORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRROORORRRRRRRRRROORRORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRROORRRRRRRRRRRRRROROORRRORRRRRRRRRRROOOORRROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRRRORRROORRRRRRRRRRRORRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORORRRRRRRORRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORORRRRRRORRRRRORRRORRRRRORRRRORRORRRRRRRRRRRRRRRRRROOORRRRORRRRRRRRORORRORRRRRRRORRRRRRORRRRRRRROORROOOORRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORRRRRRRORORRRRORORORRRORRORRRRRRRRRRRORRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORORORRRRRRORRRRRRRROORRROORRRRRRRRRRORORROORRRRRORRRRRRRRORRRRRROORORRRRORRRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRRRORRRRRORORRORRRRORRRRORORRRROROORRRRRORRRRRORRRRRRRRRORORRRRRORRORRRRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRORRORRORORRRRORRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORRRRROORRRRRRROORRRRRRRRRRRRRORRRORRRRORRRRORORRRRRRRORRRRRRRORRRRRRRRORROORORORRRORRRRRORRRRROORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRORORRRORRRRORORRORRRORRRRORRRROORRRRRORRRRRRORRRORRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRROORORRRRRRRORRRRRRRRRORROORRRRRRRRORORRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRORORRORRRRRRROROORRRRRRRRRRRRRRORRRRRORRORRRORROROOORRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRRORRRORRRORRRRRRRORRRRRRRRORRRRRRORRORORRORRRRRRRRRORORRRRORRRRRRRRRRRRROORRORRRORRRRORRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORORORRRRRRRORRRRRRRRORRRRRRRRRORRRORORRRORRORORRRRRRRORRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRROORRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRROORRRRRORRRRRRRRRORRORROORRRRORRORRRRRRORORROOORORRRRRRRORRRRRORRRRRRRRROROORORORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRROORRRRRRORRORRRRRROORRORRROROORRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRORORRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRROORRRORORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORORRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRORRRRROORORRRRORRRRRRRRRRRRORRRRRORRRRRRRORRORRRROOORRRRROOOORRRORRRRRRRRRRRORRRRRRRRORROORRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRORRRRRRRRRRRROORRORRRRRRRRRRRORRRRROROORRRRRRRRORRRRORRRRRRRRRRRRRORRORRRRORRRORRRRRRRORRORROOORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRORORRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORORORRRRROORRRRRRRORRORRROORRRRRRRRORORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORORRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRORRRRRRORRRRORRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRORORRRORRRRRRRRRRRRRRRRRRRRROORRRORRRRRORRRRORORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRORRRRRRRRRORRRRORROORRRRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRORORORRRRRORRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRROORRRRRORORRORORRRORRRRRRRRRRRRRRRRRRRRRORRORRRORRRORRRRRORRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRORRORRRRRRRORRORRRRORRRRORRRRRRRRRRRORRRRORRRRRORROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORORRRRRORRRORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRROORORRRRRRRRRROORRRORRRORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRROORRRRRRRRRORRRRORRRRORRORORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRRORRRORRRRRRROOORRRRRRRRRRORRRRRRORRRRRRRRRROORORRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRROORRORRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRORRRORRRRRRORRRRRORORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRROORRRRRORRRROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRORRRRRORORRRRRRRRORRORORRRRRRRORRRRRRRRRRRRRORORORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRORRRORRROROORORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORRRRRRRRORRRRORRRRRORRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORORORRRRORRRRRRRRORRRRRORRRORRRRRRORRRORORRRRRRORRRRRROOROOORRORRORRRRRRRRRORRRRRRORRORRRRRROROROORRORRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOORORRORRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRORRRRRRRRRORROORRRRORRRRRRRRRRRRORRRRORRRRRRORORRRRRRRRORRRORRRRORRORORRORRORRRRRRRRRRRRRORRRRRRRRRRRORORRORRRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORORORRRRRRRRRRRRRRROORORRROROORRRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRROROORRRORRRRRRRRRRRRRRRORORRRRRRRROORRRRRRRORRRRORRRRORRRRRRORRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRROORRRRRRORRRRRRORRRRRRRRORORRRORRRRRRORRRRRRORRRRRROROOROORORRRRRRRRRRRRRRRRORORRRRRRORORRRRORORRRRORORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRORORRRRRRRRRRRROORRRRRRORORRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORROOORRRRRRORORROROORRORRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRRRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRROROROORRRRRRRRRORRRRRRRRORRRROORRORROROORRRRORRRORORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRROORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRROORRRORORORRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRRRORRROORROORROORRORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRROROROORRRRRRRRRRRRRORORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRROORORORRRRRRRRRRRRRORROORORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRORRRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRORRRRRRORRORRRRRRROOORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRORRORRRRRRRORRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRRRRRORRORRRRORRRRORRRRRRORRRRRRRRRRRRORRRRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRORRRRRRRRRORRRRRRORORORROORRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORROOORRRRRROORORRORRRORRRRRORRORRRRRRORRORRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRORRRRROORORRRRORRRRRRRORRRRRRRRRRRRRORRRORRRRRRORORORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRORRRORRRRORRRRRRRRRORRRRRORRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRROROROOORRRRRRORRORRRRRORRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRORRRRRRORRRRORORORRRRRROORRRRRRRRORRRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROOORRORRRORRRORROORRRRRORRRRRRRORRRRRRRRRRROORRRRORORORORRRRRORRRRRRRRORORRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRORRRRRORORRRRRRRRRRORORRRORRRRRRORORRRRRRRRROORRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRORRRORRRRROROORRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRROORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRORRRRRRORROOOORRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRORRORRORORORRROORRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORORRRRORRRORORRORRRORRRRRRORORRRRORRRRRRRRORRRRRRORORRRRRRRORRORRRRRRRORRORORRRRRRRRRRRROORRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRROORRRRRORRRRORRRRRRROROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRROORRRRRRRRRRRRRRRRRRRORRRRORORORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRRRRRRRRRORORRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORROOORORORRRRRRRRORRRRORRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRORRRRORRRRRROOORRROORRRRRRRRORRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRRRRORRORRRORORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRORRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORROORRRRRRORRRRRORRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROOORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRORRRRRORRRRRRRRRRORORRRORRRRRRORRRRORRORRRRRRRRORRORORRRRRRRRRROORRRRRORRORORRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRROROORRRRRRRORRRRRRORORRRRRRRRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORROROORRRRRRRRRROROORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRROOROOORRRRRRRRRRORORROROORRRORRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRORRRRRRRRORRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRROORRRORORRRRRRRRRRORRORRRRORROORRRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRORRRRRRRRROOOORORRORRRRRRRRRRRRRRRROORRRRRROORRRRRRRRORRRORRRRRROOOORRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRORRRRRRRRORRRROORRRORRRRRRRRRRRRORRRORROORRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORORRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRORRRROOORRROORRRRRRRRRRORRRORROORRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRORRRRRRRRRROORRRRRRRRRRRRORRRORROORRRRRRRRRRRRROORRRORRRRRORORRROOORROOORORRROORRRRRRRRRRRRORRRORRORROORORRRRORROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORORORRRRRRRORRRRRRRRORRRRRRORRORRRORRRRORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRRRRORRRRRORRRRRRRORRRRORRRRRRRRROORRRRORRORRRRORRRRRRROORRRRRRRRORORORRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORRORRORORRRRRORRRRRRRRRORORORRRRORORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRORRRRRRRRORORROORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORROOROOOORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRORORRORRRRRRRRRRRRRRRROORORRRORRRRRRRORRRRRRRRRRORRRRRROOORRORRRORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROOORRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROORRRORRRRROORRRROORRRRRRRRROOROORRRRRRRRRRRORRRRORRRRRRORRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRORRRRRRRRRROORRRRORRRRRRRRRRORRRRRORRORRORORRRRORRRRORRRORRRRRRRRRROOROORORRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRROORRORRRORRORRRRORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRORRRRROROROORRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRROOORRRRRRRRRRRROORROORRRRRRRRRRRRORRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRORRRRORRRRRRROORRRRRRRRROORRRRRRRRRRRRRRRRRORRRORORRRRRRROORORRORRRRRROORRROROORORORRORRORRRRRRRORRRRRRRRRRRRRRRRORROORROORRRRRRRRORRRRORORRORORRRRRRRRRRRRORORRRRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRROOORRRRRRRRRRRRRROOORRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRRRRROORRRORRORRORRRRRRORRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRORRRORRRRRRRORORORRRRRORROORRRORORRRORORRRRRRRRRRORRRORRRRRRRORRRRORRORRRRRRRROORRRORRRRRRRRROOORRRORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRROORRRRRRROORRRRRRRRRRORRRRRRRRORRRRROORRRRRRRRORRRRRRORRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRORRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRROORRRRRROORORRRRRRROORORRRRRRRRRRRRRORRORRRORRRRROROORRRRRRRRRRRRORORRRORRRROROORROOORRROORRROORRRRRRRRRRORRRORRRORRRRRRRRRROORRRRRRRRRRRRRORRORRRRRRROROORRORRRRRORRORRRRRRRRORRRRORRRORRRRRORRRRORRRRRRRRRRRROOROORRRRRORRRRRORRRRRORORRRRRRORRRRRRORORRRRORRRRRRROORORRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRORRRRRORORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRROORRRORRRRORORRROORRRRRRROORRRRRRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRROORRRRRRRRORRRRRRORRRRORRRRRRRORORRROORRRRRRRORRRRRRORRRRORRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRORRORORRRORORRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORORRRORROORRORRRRORORRRROORROORRRRRRRORORRRRRRORORORRRRROORRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRORRRORRRRRRRRRRORRORRROOORRRRRRRRRRRRORRORRRRRRRRRROORRORRRRRROORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRORRORORRRROORRRRRORRRRRRRRRRORRORRRORRROORRRRRRORRRRORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRORORRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRROORRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRORRRRRRRRRRRRORRORROORRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRORRRRRRRORRROOORRRRRRRRORRRORRRRORRRORRRRRORRORRRORRRRROORRRRRRRRRRRRROORORRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROROORRRRORRRRRRRROORRRRRROORRRRORRORRRORORRRRRRRRRORRORRRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRORRRRRROROORRRRRORRRRRRRRRRORROORRRRRRRRRRRRRRRRRORRRRRRORRORRORRRORRRRRRRRRORRRRRRRRRRRRORORORRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRROORRRORORORORRRRRRORRRROORRRORRRRRRRRRORRRROORRRRRRORRRRRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORORRRORRRRORRRORRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRROORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRORORRRRRORRORRRROORRRRRRORRRORRRRRRRRRRORRORRRRRRRRRRORROORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRORORRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRORRRORORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORRROORRRRRRRRRRRRRORRRRRORRRRRRRRRRROORORRRRRRRORRRRRORRRROORRRRRORRRRRRRRRORRRORRRRRRORRORRRRRRRRRRRROORRORORRRRRRRORRRRRRROORRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRORRRRROORRRRRRRRRROORRRRROROROOROORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORORRORRORORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRROORRRRRRRORRORRROOORORRRRRRRORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRRRRRORRRROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORORRRRRRORRRORRRROORRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRORRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORROOORRRRRRORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORROOORRRRRRRORRRRRRRORROORORORRRRRRRRORRRORORRRORRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRORRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRORRRRRRORRRRRRRORRRRRROORRRORRRORRRRORRRRRROORRRRORRRRRORRRRRRRRORRRRRRORRORRRRRRRRORRRRORRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRORRRRORRRRORRRRRORRORRRRROROORRRRROORRRORRORORRRRRRRRORORRORORRRRRORRRORRRRRRRRRRRRRRRRRRRORORRORROORRRRRRRRRORRRRRRRRRRRRRRRRRORRROORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRROOORRRRRROOOORRRRRORRORORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROROROOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRROORRORRORORRORRRRRORRRRRRRRRRRRROORORRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRORRRORROORRRRRRRRRORRRRORRORORRORRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROOORRORRRRRORORRRRRRRRRRRRRORRORRORRORRRRRRRORORRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRORRRORORRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRORORRRRRRRRRORRRRRRRRORRRRRRRRORRORRRRRRRORRRRRRRRRRRORRORRRORORRRRORRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRROORRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRORRRRRRRRORRRRORORRRRRRRRRRROORRRRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORORRORRRRRRRRRORRORRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRROOROORRRRRRRORRRORRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRROORORORRRRRRORRRRRRRRRRROORRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRORRORRRRRRRORRORRRRRORORRRRRRORRRRRRRRORRRORRRORORRRRORRRRRORRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORRORRRRRRORORRRRRRORRRRRORORRORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRORRRRRORORRROORRORRRROROOORRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRROORRRRORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROROORRRORRRRRORRORORRRRRRRRRRRRRRRORRRRRROOORRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORORRRRRORORRORRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRROORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRORROORRRRRRORRORRRRRRRROROOORRRRRRRRORRRRORRRRRRRRROROORRRRRORRRRRROOORRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRROORRRRRORRRRRRRRRRRRRRORRRROOROORRRROORRRORRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRORRRRRORRRRORRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRROORRRRRORRRRRRRRRRORRRRRRRORRRRRRRORORRRRRRRRRORRRRORRRRRRRORORRRRRRRROORRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRORRRRRROOORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRORRORORRORRRORRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRORRRORRRRRORRRORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROROORORRRRORRRRRORRRRRRRORRRRORRORRORRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRORORORRRRORRRRRRRRRRRRORRRRRORRORRRROORRRRORRRRRRRRORRRRRRRRRRRROROOORRRORRRRRRRRORRRRRRRRORORRORRRRRRRRRRRRRRRRRROORRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRORORRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRRRRRRORORRRORRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRRORRRRRRRRORRRRRORRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRROORRRRRRRRRRORRRRRRRRRRORROORRRRRRRRORRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRORRRRRRRRRRORRORRRORRRRORRRRORROROORRROROORRRRORRORORRORRRRRRRRRORRRRRRRRRORROOORRORRORROORRRORRORRROORORRRORROORRRRRRRRRRORRRRRRRRRRRRRRRROORRRRORRRORORRRRRRRRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRRRORORRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRROROORRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRORRORORORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRROORRORRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRORRRRRRRRRRORRORRRRRRRRORRRRRRRRORRRRRRRRRRORROORRRORRRRORRRRRRORRRRORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRORRRRRRRRORRRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRORRRRRRRRRORORRRORRORRRRRORRRRRRRORRRRORRORRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRROORRRRORRORRORRRORORRRRORORRRORRORRRRRRRRRRRRRROORRRRORRORORRRRRRRRORRORRORRRRRRORRRRROROORRRRRRRORRRRORRROORRRROORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRORRRRORRRRRRRORRORRRRRRORRRRRRRORRORRRRRRRRRRRRRRRORRRRRORROORORRORRRROORRRRRRRRRRRROOOOROORRRRRRRRRRRROORORRRRRORRORRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROROORRRRRRROORRRRRRROORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRROORRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRORRRRRRROORORRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRROORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRRRRRRRRORRRRRRROORRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRORRROORORRRRRRRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRORORRRRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRORORRORRRROROORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRORORORRRRRORRRRROORRRRORRRRRRRRORRRROORRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRORORORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRRRRORRRORRRRORRRORRORRRRRORRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRORRRORORRRRRRRRORRRRRRORRRRRRRORORRRRRRRRRRORRORRRRRRRRORRRRORRRORRRRRRRORRRRRRORRRRORRRRRRRRRRRRORRRORRRRRRRORRRRRRRORRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRROROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRORRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORORROROORRRRRRRRRRRRORRORORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRORRORRRRROORRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORORRRRRRROORRRRORRRORORRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRORRRRORRRRRORRRRORRRRRORRRRRRRRRRRORRRRROORRRRRORRRRORRRORRRRORRROORRRRRRRRRRRORRRRRRRRRRRROORRRRRRORRRRRRRRORRRROORRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRORRROOORRRRORRRRRORRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRORRRORRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRORORRRORRRRRRRRRORRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRRORORRRROOOORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRROORORRRRRRRRRRRRRROORRRRRRRRORRORRRRORRRRORRRORRRRRRRORRRORRRRRRRRRRRRRRRORRORRRORRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRORRROORORORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRROORRRRRRORRRRROORRRRORROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRORRRROORRRRRORORRRRRRRORRRROORRORRORRORRRRORROORRRORRORRRORRRRRORRRRRRORRORRRRRRRRRRRRRRROORRRORORORRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRORRRRORORRRRRRORRRRRRORRRRORRRRRRRRRRRRRORRRRRORRRRRRROOORRRRRRRRRRORRRRRORRROORRRRRRRRRRORORORRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRORORRRRRRRRORRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRRRRRRRRRORRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRROROORORRRRORRRROORRRORRRRRRRRRRRRRRORORRRORRRRRROORORORRRRRRRRRRRRRORRRRRRRRRRRROORRORRRRRRRRORRRRRRRRROORRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRORORRRORRORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRRRRRORRRRORRRROROOORRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRROORRRORORORRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRORORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRORRRORORRRORRRRRRRRRROORRRRRRRRROORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRORRORRRRRRRRRRRROROOROORRRORORRORORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRORRORRRRORRRRRRRRORRORORORRRRRORRRRORRRRRORRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRROORRRRORRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRRRRORRRRORRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRORRRRORORRRRORRRRRRRRRRORORRRRRROORRORRRRORRORORRRRORRRRRRORRRRRRRROORRORRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRORRRRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRROORRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRORRRRORORRRRRRRRRRRRRRORRORRRRRRRRRRRROORRRRRRORRRRORRRRRRORROORRORRRRRRORRRORRRRRRRROROORRORRRRRRRORRRORRORRRRRRRRRORORRRRRROORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRROORRRRRRRRORRORRRRRRRORRRRORORROORRRRRRRRRRRRRRRRRRROORRRRRORRORRRRRRORRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRROORROORRRRORRRRRRRRRRRRRORRORRRRRORRRRRRRRRORRRRRRRRRRORRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRORRRRRRRRORRRRRROORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRROORRRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRORRRORRROORRRRRRORRRRRRORRRORRRORRROORRRRRRORRRORRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRORRRRRORRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROORRORRRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRORRORRRORRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRROROORRRRRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRROORRRRORRRRRRORRRORRRRORORRRRRRRRRRRRRRRRORRORRORRRRRORRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRORORRRORRRRRRRRRRRRRORORORRRORRORRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRORROORRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRORRRROROORRRRORORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRROORRRRRORRRRRORRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRORRORORRORRRRRRRRRORRRRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRROORORRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRORRRRORRRRRRRRRRORRRRRRRORRRORROORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRRORROORRRRRORRRRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRORRRRROROORRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRROORROOORRRRRROORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORORRRORRRRRRRRROORORORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRORRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRORRRRRRRRRORRORRRRRRORRRROORRRRORRRRRROORORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRORRRRRRRRORRRRRRRRRORRORRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROROROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRROOORRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRORRRRRORRRRRORRRORRRRRRRRRORRRRORRRRRRROORRORRRRRRRORRRRORROORRRRRORRORRRRRORRRRRRRRRRORRROORRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRORRRORRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRROORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRROORORRRORRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRORRRRRRRORRORRORRRRORRRORRORRRRRRORRRORRRRRRRRRORRORRRRORRRORORORRORRORRRORRRRRROROORRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRORORORROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRORRORRRRRRRRRRRORRRORRRRRORORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROORRORRRRRRORRRRRORORORRRRORRRRRRRRRRORRRRRRRRRRROROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORORORORRRRRRRRRRRRRRRORORORRRRRRRRRRRRRORRRRRORRORRRRRRRORORRRORRROORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRORORRRORRORRRRRORRRRORRRRRRRRRRRORRRRRORROORORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRORRRRRRRORRRRORRORRORRRRORRRRRRRRRRRRRRRRRRRORRRRRROORRORRRROORRRRRROOROORRRRRRORORRORRRRORRORORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRROORRRORRRRRRORRRORRRRRRORRRORRRRRRRRROORRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRORORRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRROORRRORRRROORRRRORRRRRRRORRRORRRRRRRRRRRRRRORRROORORRRRRRRRRROORRORRRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRRRRRORRRRROROORRRRRRORRRRRRROORRORRORORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORORRORORRRORRRRRRRRRRORRRRRORRORRRORRRRORRRRORRRRRRRRRRORRORRORRRRRRRRRRRRRRORORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRORORRRRRRRRRRRRRRRRORORROORRRRRROORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRORRORORRRRRRORORRRRRRRRRRRORRRORRRRRRRORRRRRORRRORORRORORRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRROORRRRORRRRRRRRRRRROORRRRORRRRRRRRRORORRRRORRRRRRRRRRRRRRRORRROROORRORRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRORRRRORRROOORRRRRRRORRRORRORORRORRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORORORRRRRRRORRRRRORRRORRRRRORRRRRRROORRRRRRRORRORRORRRROOOORRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRORRRRORRRRRORRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROOORRRORRRRRORRRRRRORRORRRRRORRRRROORRRRRRRRRORROORRRORRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRROORORORRRRRRRRRRROORRRRRRORRRRRRRRRORORRRROOORRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRROROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROOOOORRORRRRRORRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRROORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRORRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRORROROOORRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORORRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRROROORRRRRRRRRRORRORRRRRRRRORRRORRRRRRORRRRRORRORRORRRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRORORRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRORORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRORRRRRRROORRRRRRRRROOORRRRRRRORRORRRRRRRRRRRRORRRRRRRRROORRROORORRRRRRRROORRRRORRRRRRRRRRORRRRROORRRRRRRRRRRRRRORRORRRRRRORRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRROOOORRRRRRRROORRRRORRRRRRRRRORRORRRRRROORRRRRORRRRRRRRORRORRORRRRRRRRRRRRORRRROORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORRRORRROORRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRROROORORRRRRRRORRRRROOORRRORORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORROORRRRRRRORRRRORRORRRRRRRRRORRRRRORRRRRRORORRRRRRRRRRORORRRRORRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRROROORRORORRORRROROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRORRRRRRROROROROORRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRORROROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRORRROOORORRRRRRRRORRRORRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRROROORRRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRROORRORRRROOORORRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRORRRORRORRRRRRRORROORRRORORRRRORORRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORRRRRRORORRRORRRRRRRRRRRRRORRRRORRRRRRRRORRRRRORRRRROORRORRRRRRRRRRRRRRRRORRRRRRRRRROORORRORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRORORRRRRROROORRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRORRRORRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRROORORRRRORRRORRRRORRRORRRORRRRORRROORORRRRRRRRRRORORROROOOROROOORRORRRRRRRRRRRRROROORRRRRRRRRRRRRORRRRROORRRROORRRORRRRRRORRRRRRRRRRRRRRRRORRRRORORRRRRRORRRRRRRORRRRRORRRRORRRRRRRROROORORRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORORRRROORORRRRRORROROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRROORRRRRRORORRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRROORRROORRRRRRRRRORRROORRRRRRRRORRRRRRRRRRRRORORRORROORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRROORRRRROROROORRORORRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORROORRRROROORRRRORRRRRRRRRROORRRRRRORRRRORRRRRORRROORRRRORRORORRRORRRRORRRRRRRORRRRRRRRRRRRORORORRRRRRRRRORRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRRORRRORORRRRRORRRRRRRRRRRRRRORRRORORRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRORRRRRRRORRRRRRORRRRRRORRRRRRRRORRRORRORRROORRRRRRRRRRRRORORRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRORORRRRORRRRRORORRRRORRRRORRORRRRRRORROORRRRRRRRRRORRRRRRORRRORRORRRRRRORRRRORRRRORRRORORRRRORRRRORRORRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRORRRRORRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRORORRRRRRRRRORRRRRRRRRRRRRORROORRRORRRRORRRROORRRRRROROORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRORROROORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORORRRRRRORRRRRORRORRORRRRRRRORORRRRRRRRRRRORRORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORORORRRRRRROORORRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRORRRRRROORRRRRRRRRRRRRRORRRRRRRRRORORROORRRRRRRRRRRRRRRRROROROROROORRORRRORRRRORRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRORRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRORORRRORRORRRRRRRRORRORRRRRRRRRRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROOORORORRRRRROORRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRROORORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRROOORORRRRRRROOORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRORRROORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRORRRRRRRRROORRORRRORORRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRORRRORRRRRROORRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORORORRROOOORRRRRRRRORRORRORRORORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRORRRRRRRRRRORRRORRRRRORRORRRRRRRRRRRRRRRRRORRRRROORRORRRRRRORRRRRROORRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRORRRRRRRRRRORRRORRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRORRROORRRRRRRRRORRRRRORRORROROORRRORRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRORRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRROORRRRRRORRRRRRRROORORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRROORRRRRRRRRORRRRRRRRRORRRRRROORORRRRRRROROORRRRRRRRRORRRRRORRRRRRRRRRRRORORRRRRRRRORRORRRORRRRRRORRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRORRRRRRRRRORRRORRRRROORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRORRORRRORRRRRRRORRRRRRRORRRRRRRRRROORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRORRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRORRORRRRRRRRRRRORROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROOORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRORRORRRORRORRRROORORORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRORRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRRROORORRORRRRROOROORRRRRRRRRRRRRRRRROROORRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRORRRRRRRRRRORRRRRORORRRORRRORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRROOORRRRRRRRROOORRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORORROORRRRORRRORRRRRORRRRROORRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRORORRRRRRRRORRRRROORROROORRORRRORRRROORRRRRRORRRRORRRRRRRRRRRRRRORRORRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRORRRORRORRRRRRRRRRRORORORRRORORRRRRRRRORRRRRROROROORORRRRRRRRRORRORRRRRRRORRRRORRRORRRRRRORRRRRRRORRRRRORRORRORRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRORRRRRORORRRRRRRRRRRORRRORRRORRORRRRRRRRRRRRROOOORRORRRRRRRRRRORORRRRRRRRORRORORRRRORRRRRRORRORRORRRRROORRORRRRRRRRRORRRRRRROORORRRROROROORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRORRORORORRRRRRRRRRRRRRRRORRROROORRRRRRROROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORROORRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRORRRROORORRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRORRRRROORRORRRRORRRORRRRRRRRRRRRRRORRRRORRRRRRRRORRRORORORRRORRRRRORORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRORRORRORROORORRRRRRRRRRRRRORROOOORRRRRRRRRRRRRRRRRRORORRRRRRRORRRRROORRRORRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRORRRRRRRRRRROROORORORRRRRRRORRRRRRRRRRRRRORORRRRORRRRRRRORORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRORRORRRORRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRORRRRRRRORRRRRRRRROORRORRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRORORRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRORRRORRRORORRRRRRORRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRRRRRORRRRORRRRRRRORRRRRRORRRRRRROOORRRRORRRRRORRRRRRRORRORRRRRRORRRRORRRROOOORRRRRRRRRORRRRRRRRRRRRRRROORORRRORRRRRRRRRORRROOORRRRORORRRRRRORRRRROORRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRORRORRRROORORORORRRRRRRRORRORRRRORRRRRRRRRORRRRRROORRRRRORRRRRRORRRRRRRRORRORORRRROOORRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRROORRRRROORORRRRRRRRRORORRRRRRRRRRRRRRRRORORRRORRRRRRRRRORORORRRRRRRORRRORRRRRRRRRORRORORRRORRRRRRRRRORRORORRRORRRRRRRRRRRORRRRRRRROORRORRRRRRORRORRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRROORRORRRORRROORRORRRRRORRRRRRRRRRRORRRROORRRRORRRROOROORORRRRORORRRRRRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORROORRRRRRRRRRRRRRRRORORRRRRRRRRRRROORRRRRRRRORRORRORRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRROORRORRRRRRRRROROORRRRRRRRRRRRRRORRORRRRORRRORRORRRRRORRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRROORRRRRRRRORRRRRRRRORRRRRORRRRRRRRORRRRRRROORORRRRRRRRRRRRRRRRRRRRRROORRRRORRRRROOORRRRRRRRRROORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRORRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRORORRRORRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRROOROOORRRRORRRRRRRORRRRORRRRRRRRRRORRRRRRORORRORRORRRRROORORORRRRRRRORRROOORRORRORORRRRRRRRROORORORRORRORRRRRRRORRRRRRRORRRRRORRORRORRRRRRRRORRRRRROORRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRRRRROORRORORRRRRRRRRRORRRROORRORRORRRORRRRRRRRRORRRRRRRRRRRRRRRORORRRRRROORRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRORRRRORRRRRRRRRRRRRRRORORROORRRRRORRRRRRRORRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRROORRRRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRORRRRRRRRRRORRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRORORRRRRRORRRRORRRRRRRRRRORRRORRRORRRRRORRRRORRRRRRRRRRORORORRRRRORORRRRRRRRORORORRRRRRORORRRRRRORRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRORRRROOORRORRRORRRRRRORORRRRORRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRORRRORROOORRRRORRRRORRRRRRRRRORRRRRRRRRORRRRRRRORRORRORRRRRRORRRORRORRRRRRRRRRRORRROOORROROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRROORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRORRRORRRRRORRRORRRORRRRRORRRRRRROORRRRRRRRRRRRRRRRORROORRRRRRORRRRORRRRORORRRROOORRRRRORORRRRRRRRRRORRRRORRRRRRORRRRRORRRORRRORRRRORRRRRORROROORRORORRRRRRRRRRRRRRORRRRORRORRRRRRRROORRRORRRRORRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROOORRRRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRROORRRRORRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORRRRRORRRRRORRRRRRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRORRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRROORORRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRORRRORRRRRORORRRRRRRRRRORRRRORROOORRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRORORORRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRORORRORRRRRRRRRRRORRRRORRRRORRRRRRRORRRORORRRORRORRRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRORORORRRORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRROORRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROROROORRRORRORRRRRORRORRRRRRRRRRORRRRRRORORRRORRRORRORRRRRORRRORROOORRRORRORROROORRRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRORRRRORRRRRRORRRROORORRRRRRORRRRRRRRRORRRRORROROORORRRRRORRRRRRRRRRORRRRROROORRRRRRRRRRRORRRRRRRRORRRRRRRRRROORRRORRRRRRORRRRRORORRRORRRRRRRRRRRRORRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRROORRRRRORORORRRORORRRRROOOORRORRORRRRRRRRORRRRORRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRORORRRRRRRRORRRRRRORRRRORRORRRRORRRRRRRRRRORORRRRRORORRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRORRRORRRRRRORORORORRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRORORRRRRRRRRRORRRRRORRRRRRRORRRRRRRORORRRRRRRRRORORROORORRORORRRRRRRORRRRORRRORROOORORRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRORRRRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRROORRRORRRRORRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRORRRRRRRRRORRRROOORORRORRORRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRORRRRRRRORRRRROOORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRROORRRRRRRRRROORORROORRRORRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRROORRORORRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRRROORRORRRORRRRROORORRRORRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRROORORRRRRRRRORROORRORRRRRRRROOROOORRRRRRRRROORORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRORRRRRORRORRRRRRRRRORRORRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRROORRRRORRORRRRORORRRRORORRRRRRRORRRORRRRRORRRRRRRRRRRRORRRORRRRRRORRROORRRRRORRRRRRRRRRRORORORRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRORORRRRRRRORRRORRORRORRRRRRRRRRRRRRRRORRORRRORRRRRROORRRORRORRRRRRRRRORRRRORORRORROROORRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRORORRRORORRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRORRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRORRRORRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRORRRRRORRRRRRRORORRRRORRRRRRORRORRRORRRRRRRRRRRRRORRRRROOORORORORRRRRRRRRRORRRORRRRRRRROORRRRRRRORRRRORRRRRRROORRRRRRRRRORORRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORRORRRRRRROOORRRRORRRRORRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRORRORRORORORORRORRRRRRRRORRRRRRRRRRRRRRORRORRRRRORORRRRRRRORORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRROORRRROORRRRRRRRRRRRRRORRORRORORRRRRRRRRRRRORRRRORRORRRRRRRORRRRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRORRRRORRRORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRROORRRRRORORRRRRROORRRRRRORORRRRRRRROROORRRRRRRRRRRRRRRRRRRORRROOOORRRRRRRRRRRRRRORRRRRORRRROROROORRRRRORRRRRRRRRRORRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRROORRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRORROROORRRRORRRRRRRORRRRORRRRRRRRROORRRROORRRRRORRRORRRRRRRRRRRRRORRRORRORRRORRRRRRRRORORRRORRRORORROORRRRRRRRRRRORRRORRRRRRORRRRRRORRRROORORRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROOORRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRORRRRRRRRRRRORRRRRRROORRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRORRRRORRORRORRRRRRORRRRRRRRORRRRROORORRORRRRRRRRRORRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORORRRRRRRORRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRORRORRORORRRRRRRRRROORRRRROOORRRRORRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRROOORRRRRRRROORRRORRRRORRRRRRRRRRRRRRRRRRORRORRRRRRORRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRRROORRRRORRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRROROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRORRRORRRRRRRRRRRRRORRRORRRRRRORRORRORRRRRRRRRRRRRRORRORORRRRROORRRRRRRRRORRRRRRORRRORRRRORRRRRRRRRROORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORORRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRORRORRRRRORRRRRRRORRRRRRORRRRRORRRORRRRRRRRRRRORORRRRORRRRRORRRRRRRRRRRRRORRROORRRRRRRRRORRRRRRRRORRRRORROOROORRRRRORRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRORORRRRORORRORRRRRRRORRRRRRROROOORRRRORRRORRRRRRRRORRORRRORROORRRRORRRORRRRRORRORRRRORRRORRRRRORRORRRRRRRRRRRRRORROORRRRRORRRRRORORRRROORRRRRRRRRRRRORRRRRORORRRORORRRORORROORORRORORRRRRRRRRRRRRRRRRROOORRRRRORRRRRRORRRRRRRORRRROROORRROORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRORRRROORRRRRRORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRROORORRRRROORRRORRRRRRORRRRRORRRRRRORRORORRRRRRORRRRRRORRRRORRRRRRRRROORRRRRRRRORRORRRRRRRRRRORORRRORRRRRRRRORRRRRRRRRORRRRRORRORRRRRRORRROORRRRRORRRRRRRORROORRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRORRRRORROORRRRRRRRRORRRRRRORRRRRRRORRRRRRRORRRRRRORORRRRRRROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRROOORRRRRORRRRRRRORRRRRORRORRRRRRRRRRRORORORORRRRRORRRRRORORRRORRRRORRRRRRRRRRRRORRROOOORORRORRRRRRRRRORRRRRRRRRORRORROORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORORRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRORRRRRRRRRRORRRRRRRRRORRRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRORRORRRORRORRRRORORORRORORRRRORRRRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRORRROORRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRORRRROORORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRORROORRRRRRRRRORRRRRRROOORRRRRRRRORRRORRROOORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRRORRRRRORRRRRORRORRRRRORRRORORRRORRRORROOORRRRRRRRRRORRRRRRRRORORRROROORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRROORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRORRRORRRRRRRORRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORORORRRRORRRRORRRORRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRORRRRORRRRRRRORRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORRORRRORRORRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRORRRROORRRRRRORRRRRROORRRRRRRRRORRRORRROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRORRRRORRRRRRRRORRRRRRROORRROORRRRRROROORRRRRORRRRRRRRRRRRRORRRRRORRRRRORORRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRORRRRRROROORRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORORRRRRRRRRRRRORORRRRRRRRRRRRORRRROORRRRRORRRRRORRRRRRRORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRORORORRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRROORRRRRORRRRRRRRRRORRORORROROORRRRORRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRRORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORORRORORORRORRORORRORORORRRRRRRRORRRRRORRRRORRRRRRRRRRRRROOOORRORORRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRORRRORRORORRRORRRRRRRRRRRORRROORRRRROOROORRRRRRRRORRRRRRRORORORRRRRRRRRRRORRRORORRRRRORRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRORRRRRRORRRRRRRRORRRRRORORRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRORRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRORORRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRROORRRRRRRRRORRRRORRRORORRRORRRRRRRORORRRRRRRRRRRRRRRORRRRRORORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRORORRRRRRRRRRORRRORRRORRRRRORRRRRRRRRORRRRORRRRORRRRORRRORRRRRRRRRRRRORRRORRRRRRORRORRRORRORORRRRORRRRRRRRRRRORRRRROORRRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRRRRRRRRRORRRORRORRRORRRRRRORROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRORRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRORRRROORRROORRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORROORRRRRRRRORORRRORRORRRRRRRRRROOORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRORRRRRORRRRRRRRROORRRRRRORRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRORRRORRRRRRRRRRRORORRORRORRRRRORRRRROROORRRRRORRRRRROROORRRRRRORRRRRORRRRRRRRRRRRRRRORRRORORORRRRRORRRRRRRRRRORRRRRRRORRRORORRRRRRRRRRRRRRRRRROOORROORRRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRORORRRRRRORRRRRRRRRRRRRRROORRRRRRRORRRRORRRRRRRRRRORRRRORRRRRRRRORRRRRRRORRRRRORRORRRORRRRORRORORRRRRRRRRRRRRROORRRORRRRRORRRRRRRORRRRRORRRRRRORRRRRRRRORRRRRRRRRORORRRORRORRROORRRRRRRRORORRRRRRRRRRORRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRROORRRRRRRRROORRORORRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRORRRRRROORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRORRORRORORRRRORRRORRORRRRROORRRRRRRRRORRRORRRORRRORRORRRRRRRRROROORROORRRORRRRRRORRRORORORRORROORRRRRRORRROORRRROORRRRORRRORRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRORRROORRORRRRRRRRRRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRORRRRRORRRRORRRRRRRRRORRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRRRRORRORORRORRORRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRORRORRORRROORRRRRRORORRRROOORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRROORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORORRRRORORRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRORRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRROORRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRORRORORRRRRRRROORRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRORRRRRRRRRRORORRORRRRRRRRRRORRRRORRRRRRRRRRRORRORRORRRRRRORORRRRRRRRRRRRROORRRRORRROORORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRORRRRORRRRRORRRORRRRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRORRORRRRRRRRRORRRRRRORRRORRRRRRRRRRRRORRRRORRRRRRRORRROOORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRROROOORRRRRRRRRRRRORRORRRRRRRRRORRORRRORRRRORRRRRRROROOORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRORRRRRORRRRRORRORRRRRROORRRRRRRRORORRORRRORRRRORRRRRRRRRRRRRRROROORRRORORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRORRRRRRRRRRRRROOORRORRRRRRRRRRORRRRRRRRRRRROOROOROORRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRROORRRRRRRRRRRRRROORORRRRRORRROORRRRORRRRRRRRORRRRRRRRRRRRRRRORORRRRRORRORRRRORRRRRRORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRORRRRRRRRRRRRRRRRRRRRORROOOORRRRRORORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRORRRORORRORRRRRRRORRRRRRRRORRORRRRRRROORRRRRRRORRRRRRRRROORRORRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRORORRRRORRRRROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROORORRROORRRRRRRRORRRRRORRRORRRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRORORRRRRRRRORRRRRORRRRORRRRRRRORORRRRRRRRRRRRRRRRRROOORRRRRRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRROORRORRRRORRRRRRRRORRORRORRROROORRRRRORRRRRRRORRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRROORORORROOOORROORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORORRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRORRROORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROORORRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRORRRRRRORRRRRRORORRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRORRRORRORRRRRRRRRRRRRORRRORRROORRRRRRRRRRRRROORORRRRRORRRRRRRRRRRRRRRRRRORORRORRRRRRORORRRROORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRORRRRRRRORRORRORRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRROORORRORORORORRRRRORORRRRRRRRRRRRRROORRRRRRRORRRORRORRRRRRRRRRRORRORRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRORRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRORORRRRRRRORRRORRROROORRRROROROORORRRRRRRRORRRORRORRRRRRRRRRRRORORRRRRRORRRORRRRRRRRRRRROOORORRRRORRRRRRRRRRORORRRORRRRORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRROORORRRRRRRRROORORRRRRROORRRRORRORRRRRRRRRORROORORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRORORRRRORROORRRORORRRRRORRRRRRRRRRRROOORRRORORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRORORRORRORRRRRRRRRRRORRRRRRRRRRRROORRRRROORRRRRRORRORORRRRORRORRRORRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRORORRRRRRRRRRRORORRRRROROORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRROORORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRORRRRRRORRORRRRORRRRRORRRRORRORROORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRORRRRRORRRORRORORRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRORRRRRRRRRORRRRORRRRORRRROORRRRRORRRORRRRRRRRORRRRRRROORORRRRRRRRORRRORRRRRRRORRRRRRRRRORRRRRRRRROORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRORRRRRRORRRRRRORRRRRRRRORRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORORRRORRORRRRRRROOORRRRORORRRORRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRORRORRRRRORRRORRRRORROORRRORRRRORRORORORRRRORRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRROORRRORROOORRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROOORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRROOORRORRRRRRORORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORORORORRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRORROORRRORRRRRRRRRRRRRRRRRRRORRORRORRORORRRRORRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRROORRORRRRRRRORRRRRORRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRORRRRRRRRRRRRRRRORRRRRRROROORRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRORORRRRORRRRORRRORRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRORROROROORORRRRRRRRORRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRORRRRRRRRRORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRROORRROORORRORRRRORRORRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRRRORRORRRRRRRRRRRRRRRRORRRRORRROORRRRORRRRRRRRRRRRORROORRORORRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRROOORRRRRRORRRRRORRRRRRRORRROORRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROOORRRRORRRRRORRRRROORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRROORORRRRRRRRRRRRRRRRRRORROORRRRORRRORRRRORRRRRRRORRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRORRORRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRORORRRRRRRRRORRRRRRRORRROROORRRRORRRORRRRRRRRRRRRORORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRORRRORORRROORRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRORRORRRRRRRRRRRRRORRRROORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRRRRORORRRORRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRROORRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRORORRRRRORRRRRRRRROORRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRORRORRORRRRRRRRRORRRORRRRRORRRRRRRRORRRRRRRORORRRRRRORRRRRORRRRRRRORORORRRRRRRRRRRORORORRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRORORRRRRRRORRORRORRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRORORRRRRRRRROORORRRRRORRRROOORRORORRRRRRRORRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRORRRRRRRRRROORRRRRORRRRRRRRRROORRRRORRRORRORORORROROOROORRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRROORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRORORORROOORRRRRRRRRRRRRRRORRRRRROORRRRRRRRORRRORRRRORRRRRORRRRRRRRORRRRRRRRRRRORRRROROOORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRORRORORRRRRRRRRRRRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRRORRRORRRRRORRRRROOORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRORRROROORRRRRRRRORRRRORORRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRORRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRROORRRRRRROOROORRRRRRORRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRROORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRROORRRRRORORRRRORRRRRRRORRORRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRORRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRORRRORORRRRORRRRRRRRRRRRORROORRRRORORRRRRORRRRRRRRRRRORRRRRRRRRROORRRRORRRRRRRRRRRRORRROORRRRORRORRRROORORRRRRORRRRRRRRRORRRRRRORRRORRRROORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRORORORRRRRRRRORRRRRRRRORRORRORROOOORRROORRRRRRRRRRRRRRRORRRRROROORRRRRRRRRORRRRORRRRRORRRRRRRRRORRRRORRRRRORORORORRRRORRRRORRORRRRRRROORRORRRRRRRRRORRRRRORRORRRRRRRRRRRRORRORRRRRRRRRROORRORRORORORRRROORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRROORRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORORRRRRRRRRRRRRRRORRRRRRRRRROORRRRRROORRRRORORRRRRORRRRRROORRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRORRRRRRRRRRRORRRRROORORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRORRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRORORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRORRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRROORRRRRRRRRRORRRORRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRRORRORRRRROORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRORRRRORRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRORORRRRRRRORRRROORORRRRRRRRRRRRRRRORORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORORROORROORORRRRRRRORRRRROORRORRRRRRRRROROORRRRRRROORRRRRRRRRORORRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRORORRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRORORORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRRRRRRRRROROORRRORRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRRROORRRORRRRRRRRRRRRORRRORORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORORORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRROORRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORORRORORRRRRRRRRRRROORRORRRRRROORRRRRRRRRRORRORRORRRORRORROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRORRRRRRRRORORRRRROORRROORORRRRRRRRORRRRRORRRORRRRRRRRRORRRRRORRRRORRRORRRRRROROORROORORRRRRRORRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRORORRRRRRRORRROORRRRRORRORRRRRRRRRRRRRRRORRRRRRORRRORRRRORRRRRRRRRRROORRRRRRRRRORRRRRRRORRRRORRORRRRRRRROORRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORORORRROORRORRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORORORRRRRRRRRRRRROROROORROROORRRORORORRRRRRRRORORORORRRRORORRRORRORRRRRRRRRRRRRRRRRRRRROORROORRRRORROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRORORRRRRRRRORRRRRRRRRRRORORRRRRRROOORRRRORRRROORRORORRORROORRORRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRROORRORORRRRRRRRRRRRRRRRORRRORRRORRRRRORRORORRRRRRRRORRORRRRORRRRORRORRRRRORORRRRRRRRRRRRRRORORORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRORRORRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRORRRRRRRRRORORORORRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORORORRROORRRRRRRRRORRRRORROORRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRORRRRRRRRRRORROOORRRRRRRORRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRROOORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROOOORORROOORRORRRRORRRRRRRRROORRRRRRRROORRRRRRORRRROORRROORRORORORRORRORRRRORRRRORRORORRORRRRORRRRRRORRRRRRRRRRRRORRRRRRRORRRROORORRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRROROOOORRORRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRROORRRRRORRORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROORRORRRRRORRROORROORRRRRRORRRRRORRRRRORRRRRRORRRRRRRRRORRRRORRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRORRRRRRORRRORRRRORRRORRRRRRORRORRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORORORRRORRRRRROOORRORRRRRRROROOORRRRRRRRRRRRRRRRRRORORRRORRORRRRRRRRRRRRRROORRRRORORRORRRRRRRRRRRRRRRORORRORORRORRRRRORORRORORORRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRROORRORRRRRORRORRROORRRRRRRROOORORRRRROORRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRRRRRROORRRRRRORRRRRRRRORRRORRRRRRRORRRROORRRRRRRRRRRRRRRORRRORRRRRORRORORROROROOORRRRORRRRRRRRRRRRRORRORORRRRRRRRORRROORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRORRORROORRRRORRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRORRRRRROROORRRRORRROORRRRRORRRRRRRORRRRRORRRRRROORRRORRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRORRRROORRRRRRORROOROORRRRRRRRROORRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRORORORRRRRRRRRRRROORRRROOORRRRRORRRRRRROOORRRRRRRRRRRRRROOORRROORRRRRRRORRORRRRRRRRRRORRORRRRORRRORRRRRRRRRRRRRRRORRRORRRRRRORORRRRRRRRRRORORRRRRRRRRORRRRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRORRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRROROORORRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRROROORRRRRRORRRRRRORRORRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORORORORRRRRRORORRRRRRRORORRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORORRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRORRRORROORRRRRRRRRRORRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORRRRRRRORRRRRRRRRRROORORORORRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORRRRRORRRRORRORORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRORORRORRRRRRRRRRRRRRORRRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRRRRORRRRRRRORRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRORRRRORORORRRROORRROORRRORRRRRORRORRRRORRRRRRRROORRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRORRRRRRRORRRRRRRRRRRROROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORROORRRRORRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRORROOORRORRRRRRRRRRRRRRROROORRRRRRRRRRORRORROORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRROORRRORRRRRRORRRRRRRRORRORRORORRRRRRRRRRRORRRORRRRORRROORRRROOORRRRRRRORORRRRRORRRRRRRRRRORRORRRRRORRORRRRROORRRRORRRRRRRRRRRORRRRRROOORRRRRRRRORORRRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRORRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORROORRRRRRRRRRRORRRRRRROROORRRORORRRRRROORRRROORRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRROORRORRRRRROORORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRROORRORORORRRRRRRRRORRORRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRRORRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRORRRORORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORRRRORRRRRRRRRRRRRRRRORORRRORRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRORRORRRRRRRRRRRORRRRORRORRORRRRRORRRRRRRRORRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRROOORORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRROORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRORORRORORORRRRORROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRROORRORRRORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRROORRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRORRRRRRRRORORRRROORRRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORORRRORRRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRROORRRRORRRRRRRRRRRROORRRRRRRRRRRRRROORRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRROORRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRORRRRRRRORRORRRROORORRORRORRRRRRRRRRRRRRRRRRRORRRRORRRRRROROOROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRORRRRORORORRRRORRRRRRROROROROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRROORRORRRROORRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRROOOOROOORRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRORRRROORRORRRRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRORRRORRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRORRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORORRRRRRRRORRRORRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRROORORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORORRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRROORRRRRRRRRRRRRORRRRORRORORRROROORRORRRROORRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORORRRORORRRRRRORRRRRRRRORORRRRORORRRRRRORRORRRRRORRRROORRRRRRRRORORRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRORORRRRRRRRRRRRORRORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRROORRROORORRRRRRRRRRRRRRRRRRRRRRRRROORORRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRROORRRRRRORRROORRRRRORORRRRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRORRRRORRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORORRRRRRORRRRRROORRRRRORRRRRORRRRRRRRRRRORRRRRRRRRORRRORRRRRRORRRRRRORROROROOORRRRRRRORRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRORORRRRRRRORROOORRRROORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRROORRRRRRORRRRRRORRRRORRRRRORORORRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORRRRROORRRRRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRORRRRRORRRRRRRRROORRORRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRORORRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRROORRRRRRRORRRROORRRRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORORRRORRORRRRRORRRRORRRRRRRRORRRRORORRRRRORRORRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRORORRORRRRORORRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRORRRORRRRORORRROORRRRORRORRORRRRRRRRRRRRRRRROOROORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRORRORRORROROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRROROROORRRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRORRRRRRRORRRRRRORRRORRRRRORRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRROORRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRROORRRORRRORRRRRRRRRRRRRRRRRORORRORRRORORRRRRRRRRRRRRRRRRORORRORROROORRRRRORRRRRRRRRRRRRRRRRRRRORRRRROORORRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRRRRORRRROORRRRRORRRORRRRORRORRRRRORRRORRORRRRROROORRRRRRRRORRRORROROORRRORRRRRRRRRRRRRRRRRORRRRORRRRORRRORORRRORORRRRRRRRRRRRRRRRRRRORRORRRRORRRRRORRRROORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORORORRRORRORRROORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRRRRRRRRORRORRRRRRRORRROOROORRRORRRRORRRRRRRRRRRRRRRRROOOOORORRRRRRRRRROORRRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRRRRORORRRRRORRRRRRORRRORORRRRRORRRROORRRRORRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORRORRRORRRRROORROORRRRRRRRRRRRORRORORRRRROORORRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRORRRRRRRRRRORRRRORRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRORRRRRORORRRROOORRRRRRRRRRORRRRORORRRRRRRRROORRRORRRRRROORRORRRRRRORRRRRRORRRORRRRRORRRRRRRRRRORRRRRRRROORRRRRRRRORORORRRRORROORRRROORRRROORRRRRRORORRRRRRORRRRRRRRRORRRRRRRROORRRRRRRRRORORRRRRRRRRRRRRRORRORRRRRRRORROORRRRORRRRRRRRORRRRRORRORRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROORORRRRRRRORRRRRRORORRRRRRRORRRRRRORRORRRRRRRRRRORRRRRRRRRRRORRRRORRORRORRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRORRRRRRRRORRRROORRRRORORRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRORORRRORRRRRRRRRRRRRRORRRRRORRRRORORRORRRRRRROORRRRRRRRORRRRRRORRORRRRORRRRRRRORRRRORRORRRRORRRRRORRRRRRROORRRRRORRRRRRRORRRRRRORRORORRRRRRRRRRRRORORRRRRRRRORRORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRROOORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROROROORORORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRORRRRRRRRRORRRRRORRRORROORRRRRRRRORORORRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRRRORRORRORRRRRRRRRRRROORRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRROORRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRORRORRORRRRRRORRRRRRRRRORORRRRRRORRRORRRRRRRRRRRORRRRRRRRORRRRRRRROORRRRORRRRRORRRRRRRRRORRRRRRRORRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRRROORRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRORRRORRRRRORRRRORRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRORRROORRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRORORRRRRRROORRRORORRRORRRRRRRRRRRRRRRRRROOORRRRORRORRRRRRRRRRRRRRRRRORRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORORORRRRRRRRROOORORRRRRRRRRRRRROORORRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRORRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORORRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRROORORRORRRRRRRRRORRRROORRRORRRRRRRRRRRORORRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRROORRRROROOORRRRRRRORRRRROORRRRRRRRORRRRRRRRRRORRRRRORRRRRRORORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRORORRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRROROORRRRORRRRRRRRRRRRRROORRRROORORRRRRORRRRRRRRROORRRORRRRRRRRRORRRORRRRORORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOROORRRRRRRORRRRRORORRRRRORRRROORRRRRRROROORRRRRRRRRRRORORRORRRRRRROORRRRRRRRRRRRRRRRRROOORRRRRORRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRRRORRRRRRORORRRROORRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRROORRRRORRRRORRRORRRORRORRRRRRORRRORRRRRRRRRRRORRRRORRORORRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRORRRORRORRRRRRRRRRRRRRORRORRRRRRROORRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRRORRRORORRORRRRORRRRRRORRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRRRRRORRRRRRRRROROORORRRORRRRRRORRRRRRRRRRRRRORRORRRRRRORRRORRORRRRRRRRRRRRRRRORRRROORRRRRORORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRORRRRRRRRRRRORROROORRORRRRRROORORORRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRORRRRRRORRRRRRRORORORORRRRRRRRRRRRROROORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRRRRRRRRRRORORRROOORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRROROORORORRROORRORRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRROORRRRRRORRRRRORRRRRRORRRRRROORORRORRRRRORRRORORRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORORRRRROORRRRORRRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRORORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRORROOORRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRORROROORRRRRORRRRRRORRRORRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRORRRRORORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRORRORRRROROROORORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRORORRRRRRRROORORRRRRRRRRRRORRRORRRRRRRRROORORRORRRRRRRRRRRRRRRRROORRORRORRRRRRRORRRRRRRRRORRORRORRORRRRRORRRRORRROORRRRRROORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRORORRRRROORRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRROORRRRRORRRRRRORRRRORRRRORRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRROORORRRRRROROORRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRROOORRRRRORRRORRRROORRRRRRORRRRRRRORRRRORRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRORORRRRRRRRROORRRRRROORRRRRRRORRRRROORRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRORRRORRRRRRRORORRRRRORRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRORRRRRORRRRORRRORRROORRRRRRRRORORORRRRRORRRRRRRRRRROOORORORRRRRRRRRRRORRRRRRRORROORRORRRRRRRRRRRRRRRRORRRRORRRORRRRRRORRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROROOORRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRORRRRRRRRORROOOOORRRRRORRRRORORRRRRRORRRRRRORROORRRRRRRRRRRRRROORORORORRORRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORRORRORRRRRRORRRORRRRORRRRRRRRRORRRRORORRRORRRRRRORRRRRRRRRRRORORORRRRRRRRORRRRRRORRORRORRRRRRRRRRRRORRRORRRRRORRRORRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRRORRORORRRRRRRRRRRRRORRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORROORRRRRRRRRRORRRRRRRRRRORRRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRORORRRRORORRRRRORRRRRRRROORORROORRRRRRRRRRRRORRRRRRORRRRORRRRRRRORRRRRRRORRRRRRRRRROORRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRROROROORORRRRRRRRRORRORRORRRRRRRROROORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRORRORRRRRORRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORORRORORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRORORRRRRRRRRRRRRROORRRRRRRORORRRRRRRRORRRRRRORORRORRRRRRORRRRRRORRRRORROORRRRRRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRROOORORRRRRRRRRRRORRRORRRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRORRRRRRRRORORRRRRRRRRRRRORRORRRRRRRRORRORORORRRRRRRRORRRORRRRRRRORRORRRRRRRRRRROOORRRRRORRRRRRRRRRRORRRRRRORORRORRRRORRRRORRRORRRRRRRRROOOROROORRORRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRROOORRRORRRRRRORRRRRRORRRRRRORRRRORRRRRORRORRRRRRRORORORRRRRRRRORRRRRROROORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRORRORORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRORRRORRRRRRORRORRRRRORRRRROORRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRROORRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRORORRRRRRRRRRRORORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRRORRRRROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRROROOORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORORRRRRROROORRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRRORRRRRRORRRRRRORRRRRORRORRORRRRRRORRRRRRRORRRRRRRRRORROOORRRRRORORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORRRRRRRORRRRRRRORRRRRRRRRRRORRORRRORORRRRORRRRORRRRRRRORORRRRRORRRORRRRRORRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORORORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRROORRRORRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRROORRRRRRRORORRRORRRRRRRRORRORRRRRRRRRORRRRRORORRRRRRRRRRRRRRROORRRRRORRRRRRRORORRRORRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORRRRORRRRRROORRORRORORRORRRRRRRROOORRRORRRRRRORORORRRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRORRRORRRORORRRRRRRRRRRRRRROORRORRRRORRRRRRRRORRRRRORRRROORRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRROORRORORRROROORRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRRRRRRORRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRORRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROROOORRRRRRRRRROORRRRRRRRRRRROOORRRRRRRRORRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRROORRRORORRRRORRRRORRRRRRRORRRRRRRORRORRRROORRRRRRRRRRRRRRRRRRRRRRROORRROORRRRORORRRRRRORRRRRRRRRRRRRROORRRRRRRRORORRRRRRORORRRORRRRORROORRRORORRORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRORRRRRRRRRROORRRRRORRRRRRORRORROROROORRRRRRRORRRRRRRRRRRRORRRRORRRRRORROORRORRRORRROORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRORORROROORRRRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRRROORRRRRRRORRRORRRRRRROOORRRRRRORRRRORRRRRORRRRRRRRRRRRRRORORRRROORORRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRORRRRRRRORRORRRORRRRRRROORRORRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRROORRRRRRROORORRRRORORRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRORRRORRRRRRRRRROROORRORRRRRRRRORRRRRRRORRRORRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROOOORRRRRRRROROORRORROORRRRROORRRRRRRORRRRRRRROROORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRRRRRRRORRRROROORRORRRORRRRRRORRRORRRRRORORRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRORRRRRRORRRRRROORRRORORRORRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORORORRORRRROORORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRORORRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORORORRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRROROOORRORRRRRRRRORRRRRRORORRRRRRRRORRRORRRRRRORRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORORRRRRRRRORRRORRRRORORRRRRRRORRORRRRRRRORRRORRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRROORRRRORORRRRRRRROORRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRORROORRORRRRRORRRRRRRRRRRRORRRORORORRRRRRRRRORRRRRRORRRRRRRORRORRRRRRRRORRRRRRRORROORRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRRORRROORRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRORRROORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROORRRORRRRRRRRRRRRROORRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRROROORORRORRRORRROORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRORORRRORRRRRRRRRRRORORRRRRRRRRRORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRORRRRRRRRRRRROOORRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRORRRRRRRRRORRORRRORRRRRRRRRORRRRORRRORRRORRRRRROORORRRRRRORRRROOORRRRORORRRORRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRORRRORRROORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRORRRORRRRRROOORORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRORRRROORROROORRRRRORRRRRRRRRORRORRORRORRRORRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRORRRRRRORRRORRORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRORRRORRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRORRRORRRRRORRRRRRRORRRRRORORRRRRRRORRRRRRRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRORRRORRRRROOORRRRRRRRRORRRORRORRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRROORRRRRRRORRORRRRRORRRRROORRROORRRRRRRRRRRORORRORRRRORRRRRRROORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRROORRRORORRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRORRRRRORRRRRRROORORROROORRRROROORRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRORRRRRRRROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRORRORORORRRRRRROORRRRRRRORRORRRRRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRROORRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRORORRRRRRRRRROORRRRRRRRRROOORRRRRORRRORRRRORRRRRRORRRRRRRRRORRRRRRRRROORRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRORORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORORRORORRORRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRROORRRRRRORRRRRRORRRORRRRORRRRRRRRRRRRORRROORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRORORRRRRORORRRRRORRRRRROORRRORRRRORRRRRRRRORRRORRORRRRRRRRRRRRRRORORRROROORRRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRORRORRRRORRRRORRRRRRRRRRRRRRORRRRRRRORRORRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRROROROOORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRORRROOOORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRORRRRRORRRRRRRRROORRRRRRRRRRRRRORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROOORRRORRRRRRRRORRRRRRRROORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORORRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORORRRRRRORRRRORRRRRRRRRRRRRRRRRRROORRRRRROORORRRRRRORRORRRRRORRRRRORORORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRROORRRORRRORRRRORRORRRRRRORRRRRRRRRRRRROOORRRRRRRRRORRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRORRRRRORRRRROORRRRRRRRRORORRROORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRORRRRRORRRRRRRRRRRROORORRORRRORRROORRRRRROORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRORRRRRRRRRRRRRRROORRRRRRRRRORRRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRRRORROOORRORRRRORORRORRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRORRRRRRORRRRRRRROROORRRRRRRRRRORRORRRORRRRRROORRRRRRORRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRORORRRRRRROORRRRRRRRORRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRROROOOOORRRRRRRRROORRORORRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROROOORRROROORRRRRRRRRRRROOORRRRORRRORRORRORORRROOORROORRORRORRRRRRROOORRRRRRRRRRORRORRRRORRRRRORRORRORORORORRRRRRRRRRRRRRORRROORRRORRORRRRRRORRRRRRRORORRORRRORRRORRRRRRORRRRRORRRRRRRRRRRORRORRRRRRROORRRRRRORRRRRRRRRRRRRRRORROORRRRRRRORRORRRRORRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRRRRRRORRRRORORRRRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORORRRRRRRORRRORRRRRRORRRORRRRRRRRROORRORRRRRRRRRRRRRRORORRRROORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORROORORRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRRROORRRORROOROORRROORRRRRORRRORRRRRRRORRORRRRRRROORRORRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRROORRRRORRRRRRRRRORRRORRRRRRRRRRORORORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRORORRRRROROORRRRRRRROOORRRRROORRRRORORRORRRRRRORORRRRRRRRRRRRRRORORRORRRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRROORRRRRRRRORRRRRRRROOORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRORRORRRRRROORRRRRORRRRORRRORRORRRRRRRRORRRRRRRRRRRRRROORRORRORRORRRRORRRRRRRORRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRORRRRRRRRRORRORRROROORRRRRRRRORRRRORRRORRORRORRRRORRRRRROORRRRRRRRRRRORRRRRRORRRRRRRRORRRRRORRRORRRRRRRORRRRRORRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRORRRRRORORRRRRRRRRROORRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRORORRRRORRROORRRRRRRRRRRRRRRRRRRORORRRRRRORORORRRRRRRRORRRRORRRRRRRRORRORRRRORRRORRRRRRRORRORRRRRRRORRRRRRROORRRORRRRROORRRROORRRRRRRRORRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRORRRRRRRRROORRORRRRRRORORRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRORORORRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRROORORRROOROORRRORORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRROOROORROORRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRORRRRRRRRORRRRRRRROOORRRRRRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORORRORRRRORRRRRRRORRRORROORRRRRROROORRRRRRRORRRORRRRRRRRRRRRRORRRORRORRRRRRRORRORORRRRRRRRRROROORRORRRRRRRRRORRRORORRRRROOORRORORRRRORRRRRRRORRORRRRORRORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRORRRORRRRRRRRRORORRRRRRRRRORRRRORRORRRRRRRRRRORRRRRRRRRORROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRORRRRRRORRORRRRRORRRRRRRRRRRRRROORROORRRRRRRRRRRRRRORRRRRRROROORRRRRRORRRORRRRORRRRRORRRORRRRRORORRORRRRRORRRRRRRRROORRRRRRRORRRORRRRORRORRRRRORRRRRRRROOORROORORRORRRRRORRRRRRRRRRRRRORRRRRRORORRRORRRRRORRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRROORRRORRORRRRRRORRRRRRORORRRRRRRRORRRRRRRRORRRRROORRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRORRORRRRRRRORORRORRRRRRORRRRRRRRRORRROORORORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRORRRRORORRRORRORRORRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRORRRORRRRORRRRRRRRORRRRRRORRRRRRROORRRRRRRRRRRROORRRRRRRORRRRRRRRRORORRRRRORRRRRROORORRRRRRRORRRRRRRROORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORORRRRRRRRRRORRRRORRRRRRRRRORORRRROORRRORORORRORRRORRRORRRORRRRORRRORRRRRROORORRRRRRRRRRRORRRRORRRRRORRRRRRRRORRRORRORRRRRRRORRORRRRRRORORRRRRRRRRORORRRORORORRRROORRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRORRRRRORRORRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRORRRRRRRORRRRRRRRRORRRROORRRRRORRRRRROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRORRORRRRRORRORRORRRRRRRORRRRRRRRRORRRRRRRRRRRRORORRORRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRORRRRRRRRRORRORRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRROOORORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORROORRORRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRRRORRRRRRRORRRRRRRORRRRRRRRORRRRORROORRRRRRORORORORRRRRRRRRRRRRRRORRROOORRRORRRORRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRRRRRORRRRRROOORRORRORRRRRRORRRRRORRRRRRRRRRORRROORRRORRRRRRRRRRRORRRRRRRRRRROOROROORRRORRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRROOORRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRORRRRRRROORRRRORRORRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRORRRRRRORRRRRRORROORRRRRRRRRORRORRRRORRROORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRORRORORRRROORRRRRROORRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRORORRRRORRRRRRORORRORROORRORRRORRRRRRRORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRROORRRRORORORRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRRRORRRRRRRORORROORRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRORRRORROORRRRRRRRRRRORRRORRRORRRRRRRRORRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRROORRRORRRRRORROORRRRRRRRRRRRRRRRRRORRRRRRORRRORORORRRRRRRRRRRRRRRRROROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRROOORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRROORORRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRORRRORRRRRRRRRRRROORRRRROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRRORRRORRRRRRRRORRORRRORRORRRRRORRORRRRRRRROOOORORRRORORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRROROORRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRORORRRRRRORRORORORRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRORRORRORRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRORRRROORROORRRORROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRROORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRORRRORRORRRRORRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRORRRRRRORRRRRRORRRRRRRRORORRRROORRRRRRRRRRRRRRRRRORRORORRRRRRORRRRRRRRRORRRRRRROORORRORRRRRORORRRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRORRRORORRRRRRRRRRRRRRORRRRRRORRORRRRORRRRRRRRRORRRRRRORRRRRORORRRRROORRRRORRRRRORRORRRRORORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRROORRRORRRORRORRRRRRRRRRRRRRRROORORRRRRRRORRORRORRRRORORRORRRRRRRRRRRRROORRRRRRRRORRRORRORRRRRORRRRRRRRRRRRROORRORORRORRRRRRRRRORORORRRRRRORRRRRRRRRORRRRRORRRRORRORRRRRRRRORRRRRRRRROORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRROORRRRROORRRRRORRROORRRRRORRORRRRRRORRORRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRROORRRORRORRORRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRRORRRRRRRRRRRRRROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRRRRRRORORRRRRRROORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORORRRRRRRRRRRRORORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRORRORRRORRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRORRRORRRRRRRRRRORORORORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRRRORRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRROORORRRRRORRRRRORRRORRRRRRORRORRRRRRRORRORRRRRRRRRRRORRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRRRRORRRRORORRRRRRORORORRRRRRRRRRRRRRRRRRROORRORROORRRRORRRRRRRRRRRRRRRRRROORRRORRRRRRORRRORRRRRRRRORROORRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRORRRRRRRRORRORRRRORRRRRRRRRRRRRORRRRRRRORRORORRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORORORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRRRRORRRRRROORRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRROOORRRRORRRRRRRRROOORRRRRORRRRRRRORRRRRORORRORRRRRRRRORORRRRRRRRRRORRRORRRRRRORRRRRRRROORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORORRORRRROORRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRORRRRORRRRRRRRRRORRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRROORRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRROOORRRRRROORRORRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRORRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRROORORRRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRORRORRRORRRRRRRRRRRORRROORRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRRRRORRRRRORRRRRRRORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRORORORRORRRRRORRRRORRORRRRRORRRRRORRRRRRRORRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRORRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRORRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRROORROORRRRRRRRORRRRRRORRRORRROORRRRRORRRRRRRRRROORRRRRRRRRORORRRRORRRRORRRRRORORORRROORRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRROORRRORRRRRRRRRRRRORRRROOORRRRRRRRRORORRORRRRRRRRORRRORRORRRRRRRRRRORORRRORORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRROROORRORRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRORORORRRRRRRRORRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRRORRRORRRRRRRORRRROORRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORORORRRRRRORRRORRRRRRROOORRROOROORORRRRRRRRRRROROORRRRRRORRRRRRRRRORRORRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRORORRRRRROORRRORRRRRORRRORORRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRRRORRRRRRORRRRRORRORRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRORORRRRRORRRRORRRRORORRRRRRRRORRRRORRRRRRRRRRRRRORORRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRORRRORRRORRRRRRRRORRRRRORRRORRRRRRRRORORORRRORRRRRROORRRRRROORORRRRRORRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRORRROOORRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORROORRRRORRRRRORORRRRRRORRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRORRRORRRRRORRRORRRORRRRRORROORRRROORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRORRRRORRRRRORRRRRRRORRRRORORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRORORRRRRRRRORRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRROORRORRRORRRRRORRRRRORRRORRRRRRRRRRRRRORRRROORRRRRRRRORRRORORRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRROOOORRRRRRORRRRORRORRRRORRRORRRRRRRORORORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORORORRRRRRRRORORRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRROORRRRRRRORRRRORRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRRRRRRRRROORORRRRORRRRRRORRRRRRRROORRRRRRRORRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRORRRRRRORRRRORRORRORRORRRRRRORROORRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRRRROOORRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRRRROOROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORORRRORRRRRRRRRORRRORRRORRRRRRORRRRRORRRRRRRRORRRRRRORRRRRRRORRRROORRRRRRORORRRRORRRORRRRRRRRRORRORRRRORRRRORRRRRORRRRRRORRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRRRORRRRRROORRRORRRRRRRRRORORRRRRRRRORRRRRORRRRRRORORRRRRORRRRRRRRRORRORRRRRORRRRRORRRRRRORRRRORRRRRORRRORRRRORRRORORRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRORROORRRRRRRRROORRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORROROORORRRRRRRRRRORRORRRRRRRRROORRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRRROORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRRROORRRRRRRORRRRRRRRORRRRRRRRRORORRRRRRRRORRRRRRRRRROORRRRRRORRORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRROORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRORRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORORRRRRRRRRORROOORRORORRRRRRRROORRRRRRRRRRRRRRRRRRRRROORRORRROORRRRRORRRRRRRRRRRORRRRRROORORRRRRRRRRRRRRRRRORRRRRRRRRRRRORROORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRORRRRRORRRRRRORRRRRRORRRRORRORRORRRRRRRRRROORRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRORRRORRRORORRRRRRRRRROORORORRRORRRRRRORRRRRRRRRRRRRRRRRRORORRRORORRRRRRRORRRRRORRRRRRORRRRRRRRRRRORORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORORRRRRRRRRROORRRRRRRRRROORROORRORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRROORRORRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORRRRORRROOORRRRRRRRRRRRRRORRRRRRRRORRRORRRRORRRRRRRRRROORRRRRRROORRRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRORRRORORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRROOORRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRROORRRRORRORRRRRRRRROORORRORRRORRORRRRRRRRRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORORORRRORRRRRRRORRRORRRRRRRRORRRORORRRRRRRRORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRORORORRRRRRRRRRROROORRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRROORORORRRROORRRRRRRORORORRRRRRRRRRRRORRRRRRORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRROROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRORRROROROROOORRRRRORRRRORORRRORRRRRRRORRRORRRRORRRRRRRRRRRORRRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRORRRRRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORRRORRRRRRRRROOORRRRRRRRRRRRRRRRROORRRRRRORRORRRRRRRRRRRRORRRRORRORROORRORRRRORRRRORRRRRORRRRRRORRRRRRRRORRRORRORRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRORORRRORORRORORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRROROORORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRROORRRORRROROORRORRRRRRRRRRRRORRRRRRRRRRORRORRRRORRRRORRRRRORROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRROORORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRROORRRRROORRRRRRRRORRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRORRRRRRRRROORRRORRRRRORORRRRORROORRRRRRRORRRRRRORRRRRRRRRRORORRORRORRRRRRORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRORRRRRRORRRRORRRRRORRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRROORRRRRRRRRRRRORRRRRRRRORRRRRROORRRRRRORRRRORRRRRRRRRRRRRORRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRORORRRRRRORRRRRRRRORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORROORORRORORRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRROORRRRRRORRRRRRRRRRRRROORROOROORORRRRORRRRORRORORRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRRORRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORORRRORRRORRRRRRORRRRRORRORRRRRRRRRORRRORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROOROORRRROOORRRRORORORRRRRRRRRRRRRRRRRROROORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRORRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRRORORRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRORRRORRRRRORRRRRRRRRRORRRORRROORRRRRRORRRRORRRORRRRRRRRRRRRRORORRRORRRRRORORRRRRRRRRRRORRRORROORRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRRRROORRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRROORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRROORORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRROORRRORRRRRRRRRRRORRRRRRRRRRRRRROORRORRRRORRRORRORRRORRRRRRRROOOORRORORRRROORRRRORRORRRRRRORRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRORRORRRRRRRRRRORRRRRRRRRRRRORORRRRRORORRRRRORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRORORRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRROORROROROOOORRRRRRRRRROORRRRORRRRRRRRROROORRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRORRRRRRRORROORRRRRRORRRRRRRRRRRORRRORRRRRRRRRROORRORRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRORORRRRRORRRRORORRRRRROORRRRRORROROORORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRROORRROORRRRORRRRORRRRRRORRRRRRRRRORRORRORRORORRORRRORRRRRROROROORRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRROORRRRRRRRORRORORRRRRRRORRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRORRRRROORRORRRRRRRORRRRRRRRROROORRRRRRRRRRRORRRORORRRRORRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRROOORRRORORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRROORRRROOORRRRRRORRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORRROORRRORRRRORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRORRRRRRROORRRRRORRRRRORRRRRRRORRRRRROORRRROORROORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRRRORRRROORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRORRRRRRORRRRORRRRRRRRRORORORRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRROORRORRRRRORRORRRRRORRRORRRROOORRRRRRRRRORORRRRORRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORORORRRRRRROORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRROOORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORROORRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRORRRRORORRORRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRORRORRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORROORROROORRRORROORRRRRRORORRRORRORRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRROROORORRRRRORRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORORORORRRRRRRRRRRRRRORRORROORRRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRROROORRRRRRRRRRORRORRRRORRRRRRORRRRORORRRRRRRRRRRRRRRORORORRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRROORRRRRRORRRORRRRRRRROORRRORRRRRRRORRRRRRRRRORRRRORORRRRRRRRRRORORRORORRRRRRORRRRRRRRROORRRORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRORRRRRRRRRRRRORRRRRRORRRRRRRROORRRRRRORRRRORRRRRORRROORRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRRRRRROORROORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRORRRRRORRORRRRROORRRRRORORRRRRORRRRRRRORRRRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRORRORORRRORRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRRORRRRRORORORRRRORRRROORRRRRRRRRRRRRRRRRORRORRRORRRRORRRORRRRRRRROOROROORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRORRRROOORRRRRRRRRRRRROROORRRROORRRRRRORRROORRRRRRRRRRRRRRRRRRROROOORRRORRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRORRRORRRRORORRRRRRRRRRRRRORRRRRRORRRRRROORRORRRRRRORRRRRRRRRROORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRORRRRRRRRRRORRRRRRRRRRRRRORORORRRRRRRORRRRRRORORRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRORORRRORRRRORRORRRRRRORRRRRRORRORRROOOORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRORORRRRRRRRORRRRRRORRRRRRRRRRRRRORRORRRRORRRRRRRROORRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRORORRRORORORORORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORROORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRORRORRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOOOORRRRRRRRRROORRRRRRRRRRROORORRRRRRRORRRRORRORRORRROORRRRRRORRRORRRRRRRRRRRRRRROORRRRROOROORRRRRRORRRORRRRROOORORRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRRRROROORRRORROOORRRRRROROORORORRRRRRRROOROORRRRRRRRORRRRRRRRRRORRRRRRRORORORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRORRORRRRRRRRORRRRORRRRRORORRRRORORRRORRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRORRRRRRRRORORRRRORRORRRRRRORRRRRRRRRRRROROORRRORRRRRRRRRRRRORRRRRORORRRORRRRRRORRRRORRRRORRRORRROORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRORRRORROOORRORRRROOORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORROORRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRORRRRORRRORRRRRRRORRORRRRORORRRRRRRROORRRRRRRORRRRRRROORRRRRRRORORRRRRRRRRRRRRRORORRRRRRRRRORRRRORRRRRRRRORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRORORRORRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRORRRRRRRORRORORRRRRRRRRROORORRRRRORRORRRRRRRRRORRRRRRRRORORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORORORRRRRRRRRORRRRRRRRRORRROORRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRRROOORORRRORRRRRRRRORRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRORRRROORORRRRRRRRRRRRRRORRRROOROORRROORRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRORORRRRRRRRRORRROOORRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRROORORRRRORRRORRRRRRRORROORORRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRROOORRRRRRRRRRRORORRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRROOORRRRRORRRRRRORRRRORRORRORRRRRRRRRORRORORRRRRRRRRRRRRRRRRRORRRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORROORRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRORRRRRRRRRORRORRRRRRRRRRORRRORORROOORRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRORRRRRRRRRRRRRRRRRRRROORRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRROORRRRORRRORRRRRRRORRRRROORORRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORRORORRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRROORRRRORRRRRRRORORRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRORRRRRRRRROOORRRRORRROORORRRRRRRRRRRROORRORRRRRRRRRORRRRRRROORRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRROORRRORRRRRRRRRRORRRRORRORROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRROORRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRORRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRROORRRRORRRRRRRRROORRORRORRRRRRORORRORORRRRRRRRRRRRRROORRRRRORRRRRRRRRORRRRRORRORRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRORORRRRROOORRRORRRRRRROORRRRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRORRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRROORRRORRRRRRRORRRRRRORRRRRRRRRRRRROOORRROORRORRRRRORRRRRRRRRRORRRRRRRRRRRORRORRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRORRRRORRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRORRORRRORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRORORORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRROORRRRRRORRORRROORRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRORORRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORORRRRRORRORRRRRORORRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRORRRRRRORRORRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRORRRORRRORORRRRRRRRRRRORRRRRORORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRORRRRROOORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRROORRRRRORRRRRRRRRRROORRRRRRRORRRRORORRRRRRRRRRRORRORROOORRRORRRRORRRRRRRRRRRORRRRRRORRRRORRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRROORORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORROORRRRRRORORRORORRRORRRRRRRORRRORRRRRRRRORRRRORRRORRRRRRORORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROROROORROORRRRRRRRRRRRRRRRRRORROORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRROORRORRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRORORRRRRRORRRRRRRORRRRRRRRORORRRORRRORRRRORRRRORORRRRORRRRROORRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRROORRORRRRRRORRRRRRROORRRRRRRRORRORRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRORRORRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROOORRRRRRRORORRRRORORORRORRRRRRRRRRRRRROORRORRRRRRRORROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRORRRRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRRRRORRRRRRRRRRRRRRRRROORRRRRRORRRORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRORRRORORORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRORRRROORORRRRORORRRRRRRRRRRRORRORORRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRORROORRRRRRRRRRRRRRRRORORRRRRRRRORROORRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORORORORRRRRRRRORORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRORRORORRRRRRORRRRRRRRORRORRRRORRRRRRRRRORRRRRRRORRRRRRRRRRORORORRRRRRRRRORRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROROORRRRORRRRRRORRRORRORRRROORROORRRORRRRRRRORRRRRRRRORRRORORRRRRRORRRORRORRRORRRRRRRRRRRRRRORORORRRRROORRORRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRROORRORORRRRRRRRRORRRRRRRRRROOORRORRORRRRRRRRRRORRRRORRRRRRRRRROORRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRORORORRRRRRRORORRRRRRORRRROORRRORRRRRRRRRORRRRORRRORRORRRRRORRRRORRRRRRRRRRRRRRROOROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRROROOORRRORRRRRRRRRORRRRRRRRRORRORRRRRORRRRRRORRRRRRORORRRORRRRRORRRRRORRRRRORRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRORRRRRRRRRRRROORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRORRRRORORRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRORRRRRRRORRORRROORRRRRRRRROROORORRRRRORRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRORRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRORORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRORRORORRORRRRRRORRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORRRRORRORRORRRRROORRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRORRRRROROOORRRRRORRRRORRRRRRRRRRORROROOROOORRRRRRRORRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRROORRORRORRORRRORRRRRRRRORRRORRRRRRRRRRRRORORRORRRRRORORRRORRRRRRRRRRRRRRRRROOORRRRRORRRRORRRRRRORRRRRRRROORORRRRROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRORORRRRORROOOORRORRRRRRRRRRRRRRRRRRRRORROORORRRRRRORRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRROORRORRRRRRRROOORRRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRROOORROORRRRROOORRRRRORRRRRRRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRROORORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRORRORORRRRRRRORORRRRORRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRORRORORRRRRRRRRORROORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROORRORRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRORRRRORRRRORRORRRORRRORRRRRRORORRRRRRRRORRRRRRORRRRORRORRRRRORRRRRRRORRROORRRRORRRRRRRRRROROORRRORRRRRRRRROROORRRRRRRRRRRRRRORRRRROROOORRORRORRRRRRRORORRORORRRRRRORRORRRRRRRRRRRORRRRORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROOORRRORORRRRRRRRRRRRORRRRRROOOROORORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRRORRROOOORRRRORORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORORROORRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRROROORRRRRRRRRRRRRORRRRORORRORORRRRRRRRRRRRRRRRRRRRRORRROROORORRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORROORRRRORRRRRORRRRRORORRRRRRRRRRRRORRORRRRRRORRRRRRORRRRRORORRORORRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRORRROOORORRRRRRRRRRRRORRRRRROORORRRRRRRORRRRRRRORORRORORRRRRRRRRRRRRRRRRRORRORRROROORORRRRRROORRRRRRRRRRRORRRROOROORRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRORRRRRRRRORRORRRRORRRRRORRORRRORRRRRRRRRRRRORORRORRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRORRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRROOOORRRRROORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRORRRORRRRORRORRRRRRRRRRRROOORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRORROORRORRRRORRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORROORRRRRRRRRROORORRRRORORRRRROOROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRORORORRRORROOORRRRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROORRORRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRRRORRRRORRRRORRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRORRRORRRROORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRROORRORORRORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRORRRRORRORRRRRRRORRRORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRROORRRRRRROORRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRROORRRORORRRRRRORRRRRORRROORRRRRRORRRRRRRRORORRORRRORORRRRRRRRRORRRRRROROORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRROORRROORORORRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRROORORRROORRRRRRRORRORRRRRRORRROORRRRORRORRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRROORRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRROORRRRORRRRRRROORRRRRRORORRRORORRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRORRORRRRRRRRRRORORRRRRRRRRRORRRRRRRRORORORRORRRORRRRRRORRRRRORRRRRORRRRRRORRRORRRRORRRRRRRRRRROORORRRRRORRRRRRORRORRROROOORRRRORRRRORRRORRROOORROORRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRROORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRRORRRRORRRRRORRRRRRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRORRORRRRORRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRORRRRORRRRRRORRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRRROORRRRORORRROORRRRRRRRRRRRRRRORRRRRROROORRRRRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORORRRRROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRROORRORRRRRRRRRRORRRRORROORRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRROORRRRRRRRRRRRRROORRRROORRRORORRRORORRRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRORORRRORRRRRRRRRRRROOORRRRRRRRORRRRRRRORRRRRRORROORRRRORRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRORORRRRRRRORRRRROORRRRRRRRRROORORRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRROORRORRRRROORRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORORORRRRRRRORRRORRRRROORRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRORRRRRRRRRORRRROROORRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRORRORRRRROORRRRRRORORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROORRORRRRRRRRROORRRRORRRRRRRRRORRORRRRORRORORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRORRRRRORRRRRRRORORRRORRRORRRROROORRRRORRRORRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORROORRORORRRRRORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRORRRRRRRRRRRORRROORRROORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRROORRRRRORRORRRRORORORRRRRRRRORRORRRRORRRRORRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRORRRORRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRROORORRRRRRRORRRRRORRRRRRRRRRRORRRRORORORROOOORRRRRORORRRRRRRRORRRRRRRRRRRRORRORRRRRRRORRRRRRORRRRRRRORRRRRRRRORRRRRORRRRRRRORRRRRORRRRRRRRRORORRRRRRRRRRRRRRRROOROORRRRRRRORRRRRRRRRORRORRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRRRORRRRRRORRRRORRORRRRRRROORRRRRRRRRRRRRRRROORRRRRRRORORRORRRROORORRRRRORRRRRRRRRRRORRRRRRRRRORRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRORROROORRRRRRRRRRRRRORRRORRRORRORRRRORORRROORRRRRRRRRORRRRORRRRRRRRRRRORORRRRRORRRRRRRRRRORRRRRRRRRORRRRRROORORRRRRRRRORRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRORRRRRRORRRRRRRRRRRRORRRRRRRRROOORRRRRRRRRRROROORRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRORRRRRRROORRRRRRRRRRRRRRROORRRORRRRRRRRRRRORORRRRRRRRRRRRORORRROORRRRRRRRRRRRRRRRRRROROORRRRRRORORRRRRRRRRRRRRROOORRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRORORORRRRORRRRRRRRORRORORRRORRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRORORRRRRRROORRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRROORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRORRRRRRRROOORRRORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRORRRRRROOORRRRROORRORORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRROORRRRRRRRORRRRORORRRRRRRORRRORROORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRORRRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRORORRORRORRRRRORRRRRRRRORRORORORRRRRRRRRORRRRRRORRORORRRRRORORRRRRORRROORRRRRRORRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRORRORORORRRORRRRRRRRORORORRRRRRRRRRORRORRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRROORROORRORRRRRRRRRRRRORORRRRRRRRRORRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORORROROORRORRRRRRORRRRRRROORRRRRRRRRORRRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRORRRRRORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRORRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORROORORRRRRRORRRROORRRRRRRRRRRRORRRRRRORORRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRROORRRROORORORRRORRRRORRRRRRRRRORRRRRRRRORRROORRRRRRRRRRORRRRORRRRROOORRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRORORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRROORRRRRRRORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRROORRRORRORRRORORRRRRORRRORRRRRRRRRRORORRRRRORRROOORRRRRRRRRRORORRRORRRRRRRRORRORORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRROORRRRORRRORROORRRRRRRRRRRRRORRRRRRRRORRRRORRRORRORRRORRORRRRRRRRRRRRRRORRORRRRRRRRRORRORRRRRRRRORRRRRRORRRORRRRROORRRRRRRRRROOORRRROORRRRRRRRRRRRRRORRRRRRRRRRROORRORRRRRORORRRRRRRRRRRRRRRORROORRORRRROORORRRRRRRRRRRORRRRRRORRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORROORRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRORRORRRRRRORROORRRRRRRRRRRRRRRRRRRRORORRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRROOORRRRRRRRORRORRRRRRRRRORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRORRORRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRRORRRRRRRRRRRRORRRORRORRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRORRORORORRORRRRORRRRORRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRORRRRRRORRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRORROORRRRRRORRORRRRRRRRORORRRORRRRRRRRORRRRRRRRRRRRORRRRRRORRROORRRRRRRORRRRRROORROORRRORRRRRRRRRRRRRORRRRRRRRRRORRRORRORORRRRRRRORRRORRORRRRRRRRRORRRRRRRRRRRROORORRRROORORRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRRROOOORORRROORRRRRRRRRRRORRRRRORRRRRRRRORRRRRROORORRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRORRORRORRRRRRRRRRRRRRRRROORRRORRORRORRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRORORRROORRRRRRRRRRRRRRRRRORRRRRORRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRORRRROORRRRRRRRRRORORORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRROORRRRORRRRRRRRRRORORRRORORRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRORRORRRRORRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRORRRRRRRRRRRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORORRRRRRRRRRRRROORRRRRORRRRRORRRRRRRROROORRRROORRRORRORRRORRRRRRRRRRRORORRRRRORRORORORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRORORORRORRRRRORRORRRRRRRRRRRRRRRRRORRRORORRRRRRRRRROORRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRROROORRRRRRORRRRRRRORRRRRRRORRRROORORORRRRRRRRORRORRROORRRRRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRORRORRRRROORORRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRROROORORORRRRRRRRRRRRRORORRRRORRORRRRRRRRRORRRORRRRRORROORRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRRRRRRRRRRORRRRRRRRORRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRROORRRRRRRRRORORROORRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRROORRRRORRRORRRORRRRRRROORRRRRRORRRORRORRORORRORRRRRRRRRRRROORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRRORRRRRRRRRRORRRRRRROORORRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRORRORRRRRRRORRRRORRORRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRORRORRRRRRORRROORRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRORORRRRRRRRRORRRRORRORRORRROORRRRRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORORORROORORRRRRRRRRRRRORRRRRRRRRORORRORRORRRRORRROORRRRRRRRRRRRRRRORROORRRRRRRORRRRRORRRORRRRRORRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORORRRORRRRRRRRRRRORRRORRRRORRORRORRRRRORRRRRRRRRORRRRORORRRORRROORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRRRORRORRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRORORRROOORRRRRORRRRRRRRORRORRRRRRRRRRRORROORRORRRRRRRRORORRRRRRRRORRRRRRORRRRRORORRORRRRRRRRRRRRRROORRRRRRRRORRRRORORORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRRRRORRORRRRORRRRORRROORRRRRRRRRRROOORORRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRROORRRRRRORRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRORRRRROORRRORRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRORRRRRORRRRRRRRRORRRRRORRRRRRORRORRRRRRRRRRRORRRRORRORRRRRRRRORRRROOORRRRRRRRRRRRRROROORRRRRRORORRORRRRRRRRORORRRRRRRRRRORRROORRRRRORRRRRORRORRORRRRRRRRRRORRRRORRROORRRRRRRRRRORRRORORRRRRRRRRRORRRRRRRRRORRRRROORRORRRRRORORRRRRROORRORRRRRRRRRORRORRRRRRORRRRORRRRRRRRRRRRRRRRORORRRRRRRRROORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRORRRRRRRROORORRORRORRRRORRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRROOORRRRRORRROORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRORORRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRORRORRORORRORORRRRRRRRRRRRRRORRRRRRORRORORRRORORRRRRRORORORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRORROOORRRRRRRORRRRORRRRRRRRRRRRROORRORRROORROORRRROORORRRRRRRORRORRRRRRRRRORRRROROORRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRORRRORRORRRRRRRRROOORRORRRRRRRRORRRRRRRRRORRRORRORORORRRRORRRRRORRRRRRORORRRRRROORORORRRRRRORRORRORRRRRORRRORRORRRRRORRRRORORRRORORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRROORRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRORROOROORRRORRRRRRRRRRORRRRRORRRRORRRRRRRORRRRORRRRRROORRRRRRRRROORRRRRRRRRRRRRROOORRORROORROORORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRORORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORRRORRORRRRRORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRORRORRORRRRRRRORRRRROORROORRRRRRORRRRORRRORRRRRRRROORRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRROROORRRORROOORRRRRORRRRRRORRORORORRRRROORORRRORRORRRRRRRRRRRRRORORRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRROOORRRRRRRRRRRRRRRRRORRRRORRRRRORRRRROOORRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRORROORORRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRORORRRRRRORRRROORORRRRRROORORRRORRRROOOORRRORRRRRRORRRRRRORRRRRORORRORORRRORRRRRRORRRRRRORRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRROORRRRRRRRORRORRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRROOORRORRRORRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRORRRORRROORRRRROOOORRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORRRRORRROORRRRRRRRROORRORRRRORRRRRRRRRRRRRROOORRRRRRRRRRRRORORRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRORORRRRRRRRRRRRRRORRRRRRORRRRRORRRRORRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRORRORORRRRRRORRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORORRRRRRRRRRORORRRRRRRRRRRRORRRORRORRRRRRRRRORRRRRRRRRORRRRRRORROORRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRORRRRRRRRRRORORRRROORRRRRRRRRRRRRORRROOORRRRRROORRORRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRROOROORRRRRRRRORORRRRRRROORRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRROORORORRROORRRRRRRRRRRRRRORRRRORRRRRROORRRRRORRRRRRRRRRRRORORRORRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRROOORRORRRRRRRRROORRRRRRRRRRRRRRRRRORRRORRRROOROORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRORRRRRRORRRORRORORRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRORRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRRRRRRORORRORRRRRRRRORRRRRRRROORRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRRORORRORRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRORORRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRORRRROORRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRORRRRORRRRRRRRRORROORRORRRRORRRRRRORRRRRRRRRRRRORRRRRROORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRORRROORRRRORRRORRORRRRRRRROOORROORRRRORRRRRRRORRRRRRRRRRRORRRROORRRRRRORORRRRROORRRORRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRROORRRRRRRRRRRRORRRRRRRRRRORRRORRORRRRRRORRRRRRORORORRRRRORORROORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORORRRRRRORRRRRRRORRRORRRORRRRORRRRROORRRRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRROORRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRORRRRORRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRRRRRRRRRORRRRRRORORRRRORROORRRORRRRRRROORORRRRRRRORRRRORRORRRRRORRRRRRRRRRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRORRRRRRRRORRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRORRRRRORRORORRORRRRRRRORRRORRRRRRORRRRRRRRRRRRRORRRRRRORORRRORRORORRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRORORRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRROOORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRORRORRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRROORORRRORORRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRORRRORRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRORRRRRRRRRORRRRRRRRRRRRRORRORRRRRRORRRRROORRRRORORRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRORRRORROORRORRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRROORRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRORRORORRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORORRORRRRRRRORRRRORRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRROORRRRRRRRROORRRORRRRRRRRRRRORORORRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRORORORORRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRRORORORRRRRRRRRRORRRRRRRRORORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRRORRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORORORRRRRRRRRRRRORRRROORORRRRRRRRRRORRRRRRRORRORRRORRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRORRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORORRRRORRRORRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRROOORRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRORORRRORORORRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRROOROOROORRRRORRRRROORORORRRRRRORRORORRORORRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORORRRORRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRROORRRRRRRRORRROORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRORRRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORORRRRRRRORORORRORRRRRORRRRRRRRORRRRRRRRRORRRORRRRORRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRORORRRRRORRRRRRRRORRRRRORRORRRRRRORRRRRRRRRRROROORRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRORRRRRRORRRRORORRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORROORRORRORRORRRRRRORRRRROORORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRORORRRRRRRRORORRRRROROORRRRRRRORROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRORRRRROORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORROOORRRRORRRRRRRRROORRRRORRRROORRRRRRRRRRRRRRORRORORORRRRRRRRRRRRRRRRORRORRRRRRRORROORRRORRRRRRRRRRRORRORRRROROOORRORRRRRRORORORRORRRORRRRRRORORRRRRRORRRORRRRRRRRORRORRRRRRRRRRRRRRRORRRORORRRRORRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRRRRRRRRRRRROOORORRRRRRRRORRRRRRRORRRRRRROORORRORRRRRRORRRROORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRORRRRROORRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRROOOORRORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRORRORORRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRROOORRRRORORRRRRORRRRRRRORROORRROORRRORRORORRRRRRRRRORROORRORRRORRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRORORORRRRRROOORRRRORRRRRROORRRORORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRROROORORRRRRRRRRORRRRRRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORROORRRRRRORORRRRRRRRRRRRRORRROORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROOORRRRRORRRRRRRRRRRRORRRRRRRORROOORRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRORRRORRROOORROORRRORRRRRRRRRRRRRRORRRRORRRRRRRRRROOORRRRRRRRRROORRRRRRRRRRRRROOROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRORRRRRRRRORRRORORRRRRRORRORRRRRRRRORRROORRRRRRRRRRORRORRORRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRROROOORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRORORRORRRORRRRRRRRRRRRRRORRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRORORORRRRRRRRRRRRRRRRRRROORRROROROORRROROORRRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRROORRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRORRORORORORRRRRORRRRRRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRORRRRRORRRORRROOORRRORORRRRRORRRRORRRRRORRRRRRRRRRRRRROORRRRRORRRRROROORRRRORORRRRRRRRRRRORRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRORRORRRRRRRRRRORRORORRRORRRRORRRRRRRRRRRRORRRRRRRRRRORRRORORRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRORRORRRORRRRRRORORRRRRRRRRRRRRRRRORRRRROORRRRRRRRRORRORROROORRRROORRRRRRRRRORORRRRRRRRORRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRRORORRRRROORORORRRRRRRRORORRRORRORRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRRRRORRRRRRRORORORRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRORRROORRORORRRRRRRRORRORRORRRORORRRRRRRRRRRRRORRRRRRRRRRRRRROOORRRRORRRRROROORRRRROORRORRRRRRORORRRORORRRRORRRORRORRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROROORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRORROORORRRORRRRRORRRRRRRORORRORRRRRRROORRRRRORORORRORRRRRRRRORRRRORRORRRRRRRORRORRRRROORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRRRRRRRORRRRROORRRRORROORORRRRRRRROOORRRORRRRRORRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORROORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOORORRRRRRRRRRRRORRRRRRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRORRRRRRRRRRRORRRRRROORORORRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRROROORRROORRRRRORRRRORRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRORRRRRRORRORRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRROORRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORROORRRRROROORRRORORRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRORRRRRRRRRRRRRORORRRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRRROORRRRRORRRORRRRRRRROROROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRORRRORRRRRRRORRRROORRROROORRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRORORRROORRRRRRORRRRRRRORRRRRRRORRORRRRRRORORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRRRRORROORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRROORORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRROORRORORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORORRORORRRRROOORRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRORRRORRRORRRRORORRRRRORRRRRORRRRRRRORRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORROORRRRRRORRRRRROORORRRRRRRRRRRRRORRRRRRRRORRORRRRRRRORRRORRRRRRRRRORRORORRRRRRRRRRRRORRRRRRORORRRRRORRRORORRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRROORRRRORRRORRRORROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRROORRRRRORRRRRRRRRRRRORRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRORRORRORRRRRRRRRORRRRRORRRRRRROORRRRRRRORORRRRORROORRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRORRRORRRRRORRORORORRRRRRRORRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRROORRRROORRRRRRRRRRRRRRRRRROORRRRRRRRRORRORRRORRORORRRORRRRRRORRRRRRRRRRRRORROORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORROORRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRROORRRRRRRORRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRORRRRORORRRRRRRRRRRRRRROORRRORORORRRRROOORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRORRORRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRRORRRRRRRORRRRORRRRRORRRRRRRRRRORRORRORRRRRRRORRRRRORORRRRRROORRORRRRORRRRRORRRRRRRROORRRORROORRRRRRRRORORORORORRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRORRORRRRRRORRRRRRRRRRORROORRROORRRRRRRRRRRRRRORORROORRRRRRRRRRRORORRORRRRRRRRRRRRRROORRRRRRRRRRRROOOORRRRRRRRRROOORORRRRRRRRRRROOROORRRRORRRORRORRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORORRRRRROROROROOORRRRROORRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRROOOORRRORRRRORORRRRRRRRRRRORRORRORRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRORRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRORRRRRRRRORRRRRRRROORORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROOORRRRORRRRRRRROORORRRRRRORRROROORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRORRROORRORRRORRRRRRRORORRRRRORROROROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRROORORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRROORORRRRRRRORRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRROOOORRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORORORRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRORRORROORRRRRRRORRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRROORRRRRRRRRRRORRRRORRRRRRRRRRORRRRRORRORRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRROOORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRORRORROORRRORRORRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORORRRRRROORRRRRRRRORRORRRRRRRRORRRRRRORRRRRRRRRRRRRROORRRRRORRRRRRORORORRORRRRRRRRRRRRRRRORORRRRRRRRRRRORRRORRRRRRRRRORROORORRRRRRRRORRRRORRORRRRRORRROORRRRRORRORORRRRRRORRRRRRRRRORRRRROORRRRRORRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRORROROOORRRRRORORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROOORRROROROOROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRORRRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRORROROOORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRRRRORRRORRRRROORRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRORRRORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRORRRORRRRRORRRRRRORRRRRRRRRRRORRORRORROOORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRROOORRRORRRRRRORRRORRRRRRRORRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRORORRRRRRORRRRRRRRRRRRORROORRRRRRRORRRRRRORRORRRRORRORRRRRRORRRRRRRRRRRORRRRRRRRORRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROORRRRRRRRORRRRROORRORRRRRRRRORRRORRRRRRORRORRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRORRRRRORRRRORRRORORRRORRRORRRRORRRRRRRRRRRORRRRRRORRORRRRRORRORRRORRRRRRRRORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROORRRRRRRRROROORRRRRRROORRRRRRRORRRRRRRRRRRORRROORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRROORORRRRRRRORRRRRRORRRRORRRORRRRRRRORRRROORORRORRORRRRRORORRRRORRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRORRRRORRRRRRRRRRRORRRRRRORORROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRORRRRRORRRRRROORRRRRORRRROORRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRROORRRRRRORRORRRRORRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRORRRRORRRRRRRRORRRRRROORRRRRRRRRRRORRROOROORRRRRRRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROORORRROORRRRRRRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRRRRRRORRRRRRRORRRRRROORRRRRRORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRORRRORORRRRRRRRRORRRROORRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORORRRRRRORRORRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRROORROROOORORRRRORRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRROORRRRRRRORRORRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRORORRRRRRRRRORRRROORORRRRRRRRRRRRRROORRRRRORRRRRRRRORRRRRRRRORRRORROORRRRRORRRRRRRRRRRRORRRORRRORORROORRRRORORRRRRRORRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRRROORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRORRRORRORRRRORORRRRRRROORRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRRRORORRRRORRORORORRRRRRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRORRORRRRRRRORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRRORRORRRRRORRRRORRRRRRRRRRORRRRRRORRRRRRORRRRORRORRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRORRORRRORRRRRRRRRROORRRRRORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRORRRRRORRORRRRORRORROORROORRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROROOORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRROORRRRRRRRRORRRRORRRRRORORORRRRRRRRRORRRRRORORRRRRRORRRRRRRRRROROROORRORRRRRRRRRRORRORRRRORRRRRRRRORRRORRRRRORRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRORORRRRRRORRRRRORRRRRRORRORRRRRRORRRRORORRRRRROORRRRRRRORORRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRORRORRRRRRRRORRRORRRORORRRRORRRRRRRROOORRRRRRORRRRRRRRRORRORORRRRRRRRRRRRRRRRRROORORRRRRRROORRRRRRRRRRRORRRRORORRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRORRRRRORORORRRRROORRRRRORRROOORRRORRRORRRRORRRRRRRRRORRRRRORRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRORRRRRORRRORRORORRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRORRRRRORRRRRRRRRRRRRRRRRRRRORORRRRORRRROOORORRRRRRORRRRRORRRRRRRRRORRRRORRORRRRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRRORRRRORORORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRROORRRRRRRRORORRRRRRRRORRRRRRRRRORRRRORORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRORRRORRORRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRORRRRRORRRRRRRRRORRRRORRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRORRORRRRORRRRORRRRRORROOORORRRRRRRRRRORRRORRRRRRORRRRRRRRORRRRRRROORRRORRRRRRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORORRRRRORRRRRRRRRORRRORRRORRRORRRRORORRRRORORRRORRRRRRRORRRRRRRRORRRRRORRRRRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRORORRRRRORRORRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRROOORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRROOORORRRRRRRRRRRORRROORRRORRRRORRORRRORRRORRRRRRRORRRRRRROORORRRRRORRRRORORRRORORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRRRRRRRRRRRORRRRRRRORORRRORRRROORRRRRRORRRRRRRRRORRROORRROROORORRORROORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRORRRRRRRRRRRRROORRRRROORRRORRRRRORRRORORRORRRORRRRRRRRORRRRRRRRRORRRRRORRORRORRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRROORRORRRRORRORRRORORRRRRRRRORRORROORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORROORRRRRRRROORORRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRRRRORROOORORRRRRRRROORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRORORRRRRORRRRORRRRRRRRORRORRRRRRORRORRROROORRRRORRRRORRRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORRRRORRORORRRRRRRRRRORRRORRRRORORRRRRRRORRRRRORRROOROROORRRRRRRRRORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRROOORRRRRRORRRROROORRORRRORRRROOROORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRROORRRRROORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRORRRROORRORRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRORORRORRRROROORORORRRRRRRRRRRRRORORROOORRRRRRRORRRRRRRRRRORRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRROOORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRORRRORRRRRRRRORRRRRRRRRRORRORRRRRORRRRORROORRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRORORRRRRORROROORRRRORRROORRROORRORRRRRRRRRORROOORRRRRRRRRORRRRORORRRORORRRRORRORRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRORRRRRRRRRRRRRORRORRRRORRRRORRRRRRRRRORRRRRRORRORORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRROORORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRORORRRORRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRORORORROORORRRRRORORRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRROOORRRRORRRRRORRRRORRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRRRRRRORRORRRRORRRRRRRORRRRRRRRORORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRROORRRRORRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRROORRRRRRRRORRRRRORORRRRRORRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRORRRRRRRRRRROORROROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORORRRRRRRORRRRRRRORRRRRRROORORRRRRRRRRORRORRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORORRRRRRRRRRRRRRORRRRRRRORRORRRRRRRORORRRRRORORORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRROORRRRRRRRRRRRROORRRRORRRRRRRRRROORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRROROORRRRRRRRRRRRRORRRRRRRORRRRORORRROORRRORRRRRROORORRRRORRRRRRRROORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRORRRRROORRRRRRORRRRRRORORRRRORRORRRRORRRRRRRRRRRORRORORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORROORRRORORRRORRRRRRRRRORRRRRORRRRRRRRRORRRRRORRRORRRORRRRORRRRRRRRRRRRRORRRRRRRRORRORORORRRRORRORRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRORRRORRRROORRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRROOORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORORRRRRRRORRRORRRRRRRRRRRRORRORORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRROORRRRRORRORRRRORRRRRRROROORRRRRRRRRRORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRORRRORRRRRRRRRRRRRORORORRRRRRRRRRRRORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROROROORRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRORORRRORRRRRRRRRRORRRROROORRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRRRORRRRRRRORRRROORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROROORRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORRORRRRRRRRORRRRRRRORRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRROORRRRRRRRRORRRRRRORRRORRRORRRRRRRRRROORRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRORRORRRORRRORRROORRRORRRRRRRRRORORRRRRRRRRRRRRRORORRRRRORORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORORRRORRRRRRRORROORRRRRRRORORRRRRRROORRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRROOOOOORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRORRRRRRRRRRRRROROORRRORRRRRORORRRORRROORRRRRRRORORRORRRRRRRRRRRRRORRRRORRRRRRRRORRORRROORORORRRRRORRRRRORORRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRROROORRRRRRRRRRRRRORRORRORORORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRORRROORORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRORRRORRRRRRRRRRRRRRORRRRRRROORRORRRRRRRRRORRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRORORRRRRRRRRORRRROORRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORORRRRORORRRRRRRORRRRRORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRORROROORRRORORROORRRRORRRRRRRRRRRRRRRORRRORRRRORRRRRROORRRORRRRRRRORRORRORRRRRRRRRRRRRORRORRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRRRRORRRROOORRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRORRRORRORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRORRRROORRRRRORORORRORRRORRRRRORRRRORRORRRORRORRRRORRRRRRRRROORRRRRORRRRRRRORRRRORRRRRRORRORRRRRRRRORORORRRRRRRRRRRROORRRRRRROOORRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRORRRORRRRRORRRRRRORRRRRORRORRRRRORRORRRRRRRRRRORRORRRRRRRRRRRRORRORRRRRRORRRRRRRRRRORORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORROORRRORORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRROROOORRRRRRORRRRRRRRRORRORRRRRRRRRRRORORRRROORORRRRRRRRORRRRORORORRRRRRRRRRRRRORRRRROORRORRRRORRORRRRRRRRRRRRORRRORRORRRORRRRRRRRRORRRRRORRORRRRRORRRRRRORRRRORRROOOORRRRRRROORRORRRRRRORORRRRRRRRRRORRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRORRRRROORRRRRRRRORORRRRORRRRRRORRRRRRRRRRRORRRRRRRRORRRORORRRRORRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRORRORRORRRRRRORRRORRRRORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRROROORRRRRRORRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRORRRORRRRORRRRRRORORRRRRORRRRRRRRRRRRRRRROORROORRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRORRRRORRRRRRRRRRRRROORRRRORORRRRRORRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRORORRRRRRORRORROROORRORRRORRROORRRRRRRRRROORRRRRRRORRRRRROORORRRORRRROORRORRRRRRRROORRRRRORORRORRRRRRRRRRORRRORRRRRRRRORRRRORRRRRORORRRRORORRRRRRRRRORORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRRRORRRORRRORROORRRORRRRORROORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRORRRROORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRORRRRRORRRRORRRORRORRRROORRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRROOORRRRRORRORRRRORRRRRRRRRORRRRRRRRRRORRORRORORRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRORRRORRRRORRRRROORRRRRROORRRRRRRRRRRRRRRORORRRRRRORRRRRRRORRRRRRRRORRRRRORRROORRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRORRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRROORRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRROORORRRRRORRRRRORORRRRRRRRRRRRRRRRRRORORRRRRRRORRRORRRRRRRRRRRRRRRRORRRRROROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORORORRRRRORORRORRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRROOORRRRRRRRRRORRRRRORRRRRRORRRRROORRRRRRRORRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROROROOORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRROORRRORRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRORRRRRORORRRRORORORRRRRRORRRROORRRRRORRORRRORRRRRRRRRRRRRRRORRORRRORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRORROROROOORRRRRRRRROORRRRORORRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRROORRORRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRROORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRORRORRORORRRORRRRRORRRRRRRORORRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRORRRRRRRRRRRRRRORROROROORRRROROORRRRRRRRORRRRRRRRRRRRRRRORRORORORRRRRRRRRORRRRRROORRRRORROORRRRRORRORRRRRRRRRRRRRRRRRRRORRRRORRORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRORRRRORRRORRRRRRRORRRRRORRORRRRORRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORORRRRRRRRRORROORRORORRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRROOORORRRRORRRRRRRROORRRRRORORORRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRORRORRRRORRRRORORRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRORRRORRRRORORORRRRRRRRRRRRRRRRORRORRORORORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRORORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRORRRORRRRRRRRRRRRRORRRRORORRRRRORRRRRRORRRRRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRORRRRORRRRRORRORRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORRRRROORRRRRORRRRRRRORRRRRRRORRORRRRRRRRORORRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRORRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOROOORRRRROOORRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRROORORRRRORRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRORRRRRORRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRROORORRRRRRORRRRRRROROORRRRRORORRRRRORORRRRRRORRRRRRROORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRORRRRRRRRRROOOROORRRRRRORRRRRRRRRRRRORRRRORRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRORRRRRRRROOORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRORRRRRRRRRRORRRRRORRRRRRORORROORRRRRRRRRRRRRRRRRRRRRORRORRRORRRORRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRORRRRRRRORRORORORRRORRRRORRRRRRRORRRRRRRRRRRRRORROORRRRRRRRRRRRRORRRRORRRRORRORRRRORRRRRORRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRORRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRORRRRRRRRORRRRRROOORRRRORRRROORORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRORRRRRORORRRRRRORRRRRRORROORRORRRRRORRORRRRORORRRRRRRRORRORRORRORRRRRRRORRRRRRRRRRRRRRORRROORRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRROORRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORORRRROORRRRRRRORRRRRRRRRRRORRRORROOOOORORRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRORRRRRRRRORRORRRORRRRRRRRRORORORRRRORRRRRRORRRRRORRRRORRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRROOORRRORORRRORORRRRRRORRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRROORRRRRRRORRRRRRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRROORRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRORRORRRRRRROOORORRRRRRRRRRRRRRORRRRRRRRRORRORRORORRRRRRRRRRORORRRRRROORRRRRRRRRRRRRRRORORROORRRORRRRRRRRRRRRRRRRRORRRORRRRRROORRRRRRRRORRRRORRRRORRRRORRRORRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRROOORRRRRRRRRRRORRRRROOORRRRRRRRORRRRRRRRRORRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORORRROOROORRRRRRRRRRORRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRORRORRRRRRROROORRRRRRROORRRRRRRRRRRRRRRRRORRORRRRRROORRRORRRORRRRORRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRORRRRRORRRRRRRRRRRROOORRRRORRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRORRRORRRRRRRRRRORRRRRRROORORRRRRORRRRRORRRRRORRRRRORRRORRORRRRRRRRRRRRRORRRORORRRRRRRRRRRRORRRORRRRRRORRRRRRRORORORORRRRORRRRRRRRORORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRRRRRORRORRRRRRORRRROROORRRRORRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRROORRRORRRRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORORRRRRORORRRRRRRRORRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRROORRRORRORORRRRRRRRRORRRRRRRRRRRRROOOOOORRRRRRRRORRRORRRORRRRRRRORROORORRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRROORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRORRRRRROOROORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRORRRRORORORRRROORRRRRRRRRRROORROORRRRRRRORRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORRORRRRRRORRRRRRORRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRORRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRORROORRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRORRRRRORRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRORROORORRRRRRRRORORRRRRRRRRRRRRROROORRRRRRRROORRRRRORRRRRRORRRRORRRRROORRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRORRRRRRRRORORRRRRRRROORORORRRRRRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRORORRRORRRRORRRRRRRRRORRORRRORRRRORRRORRRRRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRRRRORRORORRRRRRRRORRRRORRRRRRORORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRORRRORRORRRRRRRRRRRRRRRRRORRORRORRRORRORRRRRORRRRRRRRRORRRORRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROROOORRRRROORRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRORRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRORORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORRRRORRORRRRORRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRROORORRRRRRROROOORRRRRRRORRRORRRRRRRRROORRRRRRRORRRRRRRRRRRRORORRROROOORRRRRRRRORORRRRRRORRRRRRRRORROORRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRORRRORRRORRRORORRORRRORRRORRRRRORORRRRORRRRRORRROORRRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRROORRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRORORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRORORORRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRROROORORRORRORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRORRRORROORRRRRRRRRRRRRRORRRRRRORORRORRORRRRRRRRRRRRRRRRRRROOORRORRORRRRRRRORRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRRRRRRRRRRRROORRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRROOORRORRRORRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRROOOORROORRRRRRRORRRORORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRROORRRRRRRRORRRRRRRRRRRORRORRRRRORRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRORRRRRRRORRRRRRORORRRRRRRRRROROORRRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRROORROORRRRRRRRRRRRORRRORRRRRRORRORRRRRRRORRRRROORRRORRRRRRRRRRRRRRROORRORORRRRRRRRRRORRRORORRRRRRRRORRORRRRRRRORRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRROORORRRRORORRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRORRRRRRROORRRRORRRRRORRRRRRRRORORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRORRORORRRORRRRRRRRRRRORRRORRRRRRRRRRRRORRROOORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRORORRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRROORRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRORRRRRRRRRORORRRRRRRRRORRRRRRORRORRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRRORROORRRRRRRRORRRRRRRORRRRRORORRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRROORRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORORORRRORRRRRRRORRRRRRORRRRRRORRORRORRORORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRORROORRRRRRRRRORRRRRRRRRRRRRRRRROOORRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRRORRRORRRRRORRRRRRRORRRRRRRRORRRRRRRORORRRRRRRORRRRRORRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRROORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROOORORRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRROROROORRRRRRRRROORRRRRRRRRRRRORRRRRRRORRRROROORORRRRRRRRRRRRORORORRRRRRORRRRRORRRRRRRRRRORRRRROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRROORRORRRRRRRRRRRRRRRRRROORRRORRORRRRRORRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRORROROORORRRRRORRRRRRRRRRRRRRORRRRORRORRRRRORRORRRRRRRRRRRRRRRRORRRRRORRRORRRROORRRRROROORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRORORRRRRRRRRRRORRORROOOORRRRRORRRRORRRRRRRRORRRROORRORRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRRORORRRRRRRORRRRRROORRRORRORRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRORRROOORRRRRORRORRORRRRRRORRRRRORRRORORRRRRRRRRRRRRRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRORROORORRORRRRRORORRRRRRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRRROORRRRRRRRORRRRRRRRRORRORRRRORRRRRORRRRRRRRROORORRRRRRRRRORRRRORRORRRRRRRRROROORRRORRORRRRRRRRORRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRORRRRRRRRRRORROORRORRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRORRORRORRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRORRORRRROORRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRORRRRRRRRROROORRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRORROORRRRRRRRRRRORRRORRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROORRRRRORORRRORRRRRRRRRRRORRRRRRRRRORRRRRRORRRRROROORRRRRRRRRORRRRRORRRORRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRORRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRORRORRRROORRRRRRRORRRROORRORRORORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRORRRROORRORRORORRRRRRORRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRORRORORORRRORORORRRORRRRRRRORRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRORRROROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRORRRRRORRRRRORRRRORRROORORRRRRRRORRRRRRRORRORRRRRORRRRRRROROORRORRORRRRRRRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORRORORRRRROORRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORORRRORRRORRRRRRRRRRORRORRRORRORRRORRRRORRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRORRRRRRORORRROORRRRRRRRRRRRORRORRRRORRRORRRORRRRRRRRORRORRRRORRRRRRORRRRRRORRRRRORORORRRRORROORORRRRRRRRRRORRROROORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROORORORORORRRRRRRRRRRORRRRRRRRORRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRORRRORRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRORRRRRRORRRRRRRRRRRROORRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRORRRRROORORRRRORORRRRRRORRRRORRRRRRRRRRRRRRORORORORORRORRORRRRRRRRRRRRROOROOROORRRORRRRRRRRORRRRRRRRRRRRRRRRORRRORORRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRROROORRRORORRRRORORRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRORRRRORRRROORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRORRRRROORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRROORRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRORRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRROORRROORRRRRORRRRRRRRROORORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORRORRRRRRRRROORRORRRRRRRORORRRRRRRRRRRRRORORRRRRRRRRRRRRORRORRROOORRRRRRRRORRORRRROORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRROORRORRRRRRRRORRRROORRRRRORRRRORORRRRRRORORRRRRORRRRORRRRRRORRRRRRRRRORRORRRRRRRRORORRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRORRORORRRRRRORRRRRORRRRRRORRRRRRRRRRRRROORORORRRRRORRORRORRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORORRRRRRRRORRRRORORRRRRROORORROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRROOORORRRRRRRRORRRORRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRORRRRRORRRRORROORORRRROORORRRRRRRRRORRROORORORRRRRRRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRROORORRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRORRRRORRRRRRRRRRORRRRRRRORRRRORRORRRRRRORORRRRRRRRRRORRORORORRRRRORRRRRRRRRRRRRRORRORRRRRRRORRRRRORORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRORRRRRRORRRRRRRRRORORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRORRRORROORORRRRRRRORRORRRORRRORRRRRRRRRRORRRORRRRRORRRRORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRORRROORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRORRORRRORRRRRRORORRRRRRRRRRRRRRRRRRRROOORRRRRRRRRORORRROORRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRORORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORROORRORRRRRRRRRRRROORRRRRRRORRRRRRORRRRRRRRRORRRRRRORRRRRRRRORRORRRRRRRORRRRORRRORRRORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORROOORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRORRRRRRRRRORRORROORRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRORRRRRRRRRRRORRORRRORRORRRRORRRRRRRRRORRRRRRRRRRRORORRROORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRROOOORORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRORRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRROORRORRRRRRORRRRRRORRRRORRRRRRORRRRRRRRRRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRRRROORRRRRRROORRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRROORRRRRORRORRRORRRRORRRRRRRRRRRRRRRORRRORRRRORRORRRRRORRRORRRRRRORRRRRORRRRROORRRROORRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRORRRRRRORRRRRRRRRORRRRORRRRRRRRRRROORORRRRRORROORRRRRORORRRRORORORRRRRRORRRRORRORRRORORRRRRRRRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRROORROROORORRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORORROORRRRROORRRORRRRRRRRRRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRROROORRRRRRRORRRRRORRRRRORRRRRRRRRORRRRORRORORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRORROORRRRRORRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRROORRRRRRRRRRORRRRRORRORRORROORORRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRRRRRRORRORRRRRRRRRRRRRRORRORROROORRRRROORRRRRRRRRRORRRRRRRRRROROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRROROORRRRORORORRRORRRORRRROORRRRRRRRRRRRRRORRRRRRORRRRROORRRRRRRRRRRRORRRRRRRRRRRRRROORRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRORORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRROORORRRORORRRRRRRRRRRRRRORRORRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRORRRRRRRRRRRRRORRRRORRORORORRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRROORRRRROORORRROORRRROORRRRRRRRRRRRRRORRRORRRRRRRRRORRROROOORRRRRRRRRRRRRRORRRRORRRORRORRRROORRRORRRORRORRRRRRRRRORORRRRRRRRORRORRRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRRORRORRORRORRRRORRRRRRORRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRORRRRRRRRRRRRROROORORORRRRRRRRRRRRRRRORRRRRORORRORRORORRRRORORRRRRORRORORRRRRORRORRRORRRRRRRRRRRRRRRRRRORORRROORORRORRROORRRRRRRRRRORRRORRRORRRRORRROROOROORRRRORRRRRRRORRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRORORRROORORROROOOORORRORRRRRORORRORRRRRORRRRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRRORRRROORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRORRORRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRORRRRORRRORRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRROORRRORRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRORRRORRRRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRORORRORRRRRORRRRRRORRRROORRRORROOOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRROORORRRRRORRORRRORORRRRRRRRRRRRRRRRRRRORRRRRROORRORROORRRRRRORRRRRRRRRRRRRRORRRRRRRRORRORORRRRRRROORRRRRROORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRROORRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRORORRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRORRRRRRORRRORRRRORRRRRRRRRRRORORRRRRRRORRROORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRROORRRRRRRORRRORRRRRRRRORRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRORRROROOORRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRRRRORORRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRORRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRRRRRORORRRRRRROROORRORRRRRRORRRRRRRORRRRRRORROOORRRRRRRRRRRRRRORORRRRORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORROORRRRRRRRORRRRROORRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRORRRROORRRRRRORRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRORRRORORRRRRRRRRORRRRORRRRRRORRRRROOORRORORRRRRRRRORRRORRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRORRRORROORRRRRROROOORRRROORRORRORRRORROROOORRORRRRRORRRRRORRRRRRRRRRRORRORORRRORRORROORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRORRRROORRRRRORRORRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORORRORRRRROROORRRRRRRRRRRORRRROORRRRRRRORRRRRRRRRORRRRRRRRRRRRRORORRRROROORORRRRRRRRRRORORRRRROOROORRRRRRRORRRRRRRORRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRROOORRRORORRORRORRRROORORRRORORRRRORORRROROORRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRORRRRRRRORRRRORRRORRRRRORORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRROOORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROROOORRRRRRRRRORRRRRRRRORRRORRRRRROORORRRRORRRRRRRRRRRORRRRRRRRRRORRRRRORRRORRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRROOORRRRRRRRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRROOORRRRRRROORRRRRRRRRRRRRRRRRORRRRROROORRRRRORRRORRRRRRRORRRRRRRORRRRRROORRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRORRORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRORRRRRRRRROORRRRRORRRRRRRRRRRRRRORRRRORRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRORORRRORRRRORRRRRRRRRRRRRRRRRRRORORORRRRRROORRRROROORRRORRRRORORRRORRRRORRRRRRRRORRRRRRRRRRRRRRORRROOROORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRORRRRRRRORRRORRRORRRRRRRRORRRORRRRORORORRRORRRRRRORRRORRORRRRRRRRRRRRRRORORRRRRORRRROROORRRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRORRRRRRROORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRORRORRROROORRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRORRRRRRORRRRROORRRRRRRRRRORRRRRRRORORROOORRRRRRRRROORRORORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRRRRRRORRRORRROROORRRRROORRRORRRORRRORRRRRRRRRRRRRROORRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRORRRRRORRORRORRRRRRORRRORRRORRORRRORRRORRRRRRRRRRRRRORORORRRORRRRRRRRRRRRRRORRRRORRORRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRORROORRRRORRRRRRROORRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRORRRRRRRORORRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRORORRRORORRRRRRRRRORRRORRRORORRRRRRRRRRORRRRORORRRRRRRRRORRRORRRRORRRRRRRRORRORRRORORRRORRRRRRRRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRROORRRRRRRORRROORRRRRORRRRORRRRRRRORRRRRRORRRRRRRRORORRRRRRRRROORORRRRRRRORROORRRRRRORRRRORRRRRRRRRORRRRRRORRRRRRORORRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRROORRRRRRRRRORRORRRORRRRRRRRORRRRRRORRORRRRRRORRORRORRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRORRORRRRRRORRRRRRRRORRRRORRRRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRORRRRROOORRORRRRORRRRRRRRRORRRORRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRORRRORRRRRRRRRRORRRRORRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORORORRRRRRORORRRRORRORRORRRRRORORRRRRRORRORRORRRRRRRRRRRRORRRRRRRROORORRRRRRRORRRRRORRRRRRRRORORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRRORORORRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORROORRRRRRRORRRRRRRRRRRRROORRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRROROORRRRRRRRRRORORRRRROORRRRORRORRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRORORORRRORRROROORRORRRRRRORRRRORRRRRRRRRRROROORRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRORROOORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRORRRRRRRROOORROORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRORROORROORORRRROOORRRRRRRRRRRRORRRRRRRRRRRRORRRRROORRRRRRRRORRRRRRRORROORRRRRRRRRRRRORRRRRRRRORORRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRRRRROORRRRRORRRRRRRRORORRRRRRRRRORRORORRRRRORRORRORRRORORRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRROORRRRRRRRRRRROORRRRRRORRORRRRRORORRRRRRRRROORRRRRRRRORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRROORRRORRRRRRRRRRRORRRRRROORRRRRORRORRRRORRRRRROROROORRORORRRORRRRRRRRORRORRRRRORRRRRORRRRRRRRORORRRRRRRRRRRORRRRRRRRORORRRRRORRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRROORORORRRRRORRRORRRRRRORRRRRRRRRRRORRRRRORRRRRROORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRRRRRRRRRORRRORORRRORRRRRORRRRORRRORRRRROORRRRROORORRRRORRORRORRRRRRRRRRRRORRRORORRRORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRORRRRRORRRRRROORRRORRRRRORRRRORRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRROORRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRROROORORORRORRRRRRORRRRRRRRRRRRORRRRORRORRORRRRRRRRORRRRRRRRRRRRRRORRRRROORRRROORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRORRRORRORRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRRORRRORRRRORORRRRRRRRRORRRRRRORORRRRRRRRRROORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRORRRRRORRORRRRRRORRRRRRORRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRORRORRRORRROOROORORRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRROROORRRRRRRORROORORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRORRRORRRRROORRRORRRORRRRORORRRRRRRRRRRRRRRRROROORRORRRRRRRRRRORRRRRRROORRRRROORRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRORRRORORRRRRRRRRRRORRRRRORRRORRORRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRORRRRRORORRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRROOORRRRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRORRROORRRRRRRRRRRORRROORORRRRRORRRRRRRRRRRRRRRORORRRRRRRRROOORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRROORRRRRRRRRRORRRRRRRORRRORRRRRRRRRORRRRRRRORRRRRRORRRROORRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRROORORRORRORRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORORORRRRRRORRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORORRRORRRRRRRRRRRORRROOORORRRRRRRRRRRORRRRORRRRRRRRORRRRRROORRRRRRRRRRRROORRRROORROORRRRRRRRRORRRRRRROORRRRRRRRRRRORRRRRRRRRRRRORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRROORORRRRROROOORRORRRRRRRRRROORRRRRRORRRRRRRRRRORRRRORRRORRRRRRORRRRORRRRRRRRRRRRRORORRRRRRRRRRROORORRORRRRRRRORRRRRRRRRORRRRRORRRRRRRROORRRRRROORRRRRORRRRROORROORRRRRRRRRRRRRRRRRRRRORORRORRRRRRORRRRRRRORRRRRRORRRRROORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORORRORRRRRRROORRRRRRORRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRROORRORRRRRRRRRORRORRRRRORRRRRRORRRRRRRRORORRRRRRRORORROORRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRORRORRRRRORRRRRROOROORRRORRROORORRRRRRORRORRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRORORRRRORRRROOORRRORROORRRRRRRRRRRRRRORRRORRORORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRORRRRRRORRRRORORRRRRORRROORRRRRRRRRRRRRRORRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRROORRORRRRRROROORRRRRRRORRRRORRRRRRRRRORRRRRORRRRRROOOORRORRRRRRRRRRRRRRRRRORRRORROORRRORROORRRRORRRRORRRRRRRRRRORRROORRORRRRRRRRROORRRORRRRORRRRRORRRRRRRRRRRRRRRRORRRRRROROROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRORRRRRORRRRRORRRRRRRRRRRRRORRRORRRORROORRROROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRORORORORRRORRRRORRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRORRRRRRRORRRRORORRRRRORRRRRROROORRRRRRRRRRRORRRRRRRORRRRRORRRORRRRRRRRRORORRORRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRORRRRORRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRORRORRORRORORRRORRRRRRRRRRRRRROORRROORRRRRRRRRRORRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRORRRRRORRRRRRRRRRRRRROORRRRRRROORRRRRRORRORRRRRRROROORRRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRORRRRRRRRRRRORRORRRRRRORRRRRRORRRRORRRRORRORRRRRRRRRRRORRROORRRRRRRRRRRRORRRRROROORRRROROORRRORRRRRRRRRRRRRRORORRRRROROORRRORRRRRRRRRROOORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRORORRORRORRRRRORRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRORRRRORRRRORRRRRORRRRRORRORRRRRRORRRRORRRORRORRRRORRRORORRRRRRRORORRRRRRRROORRRRRRRRRORRRRRRRRRORRRRORRORRORRRRRRRORRRRRRRORROOORRRRRORRRROROORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRORRORRRRORRRRRRORRRRRRORRRRRRORRRRRRRRRRRROORRRRRRRRRRORORRRORRRRRRROORRRRRRRRRRRORRRRRRRRRRRRORRROORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORROOROORRRRRRRRORRRRRRORRORRRRRORRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRORRRRRRRRORROORORORRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRORRORORRRRRORRORORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRROORRRRRRRRRRRRRORORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRROORRRRRRRORROORRRRRRRRORORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRROORRROORRRRRRRORRRRRRRRORRRORRRRORRRRRRRRRORRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRORRRORRORRRRRRORORRRRRRRRORRRRORRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRROORRRRRRRRORRRRORRRRRRRRRRRORRRORORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRORRRORRROORRRRRRORRRRRRRRRRORRRRORRROORRRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRRRRRORRRROORORRRRROOORRRRRORRRRORRRRRORROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRORRRRRORORRRRRRRRRRRRRROORRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORORRRRRRRRRRRRRORRRRORRRRORRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRORRORRORRRRRRRORRRRORRRORRRORRRRRRRRRRRRRORRRRRROORRRRRRORRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRORRRRRROORRRRORRRRRRORRRORRRROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRROORRRRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORROORRRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRORRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRROORRRRRRRRRORRORRRRRORORRRORRRRRRRORRRRRRRRRORRRRRORRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRORROORRRRRRORRRRRORRRORRRRRRRRORRRRRRRRORRORRORRORRRORORORRRRRRRRORRRRRRORRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRROROOOORORRRRRRRRRRORORRRRROORROROORRRRRRORRRRRRORRRRRORRRRRRRRRORRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRORRROROORORRRORRRRRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRORRRRRRORRRORRRORORRRRRRRRRRROORRRRRORORRRRRRRRRROOORRRRRRORRRRRORRROROOROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRROOORRRRRORORRRORORRORRRRRRRRORORRRRRRRORRRRRORORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRORRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRORORORRRRRORRRRRRRRRRRRROOORRORRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRORRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRORRRRRRRRRRORRORRRRORRRORRRRRRRORRRRRORRRORRRRRRRRROOOOORRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRRRRORRRRROROORRRRORRRORRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRORRROORORRRRRORRRRRRRRRRRRRRROORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRROORRRRORRORRRRRRORRORORRRRRRRRRRORRRRRRRRORRRRORRRRRRORRRRRORRORRRRORORRORRROORRORRRRRORRRRRRORORRORRRRRRRORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRROORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRORRRORRORRRRROORRRRRRRRRRRORRRORRROORRORRORRORRRRROROORRRRRRROORORRRORRRRRRRRRRRRRRRRORORRRRROORRRRRRRRORRORRRORRRRRRRORRORRRRRRRORRRRROORRRRRRRORRRRRORRRORRRRRRRRORRORRRRRRORORRRROORRRRRRORRRRORRRRRRRORRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRROOOORORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRORRRRORRORRRORRRRRRROORRRRRRRORRRRRRRRRRRRRRROORRRORRRRRRRRRROORRRRRRORORRROORRRRRRRRRROORRRRRRRRRORRRORRRRRRORRRRRRRRORRRROORRRORRRRRRRRRROORRRRRRORRRRRRRRRRORRRROOORRORRRRORRRRRRRRRRRORORRRRRRORRRRRRRRORRRORRRRRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRROORRRORRRROORRRRRRRRORRORRRROOORRRRRRRRRORRRRRRRORORRRRRRRRRRRROORRRRORRRRRRRRROORRRRRORORRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRRORRRRRORRRRRRRORRRRRRRRORRORRRORRRRRORRRRORRRRRRRRRORRRORRRORRRRRRROORRRRORRORRRORRRRRRORORRRORRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROROORRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRORRORROORRRRRRRRRRRRORORRRRRORRRRRRRRRRRROORRROOORRRRRORRRRRRRRORRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRORRRROORRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORORRRRRRORRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRORRRRRRORRORRRRROORRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRORROROORRRRRRRRRRRORRRRRRROOORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRORRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRORRRRORRRRRRROORORRRRRRORRORRRRRORRRRRORRROROORRRRRRRORRRRRRRRRRRRRRORRRRRORORRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRORROORRRORRRRRRRRRROORRORRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRORRRRROORRRRRRRORORRRRRROORROROOORORRRORRRRRORRRRRRORRRRRRRRRRRORROORRORRRRRRRRRRRRRRRRRORRRRRRROORRRRRORRRRRORRROORRRRRRRRRRRROORRRRRRRRRRORORORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRROOOORORRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRORROORRRRRRRRRORORRRRRORRRROORRORRORRRORRRORRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRROORORORRRRRORRRRORRORRRRRROORRRRRORORRRRRORORRRRRORRROORRORRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRORRRORRORRORRRRRRRRRRRRRRRROORRROORRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRORRRRRRRRRRRROORRRORRRRRRRRRRRRRORRRRRRORORRRRROORRRORRRRORORORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRORRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRORRRORRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRORORRORORRRRRRRRRRRROORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRORRORRRRRORRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRORRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRORRRORRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRORRRRRORRORRRRRRORORRRRRRRROORRRROORRORRRRRRRORRRORRRORRRORORRRRRRORRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRRORRRRROORRRRRRRRRRRRRRROORORRORORORRRRRRRRRRORORRRRRRRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRRORRRORRRRRORORRRRORRRRRRRORRRRORRRRRORRROORRRRRROROOORRRRRORRRRRRRRRORRRRRRRRRROROORRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRROORRRRRORRRRRRROORRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRORRORORORRRRRRRRRORRRRROORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORROORRRRRRORRRRORRRRRRRRRORORRORRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORROORRRRRRRRRORRRRRRRRRRRRROORORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRORORRRRORRROROORRRRORRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRROROORRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRORRORRRROORRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRORRRROORRRORORRRORRRRRRRRRROORRRORRRRRORRORRRORRRRRROORORRORRRRRRRORRRRRRRRROORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRORRRRRORRRRORRROORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRORRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRORRRORRRRRRROORRORRRRRORRRRRORROORRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRORRRRRRRRRORRORRORRRRRORRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORORROROORRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRORRRRRRORRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRROORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRORRRRRRRORRRRRRRRROOOORORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRROOORRRRRRRRROROORRRRRRRRRRRROORORRRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRORRRRRRRRRORORORRRRROORRRRRRRRRRRRORRRRRRRORRORRRRRORRRRRORORRRRRRORRRRRRORRRRRRRORRRRORRORRRRRRRRRRRRORRRRORRRRRRRRRRRRORROORRRORRRRRRRRRORRRRRRRRRORRRRRRROORRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRORRRRORORRRRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRORROROOORORRRRRRRRRRORRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORORRRRRRRORRRRRRRRRORRRRORRRRORRORRRRRRRRRRRORRRRRORRRRRRRROORORRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRROORRRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRORRORRRRRRORRRRRRORRORRORRRRRRRRRRRRORRRRRRORRRRRORRRORRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRROORRRRRRORRRRRRRRRRRRRRRRROORRRRORRORRRORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRORRRRRRRRRORRRORRORRRRRORRRRRRRROORRRRRRRRRORRRORRRRRRROORRRORRRROORRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRRORORORORRRORRRRRORRRRRORRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORORRRROORRRRRRRRRRRORRORRRRRORRRRRRRRRORRRRRRORRRRRRRRRROORRRORRRRRRRRROOORORRRORRORORRRRORRRRRROORRRRRRRRRRRORRRRRRRRRRORORRRRORRORRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRROORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRORRRRRRRRORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRORRRRORRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORRRRRROORRRROORRRRRRORRROROORRRRRRORRRRRRRRRRRRRORROOORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRROORRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRRRRORRRRORORRORRRRORRRRRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRROORRRRRRRRRRRRRRRORRRRORRRRRRRRRORRROORROORRRORRORRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRROORRRRRRRRRORRRRRORRROROOORRRRORRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRORRORRORRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRROORRRORRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRORRORRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRORRRRORORRRRORRRRRRRRORRROORRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRROORORRRRORRRRROORRRROORRRRRRRRRRRRRRRROOORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROOORORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRORRORRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRROOORRRRRORORRRRRRRRRRRROORORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRORORRORRRRRRRRRRRRROORRRRRORRORRRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRRORRRORORRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRORRRORORRORRRRORRRORRROOORRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROOROROORRRRRRRRRRRRROORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRORRRORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRROOORRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRORRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRORRRRRORRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRORORORRRRRRRRRRRRRRORRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRORRRRORORORRRRRROOORRRRRRRROOORRRRORORRRORORRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRRRRROOORRRRORORRRRRROORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRRORROOORRORORRRRRRORRRRRRRRORRRRRRORRRRRRRRORRORRORRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROORORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRRRORRRORROOOORRRRRRORRRRRRORORRRRRRRROORORRRRRRRRRORRRRRRRRORORORRRORRRRRORORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRORRRORRORRRRRROORRRORRRROOORROORRRRRRRRRRRRRRORRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORORRORRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRROORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRROOOORROROOORRRRORRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRORRROORRRORRRRROORRRRRRRRRRORRORRRRRRORRRRRROORRRORRRRRORRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORORRORORRRRORRRRORRORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRORORRORRRORRRRRRRRRRRRRRORORRRRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRORRRRRRRORRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRORRRORRRRRRRRRRRRRORRRORRRRRRRRRROROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRORRRRRRRRRRRRRROROROORRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRORRRRRORRRRRRRORRRRRRRRRRORORRRRORRRRORRRRRRORRRRRRORRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRORORRRRROORRRRRRRRORRRRRRRRRORRROOORORRORRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRORRORORRORRRRRRRRRORRRRRRRRORROORRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRORRRRRRRRRRROORRRRORRORRRRORRRRRRRRRRRRRORRRRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRORRRORRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRROORRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRROROROORORRRRRRRORRRRRRORRRRRRRRRORORORRRRRRRRRRRORORRORRORRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRROORRRRRRRRRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORORRRORRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRROOORORRRRRROORORRRRRRRRRRORRRRRRRORRRRRRRROROORRRRRRORRRORORRRROOORRROORRRRRRRRRRORRRORRRRORRRRRRRRRRRORRRRORORRRRORRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRROORRRRRRRORRRRRRRRRRRRORRORRRORORRRROOORRORRRRRRRRRRORRRRRORRRRORROROORRRRRRRORRRRRORRRRORRRRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRORORROORRRRRRRORRRRRRORROOORRRORRRRRRRRRRRRORRRRRRRRRRRRRRORROORRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRORRRRRRRRRRRRRRRORORORRRORROORRORRRRRRRRROOORRORRRORRRRORRRRRORRRRRRORRRRRRRRRRORRRRROORRRRRRRRORRRRRORRRRRRORRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRROORORRRRRRRORRRRRRRRORORORRRRRRRRORRRORRRORORRRRRRRROROORRRRRRRORORRORORRRRRORRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRROOROOROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRROORRRRRRROORORRRRRRRRRRRRORRRORRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRORRRRRORRRRRROORRRRORRORRORRRRRRORRRRRRORORRRORRRRRRRRRRRRRORORRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRORRROOORRRRRRORORRRORRRRROORRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRROORRROROORRRORRRRRORRRRORORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRORROORRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRORRRRRRRRRRRORRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRORRRRRRRROORRRRRRORRRRRRRRORRRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRRRROORRORRROORRRRRRRRORRRRORRRRRRRORORRRORROORORRROORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRROORRRORRRRORRRRRRROOORRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRORRRRORRRRRORRRRRRORRORORRRRRRRRORRRRRRORRORROORRRRRRRRRRORRRRRRRORRRROROROORRRROORRRRRRRRRORRRORRORRROORROORORRRRRORRRRRORRRRRORRROROORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRROORRRRRORORORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRROORRRRRRRRRRRROORORRRRRORRRRRRRRRRRRORRRORROROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRORRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRRRRRRRRRRORRRRRRRRRORRORORRRORRRRRRRRRORRRROORRROORRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROROROOORRRORRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRRRORRRRRORRRRORORRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRROORRRRRRRRORRRRROROORRRORRORRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRORRRRRRRRRRRRORORRRRRRORORORORRRRRRRRRRRRRRRRRRRORRRRRRRRRROOORORRRRRORRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORORRRRRRROORRRRRRRORRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRROORRRORRRRORRORRRRRORRRORRRRRRORRRRRRRORRRRRRRROORORRRRRRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRORRRORRRRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRORORRRROORRRRRRRORRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRORRRRRRRRORRRRORRRRRRROORRORRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRROOOORRRRORRRRORORRRRRRRRRRRRRRROORORRORRRRRRRRRRRRRORRRRRRRRRRRRROROOORRRRRORRRRRRRRORORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRROORORRRRORRRRRRRRRRRRRORORORRRRRORRRRORRRORORRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRORRRRRRRRRRRRRRORRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRORRRRORRRRRRRRRRRRORRRROORROORRORRRRRRRRRRRORRRRRRORRRRRORROORRRRRORORRRRRRRORRORRRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRORRRRRORRRRRRRORRORRRRRRRORRRRORORRORRRRORRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRORORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRORORRORRRRRRRORRRORRRROORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRORRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRROOORRRORORRRRRRRRRRORRRORRRRRRRRRRRROORORROORORORROORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORROOORRRORRRRRRRORRROORRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRRRRRRORRRRROOORORRRRRRORRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROOOORRRRORRORRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRRORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRROORORRRRRRRRRRRRORRRRRRORORORRRRRRORRRRRRRRRROORRROROORRORRRRRRRRRRRRRRRORRRRRRORRRRRRROORORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRROORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRORORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORORRRRRRRRRORORORRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORORRRRRRRRORORRROROORRRRRRORRRRRRORRRRRRORRRORROORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRORRRRRRRRROORRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRROOORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRORRORRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORRROORRORRRRORRRRRRRRORRRRRRRRRRRRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORORORORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRROROROORRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRORROORRRRRRRRRRROROORORRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORROORRRORRRRRRROORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRORRRRORRRRRRORRRRRORRRRRRRORRORRRRRRRRRRROORORRRRRRORRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRROOROORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRROORRRRRROORRRRRRRRRRRORRORRRRRRRRRORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRORRRORRROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRROORROOROROORRORRRRRRRRORRRRRROROORRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORORORRORRRRORRRRRRRORRORRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRORRRRRRROORRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRROOORRRRRROORRRRORRRRRORORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORORRRRRORRRRORROORRRRRRRRRRORRRRRORRORRRROORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRROORORORRRRRORRRRRRRRRRRRRRORRORRORRRRRRRRORORRRRRRRRROORRRRRRORRRORRRORRORRRRRRRRRRRRRRORRRRROORRRRRRRRRRORORRRRRRRRORRRRORRRRORRRRRRRORRRROOORRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRROORRRRRRRRRRORORRRORRRRRRRRRORRRORRRRORRORRORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORORRRORROORRRORRRRRRRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRRRORRORORRRRRORRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORORRRRRRRORRRRRRRORRRRRRRRORROORRRRRRRRRRRRRORORORRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRRRRORRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORORRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRORRRORORRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRORRRRRORRRRRORRORRRRRRORRRRORRRRRRRRROORRRRRRRRRRRROORRRRRORRORRRRRRRRRRRRRRRRRRRRROOOOORORORRRORRROOORRRRRRRROORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRORRRROORRRRRRRRRORRRRRRRRRRROROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRROORRRRRORORRRRORRRRRRORRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRORRORRRRRRRRRRORRRRROORRRRRRRORRRRRORRORRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRROORROORRORORRRRRRRRRRORRRRRORRRRRORRROORRRRRRRRORRRRRRORRRRRORRRRRRRRORRRRRRRORRRRRRRRRRORROORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRORRRRROROORRRRRRRORRRRRRORRRRRROORROROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORORRORRORRORRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRORRRRRROROORRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRROORROORRORRRRRRRROORRRRRRRRRRRRRORRORRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRORORRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRROROORRRRRRORRRRRRORORRRRORRORRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRRORRRRRORORRRRRRRRRRRORRORRRRRRRRRORRRRRORRRRORRRRORRRORRORRRRORROORORRORRRORORRRRRRRRRRRORRORRRRRRRRRRORRORRRRRROORRORRRRRROORRRORRRRRORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRORRRORRORRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRORORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRORRRRRORRRRROORORRRRORRRRRRRRRRRRRORRORRORRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRRRRRRRRRRORROOORRORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRORRRRRRORRRORRRORORRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRORRRRRRROORRRORRRORRRRRRRRRRRRRRRRRORRRORRRRRRRORRORRRORRRORRRRRORORRRRORRROROOORRRRRRORRRRRRRRRRRRRRRRRRORRORORORRRRRRRRRRORRRRRRRRRRORRRRRRRROORRRRRRORORRRRRRRRRRRORRRRRRRROORRRRRRRRRRORRRRRORRRRRRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRROROORRRRRRRRROORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRROORRRORRORRRRRRORRRRRRRRRRRORRRRRRRRRORRRRORRRRROORRRRRRRRRRORRROORRRRRRRRRRORRRRRRROORRRRRRORRRRRORRORRRRRRRRRRRRRRRRORORRRRRRORRRRRRRORORRRRRRRRROORROORRRRRRRRRRRRORRRRRRRORRRRORRRRRORRRORRRORORRRRRORORRRRORRORRRRRRRRRORORRRORRRRRRRORRRRROOOORRRRRRRRRRRRRORORRRRRRRRROOORRORRORRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRORORRRRORORRRRRRRORRRORRORORRRRRRRRRRORRRRORRRRRRRRRROORRRRRRRRRORRRROORRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRORRRRRRRRORORRRRORRRRRRORRORRORORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORORRROORRRRRORRRRRRORRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRROORRRRRRRRORRROOROOORORORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRORORRRRRRRRRRRRRROORRRRRRORRRRRRRRRORRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRROORRORRRRORRORRRRORRORORRRROROORRRORRORRRRRRRRRRORRORRRRRRRRRRRRRROOORRRRRRRRRRRRRRRORRRRRRRRRRRRORRORORRRRROORRRROORRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRORORRRRRRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRROORRROORRORRRRRRRRRRRRRRRRRORRORRRORRORRRRORRRRRORRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRRRROORORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRROORRRRRRRRRRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRROORRRRRRORORROORRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRROORRRRORORRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRRRRRRRROORROROORRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORORRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRORRROOOORRRORRRORRORRRRRRORRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRORRRRORRORRRRORRRRRORRRRRRRRRRRORRRRORRRRORRRRRORRRRROORRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRORRORRRRORRRORRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRORRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRORRRRRRORRORRRRRORRORRRRRORRRRRRRRORRRRRRRRRORROORRRRRRRORROORRRRRRRRRRRORRORORRRRRRRRRRRRRROORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRROORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRORRRRORRRROORRRRRRRRRRRRRRORRRRRRORRORRRRRRORRORRRRRRRRORRRRRRORORRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORORRRRRRRROORORRRRORRRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORRRRRRORORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRROORRRRRRRRRRRRRORORORRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRORORRORRRROORRRRRRRRRRRRRRORRRRRRRORORRRRRORRROORRRRRRORRRORORRORRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRORRRRORRRRRORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORORRRORRRRRRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRORRRRRORRRRRRORRRRRORRRRRRRRRRROOORRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRROORRRRRORRRRORORORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRORROOORRRROORRORORORRRRRRRRRORRORRORRRRRRRRRRRORRRRRORORRRRRORRRRRRRORRRRRRRRRRRORORRRRRORRRRRORRRORRRORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRORORRRRROOOORRRRRORRRRRRORRROORRRRROORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRORORRRRRRORRRRORRRROORORRORORORRRRRRRRORRRRRRRRORRORRRROROOORRRRRRORORRRRRRRRRRRORRRRORRRRRORRORROORRRORRRRRRRRRRRRRROORORRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRROORORRRRRRRRRORRRRRORRRRRRRRORRORRRORRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRORRRORRRRROROORRROORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRROORORRRORRORRRRROORRRRRRRRRRROOOORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRROOORRRRRRRRRRORRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRRRRRORRRRORRRRRRORROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRORRRRRRRRORROORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRROROORORRRORRRRRORRRORRRRORRRORRRRRRRRORORRRRORRRRRORORRRRRORRRRRRRROORRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRRROORROORRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRORRRRRORORRRRRORRRRRORRRRRRRRRRORRRRRRRRROORRRRRORRORRORRRRRRRRRRORRROORORRRORRORRRRRRRRRRRORRORRRRRRRRRROORROORRRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRRRRRRROORRRRRRRORRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRROORRRRRRRRROROORRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRRRROROORRRRRRRRRRRORRROOORRORRORRRRRRORORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORROORRRRRRRORRORRRRRRRRRRRRRRRRORRORRRRRRORRRRRRORORRRRRRROORRRRRRRRRRRORORRRRRRRRRRRORRORRRRRORRRRORRROOORRRRORRRRORRROORRRRRRRROROOROORRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRRROOORORRORRRRRRRRRRRORRRRRRRROROORRRRRRORRRORROORRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRRRROORRRRRORROORRRRRRRRRRRROOORRRRRRRRRRRRRORRRRRORRRRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORORRRRRORRRRRRRRORRRRRRRRRRRRORRROORRRRRRRORRRORORRORRORORRRRRORRRRRRRRRRROROORRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRORRORRRRRORRRRRRRRRORRRORRRRRORORRORROORROORRRRRRRRRRRRRRRRRORRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRORRRRRORRRRRRROORRRRRRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRORORROOORRORRRRRRRRRRRRRRORROORRRRRRRORRRRRRORRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRRROOORRROROOOORRRRRRRRRRRRRRRRRRORRORORRRRRORORRRORRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORORRRRRORRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRROROORRRRRORRRRRRORRRRRORORRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRORRRRRRRORRORRRRROORRROORORRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRROORRRRRRORRRORRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRORORRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRROORRRRRRRORRRRRROORRRRRRRRORRRRRRRRORORRORORRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRORRRRRRRRRRORRORORRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRORRORRRRRRORRRRRORORRORRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRORRORORRRRRRRRORRRORRRRRRRORORRORRRRRRRORRRRRRROORRRRRRRORRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRORORRRORRORRORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRORRRORROORRORORRRRRRRRORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRORRRORRRRRROORRRRORRRRRORRRRRRRRRRRRRORRRRORRRORRRRRORRRORRRORRRRRRRRORRRRORRRROORROORRORORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRORRRRRROORRRRRRRRRORROORRRRRRRRRRRRORORRORRRRORRRRRRORRORRRRRRRRRRRRORORRRORRRORRRRRRRRORRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORROORRORORRRRRRRORRRRRRRRORRRORRRRRRRRRRORRRRRROORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRROORRRORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORROOORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRROORRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRORORRROOORRRRORRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRORRROORRRRRORRRORORRRORRORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRORORRRROORRRORRRRRORRRRROORRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRROORRRRRRRRRRRRRORRORRRORROORRRRRRRRRRRRRRRRRRRORRORRRORROORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORORORRORRRRRROORRRRORRRRROORROORRRRRORORRORRRRRRRRRRROORORRRRRORRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRRRRORRORRRRRRRRRRRRRRORORRRRRORRRRRRORRRRRRROORORRRRRRRRRRRRORRORRRRRRRRRRRORRROORRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRORRRORORORRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRORORORRRRRORORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROROROORORRRRROOORRRORRRORRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRORRRRRRRRROORRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRORROROORRRRRRRRRRORRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRORRRRRRROORRRRRRROORRRRRORRRRROORRRORRRRRRORRRRRRRORORRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRORRRRROROORRRRRRRRRRRRRRRRORORRRRRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRORORRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRRRROORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRROROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRRRORRRRRRRRRRRRORRRORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRRRRRORRRRORRRRRORRRRRRORRORORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRORORRORRRRRRRRRRRRRRRRRORORRORRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRRRRRRRROOOORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRORRRORRRORRRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRROORORRRORRRRRRRRORRRRRORRRRRRRRORRORRRRRRRRRRRRRORRRRORORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRROORRRORORRORRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORRRORRRRORRRRRORRRROORRRRRRRRORORRORRRRRORRRORRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRROROOORRRRRRRROORRRORRORROORORRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORORRRRRRRRRRRRRRRORORORRORRRRRRORRRRRRRRRORRRRRRRORRRRORRRORRRRRRROORRROOORRRRRRRRORRORRRRRORORRRRRRRRRRRRORRORRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORORORRRRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRORRRORRRORRRRRRRORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRORRRORRRRRRORRRRRRRORORORRRRRRRRRORRRRRROORRRRRRRRRRRRORORRRRRRRRORRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRROORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRORRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROOORRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRORRORORRORRRRRRRRRRRRORRRORRROORRRRROROOORRRORRRRRRRRRRRRRRORRRORRRRRRRRORROORRRRRRRRORRRRRORRORRORRRRRORRRRRRORRRRRRRORRRRORRRRRRRRRORORRRRRRRROORRRRRRRRRRRROORRORORORRRRRRRRRRRORRRRORRRRRORRORRORRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRRORRRRRORRRRRORRRROOORRRRRORRRROORRRRRRRRORRRRRRRRRORRRRORRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRROORRRRRORRRRRRROOORRORRRORRRRROORRRRRRRORORORORRRRRRORRRORRRRRRORORRRRRRRRRRORRRORRORRRRORORRRRRRRRRRRRRRRRRRRRRRRROROOROORORRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRORRRRRRORROORRRRRRRRRRORRRRRRRORRRRRROROORRRRRRRRRORRORRRRRRRRRRRRORORRORRRROORRRRRRRRRRRRRRRRRRRORRRRROROORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRORRRRRRRORRORRORRRORRRRRRRRRRORRRRRORRRRRRROORRRRRRRRRRRROOORRRRRRRRRRORORRRRRRORORRROORRORRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRORRRORRORORRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRROOORRORRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRROORORORRRRRROORRRRORRORORRRRRRRRRRRRRORORRRROOORRORRRORORRRRRRROORRRRORRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRORORRROORRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRRORRRRORRORRRORRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORRRORORRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRROORRRRRROOORRRRROORRRRRORORRRRORRRRRRRRRRRRRROORRRRRRRORRORRRRRRRRRORRRRRRORRORRRRRRRORRORRORRRRRRRRRRRRRROORROOORRRRRRRRRRRRORORRORRRRRRRORRRRRRRRRRRRRROORORRRRRORRRRRRRRRORRRRRRRROORRORRRRRRRROOORRRRORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRORRRRORRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORORRRORRRRRRRRRRRRORRROORRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRRORRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRROORROORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRORROOORRRRROORRRRORORROORRRRRRRROOORORRRRRRORORRORRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRORRRRRRORORRRRRRRORRRRROORROORRORORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRRRRRORRRRRRRORRRRORRRRRRRROORRORRRRRRORRRRORRRRORRRRRRRRORRORRRORORRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRORROOORRRRRORRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRORRRRRORRORRRRRRORRRRROOORORRRRRRRORRRRRROORRRRORORRORRRRRORRRRRRROOORRRRRRRRRRRRRRRRORROORRRORRRRRRRRRRORRORRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRROROORRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORROORRRRORRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRORRORRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRROOORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRORRRRRRRRORORORORORRRRRRRRRORRRRRROROORRORRRRRRRROORRRRRRRORORRRRRRRRRRRRRRRRRORRRROOROROORRRRORRRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRORRRRRRRRRRORORRORORORRORRORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRROORORORRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRORRROORRRRRRRORRORRRRRORRRRRRRRRORORRRRRORRRRRORRRROORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRROORRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRRRORORRROORRRRRORORORRRRROOOOORRRRRRORRRRRRRRRRORORORRRRRRRRORRORRRRRRRRRRRRRRRRRROROORRRRRROORRRRRRRRRRRRRORRRORRRRRRRRRORORORRRRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRORRRRRRORRRORRRRRRRRRROROOORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRROORRRORORORRRRROORRRRORRRORRRRRRRRRORORRORRRRRRRORORRRRRRRRORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORORRRRRORORRRRRRRRRRORRRRRRORRRRRRORORRRRRRRRRROORRRRORRRRRRRRORRRRROROOORRRRORORRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRROORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRROORRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRORRRRRORORORORRRRRRORRRRRRRORRRRORRRORRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORRRRRRRRRRRRORROORRRRRORORRRRRRRRRRRRRORRRRORRRRORRRRRORRRRROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRORORRORRRRRRRRRRORRRORRRRRRORRRRRORRRRRRRROORRORRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRORRRRRORORRORORRRORRRORRRRRORRORRRRORRRORRRRRRORRRRRRRRRORRRRRRRORRORORRRRRRRRRRRRRROOOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRRRRRRRORRRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRORRRORRORRRORORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRORORRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRROORRRRRORORRRRRRRRRRORRRRRRRRRORRORRRRRORORRORORRRRRRRRRROORRORRORROORRRORRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRORRORRRRORRRRRRRRRRRROORRRRORRORRRRRRRRRRRRRRRRRORORRRRRORRRRRRORRRRRRORRRRRRRRRORRRRRRRORRRORORRRRRRRRRRRRRRRORORRROROORRORRRRRORRORRRRORORRORRRRORRRRRORORRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRORRORORORRRORRRRRRRORRRORRRRRRRRRORRORORRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRORORRRRRRROORRRRRRRRRRROOOORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORROORRRRRORRRRRRORRRRRRRRRRRRORRRRRRRORROORRRORRROOORRRRRRRRRRRORRRORRRRROROORRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRORRORRRRRRRORRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORRRORRRRRRRORRRRRRRRROORRORORRORORRRRRRRORORRRRRRRRRRRRRRRRRRRRROOORROORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRROOORRRRRRRRORRRRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRORRRRRRRORRRRRRROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRORRRORRORRORRRRRRRRRRORRRRRRORRROORRRORRORRRORRRRORRORRORORRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORORORRRORRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRORRRRRRRRROORRRROORRRORRRRORRRORRRRRRRRRRORRRORRORRRRRRRRRRORRORRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROORRRORRRORRRRRRRORORRRRRORORRRRRRRRRORORRRORRRRORRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRORRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORRROORRRRRRRRRRORRROORRRORRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRORORRORORRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRORROROORRORRRRORRRRRRRRORRRRRORORRORRORORRRRRRRORRRRRRRRRORRRRRRORRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRRRRRRRRORRRRRRRORRRRORRRRRORROOOORRROORRRRRRRRRRRROORRORRRRRRORRRRRRRRRRORRRRRROORRRRRRRRRORRRRORORRRRRROOORRRRRRRRORRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRORROORRRORORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRORORROORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRROROROORRRRRROOOORRRRRRRRORRORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRORORRRORRRRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORORORRRRRRRRRRRRRRRRRORORRORRRRORRORRRRRORRRRORRRRRRRRRRORRRRRRRRRORORRORRRRRORORRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORRRRRORRRORORRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRORORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRORRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRROORORRRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRORRRRORRRRORRORRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORRRRRRRRRORRROORRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRROROORRORRRRORORRRRRRRRRRRRRRRRORRORORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRORRRRRORRORRRORORRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRORORORRRRROOORRORORRRRRRRRRRRROORRRRRORRRRRRROORRRRRRORRRRRRRRRROORRRRRRRORRORRRRRORORRRRRRRRRRRRRRORRORORRRRRORRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRORRRRORRRRRRRRRRRROOORRRRRRRORRRRRRRORRRRRRRRRRORROORRORRRRRRRRRROORRRRRRRRORRORORRRRRRRRRORRRORRORRRRRORRRRRRRORRRORRRRRORRRRRRORORROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRORRRRRRRORROORORRROORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRROORRRRRRRRRORRRRRRORORRORRRRROORORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRORRRRROOORRRRRRRRORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRORRRRRRRRRRRRRRRROORORRRRORORORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRORRRORORRRRRORRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRORORRRRRRORRRRORRRRRRORORRRRRRORRRRRRRRRRRRORRROOORRRRRRROORRRORORRORRRORORORRORRRRRRRRRRRROORRORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRRRRORRRORRORRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRORRROORRRRRORRRRRORRRRRRRRRRROORRRRRRORRRRORRORRORRRORRRRRRRRORRRRRRRORRRRRRRORORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRROORRRRORRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRORORRRRRRRRRRRROROORRRRORORRRRRRORRORRRRRORRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRRROORRORRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRROROORRRRRRRRRRRORRORRORRRRRRORRRRRRRRRRORRRRRORORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRORRRRRORRORRRORRRRRRRORRRORRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRROOORRORRRRORRORRROOORRRRORORRRRRRRRRORRROROORRRRRORRRRRORRRORRRRRRORRRRRORORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRORORRRRORORRRORRRORRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRORORRORRRRRRRRRROROORROORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRROORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRROORRRRROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRORRRRRORRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRORROROORORORRRRRRRORRRRRORRRRORORRORORROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORROORRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRRORRRRROORRRRRRRRRRRRRRRORRRRRRRORRRORROROORRORRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRORRRRRRORRRRRRRRRORRORRRORRRRRRRORRRRRRRRRRRRRRROORORRRORRRORRRRRRORRRRORRRRRORRORRORRRORRORRRRRRRRRRRROORORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRORRRORRRRRRRRRRORRRORRRRRRORROORRRRRRRRRRRRORRORROORRRRRRRRRRRRRRRRRRORRRRROROORORRRRRRRRRRRRRORRRRRRORRRRRORORRRRRRRRRROORRRRRRRRRRRRRRORORRORRRRRROROORRRRRRROORRRORRORRRRRRRRORROORRRRRRRRRRRRRRRROOORRORRRRRRORRRRORRRRORRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRORRRRROORORRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRROORRRRRORRRRROORORRRRORRRRRRRRRRRORRRRRROORRORRORRRRRRRRROORRRRRROORRRRRRRORRRRRRRRRRORRORORRROORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRORRRRRORORRRORRRRRRROORRRRORRRRRRRORRRRRORRORRRRRRRROORRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRORRRORRORRRORRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRORRRRORRRRORRRRRRRRORRRRRORRRRRRRRRROROROORRRRRRRORRRRRRRRORRRRRRRORROORORRRRRRORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORORRORORRRRRROOORRRRRRRRRRRRRRRRORROORRRRRRRRRRRROORRORRRORRRRRRRRRORRRORORRORORRRRORRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRORORRORRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRROROORRORRRRRORRRRROORRRRORORRRRRORRRRRRRRRRRRORRRRORORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRORORRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRORRRORORORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORORRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORROOORORRRRRRRRRRRROORRORROROORRORRRRRRRRRRRRORORRRRORRRRRRORRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRROOORRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRRORRRRROORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRROROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROORRRRRRRRRRRORRRRRORRRRRRRRRROROORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRROORRORRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRROOORRRRRRRRRRORRRORORRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRORRRORRRRRORRRRRRRORRRRRRORRRRRROORORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRORRRORRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRROORRRROORRRRORRROORRRRRRRRROOORORORRRRRRRRRRRRORRRRRORRRRRRORRRORRRORRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRORRRRRRRRRRORRRRRROOORORRRORRRRRORRRRRRRRRRRRRRRROORORRRRRRRRRRRORRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRROORRRRRRRRRRORRRORRRORRRRRRRRRORRRORRRRORRRRRRRRRRORRRORRRRORRROORRORRORRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORORRRROOORORORRRRRORRORRRRRRRRRRROOORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORROORRRRRORORRRRRORRRRRRORRRRROORRORROORRRRRRORRORRORRRRRRRORROORRRRRORRRRRORRORRRRRRRRRORRRORRRRORRORORRORRRRRRRRRRROROROROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRORRRRORRRRRRRRRORORORRRRRORRRRRRORRRRORRRRRRORRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRROORRRRRRRRRORRRRRROORRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRROORORORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROORRRORRRRRRRRRRORRORRRRRRORRORRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRROORRROOORRRRRRROOORRRRORRRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRORORORRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRORRORORORRRRRRRRRRORROOORORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORRRRRRRRRRRRRRRORRRRROORORRORRORRROORRRRRORRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRROOOORRRRRORRRRRRRRRRROOORORRRORRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROROOORRRRRRROOOORRRRRRORRORRRRRRRRRRRRRRRRROORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRORRRRRROORRRRRORRRRRRRRRRORRRORRRRRORORRRRRRRRRROORRORRRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRORRORRRRRRRRORORRRRRRRORRRRORORORRRRRRRORRRRORORORRRRRORORRORRRRRRRRORRRORORRROORRRRRRROORORRRRRRRRRRORRRORRRRRRRRRRORRORRRRRRRRRRORRRRRRORRRRRRORRORORRRRRORRRRORRRORRRRRRORRRRRRRORORORRRROORRRRRRRRRRRRRRRRRRRRRRORROOORRORRRORORRRRORRRRRRRRRRRRRORRORRRRRRRRRRORORRRORORRRRRRRRROOORRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRORRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRROROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORORRRORRRORRRORRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRROORRRRRORRRRRRRRRRRORRORORRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRORRORRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRORRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORROOORRRRRRRRRRORRRORRROORRRRRRRRRRRRRRRRRRORRRRRROOOROORRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRROORRORORRROOORRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRORRRRRRRRORORRRRORRORRRRRRRRRRRRRRRRORRRRORRRRORRRRRRORORRRRRRORRRRORRRRRORRRRRORRRORRRRRRORRORRRRRRRRRORRRRRORRRRRRROORRORRRORRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRROROROORRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORRRRRORORRRRRRRRORRORRRRRORRRRRRRRRRRRROORORRRRORROORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRORRORRROORRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRROOORRRORRRRRRORORRORRRRRRORRRRRRRROROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRROROORRRRORORRORRRORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORORRRRRRRRRRRORRRRORRRRRRRRORRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRROORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRORRRRROORRRRRRRORRRRRORRRRRRRRROORRRRRRORRRORRORRRRRORRRRRORRRRRRRRRRRRORROORRRRRRRROOORRRRRRRRORRRRORRRRRRRORORRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRROROORRRRRRRRRRRORRORROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRORRRROORRORORRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRORORRROORRRORRRRORRRRORORRRRRRRRORORRRRRORORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRROOORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRROORRRRROORRORRRORRRORRRRORORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRORORORORRRORORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORORRRRORRRRRRRRRRRRRRRORORROORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRORORRORRORORRRRORRRRRRRRRRRORRRRRRRRRRRORRROORORRRRRRRRRRRRRORRRORRORRORRRRORRRRRORRRRORORRRRRRRRRRRORROORORORORRROORRORRROORRRRORORRRRRRRRRRORRRRRRRRRROORRRRORRORRRRORRRRORRRORRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRRRRORRRORRORRRORRROORRRRORRRRRRORRRRRRRRORRRRRRRRRRRROORRRRRRORRRRRRRRRORRRRRRRRRROORORRRRRORORRORRRRRRORRORRRRRRROORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRRRRRRORRORRRORRRRRRRRORRRRRRRRRROROROORORRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRORRRRRRROOORRRRRRRRRRRRRRRRORRRRORRRRROORRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRORRRORRORRRRRRRRRRRORRROORRRRRRRORRORRORRORORRRRROORRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRORORRRRRRRRRRRRRROORRORORORRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRRRRRORORRRRORORRRRRRORRRRRRRRORRRRRRRORRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRROROORORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORORORRRORRRORRRRORRRRRRRORRRRORRRRORRRRRRRRRRRRORRRRORRORRRRRRORRRRRORRRRORRRRRORRRORORRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRORRRORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRORRRRRRORRRRRRRRRRRRRRRRORRORRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRORORROORRRRRORRRRRRRRRRRRORORORRORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRROORRRRORORRRRRRRORRRRRRRORORRRRORORRRRRRRRRRRRROORORRRORRRRORRRRRORRRRORRRRORORRRRRRORRRRRRRRRRRRRORRRRRORORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORORRRRORORRRRRRRRORRRRORORRRRORORRORRRRRRORORRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRROORORROORRORRRRRRRRRORRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRORORORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORROORRRRORORRRRRRRORRRRRORRRORRRORRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRROORRRRRRRRRORRRRRROROORRRRRRRRRRRRRORRRRRRRRRRRORRRRORORRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRORRROROOORRORRRRRORRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRORRORRRORRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRORRRORRRRRRRRORRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRORRORORRRORRORRRRRRRRORRRRRRRRROROORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRORORORRRRRRORRORORRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRROORRRORRRRRRRRRORRRRORRORRRRRRRRRRRRRROROROORORRRRRORRORRRORRROOORRRRRRRRRRRRRRRROROORRRRRORRORRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRORRORRRORORORROORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRORRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRROORRRRORRRORRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRORRRRRRORRORORRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRORRROORRRORRRRRRRRRRRRRRRRRRRRROROROORRORRRRRRRRRRRORRRROOOORRORRORRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRORROORRRRRRRRRRRRRRRRRRORRRRRROORRORRRRORRRRRORRORRRRRRRORROROORRRRRRRRRRORROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRORRORRORRRRRRORRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRORRRORRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRROORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRORRRRRRORRORRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRORRRORRRRROORRRRRRRRRRRRRRRRRRORRROORORRRRRRRRORORRRRRRRRRRRORRORRRRRRRROORORRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRROOORRORRRRRRORORRRRRRRRORRRRORRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRORORRRRRRRRRRRRRRRRROROOORRROOORROORRRRRRRROORRRRRRRORRORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRORRRORRRRRORORORRRRRORRRORRRORROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRORORORRRRRORRRRORRRRRRRORRROOORORROROORRRROORROORRRRRORRRRRRORRRRRRROORRRRRRRRRORRRRRRRRRORRORRRRRORRRORRRRORRORRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRORRORRRRRRORRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRORRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRORRRORRRRRRRRRRRORRORRORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRRROORRRRRRRROORORRRRRRRORRRRRRORRORRRRROOROORRRRORRRORRRRRRRRRRRRORRRRRRRRORORORRRRRRRORRRRRRRRRROROORRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRROORRORRRRRRRRRORRRORRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORROORRRORRRRRRRRORORRRRRRORRRRRORRORRRRRRRRORRRRRRRRRRRRRROORRORORRRRRRRORRRRRRORRORRRRRRRRRRORRRRRRORRORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRORRRRRRRRORRRORRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRROROROROORRORRRORRRORORRRRRRRRRRRROROORRRRRRORRRRRRORRRRRRRRRORRRRRRRRORORRORRRRRRRORRROORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORORRRRRORRRRRROOORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRORRRRRRRRROROORRRORRRRRRRRRRRRRRRRORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRROOORRRRRRORORRRRRRRRRRRORRRORRRRRORRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRROOORRROORRROORRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRRORRORRRRRRRROORRRRRRRRRRRROORRRRRRRRRRRRORRRRORRRRRORRORRORRRORORRRRRRRRORRRORRORRRRRRRRRROORRORRRRRORRORRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRORRRRRRRRROROORORRROORRROORRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRORRRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORRRORRRRORORRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRROORORRORRRRRORRRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRORRORRORRRRRROORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRORORRRORORRRRRRRRRRRORORRRRORRRRRORRRRRORRRORORRRRRRRRRORORRORRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRORRRRRRRORRRRRRORRRRRORRRRORORRRRRRRORRRORRRRORORRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORRRRORORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRRRRRRRRRRORRROORRRRRRRRRORRRRRRRRRORRRRRRORORROORRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRORRRRORORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRROOORORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRORRRORRRORRRRROORRRRORRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRORORRRRRRRRORRRRRRRRRRORRRRRRRORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRORORRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRORRRRRORROORRRORRRRRRRRRRRORORORORRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORORRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRORORRRORRORRRRRRRORORRRRRRRRRORORRRROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRROROORRRRRRRRORORRRRRRRRROROORRRRRRORRRRRRRRRRRRRRRROORRRORRRORORRRORRRRRORRRORORORRORORRRRRORRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORRRORRRROORRORRRRRRRORORRRROROORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRORORRRROORRORRORRRROORRRRRRORRRRRROORRRRRORRRRORRORRRRRROORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRORRRRRORROORRRORRRRRRORRORRRRRRRRRORRORRRRRORRRRRORORRRRORRRRRORRRRRRRRRRRRRRRRRROORRORRRRRRRORRRROROORRORROOORORRRRRRRORRRRORORRROORRRRRORRRRRRRRORRRRRRRORORRORRORRRRRRRRRORORORRRRRORROROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORORRRRRRRRRRRORRROORRRRRRRRRRRRRRORRORRRORORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRORRORROORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRRRORORRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRORRRRRRRRRROOROROROROORRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRROORRORRRRRRORRRRRRRORORRRRRRRRRRRRRORRROORORRRRRORORRRRRRRRRORRRRRRRORRRORRROORRRRRRRRRRROORRRRRORRRORRRRRRRROORRORROORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROORRRRRORORRRRRRORRRRRRRRRRRRRRRRRROORRRRROORRRRRRRRRORRRRORRRRRRRRORRRRRRORRRRRRORRRRRRORRRRRRRRORRRRORORROOORRRRORRORRRRRRRROORRRRRRRRRRRRRRRORORRRRRROORORRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRORRRORRRORRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRORRRORRORRORORRRRRRRRORRRRRRRRORRORROOORROORORRRRORRRRRORRRRRRROROORRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRORRORRRRRRORRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRROOOOROORRORRRRRRORRRRRRRRRRRRORRRRORRORRRRRORRRRRRRRRRRRRRROROOROORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRORORRRRORRRRRRRRRORRRRRORORORRRRORRRORORRRRRRRRORROROORRORRRORRORRRRRORRRRRRORRROROORRRRORRORRRRRRRORRRRORRRRRORRRRRRRROOORRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRORRORRORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRORORRROORRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRORRRRRRRRRORRRRRORRRRRRRRRROOORRRRRRRORRRRRORRRRRORORORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRORRORRRROORRRRRRRRROORRORRRORRRRRRRRRRRRORORRRRRRRRORROOOROOORRRORRRROORRRRORRRRRORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRORRRRRRRORORRORRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRORRRRRRRRRRRRORRORRORRRRRRRRRRROOORRRRRRRRORRORRRRRRRRRROORROORRRRORRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRROORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRORRRRRORRRRRRORRRRRRRORRORRRRRRRORRROROORRRRRRRRRRROOORRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORORRRRRRRRRORRRRRRRRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROROROORRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRORROOORRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRRRRRROOOORORRRRRRRRRORRRORRRORRRRRORRORRORRRRRORRRROORROORRRRRORRORRRRORROORRRRRRRROORRORRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRORRORRRORRRRRROORRORORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRORRRRORRRORRRRRORRORRRRORRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRROOORRRRORORRORRRRRORRRRRRRRROORORORRORRORRRRRRRRRRROORRRORRRORRRRRRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRRRORORROORRRRRRRRORRRRRRRORRRRRRORRORRRROORRRRRRRRRRRORROOORRRORORRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRROORRRRORORRROORRRORRRRORRRORRRRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRRRORRRRRRRRRORRRORORROORRRRRRRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRORRORROORRRRRRRRRORORRRRORORRRRRRRRORRRRORRRRORRORROROORRORRRRRRRRRRRRRRORRRRRRRORORRORRRRRRRRRRORRRRRRRRRRRRRORRORRRORRRRRRRRRRORRORRORORRRORRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRROROORRRRRRRRRRRRROORRRORRORORRORRRRRRRRORRRRRRRORRRRRORRORRRRRRRRRRRRORORRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRORORRRROORRRORORRRORRRRRRRROORRORRRRRRRORRRRRRORRORRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRORRROORRORRRRRRRORRORRRRRRRORRRRROROORRRRORRORRORRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRROORRRRORRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRROORRRRRRRORORRRRORRORRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRORROOORORRRRRRRRRRRRRRRORORRRRRRORRORORORRRRRRRRORORRORRRRRRRRRORRRRRROROORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRORRRRRRRRRORRORRRRORORRRRRRRRORRRRRRRRRRROORORRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRORRRRRRRROORRRRRRRRROOORRRRORRRRRRRRORRRRRRORRRRROROORRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRORORRRRRORROORRRRRRRRRRORRRORORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRORRRRRRRROORRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRORORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORROROROOORROROORORRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRROROOORORRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRORRRRRRORORRRRRRRRRRORRORRRRRRRRRRRRORRRRRORRRRRRRORRORRRRRORRRRORORRRRRRRRORRRORRRORRRRRRRRRRORRORRORRRORRRORRORRORORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRORORRRRRRROOORRRORRRRRORORRROORRRRRORRRRRORRRRRRORRORRRRRRORRRRORRRRORRRRRRRRRRRORORRRORROORRRRRROORRRRRRRRRRRORRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRORRRRRRRRRRRORRRORRRORRRORRRRRRRRROORRRRRRRROOROOROORORRRRRRROORRORRRORROOROORRRRRRRRORRRRRRRRRORRRORROORRRRRRORRRORRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRORORRRRRRRRRRRROORRRORORRRORORROORRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRORRRRRORRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRORRRRRRRRRRRRRORRRRRRRRORRRRORRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRROORROOORRRRRRORRRORRRRRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRORRRRORRRORRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRORRORRRRORRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRORRRRROORRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRORRORRROORRRRRRRORRRRRORRORRRRRORRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRROOORRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRROORRORRRRORRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRROOORRORRRRRRRORRRORRRRRRRORRRRRRRORRRRORRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRORRRRRORRRRRRORRRRORRRRRRORRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRRRORRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRROROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRORRRORRRORRROORRRRRRRRRRRRRRRRRRRORRRRRROOROORRRRRRRRRORRROORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRORRRRRRRRORRRRRRRRRRRROORRRRRORRRORRRRRRRRRORRRRRRRORRRRRORRORRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORORRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRORRRRORRORRRRRORRRRORRRRRRRRORRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRORRRORRRORRRRRRRROORRRRRRRRRRRRRORRORRRRRRRORORRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORORRORORRRRRRORRRRRORRRRORORRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRROORRRROORRORRORROROROOOORRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRORRORRRRRRORROOORRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORRRRROORRORRRRRRRRRRRORRORRRRROORRROORRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRORRRRORRRRRRROORRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRORRRRRRRRRROROORRRRRRRRRORRRRORRORRRORRRRRRRRRRORORRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRROROORORRRORRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRORORORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRROORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRROORRORRORRRROOORRRRRRRRRRRRORRORRRRORRORROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRROORRROROROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRORRRRROORRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRROORRRRRRRRORRRROORRRRRRRRRORRRORRRRRROOOROORORRORORRRRRORRRRRRRRRRRORRRRORROORRRRORRRRRORORRRRORRORRRRRORRRRRRRRRRRRRRRRRRRORRRRROORRRRROORRRRRRORRRRRRORRORRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRORRRRRRORRORORRRRROOORRRRROORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRROORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRORRRRRORRRORRRRRRRRRRRORRORRRRRRRORRRRRRRRRRORRORRRRORRRRRRRROORRRRROOORRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRRRRRRRRRRRROOORRORRORRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRROOORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRORRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRORRRRRRRRRRORRRORRORRRRRRRRROORORRRRRRRRRRORRRRRRRRROORRRRORRRRRRRRORRRRRRRRRRRORORORRRRRORORRRORRRRRRRRRROOORROOORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRROOOROROORRRRRRRRRRRRRRRRROORRRRRRRRROORRRRRRORRRRORRORRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRORRRRRRRORRORRRRRRORRORRRORRRRRRRRRRRRRRRRORRRORRORRRRRRRRORRRRRRRRRORORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRORROORORRRRROORRRRORRRRRRORORRORRRRRORRORORRRRORRRORRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRORRRORRORRRRORRRRRORRRRRORORORROOROORRRRRORRRORRRRRRRRRORRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRROOORRRRRRRRRRRORORRORRRORRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRORRORRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROROORRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRORRRRRRORRROORRRRRRRRRRRRRRORRRORORRRRRRRRRORRRRRRORRRRRRRRORRORRRRRRRRRRRRORRROOORRORRRRRROORRRRRORRRROORORRORRRRRRRRRRRORRRRRRROORRRRRRORRORRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRORORRRRRROORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRROORRORRRRRRROORRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRORRRRRORRRRRRROORRRRRORRRRORRRRRRRRRRRRROOORRRRRRRRRORRRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRROROOORORRRRRRRROORRRRRORRRRRRRRROORRRRRRORRORRRRRORRORRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRROORRRRORORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRORRRORRORRRRORORRRRRRRRRRRRORRORORRORRRORRRRRRRRORRRORRRRRRRORORROROORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROROORRRRRRORORRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRORRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRORRRRRRRROORRRRRRRRROOOORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRORRRRRRROORORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRORRRRRRRRRRRROROORRRRRORRRRROROORRRRORRRORRRRORRORRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRORRRRRRORORROORRRRRRORRRRRRRORROROORRORRORRRRRRRRRROORRRORROORRRRRRRRORRRRRRRORRRRRROROOORRRRRRRRRORRRRRRROORRRRORRORORRRRRRORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRROORRORRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORRORRORRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRORRRRRORRRRRRORRRRORRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORROORRRRRROORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRROORRRRRRRRRORRORRRRRRROROOORRRRRRRRRRRORRRORROORRRRRRRRRRRRORRORORRRRRRORRORRORRORRRRRRRRRRORROROROROORRRRRRRRRORRRRRRRROORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRORROORRRRRRRRRRRRRRRORRRROOORRRORORRROORRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRORRRRRROROORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRROOORRRRRORORRRRRORRORRRRRROORRRORRORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRORORRORRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRROROORORRORORORORRRRORRRRORRRRRRRRRORRRORRRRRRORORRRRROORRRORRRORRORRRORORRRRRRRRORRRRORORRRRROORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRORORRRRORRRRORRRRRRORRORRRRRRROROORORRRRRORORRRRRORRRRRRRORRRRORRRROORRORRRORORRORRRRRRRRRORRORORRORORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORORROORRORRRRRRRRRRRRRRORRORRORRORRRRRRRORRRRRRRRRRRRORRRRORRRRORRRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRRROORRRRRRRRRORRORRORRRORRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORROORRRRORRORRORRRRORRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRORRRRRRRORRRRRORRRRRRORRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROOORORRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROROORRORROOORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRROORRRRRRROORORRORORRORORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRROOOORRRROORRRRORRRRORRORORRRRRRRRORORRRORRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRORRRROORRRRRRRRRRRRORRRRRRRRORROORRRRRRRRRRRORRRRROORRRRRRRRRRRORRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRRORROOORRRRORRRRRORRRORRORRRRORROORORRRRRRORORORRRRRRRRORRORRROORRRRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRORRRRRORORRROORORRRRRORRRRRRRRORORRRORRORRORORRRRRRORRRRRRRROROORRRRRRRRRRRRROORRRRRRRRORRRORRORORRRORRRRRORRRRRROROORROORORRRRRRRORRRRRRRRORRORRRRRRORRORRRRRORROORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRORRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRRORRRRRORRRRRRRRORRRRRRRORRRRRRORRRRORRRORRRRRRORRRRRRRRRORRORRRRRRRRRRRORRORRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORORRORRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRORRRRRRROORRRRORORRRRRRRRRORRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROOORRORRRORRORRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRRRORRRRRRRRRRRRRORRRRRRORRROORRRRROOORRRRRRRRRRROORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORRRRRRRROORRRRORRRRRRORRRRRORRRRRRRRRRRRRRROORRRORRRORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRORRRORRRRRRRRRRRRRRORORROORRRORRRRORRRRROORORRRRRRRRRRRRRRRRRRORRRRRRORORRORRRRORRRRRRORRRRROORORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORRRRRRORORRRRRRORRORRRRORRRRRRORRRORRORRRRRRRRRORORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRROORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRROORRRORRRRRRRRRORRRRRRRRRRRRRRRORRRORRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROROROORRORORRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRORRRRRORRRRRRRORRRRORRRRRRORRORRRRRORRRRRORORRRRRRROORRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRORRRORRORORRRRORRORRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRORRRORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRORRRRRRORRRORRRRRRRRRRORRRRORORRRRRORRORRORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRORRRORRRRORRRRRRRRRORORRRORRROORORRRROORORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRORRORORRRRRORRORRRRRORRRRORRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORORRRRRRRORRRRRORRRRRRRRRRRRRRROORRRRORRRRORRRORORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRRRROORRRRRORRRORRRRRORORRRRRORRRRRORRRRRRRORRORROORRRRRRRORROOORRRRRRRRRRRRORRORRRRORRRORRRRRRRRRRORRRRORORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRORRRRRRRORORORORRRRRRRRRRRRROROORRRRRRRORORRRRRROORRRRRORORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRRROORRRRRRRRRORORRRRRORRRRRRORROROORORRORRRRORRRRRRRRROORORRRRRORORORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRORRRRRORORRRRRRRRORRRRORRORRRRRRRRORRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRORRRRRRROOOROOORRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRORRRORRRRRORRRORRRORRORRRRRROORRRRRRRROORORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRROORRROROORRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORORRRORRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORROORRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRORRRROORRORRORRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRROORORRRRRORRRRRRRRORRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROOOROORRRRRRRRRRRORRRRRRRRROORRRRRORRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRROOORRRRORRORORRRRRORRROORRRRRRORRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRROORORRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRORRRRRRORRRRRRORRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRORRRRRRORRRRRRORRRRRORORRORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRORRRRRORORRRORRRRRORRROORORRRRRRRRROORRORRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRORRRORRRORORRRRRRRORRRRRRRRRORRRORRROORRRRRRRRRORRRRRRORORRRORRRRRRORRRRRRRORRRRRORRRRORRRRRRRRORRORRRRRRRRRRRORRRRORRRRRRRRORRORRRRRRRRORORRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRORORRRRORRRRORRRRRORRRRRRORORRRRRRRRRRRORRRRRRRORRRORORRRORRRRRORRRRRRRORRRRRORRRRRRRRRORRRRORRRRORORRRROOORORRRRROROORRRRRROORRORRRRORRORORORROORRORORRRORRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRORRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRROORRRRRRRRRRRRRORRRORORRRORRRRORRRRRORRRRRORRRRRRRRRRRRRRRORROORRRRRRORRRRROORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRORRRRRORORRRRORRRRRRRRRRORRROORORRORROOORRRORRRRRORRRRRRRORRRRRRRRORROORRRRRRRRRRRRRORORRRORORRRRRRRRORRROORRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRORRORORRORORRRROORRRROORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORROROORRRORRRRRRRORRRRROROORRRRRROROORRRORRRRRRRRRRRORRRRROORORROORORRRRRRRRRRRRRRROORORRRRRRRRRRRRORRORORRRORORRRRRRRRORRRRRRORRRRRRRORRRORRORRRRRRRRRRRRRRORORRRRRORORRORORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRORRRRORRRRRRORRRORRRRRORRRRRRRORRRRRRRRRORROORROOOORROORRRORRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRORORRRRRRRROORROORRROOORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRORRRRRRROOORRRORRRRRRRORORRROORORRRORRRRRRRORRRORRRRRRROORRORRRORRRRRRRORORRRRRRRRRRORRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORORRROORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRROORRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRORRRRORRRRORRORRRORRROORRRRRRORROORRRRRORRRRRRRRORRRRRORRRORRRRRROORRRRRORORRRRRRRRRRRRRRRRROORRRRRRRORRRRRORRRRRRRRORRRRRRORRRRORRROOORRRRRRRRORRRRRROORRORORORRRRRRRRRRRRRRRRORORORROORRRORORRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRORORRRORORRRRORRORRROORRRRRORRRRRRRRRRORRRRRORRRRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRORRROORRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRROORORRORRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRORRROOORRORRRRROORRRRRRRRRRRRRRRRRRRORORRORRRRRRRRORRRRRRRRRRRRRRORORRRRRRRROOORRRRRORRRORRROOROORORROORRRRRRRRRRRRRRRRRORRORRROORRRRRRRRROOOORRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRORORRRORRRRRRRRORRRRROORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRORRRRRRRRORRRRORORORRRRRRRRROORORRRRRRRRORRRRRRRRRRRRRROORRORRRRRRRRORORRRRRRRRRORRRRRRRORRROORRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROROOORORRRRRRRORRRRRRRRRRRRORORRRRRRORORRRRRRORRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRRRRORRRORRORRRRRRORRORRORRRRRRRRRRRRRORRRORRRORRORRORRRORRRRORRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORORRORRRRRRROROORRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRROORRRRRRROORRRORRRORRRRRRRORRRRRROORRRRRRRRRRRRORORRRRRRRRORORRRORRORRRRRRRRROROORRORORRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRORRRRRRRRRRRRROOORORRORRRORRORRORRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRORRROORORRRRRORRRRRRRRROORRRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRORRRORRORRRORRRRRRRRRRRRRORRRRRRRRORORRRROROORRRRRORORRRRORRRRRRORRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRRRRORRORRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRRRORRRORORRRRRORRRRRRORORORORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORORROOORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRROORRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRROORRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRROORRRRRRRORRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRROROROORRRRRRRORRRRRRRRRROOORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRORRRRROOORRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRORRRRRRORRROORORRRRRRRRRRRRRRRRORROORRRRRORRRRRRRRORORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORORRORRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRROORRRRRRRRRRRORORRRRRRORRRRRORRRRORRRRRRRRORORRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRORORRRRRRRRROORRORRRRRRRRRRORRRORRRORRRRORRROROORRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRROORRRRRORRRRRRRORRORRRRORRRRRRORRRRRORRRRRRRRRORROORRRRRRROROOORRRRRRRROROORRRORRORROORRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORORRRRRRRRROORORORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRROORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRROORRRRRRRORRRRORRRRRRORRORRROOORRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRORROORORRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRORRROORRRRRRRRRRORRRRRRRRRRORORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORROORORRRRRORRRRRRRRORRRRRRROORRRRRRROORRRRRRORRRRORRRRRRRRORRRRRRRORORRRORRRORORRRORRRRRRRRRROORRRRRRORORRRRRRRRORRROORORRRRRRRRRRRRRRRRORRRRRRROORRORRORRRRRRRRRRRRRORORRRRRRRRORROORORORORRORRRRORRRRRRORORRRRRRRRRRORORRRRORRRRRRRRRRORRORORRRRRRRRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRORORRRRRRRROORRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORORORROORRRRRRRRRRRORRORRRRRRORROORRRRRORORRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRROROORORRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRORRORRRRRRRRRROORORRRRORORRRROORRRRRORRRRRRRRRRORORRRRORRRRRRORRRRRRRRORRRRRRROROORRRROORRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRROORORRRRRRORRRRRRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRROOORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORRRORRRRRRRRRRORRRRRRRORRORRRORRRRRRRRRRRRRRRRRRROORROROORRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRORORRRRORRORRRRRORROORRRRRRRORRORRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRROORRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRORRRRRORRORRORROORRRRRRRORRRRORRRRRORRRRORROORRRRRORRRORRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRROOROROORORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRROROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRRROROORROORRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRROORRRROOORRRRRRRORRRORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRROORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRROORROORRRRRROORORRRORRRRORRRRORRRORROROORRROORRRRRRRRRORRRRORRORRORRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRROORRRRRRRORRRRRORRRRRRRORRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORORRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRORRORRRRRORRRRRRRRRRORRRRRROORRRRRRRRORRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRROORRRORRRORRRRRRORRRORORRROOOOORRRRRRRRRRORRORRORRRRRRRROOOROORRRRRRRRRORRRRRRRRORRRRRRRROORORRORRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORORORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRRROORORRRRRRRRRRRORRRRRRRRORORRRRORRORRRRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRORRORRRRRRORRRRRRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRORRRRRORROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORORRRRORROROROORRRRRORORRRRRRRRORRRRRRORRRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRROOROOOORRRORRRRRRRRORRRORRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRORRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRROOORRORRRRRORRRRROORRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRORRRRORRORRRRORRRRRRRRRRRRRORORRRORRORRRRORRORRRRRRRRORRRRORRRRRRRRRROROORRRORORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRROROORRRRRRRRORRRRRRORRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRROORRRRRRRRORORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRRRRRRORRRRRRRRRROOORRRRRROOROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRROORORORRRRORROORORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRROORRRRORRRRRRORRRRRROROOORRRRRRRRRORRRRRRROORRRRRRRRRRRRROORRORRRRRRRRRRRRRORRRRORRRRRRORRRORRORRORRRRRORRRRORROOOOORRRRRRORRORRROORRRRORRRRRRRRRRRRRRRRRRORRROROORROORORRRRORRRRORRRRRRRRRROROOORRORRORRRRRORRORRRRORRRORRRRRRRRROORRRORRRRRRRRRRRRRROOORRRRRRORRORRRRRRRRRRRRRRRRRRROORRORRRRRRORRORRRORRORRRRRRORRRRROROROORRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRORRORORRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROROORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRORRRRRRRRRRRRORORRRRRRRRORRRRRRRROROORRRRRORROORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRORRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRORRRRRRROORRRRORRRRRRRRRORRRORROORRRRRROORRRRRRRRORORRRRRRRORRRRORRRRRRRORRRRRRRRRRROORROORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRORRRRRORRRORRORRRORRRRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRORRRRORRRRRRRRRRRRRORRRRRRRRRRORORRRRORRRRORORRRRRRRRRRRORRROROORRRORRRRRRROOORORRRRRRORRRRRRRRRRRRORRRRRORRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRROORRRRRRORRRRRRRRRRRRORRRORRRRORRRORRRRORRROORRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRORORRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRRRORORRRRRRRORRRRRORRRRRORRRORRRRORRRRRRROORRRRORRRRORRRRRRRORRORRRRORORRORRRRRRRRRRRRRRRRRORRORRRORRORRRRORRRRORORRRRRRRORORRRRRRRRORRRRRRORRORRORRRRORRROORRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRORRRRRROROORRORRORRRRORRRORRRORRRRRRRRRRRRRRRRRROORRORORRROROORORRRORRORORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORORRRRRRORRRRRORORRRRORRRRRRRRORORORRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRORRRRROORRRRRRRRRRRRORRRRRROROOORRRRROORROORRRRORRRRRRRRRRORROORRRRRORORRRORRRRRRRRRRRORRROORRRRRRORORROORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRROORRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRRORRRRRRROORRORRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRROORRRRRRORRRRRRRRRRORRRRRRRRRRORORRRRRORRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORORRRRRRRROORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRORRRRRRORRORORRRRRORRRROORRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRORRRRORRRRORRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRORRRRORRRRROORRRRRRRRRRRRRRRRRRRRRORORRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRROROORRRORRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRORORRRRORORRRRORRRRRROORRRORRRRRRRRRRRRORRRORRORORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRORRRORORORORRRRRRRRORORRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRORRRRORORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRORORRRORRORRORRRROORRRRRRRRRRRRRRRRORRRORRRRRORRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRORRROORRRRRRRRRRRRRRRORORRRORRRRORRRRORRRRRORRRRRRRRRRRRRRRORRRRRORRRRROORRROORORRRRRRRORRRRRRRRROORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRORRRORRRORORORRRORRORRRRROORRRRRRRORRRRRRRORRRROORORRRRRRORRORRRORRRRRRRRRRORRORRRRRRRRRRRRRORRORRRRRRORRRRRRORRRRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRRORRORRRRROORRRORRRRRRRRRRRRRRRRRRROROORRORRORRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORORRROOORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRROORRRRRRRRRRRORRRRORRRRRORRORRRRRORRORRRROROORRRRRRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORORORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRORRRORRRRRRRRRORRRRROORROORRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRROORRORORRRRRRRORORRRRRRRRRORRORRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRORORRRRORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRORRORRRRRRRORRRRRRRRRRRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRORORRORRRRRRRORRRORRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRORRRRRRROORRRORROROORRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRORRRORRRRORRRRRRRRORRRRRORORRRRRORROROORRRORRRORROORRORRRRRRRRORRRRORRRROORRRRRORRRORORRROORORORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORORRRORRORRRRRRRRORRRRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRORRORRRRORORRRRRRRRRRRRRORRRORRORRRRRRRRRRROORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRORRRRRORRRRRRRRRRORRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRORORRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRORORRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRORORRRRRRRRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRORORRORRORRORRRRRRORRRRRRRRORRRRRRRORRRRRRRRORRRRRRRROORRRRORRORRORRRRRRRRRROROORRRRROORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRORORRRROORORRRORORRRRRRRRRRRRRRRRRRROROOROORRORRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORORORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRROORORRRRRRORRORORRRRRRRORORRRRRRRRRRRRRORRORRORRRRORRRRRRRORRRORRRRORRRRORORRRRRRORRRRRRORRRRRORORRRRRORRRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRROORRORRRRRRORRRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORRORRRRRRRRROORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRRRRRROROORRRRRRORORROROORRRRORRRRRRORRORRRORRRRRORROORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRORRORRRORRRRRRRRRRORRRRRRRORRRROROORRRRORRRRRRRRORRRRRROORRORRORORRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRROORRRRRRRRRORRRRORRRRRRRRORRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROOORRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRORRRRRORROORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRORRRRORRRRRRRRRRROORORRRORRRRORRRORRRRRRRRRRRRRRORROOORORRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRORRRORRRRRRROROORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRORRRRRROORRRRROOORRRRRROORORRRRROORRRRRORRRRRRRRRRRRRORROORRRORRRRRRRORRRRRRRRRRRRRRRRRORRROORRRORORRRRORRRROORRRORRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRRRRRRRRORORRRORRRRRRRORRRORRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRROORORRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRORRRORRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRORRROOORRRRRRRRRORRRRRRORRRROROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRORRRRRROORRRRRRRRRRRRRRORRRRORRRROORORRORRRRRRRRRORRRRRRRRORRRRORRRRRRRORRORRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRORRROOROORRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRORRRRRORRRRORRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRROOROOORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRROORRRORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRRRRORROROORRRRRRRRRRRRORRRRROOORRRRRRRRRRRROORRRRRRRROORRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRROOORRRRRRRRORRRRRORRORRRRRRORRRRROORRRORRRRRRRRORRRRRRORORRORRRRRORRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRORRRORRRRORRRRRRRRRORRRORRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRORORRRRRRORRRORRRRORRROORRORRRRRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRORORRROOORRORRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRROORRRRRORRRORRORRRRRRRRRRRRRRRORRRRRRRRORRROORRRORRORRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRROOORRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRROORRRROORRRRRRRORRRORORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRRRRORORRRRRRORRRRRORORRORRRRRRORRRRRRROROORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRROORRRROORRRRRRRRRORRRRRRRRRRRORRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRORORRRRRRORRORRRORRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRORRRORRRRROORORORRRORRRRRRRRRRRRRROORRRRRRRORORORRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRROORRORRRRRRRRRRRRRRRORRRRRORRRORORRRRRORRRRRORRRRRORORORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRORRRRRRRROORRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRORRORORRRRORRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRORRRRORRRRRORORORRRRRRRRORRROROORRRORRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRROORRRRRRRRRRRRRRORRRRORRRROROROORRRRRRRORRRRRORORRRRRRRRRRRRRRRORRRRRORRRRRRRORORRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRORORRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRORRRRRROORRORRRRRRRRRRRRRORRRORROORRRRRRRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRRROOORRRRRRRRRRRRORRRRORORRRRRRORRORRORRRRRRRRRRRRRRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRORRRORORRRRRRRRRRORORRRORRRRRRRRRRRORRRRORRORRRROORRRRRRRORRRRRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRORRRROORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRROORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRRRRORRRRRRRROORORORROOORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRRRRORRRRRRRRROOORRRORRRRORRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRRRROORORRRORROORRRRRRRORRORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRROORRRROORRRRRRRRRRRORRRRORORRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRROORRRRROROORRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRRRRRRRRORRROORRRRRRRRRORRRRRORRRRRRRORROORRORRRRORRRRORRRROOOORRRRRRRRRRRRORRRRRRRRRRROOROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRORRORRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRORRRRROORRRRRORRRRRRRRRORRRRRORRRRORRRRRRRORRRRRRRROOORROORRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRORRROORRRRRROROORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROOORRRORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRRORRRORRRRORORRRRORRRRRRRRRRRROORRORRRRRRRRRRRRORORRORRORRRRRRRRRORRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORORRORRRRRRRROROORRRRRRORRRRRORRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRORRRORORRORROORRRORRRRRORRRROORORRORRRRRRRRRRRRRORRRRRRRRRRRRRORROORRRRRRROROORORRRRRRRRRRRRRROORRRRRROROORRORRRRRRRORRRRRORRORRRORRRRRRRRRORRROORRRRORORRORRRRRORORRRRRORORRORORRRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRORORRRRRRORRRRRORRRRORORRRRRRRRRRRRORRRORRRRRRRRORRRRRORORRRRRRORRORRORRRRORRRRRRRRRRRRRRRRRRORRRROROORRRRRRRRRRORRRRRRRRRROORRRRRRRRRROROORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRRORORRRRRRRRRORRRRRRORRORRRRORRRORRRRRRORORRORRRORRRRRRRRRRRRRORRRRRRRRORRRORRRRRROORRRRORRRRRORRRRRRRRRRRRRORORRRRRRRRRROORRORRRRRRRRRORRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRORROORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRORRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRRORRRRRRRRRRRORRRRORORORRRRRORORRRROROORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRORRRRRRRRROORRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRROORORRRRRRRRRRORRRRRRORRRRRRRRRORROROORRORRROORRRRORRRRROORRRORRRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRROORRRRRRRRRRORORORRRROORRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRROORORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRORRRRRRRORRRRRORRRORRRRRRRORRRRRRRRRORRRORRRRORORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRORORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRORRRRRORRRRRRRORRRRORRORRRRRORRRORRRRRRRRRRRRRRRRORRORRRRRRRRORRRRORRRORRRRRRRRRRROORRRRRRRRRRRRRRRORRRRORORORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORRRORORRRRRRRRROORORORORRRRROORRRORRRRRRRORRORRRRRRRORROOORORORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORROOORRRRRRRRORRRRRRRRRRRORRRROORRORRORRRRRRRORRORRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRORRROROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORROROORRRRRRRRRRRRRORRRRRRRORRORRRRRRROORRORORRRRROORRORRRRRRORRRRRROORRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRORRRRRRRORRRRRRRRORRORRORRRRRORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRORRORRRRRRORORORRRRRORRORRRRORRRRORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRRRORORRORRRRORRRRORRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRORRRRORRORRRRORRRRORRRROORRORRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRORRRRORRRRRRROORRRRRRRRRRRRRRORRRORRORRRRRRRORORRRRRRRORRRRRORRRRRRRRRROORROORRRRRRRRRRRRORRRRRRRRRRRRRROORORRRRRRRRORRRRORRRRRRRRRRRORRRRRORRRORRORRRRRRROORRORORRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRROORORRRRRRRRRORORRRRORRRRORRRRRRORORRRORRRRRRRRRRRRRROORORRORRRRORRRRRRRRRRRRRRRRRRRRRROROORRRORRRRRRORRRRRRORRORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORORRORRORRRORRRORORRRRRRORRRRRRRRORRORRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRORRRROROORRRRRORRRORRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRORRRRRRRROORRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORRRRORRRORRORRRORORRRRRORORRRRRROORRRRRRRORRORRRRORRRRORRROORROROOORRRORRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRORORORRRRRORRRRRORORRRRRORORRRRORRRRRRORRORRRROROORRRRRRRRRRRRRRRROORORORRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRORRRORRRRRRRRRRRORRRRRRRRRROORRRORRORRRRRRRRRRORRRRRORRRRRRRRRRRRRORRORRRORRRROORORRRRRRORRRORROORRRRRRRRROORRRRRRRRRRRRRORRRORRRRRRROORORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRORRRRROOORRRRRRORRRRROROORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRORRRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRORORRRRRRORRORRRORRRRRRRORRRRRORRRRRRROORRRROORRRRRRORRORRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRROORRRRRORROORRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRROROROORORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRORRRRROORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORORRRRORORRRRORRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRORRRRRROORRRRRRROORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRORORRORRRORRORRRRRRRORRRRRRRRRORRRRORRRRROORRRORORRORRROORRRRRORRROOORRRRORORRRRRRRRRRRRRRROROORRRORRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORROORRRRRRRRORRRRRORORRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRROORRRORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRORRRORRRRROOORRRRROORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRORRRRRRRORRORRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRROORRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRROORRRORRRORRRORRRRRRRRRRRORRRRRRRRRORRRRROROORRRRRORRRRRRRORRROROORRRRRRRRRRRRRORRRRRORORRRROOORRRRRRRORRRORORRRRRRROOORROORORRRORRRRRRRRRRRORRROORORRRORRRRORRRROORRRORRRORRRRRRROORRRRORRRRORRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRROORORRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRORORRRRRRRRRROORRORRORORRRRRRRROORRRORORRRRRROORRRRRRRRRRRRRRRRORRRRORRORRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRORRRORRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRROORORRRRRORRORRRRRRRORRRRRRRRRRRRRRORRRORRRRRRORRORRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRORRRORRRRORORRRRRROOORRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRROORRRRRRORRRRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRORRRRRRORRRORORRRORORRRRRRRORRRRORRRRRROORORROORORRORRRRRRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRORRRRRRRRROORRRRRRRRRROORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRORRRRRRORORRRRRRORRRRRORRRRRROORRRORRRRRRROORRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRROORRRRRRRRRRRORORRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRROORRORRRRRRRORRRRORRRRRROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORROORRRRRORRRRORRRRRRRRRRRRRRRRORRORORRRRRROORORORRRRRORRRRRRRROOORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRORRRRRORRROORRRRORRRRORRRRRRRRRRRRRORRRRROOORRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRORRRORRRRORRRRRORRRORRRRRRRRRRRRRRRRROOROORRRRRROORRRRORRRRRRRRRRRORROOROORORRRRRRORRRRRRORORRRORRRRRRRRORRRRRORRORRRRORRRRRRRRRRRRRRRORRRORROORRRRRRRRRRRORRORRRRORRRROORROORRRRRROORRRRRRRRRRORRRRRRRRRRRRRROORRORRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORROORRRRORRRRRRRROORRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRORRORRORRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORORRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRORORRRRRRROORRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORORRRRRRORRRORRRRORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRORORRRORRROORRRORORRRRRORRRRRORRORRRORRRRORRRORROORRRRRORORORORRRRRRRRRRRRRRRRORORRRRRRORRORRRRRROORRRRROOOROROORRRRORRRRRRRRRRRRRORRRORRRORRRRORRRRRORRRRRORRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRORRRORRRRRRRRRORRORRRORRRORRRORRRRRRRRRRRRRRRRRRROORRRRORROORRRRRRRRRRROOORRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORORORRORORRORRRRRRRRRRRRRORRRRRRRORRORRRRRRRORRRRORRRORRORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRORRRRORRRRRRORRRRRORROROOORRRRRRRORRRRRRRRRRRRRRRRRRRORRORORRRRRORRRRRRORRORRRROORRRRRRRRRRRRRORRRORROOORORRRORRRORORRRORRRRRRRRORORRRRRROORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRORRRRORRORRRORRORRROROORRRRROORRRORRRRRRRRRORRRORRORRORRRORRORRRRRRRRORORRRRRRRRRRRRRORRORRRRRORRRRRRRORRRRRORRRRRRORORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRROORRRRRORRRRORRRRRRRORRRRRRRRRORRRRORROORRORRRORRRRRRRRRRRRORRRRRRRRORORRORRRRRRRRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRORRRORRRRRORRRRRRRRORRRROORRRRRRRRORRRORORRRRRRRRRRRRORRRRRRORRRRRRRORRORRORRORROORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRORRRORRRROORRRRRORORRRORRRRRORRORRRRRRORRRRRRRRRORRROORRRRRRRORRRRRRRORRRRRROORRRRRRRRRRORRRRRRORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRROORROROOROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRROORRORRRRRRORORRRRRRRORORRRORORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRRRORRROROORRRRRRRRRRORROORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORORORROOORRRRORRORRRRRORRRRRORRRRRRRRRRRROORRRRRORORRORRRRRRRRRRORRRRRORRRRRORRRRRRRORRRORRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRORRRRRRRRRORRRRRRORRRRRRORRRORORRRRRRRRRRRRRRRRORORRRRORORRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRORRRRRROORRRRRRORRORRRRRRORRRRRRORRRRRRRRRORRRRRRRRORORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRRRORORRRRRROORRRRRRROORORRRRRRRORORRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRORORRRRORRRRORRRRRRRRRRRRROROOOORRRRRRRRRORRRRRORRRRRORRRRRRRRRRROOROORRORRRRRORRRRRRRORRRRRRRRORRRRROORRORRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRROORRRRRORRORRORRORRRRORRRRRRORRORRRRRRRRRRRRORORRRRRRRORRRRRORRRORRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRORRRORRRRRORRRRRORORRRRRROORRRORRRRROORRRRRORRRRRRRRRRRRRRRRRORRORRRRRORRRRORRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRORRORROORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRROOORRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRORRRRRRROORORRRRROORRRRRRRRRRRRROORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRORORRRRORRRRRRORRORRRRRRRORRORRORORRRRORRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROOORRRORORORORRRORRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRROORRRORRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRORRRRRRRORRRRORRRRRRRRRRORRRRORRRRORRORRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRORORORORRRRRRRORRRRRRORRRRRRRROORORRRRRRRRRRRRORRRRORRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRORRRRORORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRORRRORRRRRRORORRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRORORRRRORROOORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRORRRRRORRRRORRRRORRROORRROORRRRRORRRORORORRRRRRRORRORORRRRRRRORRRORRRRRORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORORORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRORRRRRRORRORRRRROOORRORRRRRRRRORRRRRRRORRORROROORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRORRRRRRRRRRRRRRORROORRRRRRORRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRROORROORRRRRRRRRRROORRRRRRRRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRORORRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRRROOORRRRRRRORRRORRRRRROORRRRRRRORRORRRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRRRRORRROORRRRRORRRRRRORRRRRRORRROORORRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRORRORRRROORRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRROORRRORRRRORRORRRRRRRRORRRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORROORRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRORORRRRRORRRRORRRRRRORRORORRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRORRRRRRRRRRORRRRROORRRRRRRORRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRORRRRRRRRRRORRRRRRRRRORRRORORORROORRRRRRRRRROORRRORRRRORRRROORRRRROORRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRORORRRRRRRRRROORRRORORRRRRRRORORRRRRRRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORORRRRRRRRRRRORORORRRRRORRRRRRRRORRRRRROORRRRRORRRRRRRRRORRROORORRRRRRRRRRRRORRORRORRRRRRRRRORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRROROORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRROOORRRRORORRRRRRROORRRRORRORRRRRRRORRRRRRRRRRROOROORRRORRORROORORRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRRORRRRRRORORRRORRROORRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRROORRORRRRRRRORRRRRRRRRORRRRRRORRRRRRRORRRRRORRRORRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRORRRRORRRRRORORRRORRRRRRRRRORORRORRRRRRORORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRORRRRRRORRRRRRRROORRRORORRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRORRRRRRRRORRRORROROORRROORRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRROORRRRORORRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRORRRORROOORRRRORRRRRORRRRRRORRRRRORORRRRORRORRRORRRRRRRORORRROROORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRROORRRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRROORRRRORRRORRRRORRRROORRROORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORORRROORRORRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRORRRORRRRORORORRRORRRRROORRORRRRRORRRRRRORRRRRRRRRRROORORRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRORRRRORRROORRRRRRRROOORRRORRRRRRRRRRORRRRRRRRRRRRRRRROROORRRRRRRRRRROORRRRRRRRORRROOORRORRRRRRORRRRRRRRORRRRRRRRRRRRORRORRRRRROORRRRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRROORRORRRORRRRORRRRROORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRORRRRROORRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRORRRORRRRRRRRRRRORRROORRRRRRRROORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRROORRORRORRRRRRRORRRRORORRRRRRRRRRRRRRORROORRORRRORRRRRRORRORRRRRORRRORRORORRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRROORRRRRRORRRRRRORRRORORORRRRRRRRRRRRORRRRRORRRRRORROORRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRORRORRRRORORRRRRRRRRRRRRROORRRRRRRRRRRORRORRRORRRRRRRRRRRRRORRORRRRRORRRRRRORRRRRRRRRRORRRRRRRROROORRROOORORRRRORRRRRRRRRORRRORORRRRRRRRRRRRORORRRRRRRRRORRRRRRRORRRRRORORRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRROOROROORRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRORORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRORRRRRRORRRORRRRRRORRRRRORRRRROORRRRRRRRRRRRRROORORRRRRRRRRRORORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRRORRRORRRRRRORRORRRRRRRRRORRRRORRORRRRRRRRRRRRRORRROORRRRROORRRRRRRRRRRRRORRROORRRRRRRRRRRROORRRRORRRRRRRORRORORRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRROOORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRORRORRRRRRRRORORRORRRRRRRRRORORRRRRRRRRORRRRRROORRRRRRRRRRRORRRRRORRRRRRRRRRORRORRRRRRRRRRORORRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRORRRRRRRORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORORORRRRRORORRRRRROORRRRRRRRORRRORRORRRRRRRRRORRRRRRRRRRORRRRRORRORRRRRRRORORRRORRRORRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROOORRRRRRRRORROORORRORORRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRRORRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRORRRRORRORRRORRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRORORORRRRRORORRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORROORRRRRRRRRRRRORRRRRORRROORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRRRRORRRRRRORRORRRRRRRRRORORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRROORRRRROORRRRRRRRRORRRRORRRRORRORRRRRRORRRRRRRORRRRRRORRRRRRRORRRRRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRROOORRROOROORRRRRORRORRRRRRRRRORRORRRRRORROORRRORRRRORRRRRRRORRRRORRRRRRRRRRRRRROROORRRRRRRORRRRRORRRRRRRRORORRORRRRRORRRRORRRRRRORRRRRRORRORRRRORRORRRRORRRORRRRRRRRRRRRRRRORRORRRRORRORRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRRRRROROROORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRORRRRORRRRRRRRRORRRRRRRRROORRRRRRORROORRRRORORRRRRRRRRRRRRRORRRRRRORORORRROROORRRRORORORRRRRRRRRRRRRORRROORROORRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORRRRROOOORRRRRRRRROOORRORRRRRORRRORRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRORRRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRORORRORORRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRROORRRORRRRRRRRRRRROORRRRORROORORORRRRRRRRRRORRRRRRRRRRRORRRRRRORRRORORRRRRRRRROORRRRRRRRRRORRORRRRRRRRRRORRRRRRORORRRORRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRROORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOROORRRRRRRORRRRRRRRORROORROROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRORRRROORRRORRORRRRORRRRRRRRROROORRORRRRRRRRRRRRRORRRRROROROOOORRRRRRRORRORRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRROORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRORRRORRRORRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRROORORROOROOORRRRRORRORRRRRRRRRRRORRRORRRRRRRRRORRRRROORRRRRRRRRRORRRRRORRORRRRROORRRRRRORRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRORRRROORRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRORRRRRRRRRORRRRRRRORRRORRORORRRRROORORRRRRROORRRRRRRRRRRRRRORRORRORORRRRORRRRRRRRRRRRRORROORRORRRORRROORRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRROORRROOORRRROORRRROROORORRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRORORORRRRORRRRRRRRRRORRRORRRRRORRORRRRORRRRRORRRRRRRRROORRRORROORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRROORRRRRRRRRRRRRRORRRRRRRRRRRROROOORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRORRRRRRRRORRORRRRRRORRRRORORORRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRORORRORRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRORORRRRRRORRRRRRORORRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRORRRORORRRRORROORRRRRORRRRRRORRORRRRRRRRRRROORRORRRRRROROORORRRRORRRRRROORRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRORRORRRRORRRRRRORRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRRORROOORRORRRORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRORRRRRRRRRORRRRORORROORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRORRRRORORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRROORRRRORRORRRRRRRRRRRRORORRRRRRRORRRRRRORRRRRROOORRORRORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRORORORRORRRORRRRRRRORRRRRRRRRRRRORRRRORRRORRRORRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORROORRRRORRRRORRRRORRRORRRRRORRRORRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORORRRRRRORORRRRRRRROORRRRRRRRRRRRORRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRORRRRRROORROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRORRRRRRRRRRRORORRORRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRROROORRORRORRRRRRRORRRRRRRRRRORROORRRRRRRRRRRRORRRRRRORRRRRRORRRRORRRORRRRRORRRRRORRORORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORROORROORRRORORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRORRRRRRROROORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRORRROORORRORRRRORRRRRRRRORRRRRORRRRRRORRRRRRRRORRRRRORRRORRRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRORRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRORROORRRRRRRORRRORORRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRROOROORRRRRRRORRRRROORRRRRRRRRRORRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORROORRRRRRRRORRORRRRRRRRORRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORRRRORRRRRRRORRRORRRRRRRRRRROORRRRROROORRRRRRRRRORRRORORRRRRRORRRRORRRRRRRRRORORRORRRRORRRRRORRRRRRORRRRRORRRRRRRROORRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORORRRORRRRRORRRRRRRRROORORRROOORRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRORRRORORORRRRORRRORORRRRORRRRRRRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRROROORORRRRRROOORRRROORRORRRROOORRORRORORRRRRRORRRRRRORRRRRRRRRORRRRRRRRROORRORRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRRROORRORRRRRRRRRRORRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRORORRRRRRRRRRRRRRORRRROORRRRRRRORRRORRRROORRROORRRRORRORRRORRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORORORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRORORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRORRORRRRRRRRRRRRRRRRRRORORRRRRROROORRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRRRRRORORRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRRROORRRORRRRRORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRORRRRRRORRRRORORRRORRORRRRRRRRRRORRRORRROORORRRRORRRRRORRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRORRRROROORRROORRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROOROORRRRRROROORRRRRRRRORRORRRRRRRRRRRRRRRORRORRORRRRRRROORRRORRRRORRORORRRRRRRRRORRRORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRORRRORRRRRORRRRROOROORRRROORRRRRRRRRRRRRRRRORRRRRRRRROORROORORRRRRRRORRRRRRRRRRRRRRORRRORRRRROORRRRORRRRROORRRRRRRRORRORRRRRRRORRRRRRORRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRROORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRORRRORRRRORRRORRRRRORRRROORRRORRRRRRORRRROORRRRRRORRRRORRRRRRRRRRRORRRORRRRRRRRORORRRRORRRRORRORRRRRRRRRRRRRORRRRORORRRRRRRRRRRORRRORRRRRRRORRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRORORRRRRRRORROORORORRRRRORRRORRORORRORORROORRRRRRRRORRRRRORRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRROROORRRROORRRRRRRRRRRRRRRRRRRRRRRRROOROORRRRRORRRORRRRRRORRRRORRRRRRRRRORRRORRRRRRRORORRRRRRRORRRRRRRRRRORRROORRORRRRROORRRRRRRRRRORRORRRRRRRRORRORRRORRRRRRRRORRORROORRRRRRRRRRRRRRRRRRRRRORRRRRROORRRORROORRRORORRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRROOROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRORRORRRRRRRRRRRORRORORRRRRORRRRRRRORROOORRORRRRRRRRRRRRROOOORROOOORRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRORORRORRRRORRRRRRRRRORRRORORRRRRORRRRRROORRRRORRORRRRRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRORRORRRRORRRORRRRRRRRORRRORORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRROORORRRRORORORRRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRORROORRORORRRROOORRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRROORORRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRROROORORRRRRRRRRORRROOORRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRORRRORRRRORRRRRRRRRRRORRRRRROORORROOORRORORRRRRRRRRRORRORRRRRORRRRRRRRRRRRRORRRRRRORRRORRRRORRRRROORRRRORRRORRRRRRRRRORORORRRRRRRRORRORRORRRRRRRORRRRRORRRRRRRRRRRORRRORRRRROORRRRRORRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRORROORRRRRRORRRORRRORRRRRRRRRORRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROOORRRRRRRRRRRRRRRRORRRORROROORRORRRRRRROORRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRORRRRRORRRRRRRRRRRORRRRROORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRORRRRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRROROORRRRRRORRRRRORRRRRRRORRORRRRORRRRORRRRRRRRORRRRRRORORRORORRORRRRRRRORORRRRRROORRORRRRRORRRRRORRRRRRRRRRRRORRRRORRRORORORRRRRRRORORRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRORORRRRRORORRRRRRRRORRROROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORORRRRRRRRRORRORRRORRRRRRROOORRRRORORRRRRRRRRRRRRRRRROORRRRRRRORRORRRRORRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRROORRRRRRRORRRRORRRORRRRRROORRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRORORRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRORRRORRRRORORRORORRROOROORRRRORORRRRRRRRRRORRORRRORRRRRRRRRRORRRRRRORRRRRRRRORRORRRORRRRRRRRORRRRRRORRRRRORRRORRRORRRRRRRRRRRRORRRRRORRRRROORRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRROORRRRRRORRRORRRRRRRRRRRROORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRORROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRROOORRRORORRORORRRRRRORRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRRRORORRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRORRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRORRRRRRORRORRRRRRROORRRRRRRRRRRRRORORRORRORRRRORRORORRRRORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRROROOORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRROORORORRRORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORRRRORRRRRRRORRRRRRRRORRRRRORRORRORRRRRRRRRRORRRRRRRRRRROORRRORRORRRRRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRROORRRRRRRRRRRORORRRORRRRORRORRRRRRORRRRRRRRRRRRRROROOORRRRRRRRRRRRROORROROORRRROORRRRRORRRRRRORORRORRROORORRORRRRRORRORORORRRORORORRRRROORRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORROORRRORORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRROORRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRRRRORRRRRRRRRRRORORORRRROROOORRORRORRRRRRRRRRRRORORROORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRROORRORRRRRRRORORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRORRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRORRRRRORRRRRRRRROORRRRRRRRORORRRRRRRRRRORRRORORRRRRRRRRORRRRORROORRRORRORROORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRRRRROORRRRRRORRRRRRRRORRRRORRROORRRRRORRRORRRRRRRRRRRORRRRORRORRRRRORORRRORORRRRRRRORRRRRRRRRRRORORROORRRRRROORRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRORORORRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRORRRRORRRROOROORRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRROORORRRRRORRRROROOORRRRROORRRROORRRROORRRRRRRRRRRORRRRRRRRORROROORRORRRRRRORRRRORRRRORORRORRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORORRRRRORRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRORORRORORRORRRRRORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRORORRRRRORRRRRORRRRRRRRRRRORRRORRORRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRRORRRRRORRRRRRRRRRRRRRROORRRRRORRRRORRORRORRRRRRRRRRRRRRRORRRROORRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRROOORORRORRRORRRRROORRRRRRRRRRROORORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORORRRRRRRRORRRRORRRRRRRORORRRRRORRRRROORRRRROORRRRRRORORRRRRRRRRRRRRRRRORORRRORORORRRRRRRRRORORRRRRRRRRRRRRORRORRROORRRRRORRRRRRRORORRRRRORRRRRRRRRORROORRRRRRRRRRRORRRRRRORRRRRRORRRRORORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRORRRRRROORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRORRRRRRRORORRORRRRRRRRORRRRROORRRRORRRRRRRRRRRRORRRRRRORROORRRRRRRORORRRRRORORRRRROORRRRRRORRRRRORRRRORORRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORROORRRRRORRRRRRRRORRRRRORRRRRRRRRRROOROORRRRRRROOORRRORORRRORRRRRORRORRRRRORRRRRRRRORRRRRROORRRRRRRRRRROOORRRORRORRRRORORRORRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRORRORRORRRRRRRRRRRORRORRRRORRRRRORRORRRRRRRORORRRRRRRRROORORRRRRRRROOORRRRRRORRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRROORRRRRRRRRRRORRORORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRORRORRRRRRRRRRRORORRRRRRRRROOOOOORRRRORRRRRRRRRRORRORRRRRRRROROORRRRRRORRRRRORORRRRRORORRRRORRORRRRORRRRRRRRRRRRROORRRRROORRORORRRRROOORRRRRORORROORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRROORORRRRRORRRORRRRRRRRRRRRRRORORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRROOORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRORRRORRORRRRRORRRRRRORRRRORRRRRRRRRRRRRORRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRORRRORORRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRORRRRRRRORRORRRORRRROOROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRROORORRRORRRRRRORORRRORRORRRORRRRRORORRRRRRRRRRRRRRRROOORROORRRRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRORRRRRORRORRRRRRORRRORRRRRORRRRRRROORRRORORRRRRRRRORRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRORRRRRRRROORORRRRRRRRRRRORRORRORRRRRRRORRRRRRORRRRRRRORRROORRRROORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORRRRRRRROORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRORRRRRRORRRRROORRRRRRRRRRRRRORRORORRORRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORROORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRROOORRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORROOORRRRRRRRRRRRRRRRRORRRRRRRRORRORRROORRRRRRORRROROOROORRRORRRORRROORRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRORRROROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORORRRRRORRORRRORORRRRRRRORRRROORRRRRORRROORRORRORRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRORORRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORROORRRRRRRRRRORRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRROORRRORRRRRRRRRRRRRORROORRRRRRRRROOORROORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRORRRRRORRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORROORRRRRRRRORRORRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORORRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRORRROORRRORRRRRRRROORRRRRORRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRORRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRRRRORRRRRORRRRORRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRORRRRRORORRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRORORORRRRRRRRRORRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRROORRRRRRRRRORRRRRORRRRRORORRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRORRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROROROOORRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRROROOORRRRORRRRRRRRORRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRORRROORORRRRRRRRORORRRRRRRRRRRRRRRRORROOORRRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRORORRRRRRRRORRRRRRROORORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRROORRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRORRRRRORRRORRRRRRRRORRRRORRRORRORRORRRRRRRRRRRRRRORORRRRRRRRRORRRRRRROORRRRRRRRRRRRORRRRRORRORRRRRORRORRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRORRROORRORROORORRRRRRRRORORRRRRRORORORRORRRRRRORRRORROROORRROORRORRORRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRORRORRRRRORORRORRRRRROORORORRRRRRRRRRRRRRRORRRRORRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRROORRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRROORRRRRRRRORORRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORRROROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRORRRRRRORRRORRORRRRRRRRRORRRRRRRRRRORRRRRRRRROORRRRRORRORRRRRORRRRRORRRRRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORORROORRRRRRRRRRRRRORRRRRRORROORORRRRRRRRORROORROORORRRRRRRRRRRRRRRORORORRRRRRRORROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRORRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRORRRRORORRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRROORRRRRRORRRORRRRRORRRRRRRRRRRROORRRRRRRRRRRRRORRORORORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORRORRRRRORRORRORRRORRRRRRRRORRORRRRRRORRRRRRRRORRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRORRRRORORORRRRRORRRRRRRRRORRRRRRRRRRROORRRRRRRORRRRRORRRRRORRRRORRORRORRRORRRRRORRRROOOROORRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRORRROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRROORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRORRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRORRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORROOORRRRORORRRRRORRRRRRRRORORRRRRRRRRRRRRRORRRRRORRORRRRRORRRRRRRROORRRRRRRORRRRRRORRRORRRRRROORRORRRRORRRRRRRRRORRRRRRROORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRROORRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRROORROORRRRRRRRRRORRROROOORRRRRRRORROORRORRRORRRRRRRRRRRRROROROORRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORROROORORROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRORORORRRRRROORORORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRORRRRRRRORORRRORORRRRRROORORORRRRRORRORORRRRRRRROOORRRRRRRRRRRORRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRORORRRORORORORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRROORRRRRORORRRRRRRORRROORRRRRRRRRRRRRROORRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRORRORRORRRRRRRRRROORRORORRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRORRRRRRORRRORRRRRORROOORRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRROORORRRRRRRRRRORRRRORRRRRRROORRORRRRRORRRRRRORRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRROORRROORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRORRRROORRRRRORORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRROROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROORRRORORRRRRRRRORRRORRRRRRRRORRRRROROORRRRORRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRROORRRRORRRORRRROORRRRRRRRORORRRORRRRROORRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORORORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRROOROORORRRRRRRRRRRRORRRRORRRRRRRRRORRORORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRROORRROROOOORRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRROORRRRRORRRORRRRRORRORRRRROORORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRORRORRRRRRRRRRRRORORRORRRRRRRORORRRRORRRRRORRRRRRRRRRRRROROORRORRRRROORORRRORORRORRRRORRRRRRRRORORRORRRRROORRRRRRRRORRRRRRRRRRRRRRRROORROORRRRRORRRRRRRRRRORORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRORORRRRORRRRRRRORRRRRRRORROORRORRRRRRRROORRORRRRRRRRRORRORRRRRRROORRRRRRRRRRRRRRROOOORRRRRRORRRRRRRRRRRRRORRRROROORRRRRROORRRRRRRRRRRRORRRORRORRORRORRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRROORRRRRRRORRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRORRORRRRRORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRROORRRORRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRORRORRRROORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRORROOORORRRRRRORRORRRRRRRRRRORRORRRORRORRORRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRORRRROROORORRROOORRORRRORORRROORRRRRRRRRORORROORRRRRRRRRRRRRROORRRRRRORORROORORRRRRORRRRRORRORORORRRROORRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORROROORRRRRORRRRORRRRRRRRRRRRRRRORRRORRRRRROORORRORRRORRRRRRRORRORRORORRRRROORRORRRRRRORRRRORRRRRRRROROORRRRRRRRRRRRRRRORORRROORORRORRORRRRRRORRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRRRRRRORRRRRRORRRRRRRRROOORRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRROOOORRRRRRORRORRRROORRRRORRRRRRRRRORRRRRRRRORRRRRRRRRORORRRRRROORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRROOROORRRRRRRRORRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRROORRRRRROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRRRRRRORRRRRRRORORORORRRRRRRRRRRRROOORRRORRRRRORRRRORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRROORRORRRORORORRRORRRRRROORRRRRRRRRORRRORROORRRRRRRRRRRRRORORORRRRORRRROORRRRRRRRRRRRRRORORRORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRORORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORROORRRORRRRRRRRRRRORRRRRRRORRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRORRORRRRRRRRRROORRORRRRRORRRRORRRRORRRRORORRORRRRRRORRORRRRRRRRORRRRRRRORRRRRRRRRORRRRORRRRRRORRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORRRRORORRRRORRRRORRORRRRORRORRRRRRORROORORRROORRORRRRORRRORRORRRRRRRRRRORRRRORRRRRROORRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRORRRRRRRRORRRRRRRRRORRRRRRROROORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRRRORRORRRRRRRRRORRRRRRRORRRORRRRORORRRRRRRRRRRRRRRRORRORORRRORRORORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRROORRRRORRRRRRORRRRRRRRRRRRRRRRROROORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRORRRRORRRRORORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRORORRRORORRRRRRRORRRRRRRRRRORRRRRRRRRORRROORRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORORORRRRRRRRRRRRORRORORRRRRRORRORRORRRRORRRRRRRORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRORRROORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRORRORRRRRRORRRRRRRRRRRRRRRORORRORRORRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORORRORRROOROORROORRRRRRORRRRRORRORRRRRRRRRRRRRRRRORORRRRRRRORORORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRORRRRRRRRRRORORORRRRRROORRRRRRRRRRRRORRRRRORRRRRRRRRRRROORORRRRORRRRRRRRORRRRRRRRRRRRROORRRRRRRORRORRORRRRRRRORRRORROORRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORORRRRRRRORROORORRRRRRRRRRRROORROORRROOORRRRRRRRRRORRRRRORRRRRORRRORORORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRROORRRRRRRRORRRRROOORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORORRRROORRRRRRRRROORRRRRRRORRRRORRRORRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRORORORRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRORRROORRRRRRRRORRRRORRRORRRORRRRRRRRRRRORRRORRRORRORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRROORRORRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORORRRRRRRRORRRROORORRRROOOROROROOORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRORRRRRRRRRRORORORRRRORROORRRRORRRRRRRRRRRRORRRORORROORRORORRORRRORRRORRRRRRRRRRRRRRRORRRROORRRORRRRRORRRORRRRRORRRRRRRRRRRRRROORRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRROORRORRROORRRRRROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORORRRRORRORRRRRROORRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRORRRRRORRRRRRORRRRRORORRRRRRRORRRRRRRRROORRRRRRRROROOOORRRRRRRRRRRRORROOROORRRRRRRRORRRRRRRROOORRROORRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRROORRRORRRRRORORRRORRRROROORORRRRRORRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRROORORORRORRRRRRRROROORRRRRRRRORRRRRRRRROORRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOROORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORORRORRORRRROORRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRORRORRRORRRORRORORRRORRRRRRRRRRRORORRRRRORORRORRRORRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRORRRRRRRRORRRROORRRRORRRORROROORRRRRROORORRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRORRRRORRRRRORORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRORRORRRRRRORRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRROOORORRRRRROORRRRRRRRRRORRRRRRRRRRRRRORORRRRRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRROOORRRRRRRORRRRRRORRORRRRRRRRORRORRRRORRRROORRRRRRRRRRRRRRORRRRRRRRORRRORRRRORRRRRRRROORRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRROORRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRROOORRRRRRRRRROORRRRRRRRRRORRRRRRRRRRROROROROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORORRRORRRRROORRRRRRRRRRRRRRRRORRRRORRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORROORRORRRRRRRROORORORRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRORRRORRORRRRRRRRORRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRRRRROORORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRORRRRRRROORRRRRRRRORORRORRRRRRRRRORRRRRRRRRRRRORRRORORRRRORRRRRRORRRRRRRRRRORRRRRRRORORROORRRORRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRORRORRORRORRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORRRRRRORRORRRRRRRRRRROORRRRRRRRRRRORRORRRRRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRORRRRORRRRRRROROORRRRRROORRRRRORRRRROORRRRRRRRRORRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRORRRRRRRRRRORORORRRRRRRORRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRROROORRRRORRRRRRRRRRORRRRRRRRRRORORRRRRORORRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRORRRRRRRRORRRORRRRRRRRORRRRRORRORRRRORRORRRRRRRRRRRORRRRORRORROORRORRRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROROORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORORRORRRRRRRRORRRRRRRRRRRRROOORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRORORRRRORORRRRRORRRRRRRRRRRRRRRORRRRROORORRRORRORRRRRORRRRRORRRRRRRRRORRRRRRORRRORRRRORRRORRORORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRORRRRRRRROORRRRRRORORRRRRRRRRORRRRORORRRRRRRRRROOORRRORRRORORRRORRRRRROOORRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRORRORRRRRRRRRORORRRRRORRRRRRRROOROORRORRRRORORRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRORRROORRRRRRRORRORRORRRRRRRROORORRRRRRORRRORRRRRORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRORORRRRORRRORORRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRORRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRROORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRORROOOROROORORORRRRRORRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRORRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRROORRRORRRRRRRORRORRRRRRRRRRRRRRRRRORORROOORRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRROORRRRRORRORRRRRRRRRRORRRRRRRORRRRRRROOORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRROROOOOORRRRRRRORRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORROORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRORRRORORRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRORROORRRRORRRRRRRRORRRRRRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORRRRRORRRRRRROORORRRRRRRRROORRRRORRRRRRRRRRRRORRRRRRORRRRRRROOROORROORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRROORRRORRRORRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRORORRORRRRRRORRRORORRRRRRRRORORRRRRRRRORRORRRRRRRRRRRORORRORRRRORRRORRRROOORORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRROORORRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORORRORRRORRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRORORRRRRRRRRRRRRRRRRRROORRORRRORRRRORORRRRRRRORRRORRRORRRRORRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRORRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRROOORRRRRRRROROORORRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRORRRRORORRRRRORRORRRRRRRRRRRRRRRROROORRRRRRRRORORRRRRRRRRRRRORORRRRRORRRRRRORRORRRRRRRRRRRORRORRRORORRRRRRRRRRRRRRRRRRRRRORRORRORRORRRRRRORRRRRRRORORRORRORRRRRRRRRORRRRORRRORRRRRRRORORRORRRRRRORRRRRRRRRRRRRRORORRRRORORRRRRRRRRRORRROORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRORRRRORORRRRRRRRRRRRRRRORORRORRRORRRRRRRORORRRORORORRRRRRRRRRRRRRORRRRRRRRRRRRORRRROORRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORRRRROOORRORRRRRRRRRROOORORRRRRRRRRRRROORORRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRORORRROORRRRRORRRORRRRRRRRRROROORRRORRORRRRRRRORRRRRRORRRRRRRRRRRRRROORORORRRRRRRRRORRROOORROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRROOORROORRROORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORROORRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRORROORRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRROORRORRORRRRORORRRROORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRORRRRORRRRORRRRRRRRRORRRORRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRORROORORRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRORRORRRRRRRRRRRRRORRRRORORRRRRORRRORRRRRRRRRRRRORRRRORORRRRRRRRORRORRORRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRORRRRRRRRROORRRORRORRORRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORORRRRRRRRRRRORRRORRRRRRROORRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRRRROORRRRRRRORRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRORRRORRRRRRRRRORRRORRRORRRORRORORRRRRORRRRRRRRORRORRORORRRRORRRRRRORRRRORRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRORRRRRROORORRRRRRRRRORRRRROORRRRRRRORROROORRRRRRRRRRRORRORRRRRRRRRRORRRORRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRORORRRRRORRRRRRRORRRRRRRORRRRRRROROORRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRORORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRORRRRROORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRROORRRRRRRRROORROORRRRRORRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRRORRROOORRRRRRORRRRRORRRRRRRRRRRRRRROORRRRRRRRORORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRORORRRORRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRORRRORROORRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRROORRRRRRROORRRRRRRORRRRRRRRROORRRORRORRRRRRRRRRRRRRORRROORORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRROORORRRRRRRRRORRORRRRORRRORRROORRRORRRORRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRORROORORRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRROORRRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORORRRORRRORRRRRORRRROORORRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORRRROORROORRRRRRRORRORRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRORORRRRRRORRORORRRRRROORRRRRRRORROORRRRORRRRRROORRRORRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRORRRRRORORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRORORRRORORRRRRRRROOOORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRORRRRORRORRRRRORRRRRORRORRRROOORRRORRRORRRORORRORRRRRRORRRORRORRRRORRRRRRRRORRORORORRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRORRRRRRRRORRORRRRRRRRORRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRROORRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRORRRRRORRRROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRORORRRORRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRORRRRRRORRRRRRROORRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRORRRRRRRRRRRRORORRORORRRRRRORRRRORRRRRRRRRRRRRRRRORORRORRRORRORRRRRRRRRRRRRORRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRORRORROORRRORRRRRRRORRRRORRRRRRORRRRRRRRORRRORRORRORRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRROORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRORORRRRRRROORRRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRORRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRROORRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRORRRRROORRROOORRRRRRORORORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRORORRRRRRRORRRRRRORRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRROROOOORRRRRRRRRRORRRRRRRRRRRRRORRORRORORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRORRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORORORRRORRRRRRRRRRRRRROORRRORRRRRRORRORRRRRRRRRRRRORRRRRRRRRRORRRORRRRORROORRRORRORRRRRRRRORRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRORRORORRRRRRRRRRRRORRRRRORRRRRRRRRRRRORORRRRRROORRRRRRRRRRROORRRRRRRRRORRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRORRRRRRRORORORORRORRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRORRRRORRRRRRRRRRRRRRRROORRRORRROORROROORRRRRRRRRRRRRRORRRORRRRRORRORORRRRRRORRRRRRRRRRORRRORRRORRRRRRRORRRRROOORRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRRROORRRRRRRRRRRROOROROORRRRRORRRRRRORRRRRORRRROORRRRRRRRORRRRRRRRRRRRRRROORRRRROORRRRORRRRRRRORRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRORRRRRRRRRORRORORRRRRORRRRORRORRRORRRRORRORRRRRRRRRORRRRRORRORRRORRRRRRRRRORRRRRRRORRORRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRROORRORRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRROROORRRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRORRRRRORRRRORRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRORORRRRRRRORORORROORORRORRRRRRORROORRRRRRRRRRRRRRRRRRRRORRRRRRORROORRRORRROORRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRROORRRRRRRRORRRRRRRRRORORRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRROORRRORRROORRRRRRRRORRRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRORORRRRORRRRRORRRRORRRORRORORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRORRRORRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORORORRRRRRRRRRRRRRRRRORRRRRORRORRRRROOORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRORORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRORRRRRRRRRRRORORRRROORRORRRRRRRRRORRRRRRRORRROOORRORRRRRRRRRRRRRRRROORRRORRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRORRORRRRROORRRRRRRRRRORRRRRRORRRRRRRRORRROROORRRRRRRRRRRRRRORRRRRROORORRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRORRRORRRRRRRRRRRRRRORORRRRORRROORORORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORRRRRORRRRRRORRRRROORRRORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRRORRRRRRRRORORRRORRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRRRRROORORRORRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRROOOORORRRRRRRRRORRRRRRRRRORRROORORRRRORROORRRRORRRRRRRRRRRRRRRRRRROROORRORRRRRRORRRRRRRRRRRRRRORORRORORRORRRRRRORRRORRRRRRORRRRRRRRRRRRRROORRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRROORRRRRRRRRRROORRRRRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRROOORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRORRRROOORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROOROORRRRORRORRRRRRROROORRRRRRRRRRRRRRRRRRRRRRORORROOROOOOORRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRROORRRRRRRROORRORRRRRRRRRRRRRRRRRORRROROROORRRRRORRRRRRRRRORRRRRRRRRRORRORRORRRRORORRRRRRRRRRRROROROORORRRROORRORRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRROORRORRORORRROORRRRRROORRRRRRORRRRRRRRRORRRRRRRRRRRRORORRRORRRORORRRRRRROORRRRRORRRRRRRRRRRRRORRRORRRRORRRRRRRRORRRRRORRRORRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRORRORROORRRRRRRRRRORRRRRORRRRRRRRRORRORRRRRRRRRRRRROORROORRRRRRRRRRRRRRORRORRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRORRRRRRORRRRORRRRRORRRRRROORRRORORRORRORRRRRRRRRRRRORRRRRRROORRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRORRORRRRRRORRRRRRRORRRRRRRRROOOORRORORORRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRROROORORRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRORRRORRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRORRRRRORRRRRRRRORORRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRORRRORRRRORRRRRRRORRRORORRRRRRORORRORRRRRRRRORRRRRRRRORRRRRRRRORRRORRRRRRRRRRROORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRROORRORRRRRRRRRRRORRRORRRRRORORRORRORRRRRRORRRRRRRRRRORRRORRORRRRRRRROORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRORRRRRRRRRORRRROORRRRRRRRRRRORRORRRRORRRRRRRRRRORRRRROORRRORRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRROORRRORORORORRRRORRRRRRRRRRORRORRRRRRRRORRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRORRRRRRORRRRRORORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRORRRRORRORORRRORRRRORRRRRRORRRORRRRORRRRRRRRRRORRRRRRROORRRRRRROORRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORORRRRRRORRRORRRRRRORORRRRRORRRROORORORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRROORRRRRRRRRORORRRRORRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORROOORRRRRRRRROOROORORRORRRORRRORRRRRRRRRRRORRORORRRRRRRRORRRRRRRRRORRRROORRRRRRRRRORRRRRRRRRRRROORRRRRORRRRROORRORORROORRRRRRRRORRORRORRRRRRRRRRRRRRORRRRORORRORRRRRRRORRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRORORRRORROOORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRORORRRRRRRROROORRORRRRRORRORRRRRRORORRRORRRRRRRRRRROORORROROORRRRORRRORRRRORRRRRORRRORRRRRRRRRRORRRRRRRORRRRRRORRRRRRRORRRRRRRROROOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRORORRRORRORRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRORRRORRRRORRRRRRRRRRROORRRRRRRRRRORORRRRROORRORRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRROOORRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRROORRRRRRRRROORRRORRRRRROORRRRRRRRRROORRORRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRORRORRRRRRRRRRRRRRROORRRORRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRROOROOORRORORRRRRRRRRRRRORRRRORRRRRRRROOROORRRRRRRORRORRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORORRORORRRRRORRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRROORRRROORRRORRRRORRRRRRRRORRRROORORRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRROORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRORRRRRRRRRRORRRRORRRRRORRRRRRRRORRRRRRRRORRRRRRRRRORROORRRRRRRRRRRORRRRORRRRROORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRORRRRORORRRROORORORRRRRRRRRRROOORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRORRORRRRORORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRROORORRRRRORRRRROROORRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRORRRRRORRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORROORRRORORRRRRRRRRRRRRRORRRRRRRRRRORRORROORRRORRRRRRRRRRRRROORRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRORRRRRRRRORRRORRORORRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRROORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRORORORORRRRRRORRRROORRRRRRRRRROROOOOROORRRORRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRORROORRRRRRRRRRRORRRRORORRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRORRRRRRRROORRRORRRRRRRRORRRRROORORORORRRRRRRRRRRRRORORRORORRRORRRRROORRORRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORORRRRRRRRRROOROOORRRORRRORRROORRRORRRRRRRRRRRRRRRRORRRROORRRRRRRRRORRRRROORRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRORRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRORRRRORRRORROOORRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRORRRRRRRRRORRORRRRRRORORRRRRRRRRRROROORRRRRRRORORORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRROROORORRRRRRRRRRORRRRORORRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRROROORRRRRORORRORRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRROORORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRORRORRRRRRRRRRRRRORRRORRROORORRRRRRRRRRRRRRORRORORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRORRORRRRRRRRRRORRRRORRORRRROORORRRRRRRRRORROORRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORRRRRRRROORRORRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRORRRRORORRRORRORRRORRRRRRRRRRRRRRRRRRORRORRRRRORRORRRRRRORRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRROROOORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRORRORRRRRRRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRORRRRRROORRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORROROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORORRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRORRRRORRRRROORRROORRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRRRROROOROORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRORRRRRRRRORRRORRRRRRRROORRORRRRRRRRORRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROOORRRORRORRRRRRRRORRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRORRRORRRRRRORRRRRRRRORORRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORORRRRRROOORRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRROROORRRRORRRRRORORRRRORRRRORRRRRRRRRRRRRRORRRRRRORRRRRORRORRRRORRRRRROORRORRRORRRRRORORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRORRRRRRRORROORRORRRRRORRORRRRRRROORRRORORRORRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRROORRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRROOORRRRROORRRRRRRRRRROORRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRORRRRRRRORORRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRROORRRRRRRRORRRRRRRRRRORRORRORORRRRRRRRRRROORRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRORRORORRRRORRRRORRRORRORRRRRROORRRRRRRRROORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRORRRRRORRRRRRROORRRRRRRORRRRRRRORRORROORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRORRRRROROOOORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRRRORRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRORRRROORRRRRRRRORORORRRRRRRRRORRRORRROORORORRRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRROOORRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRORRRORRRORRRRRRRRROORORRRRRRRRORRRRORORORRRRRRRORRROORRRRORRORRORRRORROROORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRORRRRRRORORRRRRRRRRROORRRRRRRORRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRORRORRRRRRRRROORORRRRRRRRORRRRRRRRRORRRRRRRORRORRRRRORORRRRRRRORRRRRRROORRRRRRRRORORORORRROORRORRRRRRRORRRRRRRRORORRRRRORRORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRORRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRORRORORRRRRRRRRORRRRORORRRRROORORRRROORRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRORRRORORORORRRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRROORRORORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRORRRRROORORRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRORRROORRRRRRRRRORROORRRRRRRORRRRRRRRRRRRRORRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRORORRRRRORRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRORRORROORORRRRRRRORORRRRRRORRRORRRRRRRORRRORRRRRRRORRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRORRRRRRORRORRRRORRRRRRRRORRORRRORRRORRORRRRRRRRRORRRRORRORRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRORRORRORRRRORRRRRORRORRRRRRRRORRRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORORRORRRRORRRRORRRORRRRRRRORORRRRRORRRRRRRRRRRORRORRRORRORRRRRORRORORRRRROORRORRRORRRRRRORORRORRRRRRRRRRORRRRORORRRRRORRRROORRRRRRRRRRRRORRORRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRORRRRROORRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRROORRRRORRRRRRORRRRRRRORRRRRORRORRRRORRRRRROORRRRRRRORRRRRRRRRRRRRRRORRRORORRORRRRRRRRRRRRRRRRRRORRORRORROORRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRROORROORRRRRRORRRRRRRRRRRRRORORRRORROOORRRRRRRRRORRRRRROOORRROOORORRRRRRRORRRRRRRRORRRRRRORRORRRRRRRORRRRRRRRRRRRRRRORORRRRRORRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORRRROOROORRRRRORRRRORRRRRORRRORRRORRRRRRRRRRORORRRRRRRRRRRORRRORRRRRRRRROORRRRRORRRRRRRRRRORORRRRORRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRORRRRRRRRRORRROORRRRORRRRRRORRRRORRORROROORRRRRRRRRRRRRRRRRORRRORROROORORRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRROOROORRRRRRRROROROORRRORRRRRRRRRRRRRORRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRORROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRORRRRRRRROORRRRRRRRORRRRRRRRRRRRORORRRRRRRRORRRRRRRORRRORRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRORORRROORORRORORRRRRRROORRRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROORORRRORRRRRORRRRORRRRORROORRORORRRRRRRRRRRRRRORRRORORRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRORROORORRRRRORRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRROORRRRORRRRRRRROORRRRORRRORRRRRRRRRRORRRRROORRORRRRRRRRRRRRRORORRRRRORRRRRRRRORRRRROOORRRORRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORROORORRRRRRRRRRRRRRRRRRRROROOORROOOORRRRRORRRRORRORRRROORRRORRRRRRRRORRRRRRRORRRORRRORRORROORRRRRRRORRRRORROROORRRROORRRORRRRRRRRRRRROORRRORRORRRRORRRORRRRRROORRRORRRRRRRRRRRORRRRRRRRRORRORRORRRRRRORRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRORRRRRORRROORRRRRROOOOORRORRRRORORRRRRORRRRORRRRRRRRRRRORRRRRRRRORRRRRRORORRRRORRRORRRRRRRRRRRORRROORRRRROORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRROROOOOORRRRRRRRRRRRRRROROROORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORORRRRRRRORRORRORRRRRORRRORRRORRORRRRRRRRRRRRRROORRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRROORRRRRRRORRRRORRRRRORRRRRRORORRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRORRRORORORRRRORRRRRRRRRRROORRRORORRRRRORRRRRRORORORRROROORRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRORRRRRRORROORRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRORORRRRORRRRRRROORRRRRRRRRRROROOROORRRORRORRRRRRORRRORRRRRORRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRORRRORRRRRORORRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRORRRORORORRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRORORRRORRRRRRORRRORRRRRRRRRRRRRROORORRRRRRRRRORRRRRRRRRROORRRRRORRORORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRORRRRRRRORRROORRRRORRORRRRRRRRRRRROORRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRORRRRORORRORRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRORRROORRRRRORRRRRRRORRRRRROORRRRRORRRRRRRRORRORORRRRROORRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRORRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRROORRORRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRORRRORRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRRORRRORRORRORROORRRRRRRORORRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRROORRRRRRRRORRRRORROORRRRRRRRORRORRRRRRRRRRORRORRRRRORORRRRRRRRRRRRROORRRRRRRRRORRRORRRORRRRORRORRRRRRRORRRRRRRRRRRRRRRRROORRRORORRRRRRRRRRRRROOORRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORORRRORRORRRRORRORRRRRRRRRRORRRRROORORRORRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRORRRORORORRRRRRRRRRRRROROORRORRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRORRRORROORORORRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORORORRRRRORRORRRRORRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRORRRRORRRRRRRRORRRRRROORRRRRORRRRRRRRRRRORORRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRORRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRRRRRRRRRROOROORRRORORRORRRRRRRRRRRORRRRORRRORRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRORRRRORRORRRRRRRRROORRORRRRRORRORRRRORRRRRRRRORRRRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRORRRRRORORRORRRRRRRRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRORRRRORRRORRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRORORORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRORRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRORORRORORRROORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRROORORRRRRRRRRRRRRRRRORRRORRRORRRRRROROORRROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRORRRROORRRORRRRROORRRRORORRRRRRRRRRRRORRRRRRORRORROROORORRRRRRRRRRRRRRRRRRRRORRRORRORRRRRROORRRRRORORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRORRROOROORRRRRRRRRRORRRRORRRRRROORRRRRRORORRRRRRRRRRRRRRRORRROORRROOOROORORRORRRRRORRRRRRRRRORRRRRRROORRRRRRORRORRRRRRRRRRRRRRROORROOORRRORRRRRRRRRRRORRRORRRRRRORRRRORRRRRORRRRORRORORRRRORRRRORRRORORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRORRRRORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRORORORRRRORRRORORRRRRRROORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRROORRRRRRORRRORRRRORRORRRRRORRRRRROOOOORORRORRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRORRRRORRORRRORRRRRRRRRRRRORRORORRRRRRROOROORRRRRRORRRRRRRROORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRROORRRRRRRORRRORRRRRRRORRRRRORORRORRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRROORORORRRRORRRRRRRORRRRRORRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRROORRRRRRRRRRRRRRORORRRORRORRRRRRRORRRROROORRRRRORRRRORRORORORRRORRRRRRRRRRORRRRRORRRORRRORORRRRRORRRRRRRRRRRORRRRRRRRRROORRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRRRRORROROORRRORORRRRRRRRRRRRRROOORORORRRRRRRRRORRRRORRRORRRRRORORRRRORRRRORRRRRRRORRRRRRRRRRRORRRRORORRRROORRRRRROORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRROORRRORORRRORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRORRORRRRRORORORRORORRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROROORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRORORRRRRRRRRRRROROORORRRRRRRRRRRRRRORRORRRRORRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRROOORORRRRORRRRRRRROORRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRROORORRRRRRRRRRORRRRRRRRORRRRORRORRRRORRRRRRRRORRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRORRRRRRRRRRRRRRRROORRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRORRORRRRRRRORORRRRRORRRRORRORRORRORRRRRRRRRRRRRRORRORRRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRROORRRRRRRORRROORRRROOORRORRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORRRORORRRRRORRROORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORORRRRORRORRRRRORRRRRORRRRRORORRRRRRORRRRRRRORROORRRRRRRORRRRRORRRRRRRRORRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRORRRRORRRRRRORORRRRRRRRRRORRRRORRROORRRORRRRORRRRRRRRORRRORORRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRORORORRORRROROROROORRRRRRROROORRRRORRRRRORRORRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRROORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRROORRRORRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRROORRRROORRRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRORRRRORRRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRORRRRORORORRRRRRRROORRRRRORORRRRRRRRRRRORRRRRRRORRRRRORROORRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRORRORORRRRORRRRRORRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRORRRRRRRRRRRRRROORRRORRRRRRRRORRRROORRRRRRRRORRORRORRRRRRRORORRRRRRRORRORORRRRROORORORRRRRRRRRRRRRROORRRORORRRRRRRRRRRORRRRRRRRRORRORORRRRRRRRRRRRROORRRRRRORORRORRRRRRRRRRRRRRRRRRRORRRRRORRRRROROORRRRRRORRRRORRRROORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRRORRRRRRRRRRRRRRRRRRORRROROORRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRRRRRRORRRRRORRRRRRRROROROROORRRRRORORRRRROORRROROOORRRRRORRRORRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRORRRORORORRRRRORROOORRORORRROORRRRRRRRORRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRRRROORRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRORRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRORRORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRRRORORRRRRRORRRORROORORRRRRORRRRRRRRRRRRRORRRRORRORORRROOOORRRRRRRRRRRRROORRRRORORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRRROORRRRRRRRORRRRRRRRRORRRRRORROORORRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRORRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORORORRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRORRROROROORRRRRRORRRRRRRRRRROORRORORRRORRRRORRRRRRRORRRORRORRRRRRRRRRRORRORRRRRRRORORRRRRRORRRROOORRRRRRRRRORRRRRRRRRRRRRRORRRROORRRRRRORRORRRRRRRRRRRRORORRORRORRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRORROORROORRRRRORRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRRRORRRRROORRRRRRRRORRRRRROORORRORRRRRRRRRRORRRORRRRRRRORRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRORRRRRORRRRRROORRRORRORRRRRRROORRRORRRRRRRRRRRRRORRORORRRRRRRRORRORORRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRROROROORRORRRRRRRRRRRROORORRRRRORROORRRRRRORRRRRRROORRRRRORRRRRRRRORRRRRORRRRRRRORORORORRRORRRRRRROORRRRRRRRRRRRRRRRRORRORRRROORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRORRRORRRRRRORRRRRRORRRRRRORRROORRRRRRRRROROOORRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRORRRRRORRRORRRRRRRRRRRORRRORRRRRRRORRORRRRORRRRORRRRRORORRRRORRRRORRRRRRROORRRRRORRORRORRRORRROORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRORRROOORRRRRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRORRORRRRRRRROORRRORRRRRRRRORRRRRRORORRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRORORRORRRRRRRRRORRRRRRRROORRRRRORRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRORORRRRRORORRRORRRRORORRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRROOOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORROORRRRRRRRORORRRROORORRORRRORRRRRRRRRRRRORRRRORRRRORRRRRRRRRORRRRRRRRRRROROORORRRORORORORRRRRRRRORORRRRRROROORRRRRORRRRRRRRRRRRRRROORORRORRRRRRRRRRRORRRRRRORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRRRRRORRRRRORRORRRORRRRORRORRRRRRROORRRRRRORORRRORROORORRRORRRRORRRRRRRRRRRRRRROROORRRRRRRRRRRORRRRRORRRORRRRROROORRRRRORRORRRORORRORRRRRRRRRRRRRRROOORRORRRRROOORORRROOORRRRRRRRRRRRRRRRRROORRRRRRRRRRRROORRRRORRRRRRRRROOORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRROROORRRRRRRRRRRORORRRROORRRRRRORRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRORRRRORRRRRRRRRRRRRROROORORRRRRRRRRORRRRORRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRORRROORORRORRRORORORORRROORORRRRRRRRRRORRRRORRRRORROROORRORRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORORRRRRRRORRRRRRRRRRORRRORROORRRRRORRRRRRROORRRORRORRRRRRRORRRORRRRRRORRRRRORROORRRRRRRORRRRRRRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRROORRRROORRRRRROORRRRORRRRRRRRRRORORRRRRRORORORRRRORRRRRORORRORRRRORRRRRRRRORRRRRRRRRRORORRRRRRRRRORRRRORORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRORRRORRORRRRRRRRRRRRRROORORRRRORRRRRRRRRRRRRRRRRRROROORRORRRRRORRRORRRRRRORRRORRRRORRRRRORRRRRRRROOORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRROORRORORRRRRRROORRRRRRRRRROORRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRRRRORRRRORRRRRRORRRRRRRRROROORRRRRRRRRRROOORRRORRORRRORRORRORRRRRRORRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRORRRRRROORRRORORRRRRRRORRORORORRRRORRRRRRRRROOORRRRRRRRRRRRORRRRRRRRROOROORRROORRRRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRORRRORRRRORRRRRRRRRRRRRROORRORRROORRRRRRRRRRRRRRRORRRORORRORORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRORROORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRRRRORRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROOORRRRRRRRRRROORRRRORRRORRRRRRORRRRRRORRRRRRRRRORRRRRORRORRRORORRRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRORRRRRRORRRRRORORRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRROOOOORORRRRRRRORRRRRRRRRORRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRRRORRRRRRRORRORRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRORRRORROORRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORORRRRRRORRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRROORROORRRORRRRRRRRORRRORRRRORRRRRRRRRRRORRORRRRRORRRRORRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRORRRRRRORRRRRORRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRORORRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRORRRRRRORROORRORRRRRRRRORRRRROORRORRRRRRRRRRROOROORRRRRRRRORRRRRRRRRRORRRRORRORRRRRRRRROORRORORRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRORRORRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRORRORRRRRORORRRRRRRRORORRRRROORORRRORRRRRRRRRRRORRRRORRROORORRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRORORRRRRRRRRRRRRRRORROORRRRRRRRRRRORORRRRRRRRRRRORRRORORRRRRRRRRRRORRORORRRORRRRRRORRRRRRRROORRRRRRRRORRORRRRRRROORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRROROORRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRORRRRRRRRRRORRRRRRRRORORRRORRRORORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRROORRRRORRRRRORRRRRORRRRRRRORRROORRRRRRRORRRRRRRORRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORROORRRRRRRRRRRRRRRROROOORRRRRRRRRRRRRRRORRRRRRROOROORRRRRRRRRRRRRRRRRRROORORRRORRORRRORRRORRRRRRROOOORRRRRRRRRORRRRORRRRRROORRRRRRRRRROORRRRRRRRRRRRORRRRORRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRORRORRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRORRRORRORRRRRRRRORRORRRRORRRRRORROROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRORORORRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRORRORRRORRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRROROORRRRRRRRRORORORRRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRORRRRRRRORRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRORRRRRRRRRORRORRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRORRRRRRRRRRRRORRRROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORORORRORRORRRRRORORRRROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRROORRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRROORRRRRRRRRRORORRORRRRRRRORRRRRRRRRRRORRRRORRRRRROOORRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORORRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROOOORORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRORORRRROORRRRROORRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRORRRRRRORRORORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRRRRORRORRRORRORRRRRORRRRRRRRRROORROROORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRORORRRRRROORRRORRRRROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROROOORRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRROORORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRROORRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRROOORROORRRRRRRRRRRRRRRROOROORRORRRORRORRRRROORRRORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRORRRORRRRORRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRORRORRRRRRRRRRRORRRRRROORRRRRRRRRRORRRRORRRRRRRRROORRRORRRRRROROORORRRRRROOORRRRRORRRRRORRRRRRRRORRRRORRRRROORRRRORRRRRRRRRORORRRRRRRRROORRORRRRORRRRORRRRRRRRRRRRORRRRRORRORORRRRRRRRRORRRRRRORRORRRRRRRRRRRRRORORRRRRRRRORRORRRRRRRRORRRRRORRRRRORORRORRRRRRRRRRORRRRORRRRRRORORRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRROOORRRRRRRRRORROROOORRRRORRRRRRRRRRORRRRRRRRORRORRRORRRRRRRRRRORRRRRRORRROROORRRRRRRRRORRRRROOORORRRRRRRRRRRRRRRRRORRRORRRRROROOORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORORRRRROROORRRRRRRORRRRRRROORRORORORRRRRRORRRRRRRORRRRORRRROORRRORRRORRRRORORRRRRRRRRRRRRORRRORRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRORRORORRORORRRRRORORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRORRRORRRORORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRRRRRORRORORRRORRRRRRRRRORRRORORROOORRRRRRRRRRRRRRORRRRRRROORORRRRRRRRRRRRRRRRRRORRRRRRRORRROORRRRRROORRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRROORORORRRRRRRRRRRROOORRORRRORROOORRROORORORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRRRORORORORRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRROOORORRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRORRRRORORRRORRRRRRRORRRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORORRRRRORORRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRROOORRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRORORORRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORORRROORORRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORORRORRRRORRRRRRRRRRRORRRRORORRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRORRRRRRRORORORRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRROORRRRRRORORORRRORRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRORRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRORRRRORRRRRRRORORRRRORRRRRRRRRRRRRRORORRROORRRROROORRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORORORRORRRRRRORRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORROORRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRORRRORRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRRORRORRORRRRRORRRROORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRORRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRROORRRRRRRORORRORRRROORRORORRRRRRRRORRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRROORROOORORORRRORRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORROORRORRRRRRRRRRRRRRORRORRRRRRRRRRORRORRRROORRRRRRRRRORORRRRRRRRORRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRORORRORRRORRRORRRROORRRROOORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRORORRRRRRRORRRRRRRRRRRRROROROOOORRRORRRRRRORORRRRRORRORRRRROORRRORRROOORRRRRORRORRRRRRORRRRRRRRRRORRORRRRRRRRRRRRROORRRROOORRORRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRORRRRRORRRRORORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORORORRORRRRORORRRRRORRRRRRRORORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRORORRRRRRORORRORRRRRORRRRRORRRRRORORORORORRRRORRRRRORRRRORORRRRRRORRORROORRROORRRRRRRRORRRRRRRRRRRRRORRRRRRRRROOORRORRRRORROOORRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRRRROORRRRORRORRRRRORROORRRRRRRORRRROROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRROORRRRRRRRROORRRRRORRRRRRRRROORRRRRRRRRRORRRORRRORRROORRORORRRRORRRRRRORRRRRRRORRORRORRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRROORRORRRRORRRROORRORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRRRORRRORRRRRRRORRRORRRRRRRRRORRRRORRORORORRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRORORORRRRRRRRRORRORORRORORRRRRORORRRRRRROORRRRRRRORRRRRRORORRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROOORRRRRRRRRRRORRRORORRRORRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRORRRRRRRRRRRROORRORORRRRRRORORORRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRROORRRRRORRRORRRRORRRRRRRRORRRORORRRRRRRRRRRROORRRRRRRRRRRORORRORRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRORRRRORRORRRRRRORRRRRRORRORORRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRORRRRRRORRRRORRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRORRRRRRRRRORORRRORRRRRRRRRRRORORRRRRRRORROOORRRRRRRRRORRRORRRROORORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRORROORRRRRORRRRRRRRRRRRORROORRRRORRORRRRRRRRRRRRROORRORRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRORRRRRROROORRRRRRORRORRRRORRROORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRORROOOORRRRRORRRORRRRORRRRRRRRRROOROORORRRRRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORROROORORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORORRRRROORRRRRRRRRRRORRRRRRRRROORRORRRORRRRORRRORRRRRORRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRORRRRRROORRRRRRRRRROORORRRORROORRORRRRRROOORORRRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRORRRORRRRRRRROORORROROORROORORRRRRRRRRORORORRRRRRRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRROROORORRRRRRRRORRRORRRRRORRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRORRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRROORORRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRRRRORRRRORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRORRRORORRRRRRRRRRRORRRRORRRRRRRROORRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORRRRRORORORRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRORORROORORRRRRRRRRORRORRRRORORRRRRORRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRROROORRRROORRRRRRRRRORORRRORRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRORRRRORRORORRRRRRRRRORRRORRRRRRRRRORRRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRORORRRRROOORRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRROORRRRRRRORRORRORRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRORRRRRRORRRRRORRORORRRRRRRRROROORROORRROROOROORRRRRORRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRORORRRROROROROROROOORORRRRRRRORRRRRORRRRRRRRORRRRRRROOORRRORRRORRRRRRRORROORRORRORRRRRRRRRORRRRROORRRRRRRRRRROOOORRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRORORRRRRORRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRROORORRRORRRRRORRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORORRRROORRRRORRRRRRRORRRORRRRRRRRRORRRRROORORRRORRRRRRORRRORROORRRORORRRRRRRRRRRRRRORRRRRRRRRORRRRRROORRRRORRRRRRRRRRRRRRRRRRORRRRORRRROORRRORRRRORRRRRORRRRROORRORRRROORRRRRRRRRORORRRORORRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRROROORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORRRORRRRRORRRORRORRRORRRRRRRORRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRORORORRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRORRRRRRRRRORORRRORRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORRROORRRRRRRRORRORORRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRROOROORRRORRRROORRRRORRORRRRRRRRRRRRRRRRRORORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRORRRRORRRORRRRRORRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRORRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRROORRRORRRORRRRRRRROORRRRRRRRRRRRRRRORRORRROORRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRRRROOOORRRORRRRRRRRORRRRORRRRORRRRRRORRRRORRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRORRROROOORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRROOORRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRORROORRRRRRRRRRORORRRRRRORRORRRRORRROORROORRRRROORRRRORRRRRRRRRRRRRRORROORRRRROOORRRORORRRRRRRRRRRRRORRORRORORRRRRRORORRRRORRRRRRRRRRRRRRRORORRRRRRRRORRRRRRORRRRRORRRRRORRRORRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRROORRRRRORORORORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRROROORRRRRRRRRORRRRORRRRORRRORRRRRRORRRRRRRRRRRRRORROORORRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRORRRRRRRROROORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRRRRORRRORORORRORORRRORRRRRRRRRRORRORRRRRORRORORRRRRRRRRRORRRROORRRRORRRRRORRRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRORRROOORRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRROORORRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRORRRRRROORORRRRRRRRRRRRRRRROORRORRORRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRORRRRRRORRRORRORORRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORORRORRRRRRRRORRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORORRORRRORORRRORRRRRRRRRRRRORORRROORRORRRRROORRRRRRRRORORORRORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRORRRRRRRRRORORRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRROORRRRRORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORORRRRRRRORORRRRRRRRORRORORRRORRRRRRROORRRRRORRRRRRORRRRRRRRORORRRRRRRRORORRRRRRRRRRRRRROORRRRRRRRRRRORRORRRRRRORRROOROOORRRRRRORRRRRRRRRRRRRRRRRORRORRORRORRRRRORRRRRRORRRRRRRRRRRORRORRRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORORRORRRRRRRRRRRORRRORRRRRRROORROORORROORORRORRRORRRRRRROROORRRRRRRRRORRRRRRORRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRRORRRORRRRRRRRRRRRRORORRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRROORRROORORRORRRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORROOOORORORRRORRRRRRRORORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRORRORRRORORRRRORRRRRRRRORRORRRRORRROROORRRRRORRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRORORRRRRRRRRRRRRORORRRRORRORRRROORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRROORORORRRRRRRRORRORORORRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRORROORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRORORRORRRRRRRROROROORRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRORRRORRORRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORROORRRRORRRORRRRRRORRORRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRORRRORRRRRRRRRRRORRORRRROOOORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRORRRRRRORRRRRRRRRRROORRORRRRORRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRORRRORRRRRROORRRRRRORRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRROORORRRRRRRRORRRRRRORRRRRRRROORROORRRRROOORRRRORRRRRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRORRORORORROORRORRORRRRRRRORRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRRRRRRRORRRORRORRRRRRORORRRRRRORORORRRRRRROROORRROORRRRRRRRORRRRRRRRRRORRORRRRRORRRRRORORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRROOORRRRORRRRRROORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRORORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRROORRRRRRRRRRRRRRRRRORRRRROORRRRRORRORRRORORORRRRRRROORRRRRRRRRRORRRRRRORRRORRRRRRRRRORRRRORRRRROORORRORRRRRORRRORRRRRORRRRRORROORRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRORRRRORRRRRRRRORRORRRRORRROORRRRRRRRORRRRRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRROORRRRRORRRROORRRRRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRROORORRRRORRRRRRORORORRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRORORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRORRORORORRRRRROOORRRRRRORRRRROROORRRRRORRRRRRRRRRRRRORRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRORORRRRRRRORRRORRRORRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRRORRRRROROOORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRROOOORRORORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRORRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRORRRORRRRRROOOROORRRORRRORRRRRRRRRRORRRRROROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORORORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRORRROORRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORORRRRORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRORORORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORRRRRRORRRORRRRRRRRROOORRRORRORRORRRRRRRRRRRORRORRRORORRRRORRRRORRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORORORRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRORRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRORORRRRORRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRROOORRRRRRORRRRORRRORRRRRRRRRROORROORRRRRRRORORORRRRORRRRRRRRRRRRRRRRRORORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRROOORRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRORORRRRRORORROORRRRRRRORRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRORRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRORORRRORRRRRORRRRRRORRRORRRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRROORRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRROORRRRORRRRRORRRROORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRORRRRRRRRROORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRROOORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRROROORRRORRRRRRRRRRORRRRRRRRRRRRRORRRROROORRRRRRRRRORORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRORRRROOORRRORRRORORRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORORRRRRRRORRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRORRRORRRRRRRRRRRORROORRRORRRRRRRRRRRRRRRORRRORRORRRRRRORRRRRRRRRRORORROORORRRORRRRRRRORRRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRROORRRROOORRRRRRORRRORRRORRRRRRRRRRRRRROOORROORRROORRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRROORRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRRORORRORRRRRRORRRRRRRRORORRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRROORRRRRRORORRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRROORRRRORRRORRORRRRRRORRRRRRRORRORRORRORRRRRRRRRRRRRRRORORRORORRRRRRRORRRORRORRRRRRRORRRRRRRRRORRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRROORORRRRRRRRRROORORRRRRORRRRORRORRORRRRRRORRORRRRRRROORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRROORRORRRRRRRRRRRRRORRRRRRRRRRROROOORRRRROORRRORORRRORRRRRRRRRRRRRRRROORRORRRRRRRORRRRRRRRRRRRRRORRRRRRROORRROOOORRRRORRROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRORRRRRRRRRORRRRRORRRRORRRRRRRRROORRRRRRRORRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRROORORRRRRRRRRORRRRRRRORRORRRORRRRORRRRRRRROROORRORORRRRRRRRRRRRRRRRORORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRROORRRRRORRORRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORORRRRRORRRRRRRRRRRRRRORRROORRORRRORRRRRORRRRORRRROOOORRORRRRRRRORRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRORRRRRROORRRRRRRRORRRRRRRRRORORRRRORRORRRRORRORROORRRRRORRORORRRRORRRORRRRRORRRRRORRRRRRORRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRROOORRRRORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRORORRRRORRORRRRRORORRRRORRRRRRRRRRRRORRRRRRORRRRRRRRROORRRRRRRRRROORRRRRRRORRRRORRRRRRRRRORRRORRRRRRORRRRRORRRRRORRORRRRRRORRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRORRROORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRORORRRRRRRRORRRRRORRRRRRRRORRRRORRRRRRRRRRRRORRRRORRROORRRRRRORORRRRROOORORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRROORRRRORRORRRRORRRRRORRRORRRRRORRRRRRRRRRORORORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRORORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRROOORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRORRRRRRRORROORORORRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRROORRRRRRRRRRRRRRORRRRRRRRROORRRRRRRORRRRRRRRRRORORRRRORRRORRRRRRORORRRRRRORRRRRRRRORRRORRRRRRORRRRROORRORRRORRRORRRRRRRRRRRORRRORORRRRRRRRRORORRRRRRRRORRRRRRRRRRORRRRRRORRORRRRORRRORRRRRRRRRRRRRRRRRROROORRRRORRRRRRRRRRRRORRORORRRORRRRRRRRORORRRRRRRRORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRORRRRRORORRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRORORORRRRRRORRRRRORRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRORROROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRROORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRORORRRORRRRRRRORRRRORRRRRRRRRROORRRRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRROORRRRRRRORRRRRRORORRORRRRRRRRRRRRRRRRRRRROOORRRRRROORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRORRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRORRROORRRRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRORORRRRRRORRORRORORRRRRRRRROORRORRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRORRORRORRRRRRORRRORRORRRRRRRRRRRRRORRORRRORRORRORRORRRORORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRORORRRRRRORRRORRRRORRRORRRRRRORRRRRRRRRRRORRORRORRRRRORRRRORRRRRRRRRRRRRRORRRRRRRORRRRORRRRRORRRRRRRRRRRRRRORRRRRORRRRRRROORRROORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRROOORRRRRRRRORORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORORRRORRRRRRRRRRORRRORORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRORRORRRRORRRRORRRORRRRRRRRRORRRRRRRRRRORORORRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRORROROORRRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRORROOORORORRRORORRRRRORRRORRRRRROROORRRRRRORRRRRRRRRROORORRRRRRRORRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRORRRRRRRRRRRRRORRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRORRRRORRRRRRRRORRRORRRRRRORRRRRRRRRORRRORRRORRRORORRRRRRRRORRRRRRRROROOORRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRROORRRRRRRRRRRRRORRRRRORRRRRROOOORORROOORRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRROORRROORORRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRRRRRRORRRRORRRRRRRRROROOOOORORORRRRORRROORRRRRRROORRRRRORRRRRRORRRRRRRORRRRRRORRORRORRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRORRRROORRRRRRRRRRRRRORRORRRORRRRRRRORRROORRRRRRRRRRRRRRORORRRROORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRORORORORRRRORRRRRRRRRRRORRRORRORRORRRORROORRRRORROOORRRRORRRRRRRRRRRROORRRRROORRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORORRRRRRRRRRORRRRRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORROORRRRRRRORRRRRRORRRRRROORRRRORRORRRRRRRRRRRRRRRRRRRRORRRORRORRRRORRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRORRRORORRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRORRORRRRRRRRRRRORRRROORRRRRRRORRORRRRRRRRRORRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRORRORRRRORRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORROORRRRRRRRRRRRRRRRRORRORRRRRRORORRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRORRORORRRORRORRRROOORRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRRRORRORORRORORRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRORORRRRRRRRRRRRRRRORRRRORORRRRRRORRRORRRORRRORRORRRRROORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRROORORRRRRORRRRORRRRORRORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORORRRORORRRRRRRRRRRRRORRRRORRRORORRRRORRRRRORRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRORRORRRRORRRRRRRORORRRORRRRRRORRRRRRRORRRRRORORRRRORRORRRRORROOORRRRORRRORRRRRRORRORRRROORRRORRRRRRRRRRRRRORRRRRRRRORRRRRROORRRRRRORROORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRROORRRRRRRRRRRRRRORRORROORRRORRORRORRRRRRRRORRRRRRORRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRRORRRROOORRRRRRRRRRROORRRRRORORRRRRRRRRRRORRRRROOOORORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRROORORRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRROORRRRRRRRROOORRRRRRRRRRRRRRROORORRRRORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRORORRORRRORORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRROOROORRRRRROORRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORORRRRRORRRRORRRRRORRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRORORRRORRRRRORRRRRRORORRRRRORORRRRRRRRRRRRRRRRORORRRRRRROORRORRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRROOOORRRORRRRRRRRORRRRRORRRRRRRRORROOROORRRRORRRRRRRRRRRRORRRRRRRRORROORRRRRORORRRRRRRRRORRROROROORRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRROORRRRORRRRRRRRROORRRRRRORRRRRRRORRRRRRRRORRORRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRROORRRORRRROORRRRRRRRRRRORRORRROORRRRRRRORORRRRORRRORRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRRRRRORORRORRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORORRRRRRROROROORRRRRRRRRRRRRORRRRRRRRRRRRORRORRORRORRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRROOORRRRRRRRRRRRORRRRRRRRORROORRRRRORRRRRORORROORRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRORORORRORORRRRRRRORRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRORORRRRRROORRRRRRRRRORRRROOROOORRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRRRORORRRRORRRRRROOOORRRRORRRRORRRRRORRRRRORRORRORRORRRRRORRRRRORRRORRRRRRORRORORRORRRORRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRROOROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRROORRRORRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRORRORRRRRRORRORRROORORRORRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRORRORRRRORORRORRRRORORRRROORORRRRRRRRROORRRRRRRRRORRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRORRRRRRRORRORRORRRRRRRORRRRRRRRRRRRORRRRRRORRORRRRRROORRRRRRRRORRRRRORRRRRORORRRRORRORRRRRRRRRRRORRRRRRORRRRRRRRORRORRORRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORORRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRORRRRORRRRORORRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRROORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRORORRORRRRRRRRRRRORRRRRRRORORORRRRRORRRRRORRRRRORRRRRRRRRORROORROORRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRORRRRRRRRRRRRORRRRRRRRROROORRORORORRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRORRORRRORRRRRRRRRRRRRRRORORRRROORRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRORROORRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRORORRRRORRORRRRRRRRRRRRRRORROORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORRRRRRRRORRRORORRRRRROORRORRRRRRRRRORRRROORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRROORRRRRRORRRROROROORRRRRRRORRRORRRRORRRRRRRRRRORRRORRRRRRRORRRRRRROORRORRRRRRRRRRORORRRRRRRRRRORRORRRRRRORRRRRRRRRRROORRRROOORRRRRRRRRRORORRROORRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRORORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRORRRRORRRRRRRRRROROORRRRRRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRRORORORRRRRROORRRRORRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRRRORORRRRRRRRRRRRORRRRORORRRRRORRRORRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRRRRRRRRRRROROORRRORRRRRRORRRRRRRRRRRRRRRROORORRORORRRRRRRORRRRRRRRORROORORRRROROORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORROOORRORRRORRRORRORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRORORRRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORROORRRRROORRRRRROOORRRRRRROORORRORRRORRRRRRRROORRRRROROROORRRRRRRRROORRRRORORRRRRRRRORRRRORRRRRRRORRRROORRRRRORRORRRRRRORRRRORRRORRRORRRRORRRORRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRROORRRORORRRRRORRORRRORRRRRORROORORRRRRRRRRORRRORORRORRRRRRRRRORRRRRORRRROOORRRRRRRRRRRRROORRRRRORROORRROORRRRRORRRRRRRRRRRRRRRRROORRORORRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRORRORROROROORRRRRRRRORRRRORORORRRROORROORRORRRRRRRRRRRRRRRRRRRORORRORRRORRRRRRRRRRRRRRRRRRRRORRORRORORROORRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRROOORRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORORORRRRRRORRRRRRRRRROORRRRRRRROORRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRROORRORRRRRORRRRRRRRORRRRRRRRORRORRRORRRRRROORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRORROORRRORRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRORORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROROORRRRRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRROORRRRRORRRORRROORORORORRRORRRRRRRRRRROORORRRRRRROORRRRRRROORRRRORRRRRRRROORRORRRRRRRROROOORRRRRRRRRRRRRRRORRROOORRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRORRROORRRRORRRORRRRRORRORRRROORORRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRORORRRORRRRRORRRRRRORRRRRORRRORRROORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRORRRRROORORRRRRRRRRRRORRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRROORRRRORRRRRRRORRRRRRROORRRRRRRRROORROOORRRRRRROOORRRRORRRRRRRORORRRRRORRRORORROROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRORORRRRRRRRRRROORRRRRRORRRRRRRRRRORRRRRORRRORRRRRRRRORRORRRRRRRORRRORROORRRRRRRRRRRRRORRORRRRRROORORRORRRRROORRRRRRRROORRRROROORROORRORORRORRRRRORRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRROOORORRORRRRRRRRRRRROROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRRORRRORRRRRRRRRRORRORRRROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORORRRRROOORORRRRRRRORRRRRORORRRRRRORRRRRRRRRRRRRRRRRORORORRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRROROORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRORRRRRRROOORRRRRRRROORRRRRRRRRRRROOORRRORRRRRRRORRORRORRRRRRRRRORRRRRRRRORRRRRORRRORRRRRRRRORRORRRRRRORRRRRORRRRROROROORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORORRRRRRRORRRRRRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRORRROROORRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRORORRRRRRORRRRRRRORRRRRRRORRRRORRRRRRRRRRRORORRORRRRORRRRRRRRRRRRRRORRRRRRORORRRROORRRORRRRRRRRRORRRRRRRRRRRORRRORRRROROORRRORRRRRORRRRRORRRRRRRORRROROORROOORRRRRRRRORRRRRRRRRRROORRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRROORRRRORRRORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRORRROORROORRRORRRRRRORRRRRRRORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRORRRRRROROORRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRORORRRORRORRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORROORRRRRRORRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORORRRRRRORORRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORORRRRRRROORRRRRORRRORRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRORRORRRRRORRRROORRRRRORRRRRRRRRRROORRRRORRRRRRRRRRRORORRRRRRRRRORRRRRRRORRORRRRORRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRROOORRORRROORRRRRRRRRRRRRRRORRRRRRRRRRRRORRROORRRORRRRRORRORRROORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRROORRRORRRRRRROROOORRRORRRRRRRRRRRRRORRRROORRRRRRRRORRROORRRRRORRRRRRRRRRRRRORRRORRRRRRRORROORORRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRROOORRRRRRORORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRORRORRORORORRRRRRORRORRRRRRRORRORRRRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRROOROORRRRRRORRROROORRRRRORRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRORRRRRRRORRRRRRORRROROOORORRRORRRRRORRORRRORRRRRRRRRRRRRRRORRORORRRRRRRORRRRRORRRORRRRRORRRRRRORRRRRRRRRRRRORRRRORRRRRRORRORRORRRORORRORRORORRRRRRRRRRORRORRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRROORRORORRRRRRRRRORRRRRRORRRRRRRRRRRORRRRORRRORRRRRRORRORRRRRRORRRRRRORRRRORRRRRRRRRRRROROORRRROOORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRROOORRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORORORRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRORRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRORORRRRRROORRRRRRRRRORRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRORRRORRRRRRRRRORRRRORORRRORRRRRORORRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRORROORRRORRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRORRRRRRRRRRROOOOORRRRRRORRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRRRRRRRRRROORRRRRRRRRRRRRRORROORRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRORORRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORORRRRRRORRRRORRRRORORRRRORORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRORRORRORROORRRRRRROORRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRORRRORRRORRRRORRORRRRRRRORRRRORROORRRRRRORORRORRRRRORRROORRRRORRORRRRRRRORRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRORRRRRRRORORRORRRRRRRRRRORRORRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORORRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRORRRORRRRRRRRRRORRORRRRORRRRROROOORRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRROORORRRRRRRORRRRRRORRRRRORRRRRRRRRRRROORRRORRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORRRORRRRRRORORRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRORRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRRRRRORRORROROORRRORROORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRORORRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRORRRORRRRRRRRRRROORRRORRRRRRRRRRRRORRRRRORRRORRRRRRORORRRRRRORRRRRRRRRORRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRORRRORRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRORORORRORORORRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRORROORRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRORORRRRRRORRRRRRRORORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRORRRRRRROORRRORRRRORRRROORRRRRRORRRRORRRRRRRRRRRRRRRORRROROORRORRRRRROORORRRRRRRRORRRRORRORRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRROORRROORRRRROORRRRORORRRRRRRRORROOORRRRRRRORRRRRORRRORRRRORORRRRRRRRORRRRROORRRRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRROORRORORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRORORRRRRORRRRRRRRRRRRRRORRRRRRRRRORRROORRRRRRORRRRRRRRRRRRROORORRRRORRORRRRRORRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRORRRORROORROORRORRRRRORRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRORORRRRRRRRORRORRRRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRORORRORRRRRRRRRRRRRORORRRROROORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRORORRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRROORRRRRRRRRRROORRRRRRRRORROORORRORRRRRORRORROORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRROORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRORRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRORORRRRRRRRRRRRROOORORRRRRRRRRRRRRRROORRRROORROOORRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORRRRRRRRRRORORRRRRORRRRRRRRRRRROOORRRORORRRORRRRRRRRRRRRRRRORROORORRORRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRRRORRRRORRRRRRORORRRRRORRRRRORROORRORORRRRRRRRRRORRRRRRRORROORRORRRRRRRORORRRRRRRORRRRRRORROOORRRRRRRRORROORRRRRRRRRRRRORROORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRORORRROORRORRRRRRRRRRRRORORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRORRRRRRRRRRRRRORRRRRRORRORRRRRRRRORRRRRRRRRRRORRRRRRRORRROORRRRRRRORRRORORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRROOORRRRORRORRORRORRRRORRRRRRRRRRRRORRRRRRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRORRRRRRORRORRRRRRRRROORRRRRRRRRROOORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRROOORRRRORRRRRORORORORRRRRRRRRORROORRRRRRROROROOOORRRRRORRRRRRRRRRRROORRRRRRRRRRORRRRRRORORRRRRRROROORRRRRRRRRRRORRRRRRORRRORORRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRROORRRRROORRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRROORRRRRROROORORRRRRRRRRRORRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRRRORRRRRORRORRORRRRRRRROORRRRRRRRRORORRORRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRORRROROORRRRRRRRORRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRORORORRRRRRROORRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRROORRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRORRORRRORRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRORRRRRRORRRRRRORORORORRRRRRRRRORRRRRRRRRRORRRROORORRROORRRRORRRRRRORRRRORORRRRRRRORRRRRRRRRRRRRRRORORRRRRORRRRRRRRORRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRROORRRRRRRRRRRRRRRORRRRRORRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORORRRRRRRRRRRORRRRRRRROORORORRRRRORRRORRRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRORRORRORRORRRRRRRRRRRRRORRROOORORRRRRRRRRRRORORORRRORRORORRORRRRRRRRORRRRRRRRRRROORROORORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRROORORRRRORRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRORORRRRRORRRRRORRRRRRRRRRRRRRRORRROORRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRORRRORRRRRORRRRRRRRORRRRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRORRRORROORRRRRRORRRRRORRRORRRRORRRRRRRRRRRORRRRRORRRRRRROROORORRRRRRRORORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROORRRRRORORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORROROORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORORROROORRRRRRROORRRROORRRRRROORRORRRRRRRORRORRRROOROORRRRRRRROORORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRORRRORRRRRRRRORRORRORRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORRORRRORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRORORRRRRRRRRRRRORRRRRORORORORRRRORRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROROORRRRRRRRRRRRRRRRRORROOORRRRORRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRROOORRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRORRRRRRRORRRORORRRRRRORRRRRRRRRRRRRRORRRRROORRRRRRRRRORRRRRRORRRRRRROROORRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRORRRRRORRRRRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRORRORRRRORRRORRRRRRORROORRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRORRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRORRRRRRORRORRRRORRRRORORRORRORRRRRRRRRRRRRRRRRRRRORORORROORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORROORRRORRRORRRRRRRRRRRORRRRRROOROOOORRRRRRRORRRRRROORORRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRORORRRRRORRORRRRRRRRRRRRRRRRORORRORRRRRRRORORRRRRRRROORORORRRRRRRORRRRRRRORRRRRRRROOOROORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRORORRRRRRRROORRORRORRRRRRRRRRORRRRORRRRRRRRRRRRORORRRRORORRRRORRRRORRRORRRRORRRRRORORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRROORORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRORRRRROORRRRRRRRRRRRRORRRROORRRRRRROROORRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRORRRORRRRRRRRROORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRORORRRRRROORRRRRRRRROORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROROORRRRRRORORRORORROORRRRORRRORRRRORORRRRRORRORRRRRROORORRRRRRRORRRRROORROORRRRRRRRRRORRRRRRRRRRRRRORROROORRRRORORRORRRRRRRORRRORRORRORORRRRRORRRRRRRRRORRRRRRORRORRRRRRRORRRRRORRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRORORRRORRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRROORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRORRORORORRRRORRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRORRRRRRROORRRRRRORRRRORROOORRRRRORRRRRRRRORRRRRRORORRRORRRRRRRROORRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRORRROROORORRRRRRRRRRRRRRRORORRRORRORRORRRRRRRRRRORRRRRRRRRRRRRROORRORRRRRORRRRRRRRRRRRORORRRRORRRRRRRRORORRRRRRRRRRRORRORRRRORORRRORROORRRRRRRRRRRORRRRRRRORRRRROROORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRROORRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRORRORRROORRRROOOORRRRRRRORRRRRRRRRRRRRRRRRRORRRORROOORRROORORRRRRRORRRRORRRRRRRRORRRRRRRRRORRROORORORRORORRRRRRORORRRRRRRRRRRRRRRRRRRORRRORORRRRORRRRRORRRRRRRRRRRRRRRORRRORRRRRRORORRRROOORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRORRRRRORRRRRRORRRRRROORORRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRROORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRORRRORRRRRRRORRRRRRRRORROORRRRRORRRRRRRRORRRROOORRRRRROROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRROORORRRRRORRRRRRORRRRRRRRROORROORRORRRRRORRRRRORORRORRRORRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRORORRRRRRRRORRROORRRROORRORRRORRORRRRRRRRRORRRRRRRRRRRRRRORROROORRRROORRRRRROOORRRRRRRRORORRRRRRRRRRRROORRRRRRRRORRRORORRRRRRRRRRRRRORRRRORORRRRORRORRRROORRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRORORRRORORRORORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORRROROORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRORRRRRRRRRORRRRORRRRRRRRRORORRORORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORROORORRORRRRRRORRRRRRORRRRORRROORRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORRRORRORRORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRORORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORORRRRRRRRRROORRRRRRRRRRROORRRRORORRRRRRRORRRORRROORRRORRRORRRRORRRRRORRRORORRRRORRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRORRRRORRRORRORORRRRRRRRRORORRRROORRRRRRRRORRRRRORRRRRRRRRRRRORRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRROOORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRROROORRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRORRRRRRORRRORRRRORRRRRRORRRRORRRRORRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRROOORORRRRRRRRRRRROOORRRRRRRROROORRORRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRROORRORORRRRORRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRROORORRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRROOORRRORRRRRRRRRRRORRRORRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORORRRRORRRRRRROORRORRRORRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRROORRROOORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRROOOORRRROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRROORRRRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROOORRRRRRORRORRRRRRORRRRRRRRRORRORRRRRORORRORORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRORORRRRRORRRRORRORRORRORRRRRORRORRRORRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRROOOORRRRRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRRORORORRRRRRRRRRRRRRRRROORROORRRRRRORRROOOORRRRRRRRRRRORRRRRRRRORORORORRRRRRRRROORRRRORRRRRRRRORRRRORRRRRRRRRORRRRRORRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRORRORRRRORRRRRORORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRROORORRRRRORRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORRRRORRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRORRORORROORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRORROOORRRRRRRROORRRRRRRRRORRROORRRRRRRRRRORRRORRORRRRORRRORRORRRROORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORORRRORRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRORRRORRRRRRRROOORORRRRORRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRORORORRRORRRRORRRRRRRRRRRRRRRRRROROORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORROORRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRROORRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRORRRORRORRRRRRROROORRROORRRRRRRRORRRRRRORORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRORRRRRORORORORRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRORRORORRRORRRRRRRRRRRRRRRRRRRRRRRORROORRROORRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRORORRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRROOORRRRRRRRRORORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRROORRRRRRRRORRRRRORRRORRRRORORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRRORORRRRRRRRORRRRRRRRRORRRRRRORRORRRRRRRORRORRRROOORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRORRRRRRRROOOORORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROROROORORRRRRORRRRORRRRRRRRRORRRRRRRRORRRRRORRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRROORRRRRRRRRORRRRRRORRRRRROORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRORORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORORORRRRRORRRRRRRORRORRRRORRRORRRRRRRORRRRRORRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRORORORRRRRORRRRRRRRRRROOORORRRRRRRRRRRRRRRRRORROORRRORRROROORRRRRRORORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRORORRRRRORORRRRORORRRRRRRRRORORRRRRRRRRRRRRRORRORRORRRRRRRRRRRRORRRRRROORRRORRORRORRRORRRRRRRRRRRRRRORORRORRRRRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRROROORRRORORRORRRORRRRRRRRRORRRRRRORORROORRORRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRROORRORRORRRRRORRORRRROORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRROROROROORRRRRRORRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRORRRORRORRRRRRRORRRRORRORRRORRRRRORORORRRRRRRORRRRRORRORRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRORRORRRRRRRRRRRRORRRROORRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRROORRRRRRRRRRRRORORRRORRORRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRROROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRORRRRRRRRRORRRROOORRRRRRRORRRRRRRRROORRRRORRRORRROORRORRRORRRRRROORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRROROORRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRORROORRRRRRRRRORRRORRRORRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRRRRRORRRRRRRRORRRORRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRORRRRRRRRORRRRRRRRRRROORRRROROROOORORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROOOORRRRRRRRRRORRRRRRRRRRRROOORRORRRORORRRRRRRRRRRRRRORRRRRRRRRRROOORRROORRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRORRORRRRORRRRRORRORRRRRORRRRRRRRORRRRRRRRRRRROOOORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRORRRRRRRRORRRRRRRORRRORRRRORRRRRRRRRRRRORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRORRRRRRORRRRRRROORRORRRROORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROOORRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRROORRRRRORRRORRORRRRRRRRRORRRORORRRRRRORRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRORORRORRRORRRORRRRRRRORORRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRORRRRRRRRRRORRORRRRRRRRRRRRORORORRRRRORRRRRRRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRORORORORRRORRRORRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRORORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORRRRRORRRORRRORRRRRRROORRORRRRRRROORRRORRRRRRRRRRRRRRROOORRRRRORRORRRRRRRRRRORRRRROORRRORRRORROORRRRRRRRRRRRRORRORRORRORRRRRRRRROORRRRORRRRORRRRRRRRROORRRRORORROROORRRRRRRRRRORRORRORRRRRRRRORRRRRRRRROORRRRRORRRRRORRRRRRORRRRRRORRRRRRRRRORRORRRORRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRORRRRRRRRRRORRRRRRRRRORRRRRORRRROORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRORRRROORRRRROORRRRRRRRRRRRRRRRRROROORRRRORRORRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRROOOORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROROORRRRRORRRRRORRRORORORORORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRROORRRRRRORORRRRROORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRORORRRRORRRROORRORRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORROORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRORORRRRRRRRRRRORRROORRRRRRRRRRRRRRORRRRRORRRRRORRROORRRRRRRRRRRRRRORORRRRORRRRRRORRRROORRORORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRROROORRRRRRRRORRRRRRRORRRORRRRORRORRRRRRRRRRROOORRRRROORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRORRRRRRORRRRORRRRRORRORRRORRRRRRROORRRRRRRRRRRRORRRRRORROORRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRORRORORRRRRRRORRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORRRRRORORRRRRRRORRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRORRRRRORRRRRRRRRRORROOORRRROROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORROORRRRRRRROORRORRRORROOORRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRRRRRRRROROOORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRORORRRRRROORORRRRRRRRRRRRRRORRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRORORRORRRRRRRORRRRRRORRRRRRRRRRORRRORRRRORRRRRRROORORRRRRRRRRRRRRRRRRRRORRRRRORROORRRRORRRRRORRRRORRORRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRORORRORRRRRRRRRRRRRRRORRRRRRORRORRRRRRORRRORRRRRRORROOOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRROORRORRRRRRRRRORRRRORRRRORRRRRRRRORRRORRRORRRRRRRRRRRORRRORRRRORRRORRRRRRRORORRRRRRRRRORRROORRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRORRRRORRORRORRRRRRROORRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRROROROORRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRROORROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROORRROORORRRRRRRRRORRRORRRRRRORRRRRORRRRRRRRRORORRORRRRRORRROORRRRRRORORRRORRRROORRRRRORORRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRORRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRORORORORRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRRRRORRROORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRROORORRRRORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRROOOORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORORORRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRORORRRRRORRRRRRRRRRRRRRRORORORRRRRRORRRRRORORRORRRRRRRRRRRORORRRRRRORORRRRRRRRRRRORRRORRRRRORORRRORRRRORRRRORORRRRRRRRORORRRRRRRRRRRRORRRRORRRRROORRRORRRRRRRRRRROROORRORORRRROROOORRRRRROORORRRRRRRORRRRRRRRRRRRRRRRRRRORRRROORRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRORRRRRRRORRRRORRRRRRRRRORRORORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRORORRRORORRRORORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRORRRRORROORRRRORRRRRRRORRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRORORRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRROOOORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRORRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRORRORRRORRRRRRRRORRRRRRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROORRORRRRRRRRORRRRRRRORRORRRRORRRORRORRRRROORRRRRRRRRRRRORORORRRROORRRRRRRRRORRRRRRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORORRORRRRRRRRRRRRRRORRRRRRORRRRRRRORORROORRRORRRORRRRRORRRRRRORORORRRRRRORRRRRRRRRRRRROORORROORRORRRORRORRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRROORRRROORRRRRRRRRRORRRORRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRROORRRRRORROORRRRORRRRRORRORRRRRORRRRROOORORORRRRRRORRORRRRRRRRORRORRORRORROROORRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRORROOOORRRRORRRRRRRRRRRROORRROORRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRROORORRORRORRRRORORRRRRRRRRRROOORORRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRROORRRORRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRORORRRROORRRRRRRRRRRORRRRROORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRRORRORRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORORRRRRRRRROORORRRRRRRRRRRORRROORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRORROORRORRRRORRORRRRRRRRRRORORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRROORORRRRRRRORROORRRRRRRORORRORRRRRRRRORRRRORORRRRORRROOORRRRRRRORRRRRRRROROORRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRORROORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRORRORRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRROORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRORRORORRRRRRORRORRRRRRORRRRRORRRRRRRORROORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRROORRRRRRRRRRRRORROORRRRRRROORRRRRRRORRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRROORRRRORRRRORRRRRRORRRRRRRRORRORRRRORRRRORRRRRRORRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRORRRRRORRRRRRRRRRRORRRROOOORRRORORRRRRRRRRRRRRORRORORRRRRRRRORRORRRRRRORRRRRRRRRRORORRRRORRORRRRRRRORORORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRRROOOORRRRRRRRORRRRRORRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORORRORRORRRRRRRRRRRORRRRRRRRRORRORORRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRORORRRRRRRORORRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRROORORRRRRORRRRRRRRORRRRRORRRRRRRRRRRORRRRRRROROROORORRRRRRRORRRRRORRRRRORRORROORRORRORRRRRRRROORRRRRRRRRRORRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRRRORORORRORRRROROORRORRRORRRRRRRRRRRROORORRRRRRRRRRRRORRRRRORORRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORORRRRROOORRRORORORRRRRORRROROORRRRRRORRRRRRRORRROOOROORRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORORRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRORORRRRRRRRRRRRRRROORRRORRRRRRRRRRORRRRORRORRORRRRRRRRRRRROORRRRRRORRRRRRORRORRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRORRORRORRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRROORRRORRRRRRRRRROORRRRORORRRRRRRRRRRRRRRRORRRRORRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRORRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRROROORRRRRRRRRORRRRRRORRRORRRRRRRORRRORORORRRRORRRRRRRRRORRRRRRRRORRORRORRROORORRRORRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORORORRORRRRRRRRRRORRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORORRRRRRRRRRORORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRORRRRRORRRRRORRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRROORRROORRRRRRRORRRRRRRORRRRRRORORRRRRRRRRRRRORRORORRRRRRRRRRORORRRRRRRRRORRRRRRRORRRORROROORRORRRRRRORRORRRRRRRRRRRROOROORRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRROROORRRRORROORRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRORRRRRRRRRRRRRRRORORRORRORRRRORRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORRRRRORRRRRRRRRRRORRORORRRRRRRORORRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROORORRRORRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRROORRRRRORRRRRRRORRROORRRRRRORRRORRRRRRRORRRORRROROORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRORRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRORORRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRORRRRORROORRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRORRRRRRORRRRORRRRRRORRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORRORRRROORRRRRRRRROORRORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRORRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRROROORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRROORRRORRRRRORORRROORRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRORRRRORRRRRORRRRRRRRRORRRRORRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRORRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRROORRRRRRRRRRRORORRORORRRRORRRRRRRROORRRRRRRRRRRRRRRRRORRORRRRRRRORRRRORRRRRRRRRRROROORRRRRORORRORRRRRRRRRROORRRRRRRRRRRRORRRRORRRORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRORORRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRORRRRRORRRRRRRORRORRRORRORORRORRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRROORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRROORRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRROORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRROOORRRORRORRRRRRRORRRRORORRORRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRRORORORRRRRRRRRRRORRRRRRRRORORRRORRRRORORRRORRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRROORRRRRRRORRORRRRORRRRORRRRRRRRORRRORRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRORRRRRRRRRRRRRRORROROOORROORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRORRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRORRRRRROOORORORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRRORRRRORORRRRRRORRRRRRRRRRRRRORRRRRRORROORRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORORRRORORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRORRRRROORRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRORRORRRRRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRRORRRRRRRRRROROORRORRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRORRRORRORRRRRRRROOORRRRORRRRRRRRRRRRORRORRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRROORRRRRRRRORRRORRROORRRORRRRRRRRORRRRRRRRROORORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORORORRRORRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORORORRRRRRRRORRORORRRRORRRROOOOOORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRORORORRRRRRRORRRRRRRRRRRRRRRROORRRRRRORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRORROORRRRRRORRORRRRRRORRRRRRRRRRROORRRRORRORRORRRRRORRORRRRORROOORRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRROORRORRRRRRRORORRRRRRRRORRRRRRORORRROORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRORRRRORRRRORROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRORORRRRORRRRRORRRORRORRORRRRRRORRRRRRORRRROORRRORORRRRRRORORRRRRRORRORRRRORRRRRRRRRRRRORRRRRRRORRRORRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORORRRRORRRRRRRRRRRRRORRORRROROORRRRRRRRRRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRORORORRRORRRRRRRRRRORRRRRORRRRRRRRORRORRRRRRRRRORRORRORRORRORRRRROROORRRRORROORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRORRRORRRORRROORRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRROORRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRORRRORRRRRRRRRORRRRRORRRRRROORRORRORRRRRRRRRRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORRRRROROOORRRORORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRROOORROORRRRRRORORROORRRORRRRRRORRORRRRRORORRRRORRRORRRRRRRRORRRRORRRRRRRORRRRORRRROOORORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRORRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRORRRROORORRRRORORRORRRRRRORRRRRRRRRRORROORRRRRRRRRRORORORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRORRORROORRRRRRRORRRRRRRRORRRRORRRRRRRRRRORRRRROORRRRRORRRRRRRRRRRRROROORRORRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRORRRROORRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRROORRRRRORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRROORRRRRORRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRROROORRRROOORRRRRRRRRRRRRORRRRRRRRRRRORRORRRORRRRRRRRRRORORRRRRORRRRRRRRRRORORRRRRRRRORORRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRORRRRRRRRRRRRRRRRORORRRRRORORRRRRRRRRRRRRORRRRRRRROORRRRRRORRRRRRORRORRRRRRRRRRRORRRRRROORRRRRROORRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRROORORRRRRRRRRORRRRORRRRRRRRRRORRROORRRRORRRRRRRRRRRRRRRORRORRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRROORRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRROROORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRROOORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRRRRORRRRORORRRRROORRRRRRRRRRRORRORRRORRORRRRRRRRRRRORRRORRRRRRRRRRRROORRRRRRRRORRORORRORRRRRRRRORRRRRORRRRRORRRORRRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRORRRRORRRORRRRRRRRORRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRROORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRORORRROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRORRORRRRRORRRRRORRRRRRRROORRRRRRRRRORORROORRRORRRRRRRRORRRRRRRORORRRORRORORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORORRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRORRRRRROORORRORRRORRRROORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORORRORRORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRORORRRRRRRRRRRRRRRORRRRORRORRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRORORORROORRRRRRRRRRRRRORRRRROROORORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROOORRRRRRRRRRRRRORORORORRRRRRORRRORRRRORRORRRRRRRORRRRRRRORRORRROORRRORRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRROROOROROROOORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRORORRRRRORRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRORRRRRRORRRROORRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRORORRRRRRROORORRRORRRRRRRORRORRRORORORORRORROORRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRROORRRRRORRRRRRRROORRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRROORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRORRRROORRRRRRRORRRRORRRRRORRRRORRRRRRORRRRROORORRRORRRRRRRRRORROORRRORRRRRRRORORRORRRRRRRRORRRORRRRRRRORORROORRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRORORRRRRROOROORRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRORRRORRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRROORORRORRRRRRROORRORRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRRRRRORRRRRRRRORRRRORROORRRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRORRRRRRRORORRRRORRRRORRRRRRRRRRORRRRRRRRORRORRORRRRRRORRRRRRRRRRRRRRORRORORRRRORRRRORRRRRRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRROORRRRORRRRRORROOORORRRRRRRROORORORRRORORRRRORRRORRORRRRRRORRRRRORRRRORRROORRORRRORRRRRRRRORRRRRRRORRROORRRRRRRORRRRRRRRRROORRRORRRRRORORRROORRRORRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRROORRORRRRRROORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRROORRRRRRRORRRRRRROORRRRROORORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRORRRRRRRRRORORRRROORRRRRROORORORRRORRRRRRORRRRRRRRRRRRORRRRROROORRRRRRRORRRRRORORORROOROROORRRRRRRRRRRRRRRRORRORRORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRROOORRORRRRRRRRRRORRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRROORRRRORRRRRRROOOORRRRRRRRROORRRRORRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRORORRORRRRRRRRORRRORRORRRRRRRRRRRRORRORRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRRRORRORRRORRORRRRRRRRRRRRORRRRORRRRRRRORRORRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRORORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORORORRRRORRRORRRRRORRRRRORRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRORRRORRRRRRRRRRRRRRORRRORRRROORRRRRRROORORRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRRRRRORORRRORRRRORRORORORRRRRRRORRRORRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORORORROORRRRRRRRRRRRRRRRORRRORRRRRRRORRORRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRORRRRRORRRRRRRORROORRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRORRRRRRRRRRRRRROOORORRROORRRRRORRRORRRRRRRRRORRORRORRRORRRRRRRRRRROORROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRORRORRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRORORORRRORRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRROROORRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORRORORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRRRRRRORRRROOORRRROOORRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRROORRRRRORRORRRRORRRRRRORRRRRROORRRRRRORRRROORRORORRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRORORRRRRRORRROORRRRRORRRRORORRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRORRRRRORORRRRORRRRRORRRRRRRRRROROORROORRRORORRRRORORRRRROOORRRRORRRRRRRRRRRRRRRRORRROORRRRRORRRRORRORRRROORRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRORRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORROORRRRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRORORRRORORRRRRRORRRRRRRRRRRROORORRRRORORRRRRRRRRORORRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRORRRORORORRRRORORORRRORRRRRRORRORRORRORRRRRRRORRRORRRORRRRRRRRRRORRRRRROORORRRRRRRRRRRRRRORRRRRRORRRRORRRRORRORORRRORRRRRRRRORRRRORRRRORRORRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRORRRRRRRRRRRORRRRORRRRRRRORRROORRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRORORRRRRRRRORRRORRRORORRRRRRROORROROORRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRORRRRRRRORRRORRRRORRRRRRRRRORORRRORORRRORRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRRRORRRRRRROROORRRRRRRRORRRRRORRRRRRRORORRORRORRRRRRRROORRRRRRRRRORRORRRORRRRRRRRRRRORRORRRROORRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRORORRRRORORRRRORRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRORRRRORRROORORROORRRORRORRRROROORRRRRRORORROROORORRORRRRRRORRORRRRRORRRROORRORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRROORRRRORROROOORRRRRRRRRORRRRORRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRROORRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRORRRRRRRRORRRRRRORORORRORRORRRRRRROORRORRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRORRORRRRRRRRRORRRRRRORRROORRRRRRRRRRRRRRRRORORRRRRRORRRRRORRRRRRRORRRORRORORRRRROORRRORRORRRRRRRRRORRORROOOORRRRRRRRRRRRORRRRRRRRROROORRORRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRROORRRRRORRRRORRRRRRROORRRRRRRRRRRRRORRORRRRRORRORRRRRORRRRORRRORRRRRRRRORRRRRRRROORRORORRORROOORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORROORRRORRRRRRRORORRRRRORRRRRRROORRRRRRRRRRORRORRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRORRRORRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRROORRRRRRRRRRRORORRORRORORRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRORRRORRRRRRRORRRRRRRRRORORRRRRRRRRRRRRROORRRRRRORRORRRRRRRRRRRRRRRRRRRRORORORORORRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRORRORRORRRORORRRORRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRROORRRORRRRRRRRRORRRORRRRORRRORRRRRRRRRRRRROORRROORRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROROROORRRRRRRORRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORORRRRORRORRORRRRORRRORRRRRRORRRRRRRRRORRRRRRORRORRRROOORRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORORRRRRRRRRRRORORORRRRRRRORRRORRRRRRRRRRRRROORORRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRROORRRRRRRRRRORRORRRORRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRORRRRRRRORRRRRROROORRORRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRORRRRRRRORRORRRORRRORRRORRRRRRROORORRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRRORRRORRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRROROROORRRRRRRRRRRRRRRRORRRRRRRRROORRORRRRRRORRRRRRRRRRRRORORRORROORORRROOROOOORRRORRORRRRRORRRORRRRORRRRRRRRRORRRRRRRORRRORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRORRRRORORRRORRRROORRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRORRRRROORRRRRRRORRORRRRRRRRRROORRRRRRRRRRRRRRORORRORRRORORRRRRRRRRRRRRRRRRRRRRRRRROROOOORRRRORRRRRRORRRRRORRRRRRORORRRRRRRORORRRRRORRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRORRRRORRRRRORRRRRRORRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRORRORRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRORRRRRRORORRRRRRRRORROORORRRRRRRRRRRRORRORRRRRRRORRRRRORRRRRORRRRRRRRRRORORRRRRRROORRRORRRRRORRRRRRRRRRORRRORRRRRRRRORRRRORRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRROORORRRRRRRRORRORRRRRRRRRRRORORRRRRRRROOORRRRRRRRRRRRRRRRORRRRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRRROOORRRRRRORRRRRRRORORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRORRRRRORRRRORRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRORRRRRRRORRORRORRRRRRORRRRRORRORORRORRRRRRROROORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROROOORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRORROORRRORRRORRRRRRRRRRORRRRRRORRRRRRRORORRORRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRORORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRORRORRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRORRRRROORRRRORROORRRRRORRROORRRRRRRRRRRRRRRRRRRRORRRORRRROROORORRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRORRRRORRRRRRORRRRRRRORORRRORRRRRRORRRRRROOOORRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRROORORORRRRRRRORRRRRRRRRRRORORRRRRRRRRRRROORRRRRRRORRRRRORRRRRRRRRRRROOORRRRRRRROOOORRRORRRRRORRRORRRRRRRRRRRRRRORRRRORRRORORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRORRRORRRRRRRRROORORRRORRRRRORRRRORRORRRRORRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRROORRRRRRRRRRRRRRRRRRORRRORRORORRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRORRROORRRRRRRRRRRORRRRRRRORRORRRRRRRRRORRROOORRRRRRRRRRRRRRRROORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORROORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRORRRRRORORRRORRRRRRRRRRRORRRRRORRROOORROROORRRRROORRORROORRORORORRORRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRORRROORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRORRRRORORRRRORRRRRRORRRRRRRRRRRRROORRRRRORRRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRORRROORRRORRRRORRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRORRRORRRORRORRORRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRORROORRORRRORRRRORRRRRRRRRRROROORRORRRRRRRRRRRRRORRRORORRRRRORRRRRORRRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRORRRRRORRRRROOORRRRRROORRRORRRRRRRRRORORRRORRRRRRRRROROORRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRROROORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRORRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRORORRRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORORRRROORRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRORRRRRRRRRROORRRORRRRRORRRORRRRRRRRRRRRRRRRRORRRORRRRROROORRRRRRORRRRORRRRRRRRORRRRRRRORORRRRRRROORRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRORRRRRRRROORRRORRROOORRRORRORRRRRRRRRRRRRRRRRRORRRRRORRORRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRORRROORRRRRORRORRRORRROORRRRRORRRRORRRRRRRRRROORRORORRRRRRRRORRRORRRRRRRRORRORRORORRRRRRRRRRORRORORORRRORORRRRRRRRORRRRORRRROORRORRRRRRRRRORRRROORRRRRROOOROOORRRRRRRRRRRRRRRRRRRORRRORROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORORRRORRRRRRRORRORROORROORRROORROOROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORORRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRROORRRRRRROORRROORRRRROROORRRRRRRORRORRRRRRRRRRRRRRRRORRORORRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRORRRRRRORRORRORORRRRORRRRORORRRRRRRRRORRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORRORRRRORRRRRORRRRRRRORRRROORRORRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRORRRROORRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRORRROORRORORRRRRRRRRRRRORORORRRRORRRRRROROORRRRRRORRORRRRRRORRRRORRRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRRRRRRORRRRRORRRRROOOORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRORRRRRRRRRRRRORORRORRRRRORRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRROROOOORRRORRRRORRRRRRRRRORRRRRORRRRRRORRORRRRRRRORRROROORRRORRRRRRROORROORRRRRORRRORRORORRRRRRORRRRRORRRRRRRORRRRRORRRRRORRROORRRORRRRRRORRRRRORROORRRRRRRRRRRRRRRRRRRORRRRRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRORORRRRROORRRORRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORORORRROOORORRRORRORRRORRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRORORRRRRRRRRRROORORRRORRRRRRRRRRRRRRRRRORRRORRRRRROORRROROORRRROORRRRRORRRORRRRRRORRORRRRRRORRORRRRRRRRRRRRRROROORRORRRRRROROORRORRORRRRRORROORRORRRRRRORRRRORRRRRRRRRRRORORRRRRRRRRRRRRORROOORRRRRRRRROORRRRRRRORRRRRRROOROORRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRORORRRORROORRRRORRRORRORORRRRRRRRORRRRRRRRRORROORRRRORRRRRORRRRRRRRRRRRRRRRRORRRORRORRRRROROOORORRRRORRRRRORRRRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOORORORRRRRRROORRORRRRRRRRORRRRORRORRRORRRRRRRRRRRORRRRRRRROOROORRRRRRRRRRRROORRORRORRRRRRROORORRRRROORRRRRRRRRROORRRORRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORORRRRROORRRRRROORRORRRRRORORROORRRRRRRRRRRRRRRORRORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRORRRORROORORRRRRORRRRRRORRORORRRRORRRRRRRRORRORRRRRRRRRORRRRRORRRRORRRORRRRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRORRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRORORRORRRRRRRRRRRRRRRRRRRRRRORRRROROORRRRRRORRRRRORRRRORRRRRORRRRRRRRRRRORRRRORRRORRRORRRRORORRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRORRRRORRRORRRRORRRRRRRRRORRRRRRORORORRRRRORORRRRRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRROROROORRRRRRRRRRRRORRROROORRRRRRRRORRRRORRRRRRRRRRORRORORORRRRRRRRRRORRRORRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRROORRRRROORRRRRRRRRRRORRRRRRRRRRRROORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRROORRRRRRORRORRRORRRRRRORRROORRRRRRRRRRRRRROOOROORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRORRRRRORRRORRRRRRRORRRRRORRRRRORRRRRROORRRROOORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRROORRRORRORRRRRRORRRRRORRRORRROROORRORRRORRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRORRRRRORRORROORROOOOORRRRRRRRRRRROORRRORRRRRRRRORRORRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRORRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRORRORRORORRRRORROORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORORROORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRRROORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORROOROORRRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRORRRORRRORRRRRORORRRRRRRRRRRRRRRRRRRRRROROORROORRRRORRRORRORORRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRROORRRORRRRRRROOORRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRROORORRORRRORORRRRRRRORRRRRORRRRRRRORRRRRRRROORRRRROORROOOORORORRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRRORRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRORRRRRORRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROOORRRRRRRORRRRRORORORRRRRRROORORRRRRRRORRORRORRRRROORRRRORRRORRRRRRRORRRRORRRRRRRORRRRRROOROROORRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRORRRORORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRRRRRRRROROORRRRRRRORORROORORRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRORORRRRORRRRRROORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORORRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORORRRRRRRRRRRRORRRRRRRRRRRRORRORRORRRRRRRRORRRRRRRRRRRRORRORRRRRRORRRRRORRRORRRRRRORRORRRORRRRRRRRRORRRRRORRRRRORORRRRRRRROROORRRORRRRRRRRORORRRRRRRRRRORRRRRRRRROORRRRROROORRRRRORRRORRORRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRROOORRRRRRRRRRORRRRRRORORRRROORORROROOROOORRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRROOOORORRRRORRRRRORORRROORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORORRORRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRROORRRORRRRRRRRRRORRRRRRRRORRRORRROORRRRRRORROORRRORRRORORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRORRRRRRRROORRORRRRRRRRRORRRRORRRRRRRRORRRRRORRRRROORRRRORRRRRRRRRRRORRRORRRROOORRRRORRORRRRROORRRRORRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRROORRRRRRRRORRRRRRRRRRRORRRORRORRORORORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORRORORRRORRRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRORRRRORORRRRRRORRORROORRORRRRRRRORRRRRORRRRRRORRRRRRRORRRORRRRORRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRROORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRROORORRRRRORRRRRRRRORRRORRRROORRORORRRRRORRORRRRRORRRRRORORRORRRRRORRRRRRORRRRRRRRRRRRRRRRRROORRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRORORRRRRORORRRRRORRRORRRRRRRRROOOORORRRRRRRRORRORRRRRORRRROORRORRRRORRRRRRRRRRRRRRRRRRORRORRRRROORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRORRORRRRRRRORRRRRRROOOROROORRRRRRORORRORRRROORRRRORRRRORRRORRRRRRRROORRRRRORRRRRRRRRRRRRRRORORRRORRRRRORRRROORRRRRRORRRRROORRRRRRRRORRRRRORRRRRRRRROORRORRRRORRRRRRRRORRRRRRRRRRRRRRRRORORRORRRORORRRRRRRRRORORRRORRORROORRRROROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROROOORRRRRRRRRRRORRORRRRRRRRRRORRORROOORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRRRRRORORRRRORORRRRRRRRORRRRORORRRRORRRRRRRORRORRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRRRRROORRRRORRRORRRRORRRRRRRRRRRRRORORORRRORRRRORRRRRRORRRRRORORRRRRRORRRRRORRORRRRRRRRRRORRRRORRRORRRRRRORRRRRRRORRRORORRRRRRRORRRRRRRRROORRRRRRRORRRRORRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORORRORRRROORRORRRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRORRRRRORORRRRRRRRRRRRORRRRRRRRORRRRORROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRORRRRRRORRROROOORRORRRRORRRRORORRRRRRRRRORRORRRRORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRORRRRRRRRRRROOORRRRRRRRRORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRORRRRRRRRRRRRRRRORRRORORRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRORRRORORRROOORRRRRRRORRRRRRROOORRRRRRRRRRRORRRRRRRORRRRORRRRRORRRROORRRORRRRROORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRROORROOORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORROORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRORRRRRORRORRRORRORORRRRROOORRRRRROOORRRRRRRRRRRRRRRRRRORORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRORRRRORRRRRRRRORRRRROORORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRORRORRRRRRRRRRRORRRRRRORRRORORRRRRRRROORRRRRRRRROORRRRRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRORRRRRRROORRRRRORRORRRRRORRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORROROORRRORRRROORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRORRORRRRRRRRRRORRRRRRORROORRRRRRRORRRRRRRRRRRORRRRRRORRORRORRRORRRRORRRROROOORRRRORRRRRORORRRRORRORROORORRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRRRRRRORRRRRRRORROORRROORRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRORORORROORORRRRORRRRORORRRRRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRORORRRRRRRORRRROORRROROORRRROORORORRRORRRROROORRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORRROORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRROORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRROORORORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRORRRRRORRRRRRRRORRRRRRRRROROOORRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROOORRRORRRRRRROORRRRRRRRORRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRROOORORRRORRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRORRRRROOORRRRRRRRRRRRRORRRRRROORRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRORRROOORRRRRORRRRRRRRRORRRRRRRRRRRRRRORROORORRRRRRRRRRRRRORRRRROORRRRORRORRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRORRORRRORRRORRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRORRORRRRRRRRRORORRROOORRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRORRRRORRRRRORORROORRRORRRORRRRRRRRRRROOORORRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRORRRRROORRORRRRRRRORRRRRRORRRRORRRRRRRRRORRROORRRRRRORRRRRRRRORRORRORRRRORORRRRORORRRRORRORRORORRORRRRRORRRORRORRRRORRRRRRRORORRRRRORRORRRRRRRRRRORRRRORRRRORORRRRRRORRRRORRRRRORRRROROORRORRRRRRRRRRRORRRRRRRRRRRRRRRROORORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRROROORRRRRORRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORRRRRORORRRORRORRRRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRORRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRORORRRORRRRRORRRRRROORRRRRRORRRRRROROORRRRRRROROORRROROORRRRRRORRORRRRRRRORRRRRRRRRRRRROORRRRRRROORRRORRORRRRRRORORRORROORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRORORRORRRRRORRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRROOORRRRRRRRRRORRROORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORROORRRRRORRORRRRORRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRORRRRRRORRRRORRRRRORORRRRORRRRRRRRRRRRRRORRRRROORORRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRORRRRRORRROORRRRRRRORROORROROORRRRRRRRRRORRRRRROORORRRRRORRRRRRRRRRRRRRORRRORROROORRRORRRRRRRRROORRORORORRORORORRRRORRRRRRRRRRRRRRRRRRORRORRRORORROOORRRRORRRRRRRRORRORORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRORROORRRORRRORRRRRRRRROOORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROOROORRRRRRRRRRRORRRRRORRRRRRORRRRRRRRORRRRORRRRORRRRRORRRORRRRORORRRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRORRORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRORRROORRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRRORORRRRRRORRRROORRRRROORRRRRRROORORRRRORRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRORRRRRORRRRRRRORRORRRORRRRRRRRRRRRRRORRRORRORRRRRRRRRORRROROORRRRRRROORRRRRRORRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRORRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRORRRRRRRORRORRRRRORRRRRRRRRRRRRORRRRRORRRRRORRRROORRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRORROORRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRORRRRRROORRRORRORRRRRORRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRROORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRORORRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRORRRRRORRRRORRRRORORRRRRORORRORRRRRRRRRRORRRRORRRRROROORRRRRRORRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRORORRRRRORORORRRORRRRRRRRORRRRRRRRRRORRORROORRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRRROORRORRORRROOROORRRRRRROORRRRRORRRRRORRRRRRRRRRRORRRROORORRRRRRRRORRRRRORRRRRRRRRORRRRRRRRORORRRORRRRRRRRRRRRRORRRRRORRRRRORRRRRRORORRRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRROOORRRRRRORRRRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRROROORRRORRRRRRROORRORRRRORORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRRORRRRORRRRRRRROROORRRRRRRRRROORRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRORRRRORRRRRORRRRRRRORORRRRRRRORORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRORRRRRRRORRRRRRORORORRRRRRRRRRRROOORRORRORRRRRRRRRRORRRRRRRRRRRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOROORRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRORRRRORRRRORRRRRORRRORORRRRRRORRRRRRRRRRORRORRRRRRRROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRROORORRRRRRORRRORRRORRRRORRRRRRRRRRRROOROOORRRRRRRRORRRRRRRORRRRRRROROROORRORRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRROORRORORORRROORRRORORRRORRRORRRROROORRRRRRRRRORRRRRRRRRRRROORRRRRORORORRRRRRORRRORRRRRRRRORRRRORRORRORRRRRRRRRRRRRORRRRRRORRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRORRRORRORRORRRRRRORRRRRRRRRRORROORRRRORRORRRRRRRORRRRRRRORRORRRRROOORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORORRRRORORRRRRRRRRRORRRRRRORRRRRRORORORRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRORORORRRRRRORORRRRORRORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRORORRRRRRRRORRORRRRORRRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRRORORRROORORRRRRORRORRRRRRRRRRRRRRRORRORORRORRRRRRRROOORRRORRRRRRRORRRRRRRORRRRRRRRRORRRRORRORRRRRORRRRRORRRRRRROORORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRROORRRRRRRRRRRRRRRROORRRRRRRRORRRROORRRRRRRRRRRROORRORRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORORRRRRRRRORRRORRRRRRRRRROORRRRRORRRRRORRORRRRRROORRRRRRRORRORRRRRORRORRRRORRRRRRORORRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRORRRORRRRRRRRRROROORRRRRRRRRRRORRRRRRRRRROORRROOORRRRRROOORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORORRRRRRORRRORRRRRRRRRRRORRRORRRRRORRRRRRRRORRRRROORRORRROORRRRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRRRORRORRRRORRRRORORRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRROROORORORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRORORRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRORRRRRRRRORRRORRRORROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRORRORRRRRORORORRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRORORRORRRRRRRRORRRRRRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRROORRRRRRORRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRORRRRRRRRRORORRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRROORRRORORRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRORRRRRRRRRRORRRORORRORRRRRROORRRRRORORRRRRRRRRRRRRORORRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORORRRRRORORRRRRRRRRORRRRRROORRRORRRRRORRRRRORRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRROROROORORORORRRRRRRRRRRRORRRRRRRRRORRRRORRORRRORRRORRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROROROORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRROORRRRRRRRRORRRRRRRRORRRORORRRRRRRRORRRRRRRRORRRORROORRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRORRRRRRRRRRORRRRRROORRRRRRORRRRRRRRRORORRRRRRRRRORRRORORRRRRORORRRORRORRORORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRORRORRRRRRRRRRRRRORRORRRROORRRRORORRRRRRORRRRRRRORRRRRORRRORRRRRRRRRRRRRROORORRRRRRRRRORRRRROORORRRRRRRRRRRORORRRRRORRROROOORRORRRORRRRRRRRRRORORRRRRRRORRRRRRRORRRRRRRORORRRRRRRRRRORRRRRRRRRORRORORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRORRRRRORRROORORRRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRORRORRORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRORRRRRRRRRRROORRRRORRRRRRRRRRRRROORRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRORRRRRRORRRRRRRRRRRRRORRRRORORRRRROORRORRRORRRRRRRRORRRORRORRORRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRORRORORRRRRRRORRROORRRRORRRRRRRORRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRRORRORRORRORRRRRROORRRORRRRRRRRRRRRRORRORRRRRRRORORRRRRORRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRROOORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRROORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRORRRRORRRORRRRRRRRRRORRRRRRRRRRORORROORRRRORRRORRRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRRRRRRRRRRRORRRROORRRRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRORROOOORRRRRRRRORRRRRRORRRRRRRRRORRORORORRRRRRRRRRRRRRRORRRORRORRRRROORRRORRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRROORRRRRRRORRORRRORRRRRRRRORRRRRRRRRRRRORROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRORORRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORORRRRORRORRRRORRRRRRRRRRRRRORRRORRRRRRORRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRORRRRRRRORRROORRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRORRRRRRRRRRRORORORRRRRRRRRORORORROORRRRRRRORRORRRRRRRRRRRRRRRORRORRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRORRRRRRRRRRORRRORORRORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRORRRORRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRORRRRORRRRORRORRRRORRRORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRROORORRRRRROROORRRRRRORRRORRROROOOORRORRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRROORORRRRRRRRRRORRROORRRROORRRRRRRORORRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRROROORRRRRORRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRRRRRRRORRRORRRRORRRRRRRRRRRORRRRRRRRORRRRORRRRRRORRRRRRRORRRRORRROORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRROORRRORRRRORORRORRRRRRRRRORRRRRRRRRORRORRRRRRRORRRRORRRRROROORRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRORRRRRROOORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRORRRORRRRORRRRRRRRRRORRRORRRROORRRRRRRROORRRRORRRRRORRRRRRRORRRORRRRRRRORRROROORRORORRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRORORORRRRRRRRRRRRRRRRORRRORORORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRORRRORRRRRRORROORRRORRRRRRRRRRRRRRRRORRRROOOROROORRRRRRRROORRRRRRRRRROORORRORRORRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRRORORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRORRORRRRORRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRORRORRRRRRRORRRRORORRRRORRRRRORRRRRRRRORRRRRRRRRRRORRRRRRORRORRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRROOORRRRRRRRRRRORRRRRRRRRRRRRROORORRRORRRORRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRORRRRORRRRRRRRRRRRRRROORRRRRRRRRORRRROORORORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRORORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRROOROORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRORRORRRRRRRRRORRRRRRRRRRRRRORRRRRROROORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORORRRRORRRRRRRORRRRRRRRROOOROORROORRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRORRRRRORRORRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRRRORRRRORORRRRRRRRRRRRORRORRRRRRORRRORRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRROORROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORORRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRORRRRORORRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRORRRROORRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRORORRORRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROROOORRRRRRRRORRRORRORRORRRRRORRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRRRRRRRORROORRRRRRRRORRORRRRRRRRRRRROORRORRRORRROORRRRRRRRRORRRRRRRRORRRRRRROORRRORROOORRRORORORRRRRRRRORORRORRRORRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRORRRORRORRRRRRRRORRORRRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRROORRRRORORRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRORORRRRRRORRRORRRRROORORRRRROORRORRRRROORRRRORRRRRRRORRRRRORRRORRRRRRRRRRORRRRRRRRORRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORORRRRORORRRRRRORORRRROORRRRRRRRRORRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRORRRRRRRRROORRORRRRRRRRORRRORORRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRORRRORRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRORORRRRRORORRRRRRRRRORRRRROORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRORRRRORRROORRRRRRRORRROOROORRRRRORORRRRROOORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRORRRRROORRRRRORRRRROOORRRRRRRRRRRRRRORRRRORRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRORORRRRRRRRORRRRRRRORRRRRRRRORRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRORRROORRRRORRRRORRRRRRRORRRRRORRRRRRRORRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRROROORRRORRRROORRRRORRRRORRRRRRROORRROORRORRRRRRRRRORRRRRORRROORRRRRRRRRRROROORRRRRRRRRRRORRORRRRRRRRORRRORRORRRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRORRROORRRRRRORRRRRRRRRRRORRRROORRRRROOORRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRROORRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRROORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRROORRRRORRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRORRRRRRRRRRRORRRRORRRRORRRRORORRRORRRORORRRRRRRRRORRRROOORORRRRRORORORRORRORRRRORRRRRRRRORORRRRRRRRORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRORRRRRRRRRRRORORORRRRRRRRRRORRRORRRRRRRRORRROROORRRRROORRRRORRORRORRRRRRRRROORRRRRORRRRRRORORRRRRRRRORRRRORRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRORRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRROORRORRRRRORRRRRRORRRRRRRRRRRRROOOROORRRRORRORORRRORORRRRRRRRRRRRORORORRRORRRRRRRRRRRRRRRRORORRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRROORRRRROROORRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRROOORRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORROORRORORRRRRROORORRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORORORRRRRRORRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRROROORRORRRRRRRRRRORRORORRROORRRRRRRRRRRRRRRRRORRRROROOOOROOROORRROORRRRRRORORRRRORORRORRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRRRORRRORRRRRORRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORROORORRORRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRORRRRORRRRROOORRRRRRRRRRRRORRRORORRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRORRORRRRRRORRRRRRRRORRRORRRRRRRRRROORRRRRRRORRRRRORRRRRORRRRRRRORROORRRRRRRRRRRRORRRRORRORRRRRRRRRORRRRRRROOORRRRRRRRRRRRORRRORRRRRRROOORRRRRORRRRRRRORRRORRORRRRRRRRRRRRRRRRRRROOOORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRORRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRROORRRRORRRRRRRRROORRRRROORRRORRRRRRRRRRRROORORRRRRRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRORRORRRRRROORRRORRRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRORRRRRRRRORRRRRORRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORROORRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRORRORRORRRRRRRRRRRRORRRRRRRRRRRORORRORORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRORRRRORRRORRRRORRRRORRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRORRRRORRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROROOORRORORRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORORORRRORRRORRRORRRORRROROROORRRRRRRRRRORRORRRORRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROOORORRRRRORORRORORRRRRRORRRRRORRRRRRRROORRORORRRRRRRRORRRRORRRORRRRRRRROORRRRRRRRRRRRRRORRRORRRORRROORORRORRRRRRORRRRRRORRRORRORRRRRRORRRROORROORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRROORRRRRRRRRRRRRORRRRORRRRRRRRRORRRRORRRRRROOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOORRRRRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRROOORRROOORRRRRRRRRRRROOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRROOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRRRRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOORRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRROOORRRRRROOOOOORRROOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOORRROOORRROOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRRRRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRRRRRRRROOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOORRRRRROOORRRRRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRRRRROOOOOORRRRRRRRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRRRRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRRRRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOORRRRRRRRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOORRRRRRRRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOOOOOOOORRRRRRRRRRRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOORRRRRROOOOOORRRRRROOOOOORRROOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRRRRROOORRRRRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOORRROOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOOOOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRRRRRRRRRRROOOOOORRROOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRRRRRRRRRRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOORRROOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOORRROOOOOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRRRRROOORRROOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOORRRRRRRRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRRRRRRRRRRROOOOOORRROOORRROOORRRRRRRRRRRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRROOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRRRRRRRRRRROOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOORRROOOOOOOOORRROOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOORRROOORRROOOOOORRROOORRRRRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOORRRRRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOORRRRRROOORRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOORRROOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRRRRROOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOORRRRRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRRRRROOOOOORRROOORRRRRROOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOORRROOORRROOORRROOOOOORRRRRROOOOOORRROOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRRRRROOOOOOOOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOORRROOORRROOORRROOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOOOOOOOORRROOOOOORRRRRROOORRROOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOORRROOOOOORRRRRRRRROOORRROOORRRRRROOOOOOOOORRRRRROOOOOOOOORRROOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOOOOORRRRRRRRROOORRROOOOOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRROOORRRRRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOORRROOOOOORRROOOOOORRRRRROOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOOOOORRROOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRRRRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRRRRRRRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOORRROOORRROOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOORRRRRROOORRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOORRRRRROOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOORRROOOOOORRRRRRRRROOOOOORRROOOOOOOOORRROOORRROOOOOORRRRRRRRRRRRRRRRRROOOOOORRROOORRROOORRROOORRRRRROOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOORRROOORRROOORRROOOOOOOOORRRRRRRRROOORRROOORRROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOORRROOOOOOOOORRROOORRROOORRROOORRROOORRROOOOOOOOOOOOOOORRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRROOOOOOOOORRROOOOOOOOOOOOOOOOOORRRRRRRRROOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOORRROOORRROOORRROOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOORRROOORRROOOOOOOOOOOOOOOOOORRROOORRRRRROOOOOORRROOOOOOOOOOOOOOORRRRRROOOOOOOOOOOORRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOOOOORRRRRROOORRROOORRRRRROOOOOOOOOOOORRROOOOOORRRRRROOOOOOOOORRRRRRRRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOORRROOOOOOOOORRROOOOOORRROOORRROOORRRRRRRRROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOORRROOORRROOORRROOORRROOORRROOORRRRRROOORRROOOOOORRRRRROOORRROOOOOOOOORRROOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOORRRRRROOORRRRRRRRRRRROOORRROOORRROOOOOOOOOOOOOOORRROOORRROOOOOORRRRRRRRROOOOOORRROOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOOOOOOOORRROOOOOOOORRRRRRRRRRRRORROORRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRROORRRROORRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRORRORRRRRRROORRRRRRRRRRRORRRRRRORORRRRRORRORRRRORROORRRRRRRRRORORRRORRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRORRORRRRRRORRRORORRRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRORRRORROORRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRORRRRRRRRRRROOORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRROORRRRROORRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRRRORORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORORRRORORORRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROROORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRORROORRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRROOORRRRRRRRROOORRRORRRROORROORRRRRRRORRRRRRRRRORRRORRRRRRRRRROORRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRORROOORRRRRRROROOORRRRRRORRROORRRRRRRORRRORROORRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRROROORRORORORRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRORRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRORORRRORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRORORROORRRRRORRRRRROORRORORRRRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRORRORRRRRRRRRROORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRROORRRRRRORRRRRRRORORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRORRRRRORRRRRRRROORRORRRRRROORRRRORRORRRRRRRRRORRRORRRRRRROORORRRRORORRRRRRRORRRRRORRRRORRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRORRRRRRRRORRRORRRROOOORRRORRRRORRRRRRRORRROOORRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRORRRRORRRRRRRRORORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRORRRRRRORRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRROOORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORRRRRORRRRROORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRORORRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRROORRRORRRRRORRRORRRRRORORRRRRRRORRRRRRRRRRRORRRRRORRORRRRRORRRRRRRRRRRRRRRRRRROORRRRORROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRROORRORRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRROORRRRRRRORRRRORRRRRRRRRRRRRRRRRROORRRRRORRRRRORORRORRRRRORRRRRRRRRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRORORRRROORRRORRRRORRRRORRRRRRORROORRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRORRRROORRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORROORRORROOORRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRORRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRORRRROOROORRRRRRRRORORRORRORRORRRRRRRRRRROORRRRORRRRRRRRRORROORRRRRRORRRORRRRRRRRRORRRRORRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRORRRRRRORORRRRRROORRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORROORRORRORRRRRRRRRRRRRRRRORORRORRROORRRRRRRRRRRORORRORORRRRRRORRRRRRRORRORRROORRORRRRRRRRRRRRRORRRRRRRROORRRRRRRORORRRRRRRORRRORRRRRORRRRORRRORRRRROORRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRORRRORRRRORRRRRRRRRRRORRRORRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRORRRRRRORORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRORORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRORORORORORRRRORRRRRRRRRRRORORRRRRRRRORRORRRORRROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRORRRRRRRORRRRRRRRRORORRRRRRRRRRRRROOOORORRRORRRRRRRRRRRROOORORRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRORRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRORROOROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRROORRRRRRROORRRRRRORRRRRRORRROOORRORRRRRRRRRRRRRRRRORRRORRROORRRRRRRRRRRRRORRRRRRRRORRRRORRRRRORORRRRRORRRRORRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORRRRROORORRRRRRRROORRRRRORRRRRRRRRRRRRORRRRRRRRRORRRORRORRRORRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRORRORORRRRRRRORRRRORRRROORORRRRORRORROORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRORRRRRRRORRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRORRRRORRRRRORROORRRORRRRRRORRRRROORRORRORRRRORRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRROORORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRORRRORRRRRRORRRRORRRRRORRRRORORRRRRRRRRORORORRRRORRRRRRRROORRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRROORRRRORRORRRORORRRRRROOORRRRRRRRRRRORORORRRRRORORORORRORRORRRROORRORRRRRRORRRRRRRRRROORRRORRRRRRORRORROORRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRROOORRRORRROORRRRORRRORRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRORORRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRORORORRRRROOORRORRRRRORRORRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORRORRRRRRRRRORRRRORRORRORORORRRRRRRRRRRRRORRRRRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRORRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRORRRRRRORORRRRRRRRRORRRRRRORORRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRORRRRRRRRRRORROORRORORRORRRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRORORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRROOORORRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRORRORRRRORRRRRRRRRRRRORROORRRRRRORRRRRORRRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRORRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRORRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRRRORRRRRRORRROORRRRRORRRROORRORROORRRORORORRRRORRRORRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRROORRORRRORROOORRRRRORRRRRRRRRORRRRORORRRRORROORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORORRRORRRRRRRRRRORRRRRRRRROORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRORRRRRRRORRRRORRRORORRRRRROORORRRRORRORRORRRRRRRRORRRRRORRORRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRRRRRRORRORRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRROORRRORRORRORRRRORROOORROORRRORORRORORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRROORORORRORORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRORRRROORRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRORRRROORRORRRRRRRORRRRRRRORRRRRRRORRRRRORORRORRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRROORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRORRRRRORRRRORRRRORRRRRRRRRORORRORORRRRRRRRRRRRORRRRRRORRRORRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRORRORRORORRRRORRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRRRRORRRORORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRROOORRRRRRROORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRORRRRRRRRRRORRRRRRRORRORRORORRRRRORRROORRRRRRRRRRRRRRORRRRRRRRRRROOORORRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRROORRRRRORRRRRRORRRORRROORRORRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRORRORRRRRRRRROORORRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRORRRORRRRRRRROORRRRRRROROORRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORORORRORRRRRRORRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRROORORORORRORORRRRRRRRRRORRRRRORRRRRRRRROORRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRROORRRORRRRRRRRRRROOORRRRRRRRRRORRRRRROORRORRRRORRORRRRROORRRRRRRRRRRORRRRRRRRRRRRORORRRRORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORROORRRRRRRORRRRORRRRRRRRRRRRORORRORRRORRORRRORRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRROROORRRRRORORRROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRRORRRRRRRORRRRRRORRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRRRRROORORRRORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRORORRORRRRRRRRRORORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRRRORORRRORRRRRRRRRRROORRROORRORRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRROORRRRRROORORRRRRRORRORRRORRRRRRRORRRORORRORRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRROORRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRROORORORROORRRRORRRORRRRRRRORRRRRRRRRRORRORRORRRRORORRRRORRRRORRRRORORRRRRRRRRRORRORRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRROOORRRRORRRRRROORRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRORRROROORRRROORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRROORRRRRRRORRRRRRRRRRORORRRRORRRRORRRRORRRRRRRRORRRRROORRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRROORRRRRRRORORORRRRRRRRRORORRROORRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRROOORRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRORRRRRORRRRRRRRRRRRRORRRRRORRRRRORRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRROOORRRRRRRORRRRRRORRRORRRRRRRRRRRRROORRRRRRRRRRORORRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRORRRORORRRRRRRRRRRORORRORRRROORROORORRORRRRRRROORRRRRRRRRRORRRRRRRRORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRORRRRORRORRRRORRRORORRRRRRRRRRRRRRRRRORRRROORRRRRRORRRRRRRRRRORRRRORRRRRRRRRORORRORORRORORRRRROROORRRRRRRRORROORRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRORORRORRRRORRRRRRRRROORRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRORRRRRRRRRROORORRRRRRRORRRROORROORRRRRRROOROORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRORORRRRORRRORRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRROORRRRRORORRRRRRRROROROORRRORRRRRORRRRRORRRORRRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRORROORORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORORRRRORORRRRRRRRRRRRRORORRRORRRRRRORRRRRRRRRRRRORRORRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRORRRRRRORRRRRRRRRORORRRRRRRORRRRRRRRRRROORRRROROROORRRORRORRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRROORRRRORRRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRORRRRRRROOORRRRRORRRORRRRRRRRRRRRRORRORRRRROOOROOORRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRORRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRROROORRRRORRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRROORRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRORRRORRRORRRRROORRORRRRRORRRRRORORRORORRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRORRRRRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRRROORRRORRRRORRRORRRRRRRRORROORRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRROOOORRRRORORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRORROROORRRRRRORORORRRRRRRRORRRRRRORORRRRRRORRRORRRORRROROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRORRRRRRRRRRRORRRORORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORORRRRRRORRORRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRORRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORORRRRRORRRORRORORRRRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRORRORORRRRRRROORRRRRRRROORRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRROORRRRRRROOORRRORRRORRRORRRRRRORRRRORRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRORRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRROOORRRRRRRRROORORRRRROORRRRRRROORRRORRORRRRORRRRRRRORRRRRRORRRORRRRRRRORRRRRRORRRORRORORRRRORRRRRROORORRRRRRRRORROORRRRORRORRORROORRORRRRRORRORRRRRRRRRRRRORRORRORRRORORORRRRRRRRORRRORRRRRRRRRRRROORORRRRROORRRRORRRROORRRRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRORRRRRORRRROOORROORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRORRRRRRRRRORRRRORRRRRRRROOOORRRRRRRRRORRRORRRORRRRORRRRRRRRRORRRRRRRORRRRRRORRRRROORRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRORRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRORRRRORORORRRRRRRRORRRRRRORRRRORRRRORRROORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORORRRRRRORRRRRORRRORRRRORRRROORRRRRORRRRRRRRRRRRRRROORRRRRORRORRRRRORRRORRRRRORRRRRRORORRRRRRRRRRRRORRRRRORROORRORRRRRRRRORRRORRROROROROORRRRRORRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRORRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRORRORRRRRRRRRORRORRRRRORRROORRRRRRRRRRORRRORRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRROORRRORRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRORRRRRRRRRRRRORRORRORORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRROORRRRRRORORRROORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRORRRRRRRRRRRRRRORRORORRORRRORORRRRRRRRRORRROORORRORRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRORRORRORRRRRRORRRRRORRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRROORRRRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRORRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORORRRRRRORORRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRORROROROORRRRRRRORRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORROORRRRRRRRRRRRRORRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRRORRRRRRRORROOORRRRRRRRRRRRRORORRRRRRRRORRRRRRRROORRRRROORRRRRRORRORRRRRRORRRRRRRRRORRRRORORRRORRORRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRROOORRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORORRORRRRRORRRRRRRROORRRRRRORRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRRORRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRORRRRRORRRORRRRRRRRRRRRRRORORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORORRRRRORRRRORRRRRRRRRORRRRRRRRRRRRROROORRRRRROORRORRORRRRRRRRRRRRRORRORRRRRORRRRORRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRROROORORRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORRORRRRRRORRRORRORRRRRRRRORRRRRRRRRRRORROROORRRRRRRRRORRRRRRRRRRROROOORRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRORORRRORORRRRRRRRRORRRRRORRRORROORORRRRRORRRRRRRRRRORORRRRRRRRORRORRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRROORRROOORRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRORRRORRRRRORRROORRROOORRRRORRRRORRRRRRRRRRRRRRRRRRRRROORORRORRRRRORRRRRRRROORRRRRORRRRRRORRRRRORRRRRRRRRORRORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRROOORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRORRRRRRRRRORROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRORORRRRORRORRRORRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRROOOOORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRORORRORORROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRORRRRRRORRRRRRRRRRRRORRRRORRRRORRROORRORRRRRRORRROORRRRRRRRORRRRRRRRRRRRORRRRRRRORRRORORORRRORRRRRORRRORRRRROORRRORRORRORRRRORRRRRRRRORRORRORRRRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRORORRRRRORRRRRORRORRRRRRORRRRRRRRORRRORRRRORRORRRRRRORORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRORRRORORRRRRRRRRROORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRROORORRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRROORRRRRORRRRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRROOOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRORORRORRRRROORRRRRRRRORRRRRORRRRRRORRRRORRRROORRRORRRRRRRRROORRRRRRORRORRRRRORRRORRRRRRRRRRORRRRORROORRRRRRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRORRRRRRORORRORRRRRRROORORRRRRRRRRRORORRRRRORRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRROORRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRORRRORRRRROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRORRRORORRRRRROOORRRORRRRORRRRRORRRRRRRRRRRROORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRRRRORRORRRRRRRROORRORRRRRORRRRRORRRORRRRRORORRORRRORRRRRRORRRRRRRRRRRRRORROORORORORRRRRROOORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRORORRRRRRRORRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRORROORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRRRRRRRRRRRROORRROROORRRRRORORRRORORRRRRRRRRRRRRRRRRRORORRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRORORRRRRRRRORRRRRRRRRRRRORRROROORRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRROORRRORRRORRORROOORRRRRRRRRRRRRRRRRRORRRRRORROROOORRRRRRRORRRRORRRRRRORRRRRRRROORRRRORRORRRRRRRRRORRRRORORRORRORRRRRRORRRRRRROORRRRRRRRORROORRRORRRRRROORRRRRORRRRRRRORRRRRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRORRROORRRRRORRRRRRRRORRRORRRRRRRRRORRRRORRRRRRORRORRRRRRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRROORORRRRRRRRRRORRRROROORORRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRORRRRRRORRROORRRORORRRRRRRRRRRRRRRRRRRRRRRROOORORRROOORRRRRRRORRRRRRRRRORRRRRROORRRORRRRRROORRRRRRORRORORRORROORRRRRRRROORORRORRORORROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRORORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRRRRRROORRROORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRORRRRORRRORORRRORRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORORRRRRRRRRORORRRROROORRRRROORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRORRRORRRRROORRRRORRRRRORRRRRRORORRRRRORRRRRRRRRROORRRORRRRRRRRRRRORRORRRRORORORRORORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRORRRORORORORROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRORRRRRRRRRRORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRROORRRRRRRRRORRORRRRRRRRRRRRRORRRORORORRRRROORORRRRORRRRRORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRORRRRROORRRRRRRRRRRRRRRRRRRRORROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORORORRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORORRRRRRORRRRRRRRRRRRRRRRRRRRROORRRROOROORORRRRRRRRRRRRRRRROORRRORROORRORRORRRORRROOORORRRRRRRRRRRRRRRORRRRRRORORRRORRRRRRRRRORORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRORORRRORRRRRRRORRRRORRRORROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRORRRRRRROROOORRRORROORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRORRRRORRRROORRORORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRROORRRRRORORRRRRRRRRRRRORROORRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRORRORRRRRORORRRRRRRROOOORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRORORORRORRRRRRRORRRROORRRROORRRRORORRRRROOORRORRROROROOOROORRROORRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRROORRRRRRRORRRRORRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRORRORRRRRRORRRRRRRORORRRROORRRRRRORRRRORRORRROROORRRRRRRROORRRRRRRORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRORRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRORRRRRRRRRRRROORRRRRRRRRRORRRORRROORRRRRRRRRROORRORRROORRRRRRRORRORRRRRRRRRRRRRRRRORRORORORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRROORRRRORORRRRRRRRRRRRRRRRROROROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRROORRORRRRRRRRRORRORORRRRRRORRRRRRROOORRRORORRRRRRORORRRRRRRORRRRRRRRORRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRROORORRRRRRRRRORORRRRRRRORRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRROORRRRROORRRRRRRRRRRRRRRRROORRORRRORRRRRORORRRORRRRRRRORRORRRRRRRRRRRRRORRRRORRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRRORRORRRRRRORRRRORRRRRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRRORORRRRRRRRORRRRRRRRORRRORRRRRRRORRRORORRRORORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORORRROROROORRORRRRRRRRRRRORRRRRRRRRRROOROORRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRORORRORORRRRRRRRRROORRORRROORRRRRRORRRRRRRRRORRRORRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRROORORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORORRRRRORORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRORORRRRRORRRRRORORRRRRRORRRRRRRRRRRORRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROOORRRORRRRRRRRRRORRRRRORRRRRROROROORORRRORRORRRRRRORRRORRRRROORRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROROOORORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRORRRRRRRRRRRRRRORROROORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRORORRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRORROROORRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRORRORRRRRORRRRORORRRORROORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRORORRRRRROORORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRROORRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRRRRRORRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORORRRRRRORRRROOORRORROORRRRORORRORRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRROROOOORORRRROORRRRRORRRRRRRORRRRRRRRRRRROROORRRRRRRRRRRRORRORRRRRRRRORRORRRRORRORORRRROORRRRRRRROORRRORRRRRRRRRRRORORRRRRRORORRRORRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORORRRRRORRRRRRRRORRRRORRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRORRORRRRRORRRORRRRRRRRRROOORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRORORRRRRRRRRORRRRRROORRRRRRROORORRRRRRRORRORRRRORRRRRRORRRRRORRRRRRRRRRRROOORRORRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORORRORRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRROORRORRRORORRORRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRROORRROOROROORRORRRRRRRRRRRORRRRORORRRRRRRRRRRRRORRRRRORORORRRRRORROORRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORROORRRRRRRRRRRORRRRRRRRRRORRRORRORRRROORRRRRRRRORRRORORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRROORORRRRRRRRRORRROORRRRRRRORRRORRRRORRRRRRRRRRORRRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRORRORROORORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRROORRRRRRORORRRORORORRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRORRRRRRRORRORRROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRORORRRORORRRORRRRRRRRORRRRRRRRRRRRRRRRRROROORRORROORRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRORRRRORRRRROOOORRRRRORORRRRRRRRRRORRRRORRRRRROORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRORRRRRRRRORRROORRRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORORRRRRORRORRORRRRRORRRRORRRORRRRORORRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRROROOORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRRRORRORRRRORRRRRRRRORORRRRORROROORRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRORRORORRRORRRRRRRORRRORRRRRRORRORRORRRRORORRRRORRRRRRRRRRRRRRRORORRRORRRRRROORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORROORRORRRRRRRRRRRRRRORRRRRRRROORRRORRRORRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRORRRRRRROORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRRRRORRRRRRRRRRORRRRRROOORRORRRORRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORROOORRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRORRRRRRRRRORRORRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRORRRRRORRRRRORRROORORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRORRRRRRRRRRRRORRORRRORRRRRRORRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRROORRRRRRRORRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRORORRRRRRRRRORRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRORRRORORRROORRRRRRORORRRRRRRRORRRRORORORRRROORRORRRRROOORRRRRRRRRRRRRRRRRRORRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRORRORORORRRRRRRRRRRRRORORRORRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRROORRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRORRRRRRRORRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRORORRRORRRRRRRRRRORRRRRRORRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRORROORRRRRRRORRRRRRRRROORRRRROORRORRRRRRORRRRRROORRRRORRRRRRRRRRRRORRRRRRRRORORRRRRRORRRORRRRRORRROROOORRRRRRORRRORRRRRRRORRORRROORORRRRRRRORRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRORRRRRRRROORRRRRRORRORRRRRRRRRORRRRORRRRRRRORRRRRRRRORRORRRORRORRRRRRRRRORRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRORROOOORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRROOORRRORORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRROROORRRRROORROORRRRRRRRRRRRROROOORRRRRORRRRRRROROROORRRRRRRRORRORRRORRRROORRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRROROORRRORRRRRRRRORORRRRORRRORORORORRORRRRRORRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRORRRORRRRRRRRORORRRRORRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRORORRRRRRORRRRRORORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRORRRROORRRRRRORRORRRRRORRORORRRRRRRRRRRRRRRRORROORRRRRROROORRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRROORRRROORRRRROOORRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRORRRRROORRORRRRRROOOORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRORRRRRORRORRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRORRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRORRORRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORRRRRORROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRORRRRRRRORORORRRORRORORORRRRORRORORRRRRORRRRORRORRRRRRRRORRRORRRRORRRRRRRRRRRRRRROORRRORRRRORORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRORORORRRRRORRRRORRORRRRORRRRROORRORORRRRRRRRRORRRRRRRRRRRRRRORROROORRRRRRRRORRORRRORRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRORORRORRRRRRRRRORROORRRRRRRRRRROOROORRORRRRORRORRRRORRORORRORROROORRRRRRRORORRRRRRROORRRRRRRRRRRRRORRRRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRRORRRRRRORRROORRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRROORRRRRRRORRORRORROORRRRRRRORRRORRRRRORRORRRRRRRRRORRRORRORRRORROORRRORRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRORRROORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRORORRRRORRRRRRRORRRROORRRRRRRRRRRRORRRROORRRRRRRORORRORRRRRRRORRRRRRRRRRORRORRRRRRRRRRORRRRRORRRORORRRRRRRRORRRRRRRORRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRORRRORORRRRORRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRORORORRRRRORRORRRRRORORRRRRRRRRROORRRRRRRRRRRRRRORRRRORORRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRROROORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRORRRRRRRORRRORORRRRRRRRRRRRRRRRRRORRRROORRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRORROORRORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRORRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRORORRORRRRRRRRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRORRRRRRRRRROORRRRRORRRRRRRRORRRRRRRRRRRRORRRRROOORRROOORORRROORRRRRRRRRRROORRRORRRRRRRORRRRRRRRORRRRROORRRORORRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRORRRORRORRRRRORORRRRRRRRRRRRRRRRRORORROOORORRRRRRRRRORRRRROORORRRRRRRRORRRORRRRRORRORRRROORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRROROORRRRRRRRRORRRORRRRRRRRORORRRRRRORRRRROORRORRORRRRRRRRRRRRRRRROORRRRORRRRORORRRRRORRRORRRRRRORRRRORORORRORORRRRRORRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORROORRRRORORRRRRRRRRRRRRORRRRRRRRROORRORRORRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRROORRRRORRRRORRRRROORRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRROORRRRORRRRRRROORRRRORRORORORRRRRRRORRRORRRRRRROORRRRRRRRORORRRROROORRRRRRRORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORORRRRRRRRRRRRRORRRORRRORRRRRRRRRORORRORRRRRRROOORRRRRRRRRRRRRROORRRRRROORRRRRRRRRORRRRORRRRRRORRRRROORRRRRORORRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRORORRRRORRRORRRRROORRRRRRRRRORORRORORRRROORRROOOOORRRRRORRRRRRRRRORRRRROORRRRRRRRRRRORRRRRRRRRORORRORRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRORRRRORRRRRRRRRRRRRORRRRORRRORRORRORRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRORRRRORRORRRRRORRRRRRRRRORRRRRRRRRROROROORRRORRORRRRORORRRRRRRRRRRRRRRRROORRRRRRRORRRRORORRROORRRORRRRRRRRROORRRRRRRRROORRRRRRORRRRRROOOOROORORRRROORRORRRRRRORRRORRRRRROORRORRRRRRRORORRRRRRRORRRRORRRRRRORORRRRRRRRRRRRRRORRORRRRRRRORRRRRORRRRRRRRRRRRRRORORRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRORRRRORRROROORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRROORORRRRORRRRRRRRRRRRRROOOORRRRRORRORRRORRRRORORORRRRRRORRRRRRRRRRORRRRRORORRORRRORRRRRRRRORRRRRRRRORRRRRRRROORRORRRRORRRRRRORRRRRRRROROORRORRRRORRRRRRRORORRRRRRRORRRRRORRRRRRRRRRORRRRRRORRRORORRRRRRRORRRRRROORRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRORORRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRORRRORRRRRRRRRRRRRORRORROORRRRRRORRRORORRROORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRORRRROORRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRORRRRRORRRRORRORRRRORRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRORRROORRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRORRORRROORRRRRRRRORRRRRORRRRORRRRRRRRORRRRRRRORRROORRRRRRRORRRRRRRRORRORRRRRRRROOROORRRRRORRRRORRRRRRRRRRORRORRORRORRORRRRORORRRRROORRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRROORORRRRRRRORRRORORRORRRRRORRRRRRRRRRROORRRRRRRRORRORRRROORRRRRRRRRRRRRRRORORORORRRRRRRROORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRRRORRRROORORORRRRRORRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRROOROORORRORRRRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRORRORRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRORRRRRRRORORRRRRRRRRORRRRRRRRRRORORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRROORORORRORRRORRRRRRRRRRRRRRRRRORRRRORRRRRRORRORRORRRRRRORORRRRRRRORRRRRRRRRRRRRROORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRORRRRRRRRORRRROROOORRORRRRRRRORRORRRORRRRRRRRRRORRRROORORRRORRRRRORORRORRRRORRRORRRORRORRRRRRORRORRRRRRORRRRRRORRRRORRORRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRROORRRRRRRRRRRRORRRORRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRORRORRRORRRRRRRRORRRRRRORORRRRORRRRORROOROORRRRRRRRORRORRRORRRRORRORRRRRRORRRRORORRRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROOORRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORORRRORRRRRRRRRRRRORRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRROROORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRORRRORRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRORRRRRORRRROROROORRRRRRRORRRRRRRRRRRRRORRRROROORRRRRORRRRRORRRRORORORRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORORRORORRROROORRRRRRROORRORRRRRORRRRRRRRRRRRRRORORRRRRRRRRRORRORRRRRRRORRRRRRORRRORORORRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRORRRRORRRROORRRRRRRRRRRRORORRRRRRRRRRORRRRRRRROORRRRRRROROORRORRRORRORRRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRORRRRRRRORRRORRRORORRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRORRRORRRORRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRORRRORRROROORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRROROROORRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRORRRRRRRRORRRRROORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRORORRRORRRRRRRRRRRRRRORRRRRROORRRROORRRORRRRRROOORRRRRRRRROORRRORRRRRRRORRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRORRRRRRROROROROORRRRRORRRRORRRRORRORRRRRORRRRRRRRORRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRORRRRRRRRRORRRRRRRRRRRRORRRORRORORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRORRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRROOORRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRORRORRRRRORRROOORRRRRRRRORRRRRROOOOORRRRRORROORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRORORRRRRRRRRORRRRORRRRRRORRRRORORRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORRRRRORRRORRRRRRRRRRRROORRRRROORRRRRRRRRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRORRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRROORRRRRRORRRRRRRRRRRRRRORRROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORROOORRRRRRRRRRORORRRRRRORRRRRORRRRRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRORRRRRORRRRRRRRRRRORRRRORRRRRORRRORORRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRORRRRRROORRRORRRORRRORRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROOORRROORRRRRRRRRORRRRRRRRRORRRRRORRRRRORRRRRRRRORRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRORRRRORRORRRORRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRORRRRRROORORORRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRROOORRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRROORRRRRRRRRRRORORRRRRRRRRRRRORRORORRRRRRROOROORRRRRRORRRRRRROORRORRRORRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRORORRRRRRRRRORRRRRROORRRRRRRRRORROORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRORRRRRRRORRRORRRORRRORRORRRORRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORORRRRRRRORRRRRRRRRRRRRRRRROROORRRRORRORRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRROORRRORRRRRRORORRRORRORORRRRRRRRRRRRRRRRRRORRORORRORRRRRORRRRRRRRRRRRRORRORRRRRORORRRORRRRRORRRORRRRRRORRRRRRRORRRRORRRRRRRORRORORORRRRRRORRRRRORRORRROORRORRRRRRORRRRRRRRRORRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRORRRRRORRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRROORORRORRRRRORRRRRRORORRRORRRRROOOOROORRRRRRRRORRRRROORRORRRRRRRRORRRRRORRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRORROORRRRRRRRRRORORRRRRRRRRRRRRRRORROROORRRRRORRRRORRRRRRRORRRRRRRRRRORRORRRRRRRRRORORRRRRRRRRRRORORORROORRORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRORRRRRORORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRORRRRORRORRRRRORORRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRROORRRRORRORORRRRRORRRRRRRRRRRRORRRRRRRROORRRRRRRRROORRRRRRORRRORRRRRORRORRRRORORROORRORRRRRRRRRRRRORRRRRRORRRRRRRRROORRRRRRRRRRRRRORRORRRORRRROORRORRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRORRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRROORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRORRRRROOORRRRRRORRRRRRRRRRROROORRRRORRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRORRRRRRRRROORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORORORRRRRRRORRRORORRRRORRRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRORRRRRRORRRRORORRRRRRRRRORORORRRRRRRRRORRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRORRORRRRRRRRRROOORORORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRROOOORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRORORRORRRRRRRRROOORRRORRORRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRORRRRORRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRORRORRRRRRRORRRRRORRORRORRORORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORORORRORRRRRRRORRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRORRROOORRRRRRRRRRRROOROORRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRORRRORORRRORRRRRORORRRRRRRRRRRRRORRORRRRRRRRORRORRRRORORRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRROORRRRRRORRRRRRRRRORRRRRRORRORORRRRRRRRRORROORRRORORRRRRRORRRORORRRRRRRRRRROORRORRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRORORRORORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRORRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRROOOROORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRORRRORRRROORRRRRROORRRRRRRRRRRRRRRORRRRORRRRRRRRRORORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRORRRRRROORRRRRRRRRRRORRRRRRRRRORRORRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORORRORRRRRRRRRROORORRRRRRRRRRRRRORRORRRRRRORRRRRRORRRRRRRRORRRORRRRRRRRRORORRRRRORRRORRRRRRRRRORRORRORRORRRRRORRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRROORORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRORRORRRORRRRRRRRORRRRRRRRRRRORRRRRROORRRRRRRRRRROORRRORROOROORRRRRRRRORRRRRRRRRRRRRRORROORRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRORRRRRRORRRRRRRRRROORORRRRRRRORRRRROORORRORRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRORRRRRRORROORRRRORRRRRRRRORRRRRORRRORORRRRRRORRORRRORRRRRRRRRRRROORROORRRRRRORRRORROORRORRROORRORRRRRORRRRRRRRRRRRRORORRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRORRROORRRRORORRRORRRRRRORRRRORRRRORRORRRRRRRORRRRRRRRRRRRRRRRROORRRRORORRRRRRRRRRROORORORRRRRRRRRRORORRRORRORRRRRRRROORRRRRRRRORRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROROOORORORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRROOOORRRRRRRRRRRRRRRRRRRRRRRROOROOORRORRRRRRORRRRRRRRRORRRORRORRORRRRRRRRRROORRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRROOORRRRRRORRRRRORRRROORRRRRRRRRORORORRRRRRORRORRRRRRRRRRRORRRRRRRRRORORRRROORRRRORRORRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRROOORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRORRRRRRRRORRRRRRORRRRORRRRORORRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRORORRRORRRORRRRRRORRORRRRORRRRRRRRRORORRRRRRRORORRRRRRRORORRRORRRRRRRRRRORRRRRROORRRRRRRRORRORRORRRRRORORRRORRRORORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRROORRRRRORRROROROROORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRORRRRRRRRRORRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRROORRRORRRRRROORRRRRORRORRROROORRRRRRRRRRRORRRRORRORRRROORRRRRRRRORRRRRRRRRRRRRORRRORORRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROOROOOORRRRRRRRRRORRRROOOORRORRRRRRRRRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRORRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRRORRRORRORRRRRRRRROROORRRRRORRRRRRRRRROORRORORORRORRRORRRRRRRRRRRORROROORRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRROORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRORRORRRORRRRRRRRRRRORORRRORRRRRRRRRRROORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRRRORRRRRRRROORRRRRRRRRRRRROROORRRRRRRROROORORRRORRORRRRRRRRRRRRRRORRRRROORORORRRROOORRRRRRRRRRRRRRRRRORRRRRORRRRRRROORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRORROORRRRRRRRRRRRRRROORRORRRRRROOORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRORRRRRORRRORRRRORORRRRRRORRRRRRORRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORORRRRRRORRRRORRRORRRRRRRRRRRRORROORRRRRRORRORRRRRRORRRRRRORRRRRRRRRRORRORORRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRORORORRRRRRRRRORRROORRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRROORRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORROORRRRORRRRRRRROOORRORORORRRROORRRRRRRRRRRRRRRRRRROORORRROROORRRORORRRRRORRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRORRRRRRRRORORORRRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORORORORRRRRRRORRRRRRRORRRRRRORRRRRORRRORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRORORRORRRORRRRORRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRORRRRRORRRORORRRRRRORRRRRRRORRRRRRORRORRRRORRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORORRRRRORRRRRRRRRRRRRRRRRRRORORROORRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRORRRORRORRRRRORRRRROORRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRORRRROORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRORRRORORRRRRRRRRRORRRRORRRORRRRRRRRRROORRRRRRORRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRROROORRRRORRRRRRRRRRORRRRRRRROORRRRRRRROORRRRRORRRRRRRRRRRRRRRRORRORRRORRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRORRORRRRRRRRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRRRORRRRRORRRRRRORRRORRROORRROORORRROORRRRORRRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRORRRRRRRRRRRRRRORRROOORRRRRRORRORRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRROORORRRRRRRORRRRRORORRRRORRRRRRRRRRRRORRRORRROORORRRRRRORORORRRORRRRRRRRORRORRRROOOORORRORRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRORRRROORORRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRORRRRROORRRRRRRRORRRRRRRRRRROORRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORROOORRRORRRORRRRRRORRRRRRORRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRROORORORRRORRRRORRORRRRRRRORRRRRORRORRRRRRRRORRORRRRRRRRRRRORRRRORRROROROORRRRROORRORRRRRRRRRRRRROORRORORRRRRRRRRRRRRRRRRRORROROOROORROORRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRRORRRRRRRORRRRRROOORRRRRROORRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRORORRRRRRORORRRRRRRRRORORRORRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORRORORRRRRRRRRRORRRRRORRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRORRRORRRORRRRRRRRRRRORRRRORRRRRORRRRORROROROORRROORRRRRRRRRRRRRRROORRRRRRRRRRRRORORORRRRRORORRORRRRROORRRRRRRRRROORRRRRRRRRRRRROORRORRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRROOORRRRRRRORRRORRRRRRRRRRRRRORRRRRORRORORRRRRORRRRRRRRRRRRORRORRRRRORRORRORRORRRRRRRRRRRRRORRRRRORRRRRRROORRROORRRORRRRRRROOORROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRORRRRRRRRROORRRROORRORRRORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRORRORRRORRRRRRRRORRRORRRRORRORRORRRRRORRRRRROOORRORRRRRRRRRRRROORRRRORRROOORRORORRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRROOROORRRRRRRORRRORORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORORRRORORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORORRRRRRRRRRRRRORORROORRORRRORRRRRRORRRORRRORRRRORRRRRRRROOORRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRROOORRRRRRORRRRRORRRRRRRRRRRORRRRRRORORRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRORROROORRRRRORRRROROORRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRORRRORRRRRRRORRRORRRRORORRORRRRRRORRRRORRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORROORRRRRRRRRRRRORORRROORRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRROORRROORRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORORRRRROORRRORRRRRRORRRRRRRRORRORROORRRRRRRORRRROORRRORRROORRRRRORRRRORRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRROROOORRRORRRRRRRRORRORRRRRRORRRRRRRRRORORRRRRORRORRRRRRRRRRRORORRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRROORRRRRRRORRORRRRORORRRROOORRRRRRRRRRRRRRORRORRRRRRROROORORRRRRRROORRRRRRORRORRORRRRRRRRORRRRRRRRORRRORRRRRRRRRORRRROROORRORROORRRRRRORRRORRRRROORRRRRRRORRRRRRRRRRRRRRORRRRORRORRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRRRORRRORRRRRRORRORRORRRRORRRRRORRRROORRRRRRRRRORRORORRORRROORORORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRRORRRRRRRRRRROORRRRRRRRORRRRRRRRRRRROORRROORRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRORROROOORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRORORRORRRRORRROORRRRORORRRRRRRRORRRRRRORRRROORORRRORROOORRRRRRRRRRRRRRRRRRRRRORRROOROORRORRORRRRRRRORRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRORORRORORRRRORRRORRRRROORRRRRRORRRRRRRRRRRRRRRORORRRORRRRRORRRRORRRRRRRRRRRRRRRROORRRRRORRROORRRRRRRRRRRRRRRORRRRRORORRORRRRRRRRORRORRRORRORRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRORRRORRRRRORRRORRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRORRORORRRRRRRRRRRRRRORRRRORRRRORRRRORRRRRORRRRRRRROORRRRRORRRRRRRRRRORRRRRORRROOORORRORORRRRRRRRRROORORRRORRRRRRORRORRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRROORRRORRRORRRRRRORRRRRRORRORORRRRRRRROOORRRORRRRRRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRROOORORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRORRORRRRRRRROORRRRORORRRRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRORRRROORRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRORORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRORORRROORRRRORORRRORRORRRRORRRRRRRORRRRROOORRRORRRRRRRRORRRRRRRRRRRROORRROORRRRRROORRRRRORRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRORORRRRORRRRORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORRRRRRROORORRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRROORORRRRRRRRRRRROORORRORRRRRRORRORRORORORRRRRRRRORRRRRRRRRRORORRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRORRRORORRRRRRRORRRRRRRRRRROORORRRRRRRRRRRRRRRRRORORRRRRORRRRRORRRRROOORRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRORORRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRORRROOORRRRRRRRORORRRRRROOORRRORORRORRRRRRRRRRRRRRRRRRORORORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRROROORRRROORRRRORORRROORRRORRRRRRRRRORRRRORRRROORRORRRRRRRRRRRRRRROROOOOORRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRROROORRRRRRRRRRORRORRRRRRRRRRROORRRORRRRRRRRROOORRRROORRRRRRRORRRRRRRORORRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRORRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRROOORRRRRORRRRRRRRRRRORRRRRRRRRRRRORORORRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRORORRRRRORRRRORRRRORRORRRRRRRRORRORRORRORORORRRORRROOORRRRRORRRRRRORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRORORRRRRORRRORRRRORRORORRROORRORORRRRRRRRORRRROORRRORRRRRRRRRRORRORRRRRRROORROORRRROORORRRROORRRORRRRRORRORRRORRRRRRRRRRRRRROROOORRRRRRRRRRRRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRRRRRRRORRRRRORRORRRRROROORRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRORORRORORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRORRORRORORRORRRRRORRRRROORRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRORRORORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROROROORRRRRRROORRRRRORRRRRRRORRRROORRRRRRRRRRRRORRRRRORRRORRRRRRRORRRROORRRORRORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRROOOORRRRRRRRRORRRRRRRRRORRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRROORRRRRRRRRRRRORRORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROOORRRRRORRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRORORRRRRORRORRRRRRORORRRORRRRORRRROORRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRRRRRRRRORRRRRRORRRRORRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRROORRRRRROOOORRRRROORRROOORRRRRRORRRRRRORORRRROORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRORRORRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORORRRRORORRRRRRRRRROORORRRRRRRRRRRORRRORRRRORRRRRRRRRORRRORRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORORRRRRRRRRORORORROORRRRRRRRRRRRORORRRORRORROORRRRRRRRRRRRRRRORRRORRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORRRRRRRRRORRRRRRRORRROORRRRRRORRRRORRRORRRRRRRRROORRORRRORRRRORRRRRRROORRRORRRORRORRRORRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORROORRRRRROORRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRROORRRRRROORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRORRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRORRRORRRRRRRRRORRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRORRRORRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRORRRRRORRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRROORORRORRORRRRORRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRORRRRORORORRRRRRRRRRRORRRORORORORRRRORRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROOORRRRRRRRRRRORRRRRROORRORRRRRROORRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROROOORRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRORRRORORRRORRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORRRRRORROOOOORRRORRRRRRRORRORROORORRRRRRRRRRRRRRRORRRRRRRORRRORRORORRRRRRRRRRRRORRRRORRRRRRRRRRRRRORROORRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRORRORRRRORRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRORRRRORRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRROORRORRRRROOOOORRRRRRRRORORRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRROORRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRORRRORRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRORORRRRRRRORRRRRRRRROORRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRORRRORRRORRRORRRRRORROORRROORORRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRORORORRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRORRORRROROORRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRROORRRRRRRRRRRRRRORRRORRORORRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRRRORRORRRRRRRRRRRORROORORORRRRRRRRRRRRRRRROROOORRRRRRORRORORRRRRORRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRORRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRORORRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRORRORRRORRRRRRRRRRRRORRORRRRRORRRRRRORRORORRRRORRRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRORORRORRRRRRRRRRRORRRRORORRRRRRRRRRRRORRRORRROORORRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROORRRROORRRRRRRRORRORRRRRRRRRRRRRRRORRRORRRRRRORRORRORORRRRRRORRRRORRRRRRORRROORRRRRRRRRRORRRORORRRROORRORRRRRRRRORRRRRRRRRRRRRORORRORRRORORORROORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRROOORRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRORRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRORRRRORRRRROORRRRRRRRRRRRROORRRRRRORRRORRRRRRORORRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRRRRROORRRROORRRORRRORRRORRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRORRORRRRRRORRRRRRORRRRRRRRRORRRROOORRRORRORRRRRRRRRRRRRORRRRRRORORORRORRRRORRRRRRRRRRRRRRRORRORRRRRORORRRRRRRRORRRRRRORRORRRRRRRRRRRRROOORRRRORRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRORORRRRRRRRRORRRRRRRRORRRRRRRORROORRRORRRRORRRRRRORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRORRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRORORRRRRRRRRRRRRRRRRORRROROORRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRORORORRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRROORORRORRRRRRRRRORRRRRRRRRRRROORORRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRORORROORRRRRRRRRORRORRRRRRRRORRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRROORRRRRORRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRROOORRRRRRRRORRRORRORORRRORRRRRRRRRRRRORRRRRRRRRROOOORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRROOORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORORORRRRRRORRORRRROORRORORORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRORROORRRRORRRRORRRRRRORRRRRRRRRRRRORRRROOORRORRRRRRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRORORRRRRRROOORRRRROOORRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRROOORRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRORORRRRORORRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRORRRRORRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRORRRRRRORRRRORRRRRORRRRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRORORRRRRRRRRRRORRRORRRRRROORRRORRORRORRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRROORORRRRRRRRORRRROORORRORRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRORRRRRRRRRRRORRRRRORRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRROOROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRROORORRRRRRRRRRRRRRRRORRORRRRORRORROORRROORROORRRRRORRORRORRORRRRRRRRRRRORRRRRRORRROORRRRRRRRRRRRRROORRORRRRRRRRRRRRRROOORRRRRRORORRRORRRROORRRRRRRRRRRRORORORRRRORRORRRRRRRRRRRRRRRROORRRORRRRORRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRORRRRRRROROORRRRRRRRRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRORROOORRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRRORRRRRROORRORRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRORRRRRRRRRRRRROORORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRORORRRRRRRRRRROORROOORRORRRRRRORORRRORRRORRRRRORRORRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRORRRORRRRRRORRRRRRRRRRRRRORORRORROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRORRRRRRRRORROROORRRRRORRRRRORRRRORRRRRRRRRRRRRORRRRRORROORORRRROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRORRRRRORRRRORORRRORRRRRRRRORRRRRORRRRRORORRRRRRRRRRROORRRRROORRRRRRRORORORORRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRRORRRRRRRRORRRRRRRRORRRORRORRRRORRRRRORRRRRRORRRRRRRORORORORRRRORRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRORRORRRRRRRROORRRRRRRORRRRRRRORRRRRRRRORRORRORRRRRRORRRORRRRRRORRRRRRRROROORRORORRORRRRORRRRRRORRRRORORRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRROORRRRORRRRORRRROORORRORRRRRORRRRRRRRRRRROORRRRRORRRRRRRORRRRRORROORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORORRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRORRRRRRRORRRRORRRRORRRROROORRRRRRRRRRRRRRRRORRRRORRORRRRORORRRRRRRRRRRRRRRRORRRRRRRORRRROORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRORRRRRRRRRRRRRRRRRROROORRORORRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRROORORRROORRRRRRRRRRRRRORORRORRRRRRRRRRRROORORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROORRRRRRRORORRRRRORRORRRRRRRRORRORRRRRRRRRRRRRRROROORRORRRRRRRRRRRRRRRRRRORRRORRRRRRRORORRRRRRRORROORRRRRRRRRRORRORROORORRRRRRRRRRRRRRRROORRORORRRRORRRRRRRRRRRRRROORRRORRRRRRRRRRRRRORRRROOORRRORRORRRORRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRROORRRRRORRORRORRRRRRRRRRRORORRRRRRRRRRRORORORRORRRRRRRORRRRRRORRRRORRRRRRRRORRRRRRRORRRRRRORRRRRRRROROORRRRRRRRRROORRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORORRRRRRRORORORRRRRRRRRRRRRORRORRRRRRRRORRRRRORRRRRORRRRRRRRORRRRRRRRORORRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRORRRRORORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROORRRRROROORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRORRORRRRRRRRRORRRRRORORRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORORRRRRRRRRRRRRRRRRRROORRRRRRRRORROORROOORRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRROORRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRORRRRRRRORRRORRORRRRRRRRRRORRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRRRORRRRRRRRORORRORORRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRROORRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORROORRRRRROORRRRRORRORRRRRRORRORRRRRRRORROROOOORRRRRORRRRRRRRORRRRORRORORRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORORRROORRORRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRORRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRORRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRORORRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRROROORRROROORRRORRORRRRRORRRROROORORRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRORRRRRRRORRRRRORRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRROROROROORRRRRORRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRROROOORRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRORRROORRRRORRRRRRRRRORRRRRRRORRRRORRRRRORRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORRRRRRRRRRORRRRRORRROORRRRRRRRRRRROROORRORRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRORROOORRRRRRRRORRRRRRRRRRRRRRRRRRORRORORRRRRRORORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRROROOORRRROORORRRRRRRRRRRRRRORROOOORORRRORRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRROORRRRRRROORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRROORRRRORORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRORORORORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRROORRRRRRORRRRROORRRRRRRRRRRRRRRORRRRRRRROORROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRORRRRORRRRROORRRRRRORRORRRRRRRRRRRRORORORRORRRRRRRRORRRRRRRROORRRRRRRRRORRORRORRRRRRRRRRORORRRORROORORRORRRRRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORORORRRRRRRRRRRORRROORRRRRRRRORRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRROORRRORRRRRRRRRRORRORRRORRRRROROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRORORRRROOOORRRRORRRORRRRRRORRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROROORRORORRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRORRRRRRRRRRRORRORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRROORROORRRRRORRORRRORRRRRRRRRRORRRORRRRRRRRRRRORRRRRROROORRORRRRROOORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRRRORRORRRRRRRRRRRRORRORRRRRROORORRRRORRRRORRRRORRORRRRRORRRORRORRRRRRRORRRRRRRRORRRRRROOORRRRRORRRRRORRRRRORRROORROOOORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRORRORRRRRRRRRORROROOORRRRRRORRORRRRRRORROOROORRRRRRRRRRRRRORRORRRRRORRORRRORRRRRRRRRRRRRRROROOORRRRRRRORRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRORRORORRRORRRORRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROROORRRRRRRROORRRRRRRRRRRROORRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRORRRRROORORRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRROORORORORRRRRRRRORRRORRRRRRRORRRRRRRRRRORRRRROORRRORRRRRRRRRORROROROORRORRORRORORRRORRORRRRRRRRORRRRORRRRRRRRRRRRORRROOORRRORRRRRRRRRRROORRRRRORRORRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRORORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRORRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRROORORRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORROROROORRRRRRRORRRORRRRORRRRRRRRRRRRRRORRRRROORRORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORORRORRRRRORRORR\n"
  },
  {
    "path": "challenge1/tests/mon8a.out",
    "content": "141284\n"
  },
  {
    "path": "challenge1/tests/mon8b.in",
    "content": "432124 225122\nOOOROOOROOOROORRRROORROORRRROOORORORORRRORRROOOOORROOOOOROOORROOORRRORORROORRRORRROOORROOORRRROOROOORRRRRORRORRORROOROOROOROOORROOOOROORRRROROOROROOORORROOOOOOROOOORROORORRROROOROORRORROROROOORRROROROOROORROORRRRRROROOOORROOROROORRRROORORRORRROROOOROOROROROOOROORRRRRRRROOOOROROORRRORRRRORORORRORRRRORRROORORORRRRORRRROROOOOROOROROOROOOOROORROROOROOOOROOOORROORORRRORROOOOOROOOORRORRROOOOORRRORRRRRROROOOORRRROROORORORORRORROOROOROOORORRORRRROORROORROOOROOOORROORROORRRRRORRRRRROORRRRROOOROROOROROOROOOROOOOOORRORROOORRORRROROOORROOOORRROOOORORRROROOOORRRROORROOORRRROORROROORRRROORRORRROOROOOOOOORRRROORRRRRROOROOOOOOROORRROORRORROORORRRROOROROROOROROORRRORRORORRORRORRROROORRROROOOOOOORORORORRRRRORRROOOROORROOOORRRRRRRRRORRORRRRRROOROROOROROROORORRORRRRRORRORORORRROOOOROORRROORORRRRRROROORROOROOORROORRORRRRORRORORRRROOOORRRORORRRORRROOOOROOOOROOOROROROORRORRRRORORORORRRROOROROOORRROOROORROOOOROORRORROOORRROOOOOORORRRRROOOROOOOOOORROOROOROOORRRORROORRROORRROROORRROROORRRRORRRORRRRRROORRRRROOROOORRRRORRRORRRRRRRORRRORRORRRROOOOORRRRRROOOOOOORRRROORORRORROOORROROROOORROORRORROOOOOOOROOORORORRRROOROROORORRRRROOOOOORROOOORRORROORROOOOORRORRROOORRROOORRORROOOROOROOOROOOOOORROOOORRRROOOORRRROORRRRROOOROOOORRROROORRROOROOROROOOORRROOORRORROORRRRRRRORORORORRRORROOOORORROORORRRRORROORRRORROORROOOROORRRORRORRRORROOROORROOOOOROORRRRRRRRROORORROORROOROOORROOORORRRRRROOOROORRRRRROORRRRROOOROOROOOOORRRRRORRRRRROOOOROROROOORRROOOROROORRORRRROOOROOOORORRRORRROOOROROORROORORRORORORORROROORRROOROOOROORRRORRRROOOOROOOOOROORORRROORRRRORRORRROOOROORRRORRRRORROOOOORRRRRRORRRROOORORORRORORROOOORROROOROROOOORRROORROOOOROOORRRRROOOOORORORORRROOROROROOOROOROOOORRRROORRRRRRRORRRRRRROORRRORRRORRORORORROROOROOROOOOORROOOOOOROOOROROORROOOORRRRROOOOORRRROOROORORRRORRRRORRORROORRROOOROROOORORRORORRRRORROROROOOORRRROORRRRROOOORORROORRRROOORRORROOOROOOOORROOOROORORRORORROROORRROOOORORROOORRORRRRRORORRRROOORRROOOORRORORROOROOROOOROOROORRORORORORRRRRRROROOOORRROOROOOOORORROOOOOOOOOOOORRORROROOROROROORROOORRROOROROROOOOOOOORRRROROOROROROOORROOORRROOORRRORRORRRROROORRROOORRRORROORRORROOOROOROROOOOORRRORROORRRORRRROOORROORROOORRRROROOROOROOOORROOOOOORRRROORORRROOOROROROOOROORROOOROORORROORROOOOOROORORROOOOORRROOOOOOORRORRROORRROROORORRROROOORROOORRORRORRRRROORRROOROROOOROORROOROOROROOOOORORROORRRROOORRRRROROROORORORROROOORRORRORORRRRRRRROROOROOROOORRROORROROOOOOOORRORORRRRORRROORROOOOORORROOOROORRRRRRROOROORORRROOROOOOOROOORRORROORRROROORROROROOOORORORORRRORROOOOOROOORORRROROROROOOOOOOORROOORROORRRROORRRROROOROROROOORORORORORRORROOROOORRRRROROORRRROOORROOROORORRROOOOOOOOORORROOROROORORRRORRORRRROROROOOORROOOOROOOORROROORORROROOORORORRORRRORORRRRROOOOORORROOOROROOOOROOORRROROORRROORRRRROOORORORORRRRORRROROOROOOOOOOOOOOOORORRRRRRRRRRRRROORRRROROOOORRROROOROOOOROOROOORROROOROOORROORROOORRROORRROORROROOOOORRRORORROOOROOORRORRRORRRORRROOOORROOROOOROOOROORROROROROOROROROORRORORROOORRRORRRRRRORORROROOOORORRRRROOOOORRORORROORORRRRROROOOORRORORRORROORROOROOOOROORROORORROORROROOROOOORROOORROORORORRRRROORROOORORORRRROORRROOROOOOORROOOROROOOROROOROOROORORRRROOOOOOOOORORORROOOROOOORROOOOOOOORRROOORROROOORRROROROROOORROOORORROOROOOROROOOOROOORORORRROOOOROROOROROOOOROROOORRRORORROOOOORROOOORRROOOORROROOROOOOOORROOOORRROOOOOROOROOOORRRROOORROOOORROOORRRRRROORRRORRRRROOOROOOOROOORROOROOORROOROOROOORRRROOOROORRORRROOORROOOORRROOOROORROROROOOROOORRRRRRROOROORRRRORRROROOORRROOORRORRORROOOROROOOOOORRROORRORORRORRROORRROOOORROOOROOOROORROROOOOROROOOOORRRRROOORROORRRORROOORRORORORORROOROROOROROORRRRRORORROROOOOOROROOROROROOOOOOOOOOOOORROOORORRROOROORRORORORRROOOORRORORRRORRRORRRORRRROROORRORORRROOOOOOOOROOROOOOROROOOORORRORROOORRRRORRROROROORROROROOROOOORRRORRRRRRRRORROOORORRORORRRROOROOOROOROOORRORROORROROOORRORORROOOOROORRRRORROOOOOROOOROOOOOOORRRORORRROROORRROOOORROROROROROORRRROOOORORORROOOROOORORRRORRRORRROROROOORROROORORORROORORRRRRROROOOORRORRROOOOROROOORRORRORROOROROROOOOORRROOOORRRORRRROOROORRRROROORORROOOORRORORROORRRRRORROOORRRROORORORRROROORRRROOROROORRRRRORRRROROORORRRORORRROROOOROOROROOROOOOORORROOOOROORRROROOOOOOOORORRRROROORORORRORROROOORORRROORRORROOROORRORRRORRRRRRRRORROROOROROROOORRORRRRORROOROOOROOOOOORROORRRROROOROOOROOORRROOORROOOOORRRORRROOOOOROOORRORRROOORRROORRORORROOORRRROOOOOOROOOOROOOOOOORORROOOROROOORROROOOORRORRROOORORRROOORROOOOOOROOOOROOOOORRRORRRRROOOOOORRRRRROOORORRRRORRRRORROROOOORROOROOROROOOROORORROROOROOORRRROROOORRRROROOOOOROROOORORORRROOOORRROROOROOORROOOORRROOOROORRROOORRRROORRRRRROOORROROROORORROORRORRRORRORROOOOROORRRROORROOROORROORROOOOORROOORRORRORRRROORRROOOROOORRRRROORRORORORRORRROOOORRRROOOROORRRORRRRORORRRROORRRORRRROOOOOROOOROOOOOOOOROOOROOROOROORRROOROROOOORORRRORORORRRROOORRORRRRRORROROOOOOORORRRRRROOOROOOROORRORRRROOORORRROROOOORRORRRORRORRRRRROOOROROOORORORORORROOROOOOOOOOORRROOORRRROROROOORRRORORORORORORROOOROORORRRRRRORROORROORRORRRRROOORRRROROOOOOROORROROROOOOOOOOORRORROORRROORRRORROROOOROROROROORRORRRORORRORRRROOORORORORRRORRORORRROOOOORRORRRROOORROOROOOOOOROORORORORRORRRRROOOOORRRRROOOROROROOOOORORRRRRRRRROORRORROROOOROOOROOOORRORROOROOROORRRROROOOOROORRRRORRROROROOOORRORRORRRORROOOOOOOROORRRORORORRROORROORRORORORORROROORORORORROROROOORROORRORORROORRRORRRROROOORORRORRRORORRRROOOOOOROORROOORROORORROOORRORROOOROROORRRROOOOOROOROOORRORORRROORRRORRORROOORROOOOOROORRRORRORRORRRRRORRROOOORRRROROOROOORORROOROOOOOOOOORRROOOOROROROROORROOOROOORRRROORRROOORORRORROROOROOOORRRRRRRRRORRROOOROOOROORORRROOOORORRORROORORORORRRORRRROORORORROORRRRRRROORRRORRORRORRROROROORORROOROORRRROROOROORRRROORRORROORORORORRROOOORRRORRRROOOOOOOORRRRRORRRRROOORROROOOOORROORROOROORRORROORRRORRRORRROORRRORRROOROORRRROOROOOORORROROOROORORROORRRRRRROORROOOOORORRROOROOOOORRRRRRROOOROOOOORROORORRRROOORORRORROOORRRRROOOROROOOOOROROORROROOOORROOROORRRROROOOOROROOOOORRORORROOORORRORRORORRRROOORROROOOOROOOROOOOOORORRORRORRRRROORRROORRROOOOROROOROOOORRRRORRROOROROOOORROORRRROROROOROORROORRRROROROORORRRRRROROOORRROROROOROROROOORRORRORROORROOOOOROROORORRORORRRRORRRORORROOORROOROROOOOORROOROOOORORRROOORRROOOOOORRROROOOROROROOORROOOOOOOROROROOROORRRORRORROOROOORRROROROOOOROORRRRROOROOORROORRORORRRRORRRRORROROOORRROOROROORRROORRORRORRRROORRORRORORORRRRRORRRRRORROOROOOORORROORROOOOROOOOOOOORROOORORORRORRROOORRRORORORRROOOOORROOOROOOORRROOROOORRRORRROOOOROOOORRRRORRORORORORRORRORRORORRRORORRRRORROROOOOORRRRRROROOOOOOROOROOROORROOOOOROOOOOOROROROOOORRRROROROORRROOORRROOORROORRRROOROORRRROOROOOOROOROOOOORRRRORRRROOROOORROROOORRRROORROROOOROORORORRRORRRROOOORRROORRRROOOORRORORROROOROROOOOOOOROOROOOOOROOOOROOOOROOROOORRRROROROROROROORRRRRRROROORRRORROROROOORROOORROOOOOOORORORROOOOOOROOOROROROROROROROORRORRROROOOROROORROOORORRRROROROORORRRROOOOOOOROOORRORRORRROOOROOOOOOORORORORRRRORRRROOOOORORRROOORRRRORROOROORROORRROOOOOROOROROORORRORORROOOOORRORORORORRRRORRRRORRORROOOORRRRRORROORRORRRORRRROROROORRRORRORORROOOOOOROOOOOOORRROOOOOOROROOOOORRROOOORROOORRRROOORRRRROROROROORRROOROROROORORORORRRRROROROOOROORROROOOORORROORROOROOROORRRORROORROROOOOROOOORORORRRROORRRORRRORRORORRORORORRROORORRRORROROORRROORROROORRRRROORORRROOROORRROORRRORROROORRRROORRRRROROROOOORRRRROORRORRORROOOROORRRROOORROOROORRROROORRORRRRROOROROROROOOROROORRROOOORRRRRRRROROOORRROOOORRRRRRRORRORROROORORRRRRRRRORORROORROOOOOROOOORROOORRORRORROORROOROOORRRORRROROORROROORRORRRORORRRORORRRRRROOOROOOORROOOROROOOOOROOOOROOROROOORRROOOORROORRRROORROOOORROOOORROORORORRROOROORRRROOORROOROROORRRRORRORRROROROROOOROOORROORRORROORROORORROORROORRROROORROORRORORROORRRRRRORRORROROOOOROROORROOORORROOROOOOORORROOORROORRRRORRRRORRRORORORRRRRROOORROORORORRORRRORRRROOOOOOOOOOROORRROORRRRORROORORRROROROOOORORORROOOROORRROOOORORRRRORORORROROORORROOOOOORRORRRRROROOORORRRRROOOOORRROORROOROORORRRROROOOORORORORRORORROOOOROOOOOOOORRROORROORROROROORORRRROROROORRORORROROORRRROROOOROOORROORRRROOOROOOORROROOROOORORORROORRRRROROOORROOORORROOORRROOOOOROORROOROROOORRRORROOORROROOORRRRORRRRROROOOROOOOOROORORRRORRORRRRRORRRORORROROROOOROROORROOROORRRORRRORORRRROOORRROOOOOORRORRRRRORROROOROOROROOOOORRRORRRORRORROORROOOOOOORORORRRRRRRRORRORORRRORORRROOOROORROROROORORRORRORROORRORORORRROROOOROROOOROORORROOOORRROROORROROROOOORRORORRRRROOOROORRORROROROOORRORRROOROORRROOROOOOROORORRROORORRORORROOROORRROOORRRRRORROROOOROOROOOROOOROORROOOOOOOROOOORRORRROOOROROROOOOOROROROROOORRROOROOOROOOOOORRRROOORROOORRROORRROORROORRROOOOOORRRROORRRRROOOORRRRROOROOORRROOOROOOOOOOROROROOROOORROOROORORRRROROROROOROORRROORRORORRROORRORRRRRORRRORRRORORROROOORRROORORRRROROORRRORORRRRRORRRORROOOOOOROROOOROORROORRORRRRRORROOROOORORRRORRROROOROOORORRRORRRRROOORRORRRRRORRRORORROORROORRORROOROOOOORROORROORRORRRRRRORROORRRRORRRORROOROROORRRRORROROOOROORRRRRRRROOOOROOOOOORRRROROROORRRRRRRRRROOOOORROOORORRROROROOROOROORRRROOOROORRRRRRROROOOOOROROOROOROOORRROORORRRRRORRROOORORORRRRROOORROOOROOROOOROORORROORRRRORRROOROOROOORORRRROORRRROORROROOROORRROROROROORROOOOROROORORORROROORORROROORRORORORRORRROORRRROROOROORRROORORRRROROROORRRORROORORRRRRRROORRORROOORRRORRRORROOORRORRRRROORRRRROOOROOOROOOORROORORRORROROOROORORRORORRORORRROORROOORORROORRRROORROROOOOROOROROOOROOOOOROOOORRRROORRROOOORORRROORRORRRRORORRROROROOORRROROORROORORROOOROROORROORRROORORRORROORORRRROORROOOROOORORORROOOROOORORRRRROOOROROORRRRRRORORORRROOROROORORRRROORRORRORORORORROOOOOROROORRORRRORRROOOORRRROORRROOORRRORROORRRRRRROOROOROOOROOROOROORRORRORRORROOROOORORRROOOORROOROROORRRRORROORRRORORROORORRORROOROOROOROORROORORROROROOOROOROROOOROOOORORRROROORRROOORROROOOROOOORRORRRRRRORORORRROROOOOOORORORORORRORRRRORROORRRORORORORRRRRORRRRROOROOOROROORORRRORRRROOOOROOROOOROORROORROOROORROOORRROORRRROOORRRRROORRRORRORRROOROOOROOROOOOOOOOOORROOOOOROOOOOORROORROOOORRRRORORRROOORRROOORRROOOORRROOORROORRORRROOROORROROOORRRRRORRRRROOROOROOORROORORRROROOROROOROORRORORRROORORRORRRRRROOROORROOROROOOOORRORROROOOOROOORRRRROOOOOORROOROOOOORRORORRRRORRRRROROROOROROOORRRROROOOOOOORRORROOROOOROORRROOOOORRROOOROOROROORRROROOORORORORORROROOOORROOORROORRORORRRROROOOOOOORROOROOOROOORROORRRRRRRRROROOOOOOROOORRROOOROOOOOORRRRRRORORORRRROOROORROORRRRRRORRORROOOORRORORORRRRRROOOOROORRORROROOORORROORRORRORRROOROROOOOOORRROOOROOOROOROOOORRRORRROOOROROORRROORRRRORRROROORRORROOORRRROORORRRRRORROORRORROROORRRORRRROOROOROOORROOOORROROOOROOROOOOORROORROOOOOROROOROOORROROROROROORRORRRROOOORROORRRRRROROOOORORRROOROORORRRORORROORRORROORRROORORORORRRRROORRROROORROROORROROOOORORRRORRRRORRRROOROOOOROOOORROORRORRRRORRRORROOORORORRROOROOOROOOORRRORROOOOORROOOROORROROROOROOOOOOROROOORROROOOOROOORRRRORRROROROOOORRRRRROOORROORROROROORRRRORROOOORRRRROROORRORORRRRROOROOOOORRORROROOOORRORORORRORRROROORRRROORORRROOOOROROOOOOORROORORROOORRORORRRORROORORORORRORRRORRROOOROOOOOOROORROOROOROROORORRRORORRROOORRRRRRROOORRORRRORRROROOOOORRRORRORROORRRROOROORROROOOROROORORRORORORRRRROOORRORROOORORRRORORROROOOOOOOORRROOOOORORRRORORRRROORRRRROOOORROOOORROORRROROROORROOROORORRRRROOORROROOROORROOROOORRRORORRORROROORROOROOOROROOOORROOOORORRRRORRRRRROROROOROOOORROOORRORRORORROOROOORRRORROOOROOORRORROOOORROOOORRORRORROOORORRRRROORORRRRRROOOOORROORRROOORRORROOORROROORORORRRORORROOOOROOOOORRORORRRRROROORORROORRROORRROOROROROOROOORRRORRROOOOOOOOOOOROOOORORRROOOOOORRORORORRROOOORORROORRORRRROOOOOORRROOOORRROOROORRROROOOOORROORRRROOORRORRORRROORRRROOOOOROROOROOOROORRRROROOOROORROOORROOROOORRROORORRROROOOOROORRRRROOOORRROOORROOROOROROROOORROOROROOOROROROOORROORORRRRRRRRROOROOOROOOORRROORRRORRORRORROORORRRRRROOORRORORROOOOORROORROORRRORROROROOROOROOORROOROOOOOROORORROORRRRORORRROROOORORORORORROORRRRRRRROROOORROOORORROOOORROOORORRRRRRRRROORRROORRRROOROORRRORRORRRRRRORORROOOOORORORRROROOOOOOROORROORRRORORORRRRRRRRORORROROOOROOOOROOOORORRRRORRORORRRROROROOOORROOOROOOOROROORRRRRRRROROOORRRROORROORORRRROROORORROROORRRRROOORORRRRORROOOORROOROROROOROOORRROOROORRRROOOOORRRRRRORORORRRORRRROOOOOORRROOOORORROORRROORORRRRROORRRORRRRROOROORROROORROOROORRROROOOOOOOOOOORRORORORROOOOOOOOORORORRORORORROOOOROOOORRORORORORORORRRROOOROROROORRROOORORRRORRRRRRRRROOOOROROOROORRROOOROROOROORROORORRROOORROOROORORRORRROROOOORRRORRROOOORRRRORRRRRORROROOORRORRORRORRRORRRRORRRROOOOOORRRRROROROOOOOOROOROORROOORRROOOOOORRROOORRRRRROOOOROOORRRRROOOOROOOORRRRRRRRRRROORORRORRRROORRROOOROORRORRRRRRROROORRORRRRRRRROROOOROOOOROOROORRROROOOOOOOOOOROROORRRROROROOROORROOOROROROORORRROORROORRROORRRRORRRROOROROORORROOOORRORRORRORORROOORROORROROOORRRORRORORROOORROOOROOOOOORROOOOOOOOORORRRROORORRROOORRORROOORRROOOROOOOOOORORROOOORROORRROOROROOORRROROROOOOROROROOOROOOROOROOOROOORORRRRORRRROROORRROOORROOORRROOROOROOROORROOOROORRROOORRRRROROOOORRRRRRRROOOOROOOOORRORORORRROOOOOROORROOOORRROOORORROORRORORORRRRORROOOOROORORROOROROOORORRRRROOROOOROROROOOOOORORORRRRORORROOOOROORROOROORRROORORROROORRORORRORORROOROROOOORRORRRORORROORROROOOORRORROOORRRRRRRRORORRROOROORROORORROROORROOROORRRORROROOOOOOROROOROORRRROORRRRRROOOROROROOOOROOORRORRORORRORROOORROORROROOOORRORRRRROROORRORRRORRRROOOORRRROOOOOORRRROOORROROOROORRRROORROOOROROOROORRRRRRROOROROOOOOROOOORORRROOOROOOOOOOORORRROOOROOORROORROOOROROROOORROORRROOOROROOROOROROROORROOOOOORRORRORROORRROOOORRORORROOOORRROOROOOOORRRROORRRRROOOOOOOOROORRRRRROOOORORORROORRROORORORRROOOROORORORROROOROROOORROOOROOROROORROOOROOOROORROOORROOOROORRRROORRROORORROOOOOROROORRRRRORROOOROOROROROOORRRRRORORRROORRORRRORROOOOROROROOROOROORROOOORRORORROOOROOOOROROOOOOORROOORROROOOORROORROOOORRORORORROOOOOORRRROORRRORRRRRRRROROORROOORROOOOOORROROROOOOOOOORROORORORRROOORRROROOOOROROROOROOORORRRRRRROOROOORROORORROORROOORRRRRRROORRRORRRRROOROROROORRRORROROORRRORORRORRORRROROOOROORROOOORRORORRRROOOOROORROOORORORRROOOOOOOROORRROORRRORROROOOOOOOORROOORRRORRORRRRRRRRRORORRROOOOROROORROOROOROOOORORRRRRRRRRRROROOOROOOROOORROORORRORRORORROROOORRROROROROOORROOROORORORROORORROOROOOORRRROORRROOOORRRORRROOOORROOORROROOORRORORRRORORRORORORROORRRRRROOROOORRRROORROROOROORORROORRORORRORRORROOOOOROROOORROORRRRRORROOOOORROOORROROOOOOROROOROOOROOORROORORORROORRORORRRROORRRORRRORRRRROROROROOORORROORRRORORROOROORORRRORORORORRORORORORRRROOOOROOROORROOROOOOOOOOORORROROROROROORRRROROOORORRROOORRRRORORRRORORRROROOORROOROOOROORORROOROOOOOROOOORRRRRRRROOORROROORORRRRRROROROOROOROOROORROROORRROOROORORRORORRROROOORROOOORROORRROROOOORROORORROOORROOOROORRROORROOORROOOOOROORRRRROROOOOROOORROOORRRROOORRRRRRRRORRROOOOOOROOOORRORRRRORRORROORROOORRRROORORRROROOROOOOORROOORRROOROOROOOROORROOROROROORORORROROROORORORRROROROOOOROROORRORRROROROOOORROROOORRROOOOORROROROROOOORRRORRRRRORROROROROROORROORRROOROOOORORRRRROROORRORORROORROROROOORRORRORROROOOOORORROOOOORRORORROROOOORORRROOORRRRRRRROORORORROROROROOOROROOORORRORROORROROOORORRORRRORROOOOOROROORORROOORORRRRRORRRORROROROOOORRRORRRROROOROOOOOOOORORRRROOOOOOOOOOOOORRRRRROOOORROOROORRROOORRRRRROORRORROROOOOORRROOROORORROOROORRORROROOORRRRRRROORORRRROOOOOROOOOOOOORROOROOROOORRORRROOOORRRRORORORORRRROOOORRORRORRORORRORRORRORRRRRRRRROORRROROORROORROORROROOOROORROROROORROROOROOOORROROROOOORRRRRRRROOOOOOOROROROORRORROOORORRRRORRROORRROORORRRROROOORRROOROORROOOOROOORROOOOOOROROROOOROOORRRROOOORRRROOOROROOOOORRRORORRRRRROOOOOOOORORRRROOOOROOORRRORRORROOORROOOORORROORRRRRRORRRORRORORORROOOROROORRRRROOROROORROOOORORROOROOOORRORRRROOORORORRROROOOOOOROROROORROORRROOOOOROOOROROORRRRRRRROOOOORROROROROROROOROROOOOROORORORORROOOOORORROOOROOORRRORORRRRROOROORRROOOROROOORRRRRROOOOOOOORRRRORROOOOOOORRRRRRRRROOOROOORORROORRORORORORRRRRROOORRROOORRORRRROROORORRRROROOORRRRORORRRROROORRROORROROROOOOROOROROOOOOORORORROOOOROROOORRROORORRROOOROOROORRROORORRROOOORRRROORRRROOOOORRORRRRRRRRRRROORORROOROORRROOORORRRORROOOOOOORORROOOOROROOOROORORRRRROOOORRROORORRORRRROOORRORRORRORROROORORRORROORRORORROOOOOROOORORRRRRORROROROORRRROROROOOORRRRRORROOROOORROORRRRROROOORRRORROROROROORRRROOOOOOOOROOOROORRRRRRRRORORRORRRRROOOROROROOOOORORRORROROOORROOROROOORORRRRROORRORROROROROORRRRRORORRRRORRORROROOROOOORRRORRROROOOOOOORRRORRRROOORRRORRORORRRROORRROOOOOROOOROROOOOOORROOROOORRORRRROROROOOORORORRRRROOOOORRORORRRRRROROROORROROOROOORROOROOROOOOOOOROROROOROOORRRROORRROROOORRROOORROORORORRRRRORORORRRRROORRORORRROORROOROROOOOOOROOROORRRROROOROROROROORORORRROROOORRORROORRRRROORRROOROROORRORORORRRROORORRRROOROOOOOROOROOOOROOROOOROOROOROOOOROROROROOORROOOROROROROOOOORRRORORRRORORRRROOOOROROROROROROOORRRRRRORRORROOORRORORRRORRRRORORRRRRRRRROOROROOOOORORRRRRORRORRORRORROORROOOORRRRRORRRRRORRRRROROROOOROROROROOROOROOROOOORORRRROROOOOROOORORORORRROROOORORROROORRRORROOOOROORRORROROROROORROOOOROORRROOOOORRORRROOOORORRRROOROOOROORROORRRRORROOOORRRRRRRORRRORROORORRORRORRROOOROOOOOOOOOROORRRORORRORRRRRRRORRROOOOOORROOOOOORRORRROOROOOOOOROROOORROOOORRRRRROOOORROOOROROORRROOOOORRRRRRRROOORRORROORRRRORROOORRRRRROROORRORROORORORROROOROROORRRRROROROOOOOOROROORORRORRRRROOROORRRROOORROORRROORORORRORROOOOOOROORRROORRRRORRROORROROOOORRROORORRORRRRROOOOORRRRROORRRORRORRRORRROROOORRROORROORRRRRROOROOROROORRROOOOROOOROOOOOORROOOORRROROOROORRRORORROOOROROORRROROORROOORRRRRROORROOORRRROOORRRRORROOOOOOOOORORROOOROOOROROOROOOOOOORRROORROOOORRORRRORORORRRORRROOROOORORRROOROROOORORRROOOROOORROOOOOOOOOROROOOORORORORORRROOROOORRROOROOOORRROOORROORRORRRRROOOOORORRROOOOOOORRORRRRROOOOOORROOOOROORRROOORRROOROOOORRROOROOOORROOOROOORRRORORORRRORRRRORORORRORORRROOROOORRRORRORRORRRRRRORRRRORROOROROORROORORROORRORROOROOOROOOROOOOROOOOOROROOROROORRRORORORORRROORRROOOOOOORRRRORRORROOROOOOORRRRRRRRROOOROOOORORRORORRROOOOOOORRRRRROOORROOOOROOOOOOOOROOORRORRORRORORROOOOOORRRROOOOORROORROOORORRORRRROOORRORROOORRRROORORORRORRRORROORROROORRROROORRRORORROOORORRRORROORROROOOOROROOOOROORORRRRRRORRRRROORRRROOOORRROORROOOOOOORORROROROOROORRRORORORRROOORRROROOOOORORORRORROOORORROROROOOROOORRRRRRRRRROROROROOROROOORRRROORRRRRRRRRROORRRRROORROOORRRRRORROROORORORORRORROOOOROOOOOOROORRRRORRRRORORORROORORRROOOROORRORROORROROROOOORRRROOROROOORRORROOOROOOROOORROROORRRRRORORROOOORROROROOOOORORRROOOROOOOROROROORORRRRORRRORRORRROORORORRRRRROORROROOROORROROROOORRROOOOROOROROOOOROOORRORRRRORORRROOORORRROROORROOROORROROOROOROOORRORRORRROOROROOORORRROORRRROOOOORORRORRRORROOOOOOOOOROOROOOORRRRRRRORRRORROOOROROROOOROOORRORRRRORROOROORROORRRORORRROOOOOOOOORRORRRRORROOOOOOROOROOORRROOOOROOROORORROOOORRRRROROROROOORORORROROOORROOORRRRRRROORROOROROOOOOROOOOOORRORROROORRRORRRROROROOROROOORROROOORRRORRRORRROORROROOORRROROOORRRORRRORRRRRROOOROOORROOOOORRRRRROORRRRRROOORRRROORROOORRRRROOOORRRRRRORORORRORRRRRRRORROOORRRRRRRORRRRRRRRRORRRORROOROOOROORORROORROOROORORRRRORRRRORORRRRORROOOROROOORORRRROOOORORRRORROOROORROORROORRORRROROORRORRRRROROROORRRRROORRORRORRRORRRRROORROOORRORORRRORRRROOROOORORROOORORORRRRRORROORRROOOOROORROORRRROOOROORRRRRROOROROOOORRRROOROORORROROORRORRRORROOOOROOROOORROROORROROORRRROOROOORROOORRRORORORROOOOROOOOORROOOROORRORROOORRROROROORRROOROROROROORORRROOOROOOOROOOOOROORROOOROROOROOROOOORRRRROORRRROORRROOOOORRORROOORRORROOOROOOOOROOORRROORRORRROOOOROORRRRORORORORORROOOOORROOORROOOROROOOOORROORROROOORRRRRORROOORORRRRROOROROOROOOROORORRRROOOROROROORRRRRROORROORRROOROORRROOORROOOOOOOOOOOOORRRRROOORROOROROORORORORROOORRRRRRRROOOROOOOROROOOORRRRROOOOOOOOROOOROOORRRROOORRRRRRRRROOOROOOORORORRRRRORRRORROOOOOOOOOOORROORROORORRRORROOROROROOROROROORRRRRORRORROOROROOOOORORRRRORORRRRRRORORROOORROOROOOOROORORRRRRRRROOORROOOOORRORORORRROROOROORROROOOOOORRRRRRORROOROOROROOROORROOOORRRRORRORORRROOOOOROROOORORRROORROOOOOROORROROOORORRORROORORORROOORROORROROOORROROOOOORRORRORORRRORORROOROOOOORORRROOOROORROOROROROOROOORRROOOOROOORROOOROOORROOROOORRRRRROOORORROORRRRRRORROOORRRORRORRORROROORRROOOOOOROOOOROOORROORRORRROOOORRROOORROROOOORRRORRROROOROROOROORRRROROOORRROROROORROROOORRRRRORROROORRRRROOORORORRRROOOOOROOORRORORRROORRRORROOROOROROROOROORORRRROROROORRORRRROORROROOOORROOROOORRRROROOOOORROOROORRRRORRROORRRRRROORRORORROOORORRORROROOORORRRRROROOOOROORORRROROOORRRROROORORRRROOORRRORORROOROROOROOROOOOROROOORRRROORRORRROOORRORROOOOOORORRRORROORRRORRROOORORRORORORROORORORROOROOROOROROOROOOORRRORRRRORROOOOORROORORRRORRRROORRRRRRROOROROROOROORROOOOOOOORRORRORORRRRORROOOORRRORORORORROOOROORRORROORORRORROROOOOROROORRORORRROORRROROOOOOROORRRROOOOOOROOROOOROOOROROROOORRORROOOORRRROOROROORORRRRROOOROOOOOROOOOORROORRRRORORRORRRROROROORRROOOROOOOROOROOOOOROROOOOORORROROROOROOOORROOORRRRRROORORRRRROROORROOORRRROOOORRORROORRRRRRROOORORRRORROOOORROROOORRORRRRORORRRORROOROOORRRRORORORROROOORORROROORROOORRORROOORORROOORRRRRRROOOOOORRRROOROROROROOORRRORROOORRROORORROORORRROORRORRORORRROOOORRRRRRROOROROOORROOROOROORORRROROORORRROOOORORROOROOOORROOROROOORORRRRROROOOROROOORRRRRORRORORORRORROROORRRROROOOROORRORRRRRRORRRRRROOOOOROORRRRROOOORORRRROORORRRROOOROOORRRRRROOOOROOROOOROOROORORROOOOOOOOOOOOOROROOOROOORRROROOROORRROOROROROOOORRRROROORORROROROOROROOOOROOORROOOORORRORROORROOOOORRROOOORROORRROOORORROOORRROOOROOOORRRORORRRRROORROROROOROORROOORRORRRORRORROOOOORORORROOOOOROROORORRRRORROOOOORORRRORRROORRRRORRRROORROROROROORRORORROOROORRRRRORORROOROOOOOROORRRRROOROOOOOOORRORRROOOOROROROOROOORROOORRORRORORROOOORRRROROROROROOORORORROORROROORRORRROOOORRRROOOORORROOROOORORRORRRROOOROORORORRRRRRORROORORRORRORRRORRROROROOROORRORRRRRORORROORROOROOOORORRORORRRRRRROOOROOORROOOOROOOORRORRORRORRROOOROOOOOOROOROROOOOOOOOROOOROOOOOORRROORRRORROOORRROROOOROOORRROOOORRORROORORORRRRRROOOOROOOOORORROOOOORRRRRORROORORRORRROOORRROROROROOROOROROROOROOOOROROROOORORRROOROOORROORRRRRROORRROOOORORROOOROOOROORRRRRRRRRRRRRROOOOROROROOORORORRORRROOROOOOOOORRRRORORRROROORROORROOORRROROROOROOORRORRORRRRRRRRROROORORRRROORORROROORRORORROROOOOROOOORORORRRRRORRRRRROORORRROOOORORROORROROOOROOOROOOOOROOOORRROOOORROORORORROOOOORRRORORORORORORORRROROORROOOORRORRORRORRRROROOOORORROOROOORROOOOORRORRRRROOOOROOROOOORRRORROOORORRRRRRRRRORORORRROOOOOOOOOROORROOROOOOROORROOROOOROOORRRRROOROROROOOROROORRRROOOORRROROORRRORRRROOOOROOOOOOOOORROOORORORROOROORROOROROOORRROOOROROOOOOOORRRRRRRORRRROORRRROOOORORROOOROOOOOOORRORRRRRRRRROOROROORROOORRRORORRORRORRORRORROROORROROROORORRROROOOOOORORRORORORROOROORROOORRRROOORROOOOORORRRRROOORROOORRORRRROORORORORRRRORRORORROOOORORRORRRROORRORORROOORROOOOORORRRROROORORROOOOROROROOORORORRRROORROOOORROROOOORORORRRRORRORROOOOOROOROOOORROOOROROORORROORRRRORORORRROOROROROOROROORROOOOOROOROOOOOOORORRROORORRRORRRRRRORORRROORRROOROORROROOOROOROOROOROOROOOOORRRRRRRROORRRROOROOORROOORORORROOROORROOOOROOORRROOOORROROORROOORORROORROROROORROOORROOROORORRRROROROORROOORROROOOROOOORRROOROOOOROROOORRROROORROROROORROOOORRROOOORRRORRRRRORRRRRRRORRROOOOOORRRRORRRRORROOOOROOROROORRRORRRRRRROROORROOOORROOROORRROOOROOOOOORORORROROROORRORORORRROORRROOROOOOROOOOOORRRRORROORROOORORORRRROORRORRRORROORROOOOOOROOOOROOOORRRRORROOORORROOORROORRROOORRRRRRRRRROOORORROOOOROROORRROOROOROOROORRORRRRRRROORROOOOOORRROORROOOROROORRRORRROROROROOROORRORRROOROORRRRRORROORROROROOOROOOOOOORRRRRRRROORORORORRRROOOORROOORRORROROORRRROOOOROORORORROROROOOORORRRRORROROOOOROORORROOORRRROORRRROROOROORROORROROOOOOROORORRORRROROORRRRROROOOOORRROROROOROROORROROORRROORROOORORROROOORRROOOOOROORRORORROOORORROOOOOROOORRRROOOROOOORROOORRORRRROOOROROOROOOROROROROOOROORRRORRRROROOOROORROOROOROROOORRORRROROOOORRORORRROORRORRORORRORORRRROOROORRORRRROORRRORROORORRRROROROOOROOROOROOOROROORRRRORORORRRRRORRRORRORORROORRRRRRRRROROORORRRROOOOORRRRRRORROROORORROOOOOOROOOROROORRRRRORRORORORROORROORORORORRRRORRORORORRROOOORROOORORORRROOROROOOORORORORORORROORORRRRORORORRROOOROROOOORORROOOOOOROROROOOROOORROORRROOORROROOORRORRRRROORRROOROROOOROROOOORRROOROOROORRORROORRROOORROOORRRORORRROOOOOOROOOOOOOOOROOOROORORRRRORRROOOROROOORRROORROORROROOOORRORRROORROOOOOROOORORORRRRORORROOROOOROORROORORORRRORROROORRORRORORORRORRROROOOORRRRRRROOORROROROROORRORRROORRORROROORRROROORRORRROROOOOOROORROOOORORROOORROOOOOROROROROOOOOORRORRRROOORRROOOORORRRROOORRRRROROOOOORRRRRROORRRORRRRRORRORROOORRROORRRRRRORRRRRRRROROOOROORORRORRORRORRORRRRRRROROOORRORROORRROROORRRRRRORRORRRRRRORRRRRROORRRROORRORROOROORRORROORROOROROOROOROORRRRRORORRORROOORORORROOOROORRRRRRRRRRRRRORROROOOOROOOOOORRORROROOOOOOOORROORRRORROORRRORRORORRRROOORROORRRROOROOOROOOOOORORRORROORORORROOORROOORROOORRRROORROOOOOOOROOORRRROOROOORROROOOROROROROROOROOROOOORORRROROOOROOOOORROOOOOORROOORROOOOORRROORRORORRROOORRRRRORORROOOROOROORROOROORORORORROROOROROOOORORORROOOORROOROOOOOOOORORRRORROOROORRROROOORORROOORORRROOOROORROOOOOOROROOOROOOORORORRROORRRRROOORORRROOORROOOROORRORRRRORRORROORROORRRRRROOROOOOORORROORRRRROORORORORROROORRROOOOROORROROORRRRRORRRRROROROORRRRRROORRORORROOOOROOROOOORRROROORORRRRROOORORORROOOORORRORROOORORROOOORRRROOORORORORORRORRRORRORORORRRRRROORORROORORROOROOROROROOOOOOORRRORRRROORROROOORRORRRROOOROOOOORRORROOOROORRRORRRRORRRRROOORRRRRORORORRROOROROROOOOROORRROOROOORRRRORORRRROROOOOROORROROROOOOROORORORRORORORRRORORRROOOORRROOOROOOROOORRROORORROOOORRRRRRRRORROOOOROOROOOROOOORRRORROROOOOOOORROORRROOORRROOROORROOORROOORRRRROOROROOORORORROOROROORORORROORORORROOOOOROOROROOOOORRRROORORRRRRRROROROOORORRRRRRORROOORORRROOROOOOOROROORRRRRRRORRROROOROOOROORRROROOROORORROROOOOOORROROORRRRRROOROOORORROOORRROOORORRRORROOORRRROOORROROROORORRRROORRRORRRORRORRRORRRRORRRROORRORORROOROOROOOOORRORRRRRRROOOOOOOROORRROORORORROOOROORROROORRROROROOROROOOOOROROORRRRRROOOORORRRROOROROROROORRROROOOOOROROOROORORROORRROROOROOORROORROOORROOOOROOOOOOOOORRRROORRRORORORROOORROORRROOORRRRRRRRRRROROOOOORRRROOOOORRROOROOOOOOOOOROOORRRRORRRORORROROROORRROORORRRORORROOORORRROROOORRRRROOOORROOOOROROROOOOOOROOROOROOORRROORORRRROROROOOOROORROOORRROOROROROORROOROORROORRRRRROORROOOOROORORRORROOOOORRORORROOOOORRRRRROOOOOROOOROOOOOORRORORRRRRRRROROROOOOROOORRROOOORRROORRORROOORROOOOORRRORROOOOOOOOOROOOOOOROOORRROOROOOOOOOORRROOORRROORRROOOOROOORROORRROORORRRORRROORROOORROROORRRORRRORRRRRRORROROOROROOOOORRORRORROOROORRORROOROORROROROOOOROOORORORRORRRRRRROOOOOROROROROROROORRORRRRRRORROOORORRROOORORROORROROOROORRRRRORROORROOORROORRRRRORRRROOROROROORORROORRRROOROOORRORRROOROOOOORORROOROOROOORRRORRRRRRROOOORRROOROROORROOORORRRRROOROORRROOROROOOOROORRORORROORRRORORRRROORROOOROOORRRORORRRORRORORROROOOOOROOORRRRRRRRORRROORROOROOORRRROOORROOROOOORRORRROORRRORORRORROOOOORRRRROOROORRORORROOROOOROOOOOOROOROOOOOORROORROROROROROOORRRORROOORRRRORRRRRRORRROROOORORROOOORROOROORRORROOOOOOOOOROOOOROROROOOROOOOORROOORRRROOORRROORRROOORRORORORROOORRORROROORORRRORORORRRRRRORROROORRRRORORRRORRRRRRORRORROOOORORROORORRRORRROOROOROORROORRROOOROROOOOOOROORRRRROROROOORORROOOORORORORORORRROORROOORRRRRRROOORORRRROROORRRROOROROROOOOOORROORRRRORROROOROOORORORORRROOOORROROOOROOOOROORRRRROORRORRORORRROROROORRROOOOOROORRORRROROORROROOORORRORORRRORRORRRROROORROROOOORORROOOOROOOOORORROOOOROOROOORRRRRROOORORROOOORORRROOORROOOROOROOOOOROROOOROOOROOORRRRROORORORROOORORRRRROOORORORRORROOOOOOOOORRRROORROROROOOORROORORRRROROROORROOOOORRRROOOOOORRRRORROORROROORRROOROOROORRRORRRRROROROORROOOOOORROORRROROOOOOOORROORRRRRROOORRROROORRRROOORROORORORRRRRRROOROOOOOROOROROORRROROOROORRORRROROORORRROOROROOROROROORROROORORRROROOORRRRORORORRRROORORRROROOOROOORROORORORORROROOOORORORRROORROROOORROROOOOROOORRRROROOORRRROORRORROORRRROROROORROOROROORROOORORROOOROORRRORORROOORROOOROOOOOOOORORRROROOOOOORROOROOROOORRROORRRORROOORORRRRRROOORROOOROROROORORRROROROOROORORORORORORROORORORROROOOOROOOROOOOOROORRORRROORROROROOOOORROORRROORRRRROOROROOROOOOORRRRORORRORORROORRRORROROOOOORRORROORROOOORRORORROOROOROROROORORRROROOORRRRRRORROORRROOORORROOROROROROOOOROOOOORRROOORRORROOROOROOOORRRRROORROROOORRRRORROORRRROOOORRORROORORORORRORRORORRORRRRROORORRROOROROOORRORRROOROOROOROROORROROORRORRRRRORROORORORRRRORRORRRROOORROROORRORROROOOOOORORRRRRROORROROOORORORRRRORROOOOROORROOOROOROROOROOOOORORROOOORRRORRROOORRORRRORORRRORROROOOROOOOROOOORROORRROROORRRRRORORRRROOOORROOOOOROORRORORRORRROOOOOORRRRORORORORORRORRRRRORROORRROOOROOORROOROOOORRORROOOROROOOROROORRRRROORROOROOOOOORRORRROORRROOROOROOOOORROOOOORROROOOOORROROORORRRORRORRRRROORORORRRRORRROOOORRROORORROORORORRRORROROORORRORRORORRRORRROORRORRROROOOOROORROROOROORRRRROROOOORRRRORRRRORROORRORORORROROOOOOOOOOOROOOOROOORROOROROOROORROOORRROOOOORROOROORROROORROOROOOROORORRROORRROROORRRROORRRORROORRROORORRRRRRRRRORROROROORROROROORROOOOOOOOOOOOROOOOOORRRORRRROROOORRROOOROOORORROOORROROOOORROORRORRRRRROOOOROOORRRRRROOOOORRRROOROOROOORROOORRRORROORRRORRORRRROROOOOOROROOROOOROROOOORORRORROOROORRRRORORRRORROROROOOROOROOOORRRRRRRRRORRORRROOOORRROOOOOORROOROOROORRRROROOORORROOOORRROORRRROORRORRORROOORORRRROOORROOOOROOOROROORROROORORRRRROROORROOOORRRRORRRORROROOOORORRORRRRROORROROOROORRRRRROOOOOOORRORRORRRRROOOROOROORROROOORRRORRRROOOOOOORROOOROOOOOOORRROROROOOORRRORRORRRORRROOORRRRROOORRROOOROROORRRRRORRROROORRROOOROORRRORROROOROROOROORORORROOOOORROOOROORORORROOORRRRRROROOORRROROROOOROOOOOORRRRRRRRRRROOOROOOOROORROOORRROOROOOORORRROOOOROROOORORROORORRRROROOROORORORROORRORORROOOOOOOOROOOROROOOORROOORRRROORRROOOOOOORRRRROOORRRRRORRORRRORRROROROROOOROOORRORRRRRRRORRRRRRRRRORORRROROROORRRORROROROOROROORORRORROOROOORRRRORORORRROOOORROORRRORRROORRORRROOOOROORRRORROOROORRRROOOOOOOROROROOOROOOROOOOORRRORRROROOORORRRROOOORRRRRROOOOOORRRROROROOOOOOORRRRRRRRRROOROOOOOORROOORORORRRORROOOOOOROORRROOOOOORORORORROOOOORRRRRRROOROOORRRROOORROOROROOOOOROOROOOROROOROOROROORRRORRROOOROOROROROORRROROOORORROROORRROOOOROROROROORORROROOOOOROOROORORORORRROORRORROOOORRRROOOROOOORROROORORROOOOORRRRORROOORRROOROOOORRROORRROROOROOOORRROORRRRRROOOROOORORRRRORRROROORROORORRORRROROOORROROORORRRRRRRRORRRROOROOOORRRROROROOOOOOOOORORRRRROORRROOOROOOOROOORROORRORRORRRROOROROROOORROOORROROORRRRRORROROORRORRROORRROORROOOROORROOROOORROROOROOROOROROOORROOROOOOROROORRRORRRORORORRRORRROOROOORORRRRRRRORROOORORORRRRRROORRRRRORRORRRRORORRROORRORROROOOOORORORROROOOROROORRORRRRRRROOOORORRORORORORRRRORROOROORROROROROOOORORRRROROORRORRRRORROORORROOORROROOROROROOOOROORROOROOOOORRROROOOROORRORRRORORRRROROOORRORORRROROOOOOROOORORORROORRROROORRORROROROOORROOORORRRORRORROOOOOROROROOOROOORRRRRROROORROROOORRROROOROORRROROOROOOORRORRROOOOOOORORRRORRRRROORROROORRRRROOROOORORRORRORROROOOOROROOROROOOORRRROORRORRRRORORORRRRRROORRROORRORORORRORRRORORRRRRRRRORRORRRORROORRORRORROOOOOOOORRRORRORROOROORROOROOOORROOORRRRRRRROOOORRRRORROORRRORROOORORORRORORORRORRORROOOROROORORRORRRRRRROROORRRRRRROORORRORRRRRORRRRORRRRORORRORRROOROORRORRROOROOOROOOROOOOOROORRRROOROOOOOROOORRRRROROROROOORRORROOORRRROROOOOOOOORORRRROROOROORROOROOROOOROOORROOROORRORORRRRORORORROOOOORROORRRROOOOROOOROOORROORORROOOOORRRRRRRROOROROORRRRROOOOOORORORORROROORROOOORROOROORRROROOORROORRROOROOOROROORRROORRROROROORRROROROOOORRRROOROORRORRRRRROOOORRRORORORRORRRROOOOROOROORRRROOROOOOOOROORRORRRROORRRRROOROOOOORRROOOOOROOORORRRORORROOOOORRRORROORRRORRRRRORROORROROORRRRRRRRROORRRORRORRRRRRRRRORRRRRROOROOOROOROOOOROOOROOROOOOORRRROOORRRROOORRROOORROOOORRORRORROOOROOROORRORROOROOOOROOOROOOOORRROOOOOROORRROORROOOORORRROORRRRRORRRORRRRRROORRRRORRRROORRORROOOOORRORORROOORORRORRORORRROORORRRORORRRRROROOOOORORRRORROROROORORRRORRORROOOOOOOROORRRORRRRORRRRROOROOROROOORROOOROORROROOOOOROOOOORRORROOROOORRORORRORORRRRRROOOOOOROOOROOOROOROORRRRORRRRRRROOOOROROOOORROOROOOOOORRORRRORRROOOORROOOROOOOOORRROOROOORORRORRRRORRRRORORRRRORROORROOOOROOOOOOOOOOOORROOROOOROROORRROORROORRROOROOOOORRORORROROROROROOOROOOORROOOOOROOOOOOORROROOOORORORORORROORRRRORROOOROOOORRORORRRRRRORRRORRRORROOORORROORORRRRORRORROORROORROROROROORRORROORRROROORRRORRROROOROORRRROOROOOOOORORRRRROOROROROOOROOOORROOOOORROROORORORRRRORRRORORORORRROOOROORRRRRROROOOROOORORROOOOORRRORORRRORROORRROOORRORRROOORRORROOROORRRRRORRRROOROORROOORORRRROORRRRORROROOROOOORRRROORRORROROROOROROROOOOORRROROOOROORROROOOOROORORROOORRORORRRROROROOOOROOOORROOOORRRROORRRORRRROOORROROROORORORRRORRRRORRRRRRROOROROOOORROOORROROOOOOROOROORORROORRROORRRROORROOORRORORRRROOROOROORROOROOOROORRORRROOROORRROOOOROOORROOOORRRRRORROOORORROOOORROORRORROROOROOOOOOROORROOORRROORRORROROOORROOORRRROOOOOROOROROOORRORRRORROOOROOOOORRROROOOOORRROROOOOROORRRROROROROOOOORRRRORRROROROOOOOOORROORROOROOOOOOORORRRROROOORRRRRRORORORRROOROROOOORROORORROOROOOOOROOROORROORORORRORRRORRRORROOOROROROOROROOOORRRRRRRORRORROORROOROOORORRRORRRRRRRRRORRRRRRORRORORORROORORRORRORRORORRRRORROROOOOOROROOOORORRRRORORRORRRRRROOORRRROROOROOOOOOOROROORORRRRRORRORRRROOOORRROOOOROOORORRRROROOROOOOORRROORORRROROOORRORRROOORORRROORRROORROROORRRORROOOORRROOOORRRRRRROOROOORRRRORRROOOROROOOROOROROOORRROOROOROROOOROORORORRROOOOROOROOORRORRRROOORROROOOOROOORROOOOROROOOOOOOOOROOOOOORROOOROROOORORRROROOORRROORRROOROROORROOOROOORORROOOOORRRRORORRROOOORROOORRRRRRRORRRORORRRROROOOROORORRRRRROROOOOORROOROOORORRORORORROOROOORROOORORRRROOOROORRROROORRRRORROROORORROORORROOOOOOROROORRRRRRORORRRORRROORORRROOROORRRORRORRROOOORRRRROORRORRRRROOOOORRRORROORRORRORRROORRORROOORRRRRRROORRRROORORRRROOROROORRRRRORROROROOOORRRRORROROROOOOOOORORRORORRROOORRORORRRRORORORRRRRORRRROROORRORRRRORRRRORRORRORRORORROOOROOOROOROOOOOOROOOORORRRRORROROOORROORORORORROOOOOORORROOOOROORROROORROOOOOORORORROORRROOORRRRRRROOOORRROROROROORORROROROORRORRROOOROOOOORORRROROORRORROOROOROOORRROOOROOOORRORORORROROROROOOROORORRROOORRORORRRORRRROROORORRROOOOOORRRORRORROROOROROOORORRRROOORRRORORROOROORRRRORORRORROROROROOORORROOORRRRROOOOROOROROOORROOORORRORORROORORORORROROOOOROOOROROORROROOORROROOOOOROOOOROROOORORROOOOROORORRROORORORORROOORRRORRROOROROOOOORROROOOORROOOOOOOROOOORORORRROORORROORRRRROOOORROOORROOOROOORRORORORRORROROROORRROOOORRORORRORRRROOROORROOORROORORORROORRRORRORROORRORRROOOOORORRORRROOOOROOOOOROORROORRROOOOOOORORROOORORRRROOOOOORROOOORRRORROORRROOORRORRROOOORROOORROOOOOORRORORRRRRORROROOOOORRROOORRROOOORORRORROOROORRROOORROOOROOORRRORORRORRRRRROORORRRRROOOORRRRRRRRRRRORRORROOORRRRRRROROOROOOOROOROOOOORROROORRORRORROOORRROORRRROOORRRRORRRRRORRORRROORORORROROROROORORROORORRRORRRORRRRRRRORORORORRROORROORRORRRRRRRRRRORRORROROOROROOROOOOROOROORORRROORROROOOOOROORRROOOORRRORRRRORORROORORORORORRORORORRRRORORRRROROROOOOOOROOOOROROOROOOOOROORORRRRORRROORRROOOOORROOORRRROOROOROOOOOORORROOORRRRRRRORROORROOORROORROROOOORROOOROOROORRRRORORRROORRRROOORRRROORRRROORRROORRORROOROROROROOROROOOOOROOROROOOOOORRROROOROROROROROOOOROROOORRRORROROROORROOROOROROORORRROORRRORRRRRROORORRROORORORRRRRROOROOOOROORRRORRORRORRRRORRORROOOOOORROOROORRRRORRRRRRRORRRRRORRROORORROOOROORRROOROOOOROORRORROOOROORRROROOOOORROORRRRRRRROORRRORORRRRRROOORROOOOOROOROORRRROOOORORRORORORRORORORRRORRORROROROOOROOOOROROROOOORRRRORRROORORROOOOROOOORORRRORRORRRORRROORORRROROROROROOOOOROOROORORROORORROROORORROOORROORRORRRRORORROORORORRORROOOOOORRRRORRROORRORORORORROOROROOORROORRRORRRROROOORROOROROROROROROOOOOORORROOROROOORRORROROOORROOORRRRORROOORROOORRORROOROROORORRORROOROORRORRRRRRORROORROROROORRORROOOROROOROORROORRRORROORRRRRORRRORRRRORROOROROORRRRROOROORRORRORRRRRORRRROORROOROOROORRRRROOOOOOOORRRRORORRROOROOORRORRROROROROROOROROOORROOORRRORRROORROORROOROORRORRRRRROORRRORROOOROROOROORRROROOROORORRORRRORRRRRRROOORRORRROOOOORRRORRORRRRRORROORRRROOOORROOORROROORROOORORRROOROORROOROOOROORROORRROOOORORRROROOORRRROROOORROOOOOOORRROOROORROOOOOOORORORROROOOORROOORRORROROROROROOROORORRRORORROOOOOOOORORORRROOROROOOORROROORRRRROOOOOOOROROROOORROOOOOROOOOOOOOORORRROROOOROROORRRRORRRORRROORRRORRORRRORRRRROORRORROROOROOROORRRRORRRORRROROROOOOORORRRRORORRRRRORRORORRRROROOORROROORORRRORRORRRROROOROROOORRRORRRORORROORRRRRRRORROROORORROROOROORRORRRRRRRROOOOORRRORORRORRROOOORRRRRRROORRROOOROOOOOORRRRROORRORROOOORRORROOOOORRRORRORRRORROORROOOROOROOOORRRRRRRROOROOOOOOORORORROORRROOROORRRRRORORORROOOORORROOORROOOOOOROORORRRRRORORORORRORRORRROORRRROOROOOORORRRORRRRRORRRRRORRORRORROOORROOORORRORRROORROOOOORROOROROOOORRRRRRROROORRRROOOOROOOROORRROORRRORROOOROOROORRROROROOOROOROROORROOORRROORRRRRROROORRRROOORRRORRROOOOORRRORRORRROORORROOOOOOOROOOOROROORRROOROORROORRRROROOOORROOORRRORROOORROROROORRORROOOROOOOROOROORRORROORRORRRRORRROOORRROORROORROORRRORORRORRRRROOORRRROORRRORROOROOOORRRORRROOORRORRORORRRORRROOORROOROROORRROROROOROOROOOOORRROROROOORRORRORORRRRROORRRROOROROOOROROOOROORORRRRRROOOOOOROOOORORRRRROORRORROORROROOOORROOOORRRRRROROROOOOOOROORRROOOOROOOROORRRROROOOROORROOOOOOROORORORRRRRRRROROOROROORROORRRROORROOOOROOROOROROOROROOORROORORRROOOROOORRRRROROORRORORROOOOOROOOORORRRRRRRROOOROORORRROROROORRROROOROORORROOOORRORRRROROROOROOOOORRRORROOORRROOROOROORROOOORORORRORORROOOOORRRRORRROROROROOOOROORRRRROORORROOROORORRRROOORRRRRORRORROORRRROORRRRRRRRROOOORORRRRROORRRORRORORRORROOOORRRRRORRORROOOORRRRORROROROOORROROOOROORRROOOROORRRRRROORRRORORRRROROOROOOORRRORROORORRORRRROOROORRRORRRRORROORRRORROROOORORORRRRRRORROROOROROORRORRRROOROOOOOOOOORRRORORORRRORROOROORROOORROOORRORRRORRRRRRRRROOORROROROORRROOOROORRORRRRRRROORROROOROROOORRRORORRRRRRRRORRRORRROOOORORORROROORRORRORROOROOOROOORRRRORORORRRORRRRROORRRRRRORORORRORRORRRRROROORORRRRROORORRROOROROOROOROROOOORROROORRROOOOOROROOOOORRROROOOROROOOOOOORRRROROORRRORRORRROOORROOORRROROOROOORRORORROOROORRORRROOORRRRORRROORORRRRORROOOORROROORRORROOROOOOOOOOORRORROOOOROOOROOOOORRROOORRRRRRRRORRROROOOORORORRORROORRRRORRORORROOOOROROOOROORROROOROOOROOOORROROROOOROOOOROORROOORRROOORRROROOORROORRRRORORROOOOOROROOOOORROOOOORRRROROOOORROOOROOORRRRORRROOORRRRRORRROORRRROOORRRRRRRRRROOROORRRORRORORRRROOOROOROOROOOROOOROORRRRORRORROOOOORRRORRROORRROOOOOOOROORRORRROOROORRORRORRORORRRROORRRROORORORRRORRORRRRROOORORRRORORRROROOOOOOROOOROOROOORORROORORROROOOORRRORRRRROORRRRROROROOOOOROROROORRRORRORORROORRROOORRRROOOORRORROROOOROROORRRRROOOOOROROOOOOROOOROROOOOROOROOORRROOROOOROOOORROROOOOOOORRROROORORRROOOORRRROOOORROOOROORORRROOOROOOROOOOOORRRRORORROOOORRRROOROROORRRORORRRRROOOOORORRORRRROROOORORRORRORRROOORRROOROOOOOORORORORROOROOOOORRRRORORRROOORROOORRROROROOORRRRORRRRRRORRRRROORRRRROROOOROOOOORRRRRRRORRRROOROOROOOORROOORRORRORRORROROOORROOOORRRORRROROOOOOROOOORROOOROOORRRRRROOORROORRROROOOROROROROOOOORORRROOROROOROORRRRRORROORRROORORRRROOORRRRRROOROOOROOOROOORRORRORRROORORRRROORRROROROOORRRRORRRROROROOROOROROORRROOORRRORRRROORRORRROORROORRRRORORRORRROROOORROORRROOROROOOOORRRRRORRROROOROOOROORRRROOORROOROORORRORROOOORROOOROOORRRORRRORORRRRROOROROROOORRROOOOOOOOOOROOROOOOORRRROROOROOROOORRROROORRROOORRRRRRRROROOORORORORRRROOROOOROOROOORROORRRORORROOROORRORORROOOOOOROOOROORRRORRROROORORRRRRORRROOORRRRORRORORROORRRRORROOOROORRRORRRRORRRRORRRRRRRROORRRORORRORRORROORORRRRRRRRRORORRORROOROROOOOOROOOOOOOOOROOOOROROORRRROROOOORORRROOORORRROORORRRORROROORRROOOOOORRRRORORORRRORRRRRRRRORRROOORROROOORRRRORRRORRRROROOOOOOOOOOORRROOOOOOOOROOROOOROROROORRROROORRROORRROORRROOORRRROOORORRRRRORROOOOOORRRROORROROOORRRORRORRRRROOOOROOOORRRRROROROOROROROOROROOORRROOOROOROOOOOOORRROORRRORRRORRORRRORRROOORORRRORRROORORRRRORRRRROOOOORRRROORORRRROOROOOOOROOOORRROOOOOOOORRRRRRRROOORRROROOOROORRROORRROOROOORROOORROROOOROOOROOORROROROOOOROOOOROOOORRROOORRRRORRROORROOOOORORRROORORRROROOROROORRORRRRROORROOORROORORROOORRROOROROOROORRRROOOOORRRRRROOOOOOROROOOORRRRRRROORRORROROORRRORRRORORORROOROOOROORRORORORRRRORROOROOOORRRROROOOROORRRRORROROOOORORROORORRORRRORRRRRRRORRORRROOOOOORROORORROOOROOROOOROOORORORORORRRORRRRORORRRRROOOROOOORORORORROROOORRRRORRRRRORROOOORORRROOOOOOORRORROROOROOOOOORRRRRROROROOOORROORRRROORRRRRRORROOROROORRRRORROOROOORRORRORRROOOROORRRRORRRRROOORRRRROOROOOORRORORRRROOROORROOOOOOROROOORROORRORRRRROORRRRROOOORROOORRRROOOOOOOOOOORROROOORRRORORORRRROORRROORORORRRROOORORROROORORRROOROOOOOROOOROOORROOROROORORRORORRROROOROROOORROOOROROROOORORRRRORROROOOOORROROROORORROORORROROROOOORORORROORRROORRRROORRRORRRROORROORRORORRORORRRROORORRRRRRRRORRROORROOORROOOROOOOOROOOOROORORROOORROOOORRRORRROORRROOOORROORROROORRROORORORRROOROOORROORRROROORRORORROOROOROOOORRRORORRRRORRRRROOOOOOOORROOORRRRRORRORRORRORORRROOORRRROOOROOROROORRORROROROOROOORORRROOOOROROOORORROROOOOOOORROOOOOOROOOOROOOOOROOOOORRROORROOOORRRROOOOOORRROROOORRRRRORROOORROOOORROORRORROOORRORRORROOOORROROROOOROORROROROOOROORROOOOROORORROOOORRRORRRRRROROORORRRORRRRORORRRRROROORRORROOOROOROORRORROOOOOROOOOORROORORORROOOROORROOORROORROORROROORRORRROROOORROOOORORORRRORROROROOOORORRROORORRRORROORRRORRRORRROROOOOORRRRRORRRRRRRRRRRRRROROOROROROORROORROROROOROOROORROOORORORRROORORROOOROROOOROORROOORORRRRROROOOORROOORORRROOOOORRRRORRROOOORRRRRROOOORROOOORRROROOOOROROROOOOOORROOROOORRRORORRROROOORRROROOORORORROROORRROOROOROROORRORRROORRORROOROROOORROOOOOOORROOROOOROOROOORRROOOROOORROORRORORRROORORRROROORRRRROOORRRORROROOROOORRORRRROROOROORRORROORRRRORROOOOOROOOROOORORROROOOROORORRORORRROROOOORRRRRRROOOORRROROOROROOROORORRRRRORROORRRORROROROOOOOOORRRORRRRROROROOORROROOOOOOORRRRRRRRRRRRROROORRRRRRROOROROROOROOROOROORORRORRORRRROORORRRROORRRRORRRORRROORORRRROORORROROOOOOOROOROOOOORROOOOOORROORROROROROORRRORORORRROOOOOROORORRRRORROOORROOROOOOOOORRROOOOOROORORROORRORRRROOORROOOOORROOOORRRRRRORRRORRRROOROROOORROOOOROOOOOOOOOROOROOORROORRROROOORRROOORORRRRROORRRORRROORRROOOROOROOOORRORROOOROOOOORRRRROOORRORRROROOROORRRORORRRORRRROORROROORORROORRRRRROOOOOOOOROOOROOOOOORROROOOOOORROOORROOOORRRRROROROOORRROORORROOORROOORRRRRRRRRRROOORORORRRORORORRRORRRRRRROROOORRRRRRRRRRORRRORROOROORRROORRRORRRORROOOOROOROOOROORRRRROOOOOROORRROOOROOORRRROOOROOROROROROORRRRROROOOOROOOORRRRORORRRROOOROOROROOORRROROROORRROROOROOORROOOROOOROROOOOOORRORRRROOROROOROOOORORRRROOORRROOOOOORORRRRRORORRRROROOORRROOORRROORORRRRORROOROOORORORRROOOROORORRROORORROOOROROOROOROOOOROROROORRRORROOOOROROROOOROOOORORRRRRRORRRRRROROROOORRROOORRRRROOROORROOOOOOOOROOOROORRROOOROOORORORORORRROORORORRRORRROOOOORROOOOORORROOORORRRRRRORRORRROORRRROOOOORORORORRORRRRORRORRORORRRROOORROOORORROOROORRROOROOROOROOORROORRRROROROOOORROOOORRROORRRROOORORROORRRORORROOOOOOOOOOOOOORROROORORRORRORROORRRORRROOORROOOROROROORORRRROROORRRRRROOORORORRROORROOOOORORRRORROOROROOROOOORRROROROROORROROOOORRRRROOORRRRRRRROORRRRORROOORRORRORRROOORRORROROOOROOOOORRORRROROOOOORROROOOORRRORORRROROROORRROOOOROOOROOOROORRRORROORRRORRORROOOORROROROOOOOOOROORRORRORORROOORORRRRRRROOOORROOOOORRRORORORORRRRRRORROROROORRRORRORROROOOORROOROOORRRROROOROOOOOOOORRROOOOORRRRRORRRRORORORRRROOOOOOOROORRORRORRORRORRRROORROROROORROOOOOORRRRRROROORRORORRRRORORROROOOOROORROROORROROOOOOOOOORORROOOOROROORRROOROORORORRRROORRORROOOOROORROROORORRRRORRORORORROROOOROROOROORROOROORROOORRRORRRROOOOORORRRRRROORORROROORROOROOORORORRRRORRORROROOOROROORRROORROOROOOOORRRORRROORROOROOOOOROORRRROOOOOOOOOOOORROROOORRRROROOROOROORRROOORRRROROOORRRRRRRROORRROOOOOORRROORORRRORORRORROOOROOORORORRRORORORROROOOOOORORORORRROORRORRROORRORORROOORRORORRRORRRORROOOORRRRRRORRROROROOOROOOROOOOORRRRRORRORROORROORRRORRROROROORRORRRORRRRROOORRRROOROOROOROROORRRRROROROOORROOORRRROORRRRRROOOROOROROOOOROORRRRRRRRORROORRRRORORORRROOOROOROORRRRRORROOOORORRRROOORRRORORRORRORROOOORRROROOORRROOROORRORRRROORORRRORORROOOROOORRORRORORROROROOROOOOROOROORRROOOOOORORROOOOORROOORRRRRROOROORRROOOORORRROOOOORRRORRORRROOOOOROROOORROROROROROORRROOROORRROORROROORRRROOOORORRORRRORRRRROOROROOOROOOORRRRRORROOROROOOORROROOOORRRRORRORRORORORRRROROORORROOOROORORRROOROOOOROORRORORRORRRORRRORRRORORRROROOOOOORRORRRROROORORROROORORRRRROOOOOOOROORORRRORORRORRRRORORROORRROOOOROOOOOOOOROOOOORROROOORROROROROOORROOORROOOOROORROOOROOOORORORORROOOROORROOORROROOORRROROORRORRROROROORRROORORRROORRORRRORRRRORRORRRORROOOORROROROOOOORRRRRROORRORORROOOOROOORROORRRORROORRRORORORROOOORORORRROORROOROOOROROOORRORRRROOOORRRROOROORRROORRORORRRORRRROORRORRRORROOROOORRORRORRORROROROORROORROOOROROOOOROOOOOROROOOORRROOOOORRORROOOROOOROORORRORORROROROOOOOROORORRRRRROORROROOORRRRORRRRORROORRRORROROROOOOOOOOOOORROOROORRRORRRRROROOOOROROROROROORROOOROOOOROORROROOOOROORROORRORRROORROOOORRORROOOROOOROOORRRORRRRRRRORRRRROOROROOOROOORORROOOOOOORORRORRRRORORRROROORRRRROOORORRORROOOOOOORRORRRRRORRORRRRROORORROORRROOOOORORORRRRRRORRORORORROROOROOROROORORROOROOORORROROOROOORROORRROORORRRORRRRRORRRORROOOOOOROOROOOOROORRORRORRROROORRRROOOOROOORORRROROOOOROORRROORROROOROOOROOOOOROOORRRRRRORRRRRROORROORROOOORROOORORRRRRORRORORRRRROORORORORRROOROOOOOORRROROOROOORROOOOOROOORROORRRORRORRROORROOROOORRROOOROOOOOROORRRRRROOOORRORORROROROORROOROROOROORRRROORORRORORRROOROOORORRROORRORROOORROROOORORORRROOROOROROOROORRRORORORORRRRORROOOORRRRROORROROOOOROROROOROORRRRORRRRRROROROOOROROROROROOORROOROOROOOORORRRROROROOOOROORRORRRROORRROOORRORROOOORRRROOOOOROOOORROROORRORORRROOOOOOORRRORORORORRORORROOROOROROOROROOOROOOOROOROROOROROROOROORROOROROOORROOORORRRORRRORORRRRRROOORRROOOORRRROORRRRRRRRRRRRROORRRRRRRROOROROOOOOORORRORROROROOOOOOROOOOROOORRROORROROOORRROOOROROOROROOORRORRROOROOORRRRROROOORRRRORORROROOORRRROORRRRRRORRRORRORRRORRROOOROORROOROORORORROOROOROOOROOORROROORRRRORROROORRRROOROROOORRRRORORRRRRORRRROORORRROROROROOROOOOOOOORORROOORROORRRRRORRROOROORRROROOOOROROOOROOROOOROOROROROORORRRRRRROROROOOORRROORROORROROOORRRRRRROROORROOROOOROORRRRORROOROOROORRROORORORRRORRORROOROOORORROOOOOORROOOROOOOOORROOOORRRRORRROROROOOORROROROROORORORROORROOROOOORRROOROOOORROORRORROOOORORRRORORRROORRRRRRROORORROOROORRORROROOOORRROOROORROROOOROOOROOOOORROOORRORORRRRRROOORROOOOORROOROOOOROORRRRRRRORORORRROOOOORRRRORORRRORROOOOOROORRORORORORRORROROOOROORRRORROOOORROORRORRROORRORRRRORRORROROOOOOORRROOROOORRRRRRRRORRRORROROOORRORRRORRORRORROROOOOOORRORRROORORRRORROORORRROROROROOOOROOORROOORORRROORROORROOROROROORRROROOOROOROOOROOORROROOOOROROORRORORROOOORRRROOORORROOOROROOOOORRRRROOOROORORORRORRROOROOOROOOOOORORORROORROOORRORRORORORRROORRRROROORRRRORORRRORRRRORRRRROORROROOROOROOOOOOOOOROORORRORORRORORRORORRRRRROOORROORRRRRORORRORROROOOOOROORROOROOROOROORRORRRRROOORROORRORORROOOOORRRORRRRORROOOOORRORRROOROOORRRRROORORRRRORRROOROROORRORORRORROOOROORROOOOOORRROOOOOORRRRRORRRORROOOORRRROOROORRROROOROORRORRORORORORRORORRRRROROORROOOOROORRROROOOOORORRRORRROROORRRROROROORRORRROORORROOOOORORORROROROOORROOROOOOOROOORROORROOROORROOOROOOROOOORROOROORRROROROROORROORROROROROOOOROROORORRROORROROROORROOORRROOOOROROOORROOOOORORROROOORRRROOOROOROOOOOORROROOORRRROROOROROOORROROROROOOORORORROORRORROOROROORRORRRROOOROROOOORRROOROROOORRRROOROROOOROOORRRRRRROORROOOOOROROORROOORROOOOOOOROOOROROOORRORRROOORRRRROROOORROOROOOOORROOROORRROROROOOOORROOROOORRROORORRROOORROORRRROORROORRROROORROORROOOROORRRRORRRRRORRORORORROOOOORORORROORORRORRORROOORORRORRROOORRRORORRRRRRRROROORROORRORRORORROROOOOOROORRRORORRORRORORRRROOROORROOROOOOOOROROROOROOOOOOORROOROROORRROOOOORORROORRROOOORROOOOOORRORROOOROOOORRORROROOOOORORRRRRROORRRORORRORRROOOORRRRORORROROOORORRRRRRROOOORRROROORROORRRROORORRORROOORRRORRROROROOORROORRRROOROOORRRORRRRRROROOOOOROROOOORRRRORORROOOOOOOROROROROOORROOROOROOROOORRRROOOOROOOOORROROROOOOORRROOOROORRROROOORRRRROOOORRROROORRRORORRRRRROOOOOOROOOOROOOOORRORORORROROORRROROORORORRROOOOORRROOOOORRRRRORROROOOOROORRORORRRROOORRRRORORROORRROORRRROORRRRRROORRRRROROORRRORRRORORRROOROOORORRORROORORRORORRROROOOOORORORRROROOROORROOORRORROOORRRORRRORRROOOOORRRROOROOORRROOOORRORRRRORRRROOROOORRORRRRROOORROROOOORRRRRROORROORORROOROROORORRRRORRORROROORORROORROORROROOORRRRORRORRRROORROROOOORRRRRRROOROOROORRORROORROORRRORRRRORROOOOOOORRORRORORROORROROOOOOROOOOORRRORRRRRORROOOROOOOOORRRRRROOOOOOROOROROORRROROOROROORORROOOROROOOORROORORRRRROROOORRORRRRROORRRRORRRRRORORROOORORROOOOROOORRORROOROOOOOROOORROOOORRRRROOOOOOROROROROROOORRROOORRRRORORORROORROOROOOORRORROOORORRROROOROOOOOORRROOOOORRRROOROORROORRRROROROOOROROROOROOORROROORRRRRRORRRRROORRROOOROOOROROOORORRRROOROOOOOROORORROROORRORRRROROOORROORROOORROOOOOORROOOOOORRROROORRRROOORRROOOORROROROOOOORORRRORROOOOROOROROROOOOOROROROOOOOORROOOOROROROROOOOORROORROORRROOROOORRRRRORROOORRRORORRRRORROOROOOOOOOOOROOROOROOORORRORRORORROOORORORROROOORRRROROOOROOORROROORORRRRRRRROORORROROROORRRRORRRORROOROORROROROORRRROOOORROOROOORORORORRORRORRRRRRRORRRRROOROROORORRRRRRROOROOOOROOROOROOOOROROOOOORORRROORRROORORRRRRROOOOORRROORORROROROOORROOORRORRRROOOOOOORORRORORRROORROROORRORROOORORRRRORROROOOOORROORRRRRRRROOORRORROOOOROORRROORRRRRORRORRRRORRRROORRRROORRROOROOOOROOORORRRRRROOOOOROOOROOORROOORRRROROORRRORORRRRROOOOROORORORRORROORRORRRROOROORORRRROORROORRORRRORROROOORROROROOROOOOOOROORROOROORRROOORRRROROORRROORRROOROOOOROOROOOROOROOORRORRORROROORRRROROORRROROORRRORRORRRROORRROORORRRORRORRRORRORROOOOOORRROOORORRRRRRRORRRORRRROOOROROOOORRRROROORORRRRRRROORORROROOORROOROORRROROOORRORRRORROROOOROROROOOROOOORRRORRROROROOROROORROORRORRROOOORRRRROOORRROROOOROROORORRRRROROORRRROOOOOOROOOOOROOOORORRRRRROOROORROROROORRROROROROORORRORROORRORORRRRRRRRROROOOROORRORRORORROORROOOROOROORROOOORROOOOOROROOORORRRORORROORORRRORORORORORRRORRORROOROOORROOOOORRROOORRRORRRRROROOOORRRRORORORROOOORROROORORRORORRORROROOOOOORRROORORRRRRRROORROROOOOORRRROORRROOROROOROORRRROOORRROORROROOROOROOOORRORRORROORRRRROROOOOORRROROOOROOOOORRRRORROROORRRROORORROOORRRRORORROROORORORRORRORORRORORRORRORROROOROOOOOOOROROOORORRORRRROOOOROROOOORRRORRORRRORROROOROOOORROROOORRROROORRORORROORRROOORRRORRROOROOOOOROOORROROROORRORROROOROROROOORRRROORROROOOORORRROROOROOOOORRORRORRORORORORRORRORRRORORRROROOOOROORORRROOOOROROORRROOOORROOORRRORRRRROOOROROOOOOOOROROOOORRORRORROORRRRRORRROORORRROROROORROOOROOOROORRORROOOORORRRROROROORROROROOOROOOOOOORRORRRRROOORRORRRROROOOOROORRROORROOROORRORRRRRRRRROOOROROOOORRROOOORROOOOOOOROOROROOORORRRRRRROOOOROROORRRORROROOORRRRORROROORRROROOOROROORORORORORROOROROROOOOROROOOOORROORROOOROOORROROOORRRRROOORRRRROORRRROOORRRROROOROOROOOOROORORRRRRORORRORRRRROORORORRRORROOOOOROOORROROOROORORORORRORRORORRROROROORROROOOORROORROOOOOORRORROROOOORORRRROORROOROROOORROROORRORRROROORROOOOORRRRROORROORROOOROOOROROORORRRRRORROOOOORORORORRROORRROORROROOOROOOOOORORRRRORROOROORORRORORORROORRRORROOROROORROORORRRRRORROOOROOOROOOROROROOOOROROOROROORRROOORROOORRRROORRROROOORRRRORRRROOROOOORRORRRORROORROROORORRRROOOOORRRRROOOOROOROORROOOROOROROROROROORORORORRRRORROORROOORROORORROOOORROOOOORORROOOOOORRORRROORORORORRRORORRRRRROOORRRRORRROORROROOROOOOOOOOOOOROOROOROOOOOROOROROORRROOOOORRRROORORORRROORRRRROOOORRROOORRRORORORORRORORRRRORORORROORORROROORRRRORORRRRORRRRRRRROOOORROOROOROOORRRRRRROOROORROOOORROROOORROOOROOROROOORROOROOORRRRORORORROOROOORROOROORRRROOROOROORRORRRORRROOROOOORRORORORRRRROORORRRRORRRORRRORROROOOORRORROOORRORRRRRRRORRRORRROOOROORRORRROROOROORROROROOOOORROOOROORRRROORRROOOOOOROOORRRRROORROOOOOORRORROOROOOROROROORORORROOOORRRROOOOOROROORROORRROORRORRROOOROOOORRRORRROROROOOORRRORRORRROROOOROORRORORRROOORORROOROROORROOORRORROOORROROORORROOORROOROOORORRRROOORROORRRRORROOOORRRROOORRORROOROORROROOORROOOOROOROOROORROOROOOROOOOROROORRROORROOOORRROROOORROOOORRROOOOOORRORROROORORRROOROOOORRORORORORRRRRROROROOOOORORRROORORRRROROOROOOOROOORRRROROOROOOOROOOOROOORROOROROROORORORROOOORORORRORORROOOOOOROROROROORRROORRROORROOOORRRROORORROORRORROORRORORRROOOROOROORRRRROORORROROORROOOOORRRORROOOOOOOOROOOOORORROOOORORROOOOOOORRRORROOORRORRORORRRROOORRRROOOORORROOOOOOROOORORROROROORROOORRORROOORRRRRRORRRRRRRORRRORRROROORORROOROOOOROOOOOOOROOOROOOOORRRORRRORRROOOROROROOORRRORORORROROORROORORORORRROOORRRROROOOOORRRORRRORRRRROROOOROOROOOORRRRORRRORRRRORROROOORORORRRRRORRORRORROOROOOOORORROROOROOROORRRORROORRRROORRRRORRRROOROOORRORRRORORROROROOROORORROORRROOOORORRRRRROORRROORRRROROOROORRROOROORORRRORRORRRRRROROROOOROORORRRRROROOOORRORRORRRROROROORROOOOOORROORRRRRORRRRROORORRORROOOROROOORRORROROOROOORROROOOORRROOORRROORRORORORROOOORROORRRRORORRORRROOROOOOOOOROOOOOOROORORRORRROOORROOOORRRRROORRRORRRROOOROOORRRORORRROROOORROORRORRRROOROROOOOROOOOORRROOOORRORORRORRRROORRROOORRORRORORORROOROORRORORORRRROOORORROORRORROOOORORORRRRRRRRRROORRRROOROORORRRRRORORRORROOROOOOOOOORROOORRRRORRRRRRROOOOROROOORRROOORRRRORRRRORROOORRROROROROOORRRORROOOROORRROOORROROOOORROOOOOOROOOROORRRRROROORROOOROORRROOOROORROOROORRRORORRROOOORORROOOORRRROOOOOROORRORRORORORORRORROOROORRROOOORRRRORRRROOORRRRORRRORRRRRRORRORROOROOROOOROOROORROOROOORRRRRORRROROOORRROORORORRROORORRORRORRORRRROOROOOROORROOORROORORROOROOOOOORROOOOOORROOOROOOOOROOOOROROROROOORRRRORROOOOOROROOORORRRROROOOROROORRRROOOORORRRORRRRORORORRROORRRRRRRRROORROORROOOORORRROROROORRRRRRRRROORRROOORRRROORRROORRRRRRROOOOORROORRRORRRROOOOORROROOOOORRROOORORRORRRRRROOOOROOORRROROORRRROROOOROOROOORRRORROOROOOORRRRRROOORROOORRROORORROOOOORRRRRROORRROOROROOOORROOROORRROROORORORRRRROROOORRRRROOORRORORRROOOORRRRRROOOOROOOORRROOORORRRROOOOOOORROOORROORRRROROROOOOOOORROORRRRROOOORORRORRROORRRRROOOORROROOROOOOROROOOOORRRRORROORRORORRROROROROORRRRORRRRROOORROROOOOOOOOOORORORRRRRRRRRROOOORROOOOORRROOOROROOROOROORROOOOROOROOOROOROOOORORORRRROOOORROOOROOORROOOORROORRRORROOORROORRRORORROROOROORROOROROORRRRROORORRRORROOOROROORRROOORROROORRORRORRROROROOORORROOOOROOOORROOORORROOOORORRRROOORRRORROOOOOOROOOOORROOORROORRRORRRRRROOORRROOOROOOORRRRROOOOORRORRORORROORRRROOOROOROOOOORRRRRROROOOROOOROORROORRROOORRRROOROOORROORRRORRORRROOROROORRORORRRORRRORRORRRROROORROORRRRRRRORRRRRRRORROOROOOORROROORRORRORRRORRORROORRROOORRRORRROORROORROROORRORORRORORRROROORORORROORORRRORRRRROOOORROROOORROROORRROOROOORRORRROORROORRORROORRROORRRROROORRRROOOOOORROORRROROOOROOROORRRRRRRORRROOOORRORORORORRRRROOOOOORRRORRROOOOOORRROORROROOORRRRRORROOROOORRRRRORRROORROORRRRRRRRRROOROOROOROOOOROROROROOOOOOOROOROOORROOOOOOORORORRRRROOOROORRROOOROOOOORRROROROOROORROROROORORRORORORORROOORORORRORRRROROOROORRRRRORROOOORRRRORRROORORROOOROOROORRRRROROOROOORRROORROOOOROROOOOROORORRRORRRRRRROOROOOORORRORORRRORROORRORROROOORROOOROORORRRRROOOORRORORRORORRRROOROOOOROROORRROORORRORRRORROROROOORRROORRRORRRORRORORROORORRRRROOROOORROROORORRORRRROOOOOOROORORRROROOOORORROROOOROROROROORROORRORRROORRRRRRROOOOOOOOOOOROORRRRRRRROORORROROOORRRROROOOORROOROOROOROROOROOORRRRORROOORRORRROOOOOOOROOOORRORROROORRRORROORORROOOROOORRRRRORRRRROORORORORRORRROORRRORRORROROOOOORORRRRRROOROOROOROROROORRROROROOROORROOOROROOORROROORRORROROOOROORROOORRRRORRRRORORROOORROORORORROOOROOOOOOOOORORRROROORROROOROOORRROROOORRROOOOOORORRROORRRRRORRORROOOROORRRROROOOROOORRORROORRORRROOORROROOOOOORORRROROOROOOOROOROROOROROROROROROORROROOORRRRROOOORROORORROORRROORORROROORORRROOOOROORRORORORRROORROORORRRROOORROROROOOOOOROROROORRRRORORORORROOOOORRROORRRROOOROORROROOOORROOORROROORROROOORROOROOOORROOROOOROROROORORRRRORRRRROOORROOOORROORORRRORORRRRORRORORRRRRRROORRRORORROOROOROOOORRRORRORROROOOOOROORORROOOORORRORRRRROOROOORROOORROROOOROOOROOOROOROROOOOROOOORRORRROOORRRRROORRRROORRRORRRROORRORORORORROROOROORRRRROORORRRORRRRORROOROORRRROOROROOORRRRRROOROORROOOOOROOROORRRROROORORROOOOOOOORORRROOOOOROOOOROROOOOOROORRROORRORRRRRROROROORROOOOOOORRORROOROROROORORRRRRORROORRROOROOROROOORROOOORORRORROROOROOORRROROOROOROROORORRORROORRROORRRROORRORORRORORRRRRRRRORORRRORROROOORROORRRROROROOROROOOOROOROROOOROOOROOOROOOORRORRROORORORROOOOORRRRRROROOOROOOOROOOORRRRRROOOROOOOOOOORRRROROORRRORROROORRROOOORORORRORROORRRRRRRROOOROOROOOORORRRRROROROORRRORROOORORRRROOOOOOOOOROOOORRRRROORRRRORRORRROOORRRRORORORORROROROROOOOORORRROOOROOORRROROOORRROORRROOOOROOROROORRRRRROOOORROROROORRRORROORRRRORRORORORORROORROOOOROORORORROROORROOROOROOOORRROOROOOOROORORRRRORORORROROROOROORORORROOORRORROOOORROROOOORORRRRORORRROORROORRROOROORRRRROOROORROORRORORRROROORRROORRRRROORRRRRROORROOROROOOOOOOOOOOOROROORRORRRORRROOOORORORRROORRRRORORROOROORORROORROOOOOOOOROOROOROORRORRRROROROOOORRROOOROOROROOOROROORRRORORRROOROOORRROORRROOOOROOOOOOOOROORRRROORORRRORROOOORORORRRRORRROORROOOOROOROORRROOORRRRROROOOORRORORRORORRRRROROROORRORORORORROOOROOOORROORORRRRROOROOOOOOROOOOROROORROOOOOOOOOOORORRROOOOROROOORORROOORRRORRROOOOOOORROORRORORRROROROOORROROROROROOROROORROOROROOOROOOOORORRRRRROORROOROOOROORORROOORRRROOROOROOOOORROOOORORRRRROROORROROOORROOOROROROROOOORORRRRRORRRRORROROOOORORROORRRORROOROORRORRRRRORORROROOORROOOROORROOOOORRRRRRRORROOORRROOORROOOORROORRRRRRROROOORRRORRROORORORROOOOOOOOROOOROROORORRORRRRORRRROOORROOOOORROORROROORRRRRRRRRRORORROORRRORRRRRROROROOROOOOOOORORORORROOOROORROORROOORORORORRRRRORROROROORRORORRORRRROROOOOOOORRORROORRORRRROOOROORORRROROOOOORRORRRRROOOROROROROOOOROORRROOOORRORRRRROORRROOOORRRRROOROOROROOROOROORRORROOORRRRRROOOOORORROORRRROOOOROOOOOOOORROOORRRRRRROOROORROOOOORORORORROOOOOROORROOOORORRROOORORROOROOOOORRORROROROORRORRRORORROOOOOOORROROORRORROORORRRROROOROORRROOROORRRORRORORRRRRRRORRROOOOOOROOORROROORROORORRORRRORRROROOOORORROORRRORORRRRROOROROORROOOORORROOOROOOOROORROOOOROROOOORRRRRRROOOORRRORRRRROOOROROROROOROOROORRRORRRORRORRROOORORRRRROROROOOOOORROROOROORORORRRRRRRROOROROROROORRRRORORORRROROOOOROOOOROROROROOOOORRROOOOORRROORORORROORROOOOORRRRROOOROOROOOROORRORROORRROOOORRRROOROROOORRORORRORRROORRRRORRORRROROROROROORROROOOOORRORRRRRRRRRRORRRRORORRROOOORORROOROOOOOOORORROOROORORROOORORROOOORRRORROROORORRRRRORRRORRRRRORORRRORROORRRROOROOOOOOORORRRRORRORRRRROORRRROOROROROOOOROORRRRROORROROOROORORRRRRROOOROOOROOROROOROORROOOOROOROORRRRRROORRRRORRROOOOORRROOORORRRRRRRROOROOOROORRROOOORORORRRRRRRORROOORRRORORRRROOORORRRROOROORRRRROORROORROORORRROORORRRORRRRRRRRRORRRORRROOOROOORORROOOOOROORORRRRRRROORRRRROOOOORRROORROOOROORORORRRORRORORRROOROOOOOOROORRROORRORRROROOOOORORRRRROOORRRRROOROOOROROROROORORRRRRRRRORRRROORORORROROORRRORRORROOROOOOOORRRROOORORROOROROORRORRRROOOOOOOOOOORROROOORRRROORRRRRORORRROOOORRROOOORRRRRROROORORRRROORRROOORROOORROOROORROORORROOROROORRRRRROOOROROORRORRRROORORORRRORRORORRRORRROOROOROOOORORRRRRROOORORRORRORRRRRROROROROOROORRROOORRORRORORRRRRROOOORRRORROORORORROOOOROORRORROOORORROOOORROORROORRROOOROOORRROOOROOROROOROOOORROOROROOOOOOOOORRORROORORORORORROORROOORRRRORORRRRRROOOOROORRORORROOOOOROOOOROROORORORROOOOOROOROROOOROORRRRRROOORRRRRROOOOOORORRRORRROROOOORRROOROOROOOORRRRORRORRRROROOOROROROOORROOORORROORRORROOROROOORORRROORORROROOROROOOOORRORORORRRRRRORRORRROROOOORROROOROOOORORRORROROROORROOORRRRORRORORRROOROOORROORRRRRRORROROORORRRRRROROOOROOORORRORRRROORRRROROOOOORORORRRORRRROOROOOROORORORORORRORROROORORROORORORORRORROROOOOOROROROORRORORRRRROOROORORRROOOOROOOORROROOOORORRRORORORRORROROOORRRROORRRORRRRROOORRROROORROOORORROOOOORROROOORORROROOOORRROOOOOORRORROROOOORORRRORORRRRROROROOOOOROOOROOOROORROORRORORRRRRROOORRRRROROROORRORORRROOOOOOOOORRROOROORORRRORORRRROROROOORROOOORRRROORROORROORRRRORRORORROORRORROROOOORRROOOOOORRRRORORRRORORROROOORRORRRORROOROOROOOORORRROORORORROORRRORRRORRORORORRRROOORORRRRRORROROORRORRRROROOOOORROROORORRORRRRORROOROORROOORRORORRRORROROOROOROOOROOOOOOROOORRRRRROOROOORRORRROOOORRRROOOOROOROORRROORRRRORRROOORROORORORRRORORROOOOOROOOOOORRRORRRROROORORRRRRRORORRROOOROOOOROORRRROOROOROROOOORROROROROOOOORRRRORRROORORRRROOROROOOROROROORROOOOOORRORRORRORORRROORRRRROOOORRROORROOROORRRROROORRORROORRRORRRRORRRORORROROROROOROOORROORRORROOROOROORRROOOROROOORRROOOORRRRROOOOOOROORRROROROROROOORRRROROORRROOOORROOROOOOORROORRORRROOOROOORRROROROOOOORROOOROOOOOOORROOOROOORRROOORRROROROOORORRROROORROORRRRROORORRRRRRROORRRROOORRORRRRRRROOROOROORORROOOOOORORROOOORORRRORRRORORRORORRROOORRRRROOOOOORORROROOROOORRORRRORRRROROROOOOOROOORRRROROORROOROOOOORORRRORORROOROOROORRRORRRROOORROORRORRORRRRROOORRORORRORRRORROOORORROORRORRRRORROROORRROROOROROORROOOOOORRORORRRRRRORRROOOOROOOOORORRRORRORRORRORRRORRRROORORRRORORRRORRRRROOOOOOORRRRRORRRRRORORRORORORROOORRORRORRRRORRRROORRORORROORRROOORRORRORROOROORRRORRORROOOOOOOOROOOOOROOOROORRORORRRRRROOOOORROOOOROOORORRRRROROOOOOOOOOORROROOORORROOOOOOOORORRROORORORROORRRRORROOORRROOOOROOOOOORORRROORORRRROOOROOORRRRRROOORRORRORORROROORROORRROORROORRROOOROOOOOOORRRORRRROORRRORORROROROOOORRRRRRRRORORRROORORORROORORRROOOROOROORROORROOORROORORROOROROROOOROROROROOROOOOORRRORRORRRROOOORORORRRRROOORRRRORRRRRORRRROOORORORROROORRRRRRRORRROROORORRRORRRORROOOROOOORORORROOOORORROORROROORRRROOOROOOOOOORRROORROOOOOROOORORRROORROROROORROROORROORROOOROOROORORRRRRROORORRRRROOOOORROORROOOORORRORROOOROOOORRROORROOOOORORRORRRORRROOORORRORRRORRROORRROORRORRRROOORROORORRROOROOROOROROOOROOOORRRORORROOROROOORORRROROROROOOROORROROOORORRROORORROOORRRROOORORROORRROROOROORRRRROOOOORROOOORRORORRROOOOOOROOROOOOORRORORRRORROOROOORORRRROORORORORRRRRORRRRRORRRORORROROROOOROOOORRORORRORORRORROORRROOORRRRORRRRRRRORRRROROORORRORRROOORROORORRORRRRRRRRROOOROORROROOOOOOOOROOROOROOOOOOORROROOROROROOORRROOOORROOORROROOROORROOROORRRRRROOOROORRRRRORROOOROORRROOROOROORRRROOROOOOOOORRRRORRORORRRORORROROROOOORORRRRRORROOOORROOOORRRRRORRRROOOOOOOOROOOROROOORRORROROROORORORORORRROOORRROOOORROROROOORRRROROROOROOOOOROROROOORRRRORORROROOROOOORROOOORORORRRORROOROORRRRRROOOOORROOOOOOROORROOROOORRORRORORRRRRROOORROORRORRRROROORORRRROORRORRRRRRROOROOOOOOROORORRORROOOOROOROOORRRRROOOOORRRRRRRORRRROOROOORRRROROORRROOROOROOROROORRORORORRORORORRROOOORORRRRORORRROOOORORRRORORROOOORORROROROROORRRRROOROOOOOOORRROOOOOORROOORROOOOOROOORRRORORROOOROOOOOORRORRROOOORRROORROORORROOORRROORRORROROOORORORROORRORRROORROOOOOROOROOOOOROROOOROOOROOOROOOOORRORROOORRROORROORRORRROROOORRRORROROROROOOROOOOORRORRORORRRRRORRRORRRROROROROROORORORRRRRRROOROOOORROORROORORRRROROOOROORORROROOOOOOOOORRRORRROORRROROOOROOOORROROROROOOOOOOORROOROOORROOOOORORROROOORROORRRROROOOOOOORROOOOOOOROROORRRRRRRRORROOORRRROORRROROOOORRRRRRROROROOORROORRRRRRRORRRRORROOOOORRRROOROOORRORROORRORROROROROOOOOROROOOOORORROROORORORRRROROROROOROOOORROOOOROOOORORROROORROROOOORRRORORORROOOOROROORORORORRROOORROORRRRRROOORRROOOORRRRORRORRRRROORRORRORRRRRROORRORRROORRORROROROOROROORRRRROORRRRRROOOOROOORORORRRRORRORRROORORORRROORROOOOROROOROORRRRRRRROORRORRORROORRRRRROOROROOOOOOOOROORRROOROROOOOROOORORORORROOORRRRRORORROOORRRROORORRRORROORROROORRORROOOROORRRORRRRROROROOROOOROORORORORRORRORRORRROOOORROOOORRRRRRORRORORRRRRRRORORORROORRRRRORROOOOOOROROOROOOORORRROORORROORRROORRRROROROROROOROORROROORORRORORRRROOORRROORRORRRRRORRRRORRRORRORRROOOOORORRRRRROOROORRRORRRRRORRRRROOOOROORRROOOORRORRRORRORRRRRRROORRROOROOORRRORRORRRRORROROOROROOROOORROOOORRRRORRROORORRRORROOOOOROOORRRORROROROOOROROOOROORORORORORRORRRROROOOORRROORROOOOROORROORRORROROOROOOOOORROROOOOOORROOORORROOOOOORRROOOROORRRROOOOOROORROOROROROORORORRROOROORORORRROOOORORRRROORROORROROOORORROOROROROOOOOOORRORRROROOOOROROOOROOROORROORROROROOOROROROOORRRORORORROOOROOOORRROORROOROOOOOORROOOOORRRROORORROOORRRORORRRROORRROROOROORROORORRRRRORRRRRORRRRRRORORORROROROOROOOOROOOORRRRRRRRROORROROOROROOORRROORRORRORRORROOORORRROROROOOROROORORROORORRORRRRORRROOOORRORROOOOROOORORROOROOROOOOORRRROOOORRROOORROOOOORRRRROOORROOORRROOOOORRROOORRRORRRROORRRRROOROROROROOOORRRORRRRORORRORROROORROORRROOORROROOROOORRORORROROROOOROORRRORRRROOROOROOOOOOORRRROOOORRRRRORORRRORORRRRROOOROORORORRORROROOOOOROROORRORORRROORRRRRRORROOORRORRRRRORROOOOOOORRORRRRORRROROROOROORRORORROOORROOROOOOROOOORORORORRRROORORRRRRRRROOOROORORRRORRRRORRRROOROOOOOOOOROORROORROORRRROROORRROOORROOOROROOROROORRORROOORRORRROOROROOROORRROOOROOOORRROORROROOOORROORRORROOOROROROOOORROOOORROOOORRORORORORROORORORRRROOROORRROOORROORRRRORORRRRRORROROOORROROROOROOOOOORORRRROROOROOORROROOROOORRROOORRORROROOROOORROOORRRRROOROROOOOOROOOOORORORRORORRRORRRORROOOORROOOORRORRORORRRORRRRRRRRROOOROORROOOOROROOORROORROOROOORRROOROORRROORRORRRRRRORRROROROOORORRRORROROOROOROOROROORRRROOORORRORORRRRROROOORROROROOOOOROORRORRRORRORRRROOORROROOORRORRRORRRRRRORORROOOORROROOOORROORROORROORRROOOORRRORORORORORROOROOOOOOROOORRRRRRRRRORORRRORRROOORROOOOORRORROORROOOOROOROOOOOROORRORORRROOROROOORRRRRROOORRRRORROOROOOORROORRROROOOOORRORRORRORORORORORROORORORORORROROORRORRORRRRRRRRROORROORRRORRRROOOOROORORRRRORROOOROOOROOORORRROORROORRORROOROOOOOORROORROORRRRORRROROORORRRROOORRORORRRRRRRRRORRROROROROORORRRRRORROOROOROOOOOOORRROORRROOROORORROOOOORRROOORRRORRROOROROOORORRRROOORROOORRROOOOOOORORRRRORORROROOOROOOROORRRORRROROOOOOROORORROOROROROROOOROORORROOORORRRRORORROORROOROOOORROORORROOOOOOOROROOORRORORORORRRORRRRROOORRRRORRRORROOROOOOOORORROORRRROORROOROOOOROORRRROOOORRORORRORORROOROOOORORORRRROOOORORRRRRRROROOROROROOROOROORORORRORROOROORRROROOORORRRORRRROOOOORORRRRORROROORORRRORRRRRORORORORRORRRORROORROOOOOROOROROOOORRORRRRRRROOOROOORRRORORORRRORRORORRORRRROOOORORROROROOOORORRORRRRRRRRROROROOOROORROROROOOROOROOROORROORRROOOORRRRORROOOOOOROROORORRROROOOROOOOOOOOORROORROOROORRORRRRORRROOORRROORROOOOOOOORRRRORROOROORRROOROROORRRRROOOOOOOOROOOROOOOOORROROROOOROOORRROOOROORROOOOOOROORORROROOORRRROOORRROROOORRRORROROOOROROOOROOOROOROORRRRORRRRROORORRRRROORROOORROOORROROOROROOOOROOROOROORRROROOOROOROROOROROROOOOOORORRRRROROROROORROOROORROROOOORORRORRRRROROORRORROROROROOORRRROOROOROORRRRRRRORRRORRRRROOROROROOORRRRRORRORORROOOOOOOOROROOORRRORRRROORORRRROROROORORRRRROOROROORORORROROOORORROORRRORROORORRRORRORRROOORRORROORROROORRRRORROOOOOORORORROOROROORROOOROORROOROROROOOOROOORRORORORRRORRORRROROOROROROROOOOORRROOROOROOOOROORORRRORORRROORRRROOOORROORRRRROROROOOOROOOOROORORORRORORRRORRROORRROOOORRRROOORRRRRRROROOOOORRRRROROROOROROROOROOROORRROOROORORORRRRORRRROROROROOROOROOOOROROOOROORROORORRROOOROOOROOORROOROROOOOOORRORORRROORRRROOORROROROROROROOORROOROOROOROOOORRORRRROROORRROORORORORRRRRRORORRRRRRROOOROORRROORROROORORRRRORRORRRROOROROORRROROORRROOROORORRRRRROOOORORRORROOOROORRRORROORRORRRORORROORROOORRORRRRRORRRORROOOOROROOORRROOOROOROORRRORRROOORRRROOORRORROOROOOORRORRRORORORROORRRROROOOROOORRRRRRORRRRORRRROORROROORRRROOROORROROOOORRORROOOOORRRRRORRRRRROOROOORRRROORORROOOOOROOORRORROOOOROROORORORROROOORRORRRRRRRROOROROOORRROOROORRRRRRORRRRRRROORORRRRORROOORRRRRRROOROORRRRROORRRRRRORROROORROORRROROOROORRRORROORORROOROROORRORRORORROOROOOOOOROROORRROOOROOOOORORROOOORRRROORRRORRRROOOORRROOOROOOOOROOROORROROOROOORRRRRROOOOOORRRROOOOROOROROORORRORORRRORRRORROORRROOORORRROROOOOOROORROROROOORORRROORROORRORORORRROOROOOOROORROROROORRRRRRROROOOOORRROOORRRROOOROROOORRORRORRROOOOOOOOOOOOORORRRORRRRRORRRRRORRROORRROORROROOORRORRORRORROOOOORORROOOOOOROOOROROORROROOOORRRORORROOORROROROROOORRRORORORORORRRROOOROOOOOOOORRRRRROORRRROROOORRROOROORRROOORRORRRRORRRRORRRORROORRROROOORROROROORRORRROORORRRRORRROROROOROROOOOOORORRROROOROOROORROORORRRRROOOROOOORORRROOROOORORRRROROOOORRRROOORORRRRRORORROOROORROOORROORORRROOROOOORORROROOORRRROORROORRRROORORORRRRRRORRORRORRROORRROOROROOORORRORROOOOROROORRRORORORRORRROROORRORROOOOROOOROROOOOOORRORRRRRRRRORRRRRRROORORROOORRRRROROOROOROOOROOROOOROORORRRRRROOOORORORRROORORRRRROOOOOOOOORRROORORRRORRRROORORROORRROORRORROORORRORORRRROOROOORROOORROROOOORORRORRORRORRRROROORRROROROROROOORORROORRRRROROORROROOORORRORRRORROROOROORORRROROOORRRRORRRRROORORRRORROROOOROOORRORROORORRROORRROROORRRRROROROOOROOORRRRRROROORRROORRORRRROOORROOOROOORROORRORROOROOORORRRORROOORROROORRRROOROROOROORRORORROOROORROOOOOOOROOROOOORROROROORORRRRRROOOOORROOROOOOROOROORORRROOROORROOOROROORORORRRORORRROORRRROOROROOROORROORRORRROOOORRRRRROORORROOORRORORROOROOOOROOROORRRORRRROOOORROOROOOOROOOORRRORRORRORRROOOROROORRRRRROORRORRRROROOOOOOOROOROOOOOOOOORROOORORRRROOOOROROROOORRRRORORRRROOROOROOROOOORORRROOOOOORORORROOROROOROOORRRROORRROORRRRRROROROOORROROROOOOORROROROOOOOOROOOORRORRRRRROOOOORORRROROROOOORRRORRROOROOOORRROROROROOOORRRRRRRRROROROOORRORROOOOROROOOOOOORORROOROOORRORORRROOOOOORRROOOOOROORRROOOOOOOROOORRROOROORRORORRRRRRROOORRROOORROORRRROROROOOOORORROORORROOOOROROROORROORRRRRRRORROORROOOORRORORRRORROROOROOROORORRRROOOROROOOOOOORORRROROOORRORRORROOOOROORRROOOOOOOOOROROORRORROROROROOOOORROORROOORORRRRROOROORROORRRRORRROORORORROOROORRRROOROORRORRORROOOORRROROROOOOOOROORRRRROORROROORRORORRRROOOOOOORRORRROOOORRROORROROORORROOORRRRRORROORROROOOROOOOROOROOORROOROOROROORRRROOOOROOOORROORRORORORRORRRORROROROORRRORROOOORRROOORORROROOORORRROROOOOORRRRRORRROROORROOOROROORROORRRORORROOROOOORRORRROROOOROROOROOORRORRROOOROOOROOOROROOOOORRORORRRRRRROORRROOOORROORORORORRRROOROOROOROOROOORRORORORORRRRRORRRROOOORORROOORROORROOORROORRRORROOORROORORRRRROORROROORRRRRRORROROOROOOROOOROROORROORORRRROOOOROORORORRROORRRRRRRORROROORRROOORRORRRRORRRORROROOROROOOROOROROOOROORRRORORROOORROORRRORRRROORRRRROORRRRORRROOOORRRROOROROROOROORRRRRRROROROROOOOOORRROROOORRROROROOROOOROROROROROROOOOROOROORORRRRRROORRROROOOROOOROROROOOOOROOOOROROOROORORROOORRRRORRROORRROORORROOORROOOORRORROOORORORRORORRORORRRRROROORRRORORROOROORROOORROOROOORROOOOOORRORRRORORRRROORRRORRRORRRORROOROROOOROROOROROORRRORRRRROORORROORRROOORRRROORRORRRRRORRROOOROROOOROROORROOOOOROOOOOROOROROOOORORRRRRORRROORROOORORRRRRORORROOOOOORORRORRRRRRRRROROOROOOOOORRROROOOOROORORRORRROOOROROROOOOOOOORROORROROOOOOOORRRRRRRRRORORORRROOOOORRROOORRRROROOOOOORORROOROROROROOORRROOOOROROROROORRROORRORRRRORORRROOORORORORORRORRRORRRRROORORROROOOORRROOOROOOROOOOORROOOOROOORRROROORRRORRROROROOOOORRRRROORORRORORROOROORRORRROORRRRRROOOOOOOROORRRORRRRRORORORRORROROORRRORROOROOROORORRROROORORRRRRORRORROOORRORORRRRRRORROROOOOOOORORRRROORORRRORROOOOOORRROOORRRROOROOOOOROORROORRROROORORORROOORROROOOROROROROOOOROROOOOROOORRORROOORORORRROOORROORRROOROROOORRORORROROOOORRRROOOOOOOROROROROOOOOOOROOORRROORRRRORORROROOROROROROORORRORRRORRRRRRRRROORROOORRROOOOROORROROROOROORORORRROOOROOOOORORRORORROOORROROORROROROORRROOORRORRRRRRORROORRRRRORROOOORRROOOORORRORRRRROOOOOORRRRROOOOORORORRRROOOOOORROOORROOROORORORRROOOOOORRRRORROOOOOORRRROROROORRRRORORRROROOROROROORROROOOORORROROOORROORORORRRROOROROOORRRORRORRRRRROOORORRORRRRORRRORRORRRRORRORRRROORROOOOORORRRRORORRORRROOOOOOOORROOOOOROROORORRRRROOOORROOOROROORRROORRROOROOOOOOORRRRRORRRORORROROOROORROOORROROORRROOROOOORORROOOOOROOORORORRRORROORORORRRORRROORROORRROROORORORRRROOOROOOOORRRROOOORORRROORORRORROOOORORORRRORORRRRORORORRRRRRRRORORRRRROORROOROOOOORORRORRORROORROOOROROORRRRROOORORROORORORORRORORRRROOROOOORRRRRRROOOOORORRORRORROOOOOORRROOOOOORROOOROROOROROORRRRORORROOORRRRROOORORORROORRORRORROORROOOOOROROROORRRRRORROORRRORRRRROOOORORRRORRORRORRORORROOOOOROOORRROROORROROOOROORORRRROOOROOOOORORRRRRROOOORRRORRORROROORORRRORORRRRRROORRORORRORROORRROOROOROOROOROOOOORROOOORORORROOOOORROOOORRORROOOOOORRRRORORORORORORRROOOROORRROOOROROOOORORRRORORROROROOOROORORROORRRORROROOOOROOORRROROROORRORRORRORRROOORRRORORROROOROOORORROOOROORORORRRRORORRRRORROOOORRORORRROROORORROORROROROORRRRORROROORROOOROORORROOOOROROROORROROROOROROORRROOROROROORRRROOROOROOOROORORROROORROROOOOOROROOORORORROORROOOORRRORRROOORORROOOORRORRRROROROORROOROOORRORROOORROROROORROORORROOROROROROORRRRRROOROROOROORROROORRORRRROOROORORRRROROORRRRROOOROOROORORRROOROOROORROOROOORRROOOOOOROROORROOOROOROOORORORRRRROROROOOORORORORRRORRRORRRRRRROROOOOROROOOORORORORROOROOROOROROROROOOROOOROOOROROOOROROORRROOORROOROOOROOORRROROROORRRORROOORORROROROOORROORROOOOROORROORRRRRRROROOOROROROOOROROOORROOOORORRRRORRRRROROROOOOROOOROOOOROOROORORRORRRRROROROORRRRROOORRRORORRORRROOROOROORRRORRORORORRRORORRRROOOROROOORROROORRORROROOOOROROROROOORROOOOOORRRRRRROROROOROOOOROROORORRROOROOROORORROROROROROORRROROORRROROORRRROORROORRROOOROORRRRORRORRRORRORORRRRORROROORRRORROOOOROORROROORRORRRRRRRROOROROROROROROORRROORORRORRRRORORROROOORROORRRRRROOROORROORRRRORORRROOROROORRORROOORROROROOROORROROOOOROOROOOOORRRRRRORRROOORORRROOOROOOORRORRORRROROOOORRROOROOOROROROORRRRROOROROROROORRROROORORRORORROROOORROROOOOOROOOROROOROOOOOORROORROROOOORRRROOOORRORRROORRRROOOOOROOORRORROOOOROOOOORORRORRROOORORORROORORORORRROOOOROOROORRRROORROORROOOORRORORORRRROROORROROOOORROOOORROROOORRRRRROROROORORORRORORRRRROORRRRORRORORRROORRROORROOOORORORRROROORRRORROOOOROROOORORROORRRRRORORRRRORRORRRROOOORORROOOOOOORROOOOOOORRRRRRROOORORROROOOOROOORRRRROOROOROOROOOORORROOOORORORRRRRRRORORRORRROOOOROOROROOROOROOOROOOORROOROOORORRRRROROORRRORORRROOOOOROOORROOOOROROOORRRROROOROROROORRROOORRRRRORRRORROOOORRORRORRRORRROOOROORROROROORROOROORRRORRRRRRRRORORRROOORRRRROOROROORRORROOROORORRRRROORORROOOORRRORRRORRROOOOOOOOROROOOOOROOOOOROOROROORROOOROROORORORROROROROOORROOOROOOORORRROROOROOOOROOORRRRROOORORORROROOOOORORRRRROOOOORRROOOORRORRRROOOORRROROORRRRRORROOOOORORROROOORRRRRORORORROROOROROROOOORROOOOOOORRRROROORROOOORROROROORRROOOOOROORORRORROOROORORORRROORRRROOORRRRRROORORROOORROOOOORRRRORRROROOROOORRORRRRORRROOOORROROORORRROOORRORORRRRORRORROORORRROOOOORRROROOOROOROOOOROOORORRRROORRRRROORRROROOORRRRROOROOROOORRORRORORROORRROOOOOOORROOORRRORRRROORRORRRRROOORRRORROOOOOOORORROOOOOOOOORORORRRRORROOOROROOOORRROORROOROORROORRRRRORROORORRRRRORRORORRROOROROOROOROOORRROROORROROROOROOORROOORRRRRRORRROROORORORRROORRRRRROORORRORORROORRRROOOOORORROORROOOOROORORROROORRRROOOROROORROROROROOOOROORORORROROOORRRORROORRROROROROROORORRRRROOOOOOROOOOOOOOORORRROOOORRORRORORORRRROOOOORRRROORRROOOOORROORROOOOOOOORRRRRRROOROOOORRRRRRORRORORORORRORROORORRRROORRRORRROROORRRROOOOOORRROORROROORORROOORRRRRORRROOOOOROOOOOROROORRROOOOORORORROOORRRROOOOROROOROORRROROOOOROOOORROORORRROORRRROOROOROOOORRRROOROOORRRRROOROROROOOOOORORRORRRRORORRORROOOORORRORRROORROROOORORRRRROORRROROORORRORRRRRORROORRORORRROROOOORRORRRORRRRROORRRRORRRRRRORORRRORROORRORRRRROOROOOOROORRROOOORRORORRORRRRRROORRORROOOOORROOOOOOOROOOOOOOOORORORROOORRORORORORORROORRROROORROOROROROROOOOOOROORRRORROOROROOORRROOORORORRRRRROORORROROROROROORRRROROORRORRRROORROROORORRROOROOROROOROOOOOORRRRRROOOOOROOORORRRRROORRRROOOOORROROROROOOOROROORORORRORROORRRRROROOOOOORRORRROOOORORRORORRORRROROOROROORROROOORRRRRROOORORRRRRRROROOORORROOOOOOOOROOORORROROOOOROROORRORRROOOOROOORROORORORRROROORRRRORROROOOORRRRROOROOOOOOORORRORROOORORORRORRORRRRORRROOOORRORRROOOOROORORRRRRRROOROORROOOOOOOOROROOORROOROOOOORRROOROROROROOOOROOOOOORRROOOROOROROOORRROOORRORRRROOOORORORRROROOOROOOOORRORORROROOOROORROROORRRROOORRRRORRRRORRROOORRORRROORROROOROORORROORRORORRRRRORRORORRORORRROOORORORORRRRRRROOROOROORROORROOORORORRRRORRORRROORROOOROOOOOORRORRRRORORROORRRRORRRORRROROROORROROROOOORRORROROOORRORRRRORORRRRRORRROOROROROOORRORORROROORRORRRORROOORRRORORRROORROORRRORRORROORORORRRRORRRRRORROOOOOROORROOOROROOROOOOOOORORROOOOOOORRORRRORROOOOORRROOOOROORROOORROROORRROROROOOOOORORROOOORRRORROORRORORRROOORRORRRRRORRORROOORRRROORRRRROOROOOOOORRRRRORROOOOROOOOOOOOORROOOROROORROROOORRRORRROOORRRRRROOORRROOROROOORORRORROROOROORORROOROOOOROOOROOOOORORROOORORRRRRORROORROOOROROROOOOOORRRROROROOOORRRRRRORRRRRRROOORRORRRROORRROORRORROORROORROOOROROOROOOROOOOROORROOOROOOOORRRROROOOORRORRRORRRRROROOORROORORRORRROORRRRROOROOOOOORRROOOROORRRORRRORROORRROORRROOOOORRORRRORRRRRROROROOORRRRROOORRORORROROOROORRRRORRRORORROOOOOORORROORORRRORRORORRROROORRROOOOOROOROOOOOOOORRRORROROROOORORORRROORROORRRORRORRRROROROOOOROOROOOOORRRRRRORORRORORRRRROOOOOROROOOROORORORRRROOOROORROROOOROOOORROORRRRORROROROOOORORROOOOORRRROOOOOOOROOOROOORORRRORORROOROOORORORRROORROOROOOORORROORRROORRROROORRRRROOOORRRRROROROORRRRRRROOOROOOOOROROOOOOORRROOROOROOOORROOORRORRRROOOROOROOOROORRROORROOOROOOOOORROORRRRORROOOOOOOROOORRRROOOROORRORROROORROORROOORRRORROORROOROOOOORORRRROOROROROOOROOOROOOROROROROOROOORROOOORRRORRRORRRRRRRRRRROOORRRRRORORROOOOOOROOOORORRORROOOOOOROOROORRRORORRORORRRRRRRROORRRORRRRORROROORRROROORRRRRRRORRORRRRRROROOORRORRRRRORRORRROORORRORORORRROORRRORRORRRRORROOOOORRRROROOOOORROOOOORRORROOORRRRORRROORRRORORRROORRORRRROOOOOROOROOOROROORROROROORRORROOOOOOORROROORROOOORROORRROROOORORORORRORRROOORRROROROORORRRROOORROOOOOORORORROOORROOOOOROOROROOORRROOOOOOROORRRRROORRRRORRRROOOORORORRRORRRRRRROOROOROOROOOROROORORROORRORROOORROOROROROROOOORRORORORROORRROOORRRROOOORORRORROORRORROOOROROROOROORRROORROOROROROOROROOROOROROROORROOOOORROOOOORROOROROROOOOROOOOOOORRRROROROOROROOORROOOOORRROROROOOOORORRROROROOOOOOOORRORRRROOORROORROROORROOOROOORRORORRORORRORORROORRRROORRROOOOOOOROORORROOOROORRRRORORRRROORROOOORROORROOOORROORRROOROOOOOOORROOROOORORORRRROOOOOROOORRROOROOOOORROROOROOROOORRRROORRRROOROOORRRROROORRRROOORROROOROOOOROROORROROOORROORRRRRROORROOORRRRROORORROOOOORRROOROOORORROOROORROORROOOOROROORRRRORRRORRRORROORRRRRROROROOORROORRORRRRROROOOROOROOROOOOROROOOROOORRORRRROOOORRRRRROORRROROROOORRORORORRRORRRRRRRRORROROOOORRORRROORROOROOROORORORROORORORROORORORRORORORRRROORRORORRRROORRRRORROOOORORORROOOOORORROORRRRRROOOORRRRRRRORORORORORROOOROOROROROROOOOOOOOOROROORROROORORORROORRROOORORRROROOOROOROOOOROORORRROROROROORORROOROROOORROORROOROOOOORROOOOOOORROOROOROOOROOROOOROOOOORROOOROOOROOOROOOROOOOROORRRROORORROOORROOOOOOROOOROORRRRRRROOORROOORROOORROORRORRRORRORROOORROROOOOORRROOOROOOOOOROOOROROROOROROOOROORRRROROROORRROOROROOORORRROOROOOOOOROROOOOORRRRORROORRROOORORORROORRROOORROOORROROORROOORRROOOORROORORROOORROOOORRRROOOROROOOROOORRRORRRORROOORRRRRORROORRRORRRRRRRORROROOOROORORORROROORRRORROROOROROOOORORRROROORROOOROOOOORRRORROOORRRRRRROROORORORROOORROROORORRRORROORORRRORORRORORRORORORRROROROOORRRRRRROORORRRRRORRORRRROROOOOROORRORRROROOROOOORORRORROORRROORRORORRROROORORORRRRRROOOROORRRRRRRORROORORORORROORROOORORORRRRRROOROOORRROROORRRRROROOOOOOOOROOOOORRRRRROROORRORRORRRROOOOROROROROOOOOOOOOROOORORROORORRROORRRROOORROOORROROOROORRROOOOORRRRRROOOORROOOOOOOROROORRRROOOOROOROORORROOORORORRRRRRRRRRORRRROORORRRORORRROROOOROORRORRRRRRRROOOROOORRORRORRRORRRRRORROOOOOOORRORORROORRRRRORRORRORROOOROOOROOOOROORRORORRRRRORRRRRORRROOOORORROOOOOOOROOROOOOOORRORROOORROOROOOORRRROOOOROOORROROORRROORORRROOORRORORORRROROROOOORROOORROROORRORROORROOOOOROROROOROOOOOOORROOOOORRORRROOOORROROROROROOOOOORRRRORROOROROOROOORROOOOORROOORRROROORRROROROORRRRROOORRRROORROROOORRROORROOOOOOOORROOOOORRORROOOOROOOROORRROOOOROOORRRROOOOOOORRORORRRORROROROOOROROORRROOORRRROROOROROOOORORROROOOROOOROROOROORORORORRRORROROOOROROROOOORORRRROROOOOORRRROROORORRRROORRRORROOOORRORRORRORRROROOROOORORRRRROOOORRRRRORRRRRROOORORROROOOROOOOOROOROOOOOOROOORRRRRROOORROOOORROOORRROROOROROOOOOOORRORRRRRORRORRORRRRRORORRROORROROROOROOROROORRRRRRRROORORORROORROORRRORROOOOOORORROORORRRRRRRRRORRORRORORROOOOOOORRORROROORORORRORROOOORORORORRRORROOOOROROOOOOROOROROOOORRRORRRRROORROORRRORORORRROOORRRRRORROOORRORRRORRRRORRORRROROOROOORRROORORRORORRRRORRROOORORROOOROORRRRRRRORRORRRORRROOORROROROOROOROORRRRRROORORRRRROORRRROOOOORRORRRRRRRROORORRORRRRRRRRRORORRORRORROROOORORRROORROOROOROOOOROORROOROROOROOOOOROOORORRROOOOORRROROOOORROORRRORRRORORROOROROOOOROROROROOOOORRRRROROOOOOORORORRRORORROOOORRORRORROOORRRORRRRRRRRRORROOOROROORRORORRROROOROOOOOOROORRRRRORORROOOROORRORRROOOOOROROOROORROORRROORRROOOOOORRROORROOROROORORRORORORRROOOROOROORROOOOORORRROOOORORROROROOOORORROOORORRROORRROORRROORRORROORROROROOORROOOOOORRORRROOOOOORROROOOORRORRROORRRROROORRROOOROOOORRRROOOOOOOOOOORROORROROORRROORRRRROOORORORROOROOOOORRRORRRORRORROORROOOOOORROOORORROOROORRORRORORRRROOORROOORROOOORROOOOROORRROOROORRRRROOOORROOROOOOROOORORRROORRORROOOORROOOROOORROOOORRORRRORRRORRROOROROORRROORRROOROROORRRROOROOOROORORRORORROOOOOROROROORRROOOROOOOROOOORROOORRRRRORRRORRROOORRROORORRRRRROORROORRORRRRRRRORRORORORROOROORRORORRRORRRRORRRRRRORRRROOOORRORROOROORORRRORROOOORORROOOOROOROOORRORRRRRRORORORROOROROROOOOORROORRORRORORORRRRRROROOOROOORRRROOOOROROROOOOOOORORROORORORROROOORROORROOORROROOOOOROOOORRRRROOROOORRRROORRRROOROORRRROOROORRRROORRORROOROROROOOROOOOOROROROORRRRRRRRORORRRROORRROORROOORORORROROOOORORROROROORRRORORORROROOROOORROOOOORRROOOOOROOOOOORROOOORROOORRROOOORROOORORRRROORORORRRROOOOORRRORROORROOOOROROOORRORRROOORRORORROOOOROOORORORORRORRRROOOOROROORRORROOORORRRROOOROOROORRRROROOOOROOORROORORORORRROOOROOOOOORRROROOOOOROROOOOROORRROOORRROORORROOORORRRROOORORROORRRRRRRROOOOOOORORRRROOORRRORORRORROROOOROOORROOROORROOOOORORROORRRROROOORRORORRRRROOORRRRORRRORRRRORORORRRRORORROOOOOOOORROOOOOOOOORORRRROOOROOORORORRROROROROOORRRRORROOOROOROOOOOOOOROOROORRORROROOROOROROOORROORRORRROOOOOROOOROORRRROROORROOOOORRORORRROROORORORROROORRORRROORROORRRRROORROORRORORRRRRRRRRORROORRRRRROORRRRRROOOOOROORORROROROOROOORRRRROROORROOOOORORROORRRROROROOORROORRRRROROROROOROOOOOOOOROORRORRRRRROORORRRRROOORRROOOOOOROOOOOORROOOORORRRROOOROOORORORROOORORROROROOOOOOOORROORROOOOOORROROOORORRORRROORRRROORROOORRRROORROOORROOROROORROROROOORROOOORRRROOOROOOOROOOOORRROORRORRROORROOOOROROORRROORRRRROOROROOOROORRRROOORRRRROOROOROOORRRROROOOOROOROROOOROOOROROOORROROOOOOORROOOORRROORRRORROOORRROROORRRORRROOOROOORRROOROORRORRORORROROOROOOROORRORRROOORORROROOROROOOOOORROOOOOOOROOOOOROOOORROORORRROORRROORRRORRROOROROROROOOORRORORROOOOOOORROOOROORRORRRORROROOOROOORRROOROOOOORRROOROROORROOOOORRRRRROOOORRRRORRROROOOOOORORORROOROOOORROORORRORROOORROOORORROROOOOOROORRRORRORRRRROROROORROOROOORRROORROORRROROORROORORRORROOOROORRRRRRRORRRROOOORRROORRORORORORROOOROOOOOOOORRRRORRROROOROORROROROOORRRROROORORORROORRRROOROOOOORROOOOORORRROROORORROOOOROROROOORRROOOOOOOORORROORROOORRRROORRRRRRORORORRRRORROROOORRORROROOROOOORORORRORORROORRROORROORORORROOOORRRRRORORROOOORRRROROOORROROROOROORROROOORRRRRRROORRRRROORRRROROOOOROOOROORORORORROORRRRRRRRRRROOOOORROROROOOORORRRRRRRROROOOORRROOOOOORORRRRRORRRRRROOOORRROROOORRROOORRORRORRRRRRROOROORORORRRORORRROROORRORRORORRRRORRRROORRROOROOOOROORROORORRORRRRROORRORRRORORRRROOROROOROOORORRROOROOROOOOOOOOOROOROOOOROORROORRRROORROOORROOOOROORROORRROROROORORRRROORORORORORROROROOORORRRRRRRRROOOOROROORROROROOORROROOROORORRROROROOORRORRRRROORRRROOORROORRRRROROOORORRORROOOROORRRORROROOROOOORRRRORRORRROOROROORRROORRRROOORRRRRORORROOOOORORRRORORROORRRORROROORRORORORRRRRRRORORRRORROORRORORROORRROOROOROORORROROORRORRRRORRROROOOROOORRRRRRROROORORRRRRORRROROOOORRRRORRORRRROOROOROORRORRORORORRRROORORRRRRORRROROORRRRRORRORRRROOOORORRORROOROORRRRRRRROROOOOORRROOOOORRORORORRORROOROROOORRRROROROOOOOOORORROOOOORORRROORROROOROROROROORROROOORRORRORRROROOORORRRRRRRORRRORORRORRROORRRROOOROOROORROORRRORORROROOOROOROOOROROORRRRRORRORRORRRROOOOROOOROOOORRORRORRRRORRRRORRROORORORRROORORORRORROOROOROROOORRORORROOROOOOROOORRRORORRROOORRROROORRRROORRROROORRRROORRRRORROORRRROOORROORRORRORROOOOOOOOOORROOORRRORRROORROROOORRRRRROOOOORRRORROOOOORRROORRROOOROORRROOOORRRRROROOOROOOOROOORROOOOROOOOROOORORROOOOOORROOORRRROOOOORORORORRRRRORRROORORRRRRRRORROORROORROORRORRORORORROROOOOROOORROOOROOOOOROORRRRORORRROOOOROORORORRROORRROOROORROORROOOOORRRRORROORORRORRORORORRRRRRROOOOOORRORORRROOROOORROOROOOOOOORRROORORROOOORROOOROORRROROOORRRRROOOOOORRRORROROOOOOROORRRORRORROOORROROOOORROOROROOOROORRORROOORROOOOROROOOORORORORORRORORROOOOORROORRRROOOORORRROOROORROOORROOOORRRRRROOOOORORRRORORRROOOORROOROORRRROOOROOROORROROORROORORORRRORRORROORRRROOOOROROOORROORRORRORORROOOOOORRRORRRRROORORRRROROROROOORORRRRROOROOOORRRRORROORRROROOOORRORRRORROOORRRRRORRRRRORROOOOROOROOROORRORROROOOOOOOOROORRROOOROOOOROORROROOORROORRRRRRRRROOROROOOOROORROOROORRRRRRORROOOOROROROROOORORORRRORROOORRORORORORORRRRORROORORROORROOOOOROOOOORORRROROORORRRRROROOORRRROOORRRRRORRRROOOROORRRRROOOOROOORROOOOOROORORORORRORROROOORORRROROROROOORORRROOOOOOORRROORRRRROOOORORRRROORRRROOORRORRORRORORORORRORRORRRRRRROOOOOORORRROROOOOOOOROROORRORRRORORORRORRORRROOORRRRORRRRRRRRRORORRRRORORRORROOROOOOROOROOOOORRORROOOOROROORRRRROOOORRROROOOOORROOOROOOORROOROOOOROOROORRRROORORRRROOORROOOORRROROORRRORROROOOOORORORROOORRRRRORRRORRROROOORRRRRORROOORRRRRROROORROORROOOOOROORORRROROORORRRROOROOOOOORORROOOORORORRRRRORRRRRORORROROOOOORROOOROROOROOOOROOROOOOORORRROORRRROOOOROOORRRRRORORRRRRRRRRRRORROOORROOORRORROOORROOROORRORRRRROORROOORRORRRORORRRORORROOOOROROOROROOOORORRRRORROOROORROOROORRRRRROOOOOROROOOOOOOORROROORRRRORRORRRROORROOOOORRRORRRRROOROOOORRRRRRORROORRRORROOROOOOORRROORORRORRRRRORROROOORRORRROOROOROOOOOOOOORRORRRRRRORRORROROROORRROORROOROOOOROOROORRROROOROROOOOOROOOOORRRORROROROORRROOROOORRROOROROROOORROORROOROORORRRRORROROOORROORROROORRRRRRORORROROORRORRRRRRORRRRROORRORRRRORRRROOOOOOOOORORRRRORRRRRORRORORRORORORORROORRORRRORRORRRRRRRORRRRORRRRRRORROORRORROOOOROORRRRRRRRORROORRORORRORRROROORRRRROROOROROOOROOOOOOORORRORORRRRRROROORROOOOORRROOROROORRORROROORROROOROORRRRRORROORRRROORORRROOOROROOOROOORRRRROOROORRRORROROROOORROOORORRORROOOORROORRORROORORROOORROORRRRROORRORRROROOROOOROOORROROOROORROOROOROOOROORRRORORORRRRROOOOOOROOORROOOORRORRORROORRRRROOOROORRRRRROORRRROROROORRORRORROORRROROOROROORORORORORROORRRRROOROROOORORRORRRRRROROORORRORROROOOOOOROROROORRORRRRROROORROROORROOORROROORRORORRORRROOOOORRRRROOOROOOORRORROORRRRRROROOORORROOORORROOROOOORROROROOOOORROOROROROOROROOORROOORORRRORORRRORRRRRROORRORRRRROOOROOROOROOOOOOOOOORORROOROROROROOOORORRROOORRRRRRRORRRRORRRROROORROOROORORRORRORRROOOOROORORRROROROORROORRRORROORRROORRRROORRROOORROORRORRRRRROORORROORORORRROOOORRRRRRRRRRORRROOROOOORRORROORRORRORRORRRRORROORRROOROOORRRORRRRRRRRORRORRROOOOORROROROOROOROOROOROOROROORRORORROORRRORRROOORORRROORROORROORROROORROOROOORRORRORORRORRORORRRRROOROROOORRRRRRRORORRRRRRRRRRRRROOROOOROOOOOOOORORRORRRRRRORROROORRROOORRROOORORRRRORROORRORRROORROROOROORROROOOOORROOOORRORROOOOROROOOOOORRROOROORRRORROORRROOORROOORROORORRRROOROOOORRORROROOROROOORRRRORRORORROOORORORRORRRROROROORRRORRRORROOROOOOOOOROOROOROORRRRROROROORORRRORORORRORRROOORORRORROORORRRRORROORROOOOORRROOOOORROROOORROROORRRORORROOROROROORROORROOROROROORORRRRRORRORROOOOOROORRROORROOOORROORRRRRORROROROOOOROOORROOORRRRROOROORORORRRRORRRRORORRROORROORRRRROROOOOOROOROOROOOOOOROORRRRORROROROROORRRRROROOORRRRORORROOORROORROOOROOROOORRRRROORORROOOROOORORRROROOROROORRRROORRORORORRROROOROORORORRRORROROROOOOOROORORROROROOOOROOOOOOROOORRRRORORRROOOORRROOORORORORRROOORROORRRORORRRRRROOOORORRROORRRORRRRORRROOROOROOORROOOOOORROOOOOOOORRORORRRORORRORORORRRORRROOOOROORRROOROROROORORRORROOOOORROOOROOROOOORRROOOOROOORROOOROOORORRRORORRROROROROORRORRROORROORRORROOOOOORORRROOOORRORRRROOOROORROOORRROOOROOOORROOOOOOORRROROORRRORRORORROOOROOORRRRORRRRORRRRRROOORORROOOROROROOOOROOROOROORRROOOOROOOOROROROROROOORRRORROORORORROOORRROOOORORRROOROORROOOORORROOOOOROROROOOOOOOROROORORORROORRRRORRRRORRROOORROROROOORORRROOROOROORRRORRROOORROORRRRROROOORRRORRRRRRORRROOOOORROROOORORRRRROOROOROOROORRROROORROORRRORRRRROORRRROORRRRRRORORORRRRRROOROORRORROOOOOOORRROROROORRORROOOROOORROOOORRRRRRRROORRORRRROORRROOOOORRROOOROOROOOROROORRROOROOOORRRORORORRROOOORRRROROORRORRROOOOORORROROORROOROOORORROROOROROROOROOORRRORRRORORORROROROORROROOOORRRRRRORRROOORRORROORRRRORRROOOORRORRROORRRRRRORRORRORORROROORROROORRROROORORRRRORORRROOOORROOOORORROOOROOROORORRRORRRORORROORROORRRROOORORROOROROOROOROOORROROROORORORORROOOOROORRROROROORRROROOORORRROROROOOOROORRORROOROOORRRORRORRRRROROROOOROOOOOROORRRROOOOORROORORRRROOOOOROROOORORROOORRRORRROORORROOORROOORORRRRRRORRRRORROOROORORORRROROOOOOORROORROROROOOORRORRRRORROOOROOOOOOROORORRROOORRRRROROORRORRROROROOORORROORORROORORROOOORORRRROROOOOROORROOOORROORRROORRRRRRRRROOOROROOOORRRRRRRRRROOROORRORROOORORRORORROROOROOROOORRRRROORRRORRROORRORROOORRORRRRRRRROROORROOROROORROROOROOOROOROORRRROROOORORRRORRROROOOOROROORRRROROOOORORROOOROOOOORORRRRORRORRRRROROOOOOORRORRROORROROOOORROROORROOROOOROROOROOOOOROROROORRRORRRORRROORROORORORORRRORRROOOORORRRRROOROOOOOOOROOORORRRROOOOOROROORRRROORROORORORRRRRROROROOOROROORORORRROOROOOORORRROROOORROORROROORRORORRROORORRRRORRRRROORORORORROOROOROROOROORRRRRORRRRROROOOOOOROROOORRORRRRRORRRORROOOORORRRORROROORRRRRRRRORROOROROOORRRRRORRORRRRRRRRRRRRORORROORRRRRRRRRROOOOOOOOROOROOOOOROROOROORRORRROOORRROORRROORRRORROOOOOOOOROOROROORROOROOOOORORROORORORORROOOROROORRROROROORROOROOOOROORORORRROOOORORRROOOOOOROROROOOROORRORRRRORRRRROOOROROOROORORRORORRRROORROROORROORRRRORORRRORROORORRROOORORORRRORRORRORRRRORRRRRRROROROOOOROOOORORRORRRROORORRRRROROORRROOROROOOOOOOROOORRRRRRROOORROOORROORRROORRORORORRORORORORRROOOOOROOROOOOOROOOROORORRRROROOORRORRRORORRORRROOOROOOOORRRRORROROOOOOOROOOORRROORRRRRORROROORRRORORORORRRRRRROOOROORRORROOOROOOORRROOOOOOORORORROORORROROOROROROOORRRORORRRROOORROROROOORORORORRRRRROROOROORRRRORRRRROORRROROOROOOOROROROORROROOOOOOROOROORRROORRRRORROOOOORRRROOOROROOORROOOROORORRORRROOOORORORROORRRRRROORRROROOOOORROORORRRROOOORRORRORROROOOOORROOORORROORRRRORROORROROOROOOROOOROOOOOOROOOOOOORROROROORRROROROROROOOROORRRORROROOROROOOOROROORROROORORROROORRRROROROOORORRROOOOORROORRORORORROORROOOROOOROROROROOOROOOROROORRRORRRRRROORRROOOORORRRRRRORORRORORRRRORORRORORRRROROOROROOOOOOROOROOOORROORRRRRROROOORORORROORRRROORROROOROOOOOROOOROROOOORROROOOROOROROROROROOORORROOORROOOORRRRROROOOORORROROOOOORRRORORORRRRRROOORRORROROORRRORORRRRRRRRRRORRROOORRORRROOROROOOORORRORROROORROOOORRORRROROOROROOOOOROOOOOOOOROROORROORROORORROORRRRRRROOOORORRRORRRORROORRROOOORRORROOORROOROOOOOOOORRORROORRRRRRRROOORRROROORORORRORORRRORRRRORROOROOROORORRRRRRROROOROOOROOOORRRRORROORROOROORRRRORROOOOROROOROOROOOROOOROOOOORORROOOORORRROOOROOOROROOORRROORROROOORORRRROORORORRROOOROORRRORROOOORRORRRROROOOROOOROOOROOOROOROROORROORORROROOOORRROORROOORROORRRORRROORORROORRORRRORORRROROROOOROORRRRROOOROOROORROOOOORRRROOOOOROOOOORRRROORRROORRRORRORRRRROORRRORRORRRRRRRROORRORROORRRRROORRRRRRORRORRROOOROOROOOOROORORRRRRRRROOROOOORRROOROOORROROROORORRORROORROOOOOOROOORORRRRORORRORRROROROOORRORROOOOOROOOORORRROORRROORRORROOROROOOROROROORRRROOROOOOOORORORROORRRROORRRORRORRRROORROORRORORORRORRRORRRRRRORRROROORRROORORRRRRORRORORRORRROORROROOROROOOOOOOORRRRRORRRRRROOOORORRORROORROORRRRRRRORRORRRRROORRRROROROOORROOROOROOROROOROOORRORROROORRRROOOORORORRRROROROROORORORORRRORORRROORROOOORORORORROORROOROOORRRROOOOORRROOORRRORRRORROORRORRORRROORROROOOROORRORRORRRRRRORORROOOOORROOOOORRRRRRROOROOOORORRRROOOROORROOROORRORRROOORROROOOOORORORROOOROROOROOOOOROORRROOOOOORORROOOROROOOORORORRRORRORRROORORRORROROOOROORRORRRROROOROOORORRRRRROOORRROOROOROOOOORRROOOOOROORROOOROOROOORRORORORRORORRRORRRRROOORRRROOOROORROOORROORORRORRORRROROORRORRRORORORROORRORRRRRRRRROROROROORRROORROORROROORRORROORRORRRRRORROOORRRORRRRRORRRRROOROOROOROOOORRRRRROROORORROROOORORORROROROORROORRROORORRROOORROOOOOORRRROOROOORORORRRRRROOOORORORRRRRRRORROORORRRRRRRROORRRROROOROOROORORORRRRRRRRRRROORROROROORRRORROORRRRRRRRORRORROORROOROROOOROOOOOOOOOOOOROOROOOROOROROOORRORORORORORORORORROROOORORRRROORRORRRRORROORROROOOORRROROOROOOOORORRRORRORROORROOOORRRRORRRORORROROOROOOOOROROROROORROORROOROORRROOROROROOOOROOOOROOROORRRROOROORROORRORROORRROOOOROROOROOROOORORRRRRRRROROORROOOOROOORRRROROROORRRRRROORRRORORROOORROROOROORRRRRRRROOOOORRROORRRORROOOROROOOROOROROOOOROORORRORRROOOROROOOROROOOOOROROROOORRORROOORRRROOOORORRRROOOOROROOROROOORROROOORRROOOOOORRROROORRROROOOOORRROOOORRROORRORRROOOORORRRORRORROROROORRRORRRRRRORRRROORRRRROOROOOORORROORRRORRRRRORRRORRORRRROOORRRRRRRORRRRRROOOOOORORRORROORRORORROROOROORRROORROROORROOOROROOOOOROOOORRRROOROROOORRROOOORORORRRROOOORRORORRRROOROORRROOROROORRROOOROOORRRRRRRRROORRRROROORRORROOROOOOOROOROORRORRORRRRORRRORRRRRRORORRROROOOOROROOROORORRORROROOOOROOROORRROROOORRRRRRRRORRROORRRRROOOOOOOROORRORRORRORORRRORRORROROROROROROOROOOROOROOROOOOORRORROROORORROOORRRROORRRRROOORRORROORRRRROOORROORORORORROORRRRRRROORROORRROORRRROROOOORROROOROORRRRROORROOOOOOOOOORORROORRRROORROOROROORRROROOORROORRORROROOROOOROROROOOOROROROOORROORRORORRRORORRROROROOOROOORRORRORRROOROOOORORRRROROOOORRRROROOOOOORROROROROORRORROORROROOOORRRROORORRORROOOOOOORRRRROROORRORROROROORROROORORORROOROROOOOOOORROOROOOOROOOORRRRROOOORRROOORROOROOORRRRROROORRRROOOROORORROOORORRRRRRORROROOROOOOORRRROORORROOROOORORROORORRRORORRRORORORROROOORROORROORROOROOROORROORRRROROOOOOOOROROORORRRORORRRRRRRRORRROORRROROOROOOOOOORRORRORORRRRRRORRORORRRROOOROROOROOORRRRRRROROOOOOROOOORRROORRRRORORRORROOORRROOROROROROOOROOOROOOOOOOORROROOOROOOOORORRROOOROROOORROORORORRROOORROROORORROROOOROORROOOORROROOROOOOORRROROOOOORRRRROOOOOORRROROOOOROORRORRROOROOOOORRRRRRRRRRROOOORROOOOOORRROOORROOROOOOOOOORRROORRROROOROORRRROOOOORRRROROORRROROOROROOORORRROOORRROORROOROORORORRROORROOROOOROROOOROOORORRRORORRROOROROROOOORORORRRRORORROOROOROROORORRROOROORROOROROORORRROORRRRORORRROORORRORORORORRRORRRROORORRRRRRRORORORRRROROROROOROOOROROOOOOOOORROOOOOORROROOOROOROOOORORRRROORRROOORRRRORORRRROROROROROOOORRORORORRRROOORRORRRRORROORRROOORROOROOOORRRORRRORROOROORROROOOOOORRRROOROOOORORRORROOOOORROOOROROOROROOOORROOOOROOORROROOORROOORROORORORRROOORORRORRRROOOROOORORROROORORRROOROORROORRROORRRRORROORRRRORROROOORROROORORORRRRORRRORROOORORROROORROOOOROOROOROOROROROROOORORRRRRROOOOORRRRORORORRRRORROORRRRORROOOORRORROOOROROOROOROROOROOOOOOORROOOROOOROORRRRROROOROROROORRRRROOROOOOORRRORROROROOOORROOROORRORRROOOROORRROORRROOOOOOROOORROOROROROORORROOROORRROOOOORROORRRRRRORROROOORROOOOOORORORORORRRRORORROOORRRRROOORRRROORRRRORROROOORRROORRORRRORRRRROOROOROOORRRRORRRRORRRORRRRRRORRROOROROROOOOOOOOOROORRRRORROOROROOROOOORORORRROORROROORROROOOOORROOOROROOOOORROROROROORRROOORROROORRRROOOOOOORRRRORORRORROOROOOOROORORORORRORROROROORORRROOORRRROORRRRRORRRORROOROORROORRROORROOOROOROORROOROORORORRRORROOOOOOROOOROROOROOORRORRRRRRORRROROOOORRRRORRROOOROOOOOOOOOROOROOORRRRRRROORRROOROOORRRRRORORORRRRROROOORRORRORRROOROOROROOOROORROORROOOOOORRORRRRRROOORRRORRRRRORRRORORORROROOROORRRRRRRORROOROOOORORRRROORRROOOOORORRROOROROROROOOOOOORRRRROOOROORORRROROOOOROROROROOOOOOOROORRRRORROOOORRRRROORRRROOORROROROORORORRROOOOOOOROROORRROORRORRROORRRRRROOORRORORRRORROOOOROOROOOOOOOORRROORROOROOOORRRORRROORRROORORRORORORORRRRRORRRORRRRORRRORRRRRROORRORRRRRRRRRRRORRORROROORRRRROOROOROOOROOROORROROOROORRORROROORRRORORRROROROROOOORRRRORROORORROROOOOOORROROORRROROORROROORROORRROOROOROROROOROROROORORRRRROORORRORORRRRORORRRROOROOOOOOORRORROROOOOOOOOORORRROORROOORRORRROROOORORORORRORRRROORRROOOOROORRROROOOROOOOOOOOOOOROOORRROOOOOROORRRORORRORORORRRROOORROOOORROOOORRRRORRRROOROORRRRORRORORROORORRORRRROOORROROOROOORORRRRRROROORROORRROORORRRORRORRRRROORORORRORORRORRROORORRRRORRORRROROROOROOOORORROOORRORROOROROOORRRRORRRORROOROROORORRRROROROOOROORROOOOOORRORRROOOOOOOOROOORROOOROOORRRORRRRRROOROOORROOOOOORRRRROOROORRORRROROOORRORROOORROOOROROOROORRRRRORRRORROORRROROOORORRRRROORROORRORROOORRORRORORROORRORROROOORORORRROOROOROROOROROORRROORRRORROORRROORRROORRRROOORORRRORRRRRRORROROOROOORROORRRROORORORROROOOOOOORROOOOROROROORRRROROOOOORROORRRRRORORROOOORRORROOORORORRROOROORORROORRROORORRROOOOROOOOORROROOOORRRRRRROROORORRRRROOORRRROROROORROORRORRROORRORROROOROOORORRROOROROOOOOORRORORRORORRROORRRORORORRROOOOROORRORRRRRRRROROORROORRRRROOOROOROOOOOOOOORRRROOROROOOOOOOROOOROOORRRORRRRRRROORRROOOORRRROOOOORROOOOOOOOOROROOROROROOOOORORRRORORORORRROROOOROORROROROROROORRORROROOROORRRRRRORRRRRORRRROOOOROOOORORORRORRORORORROOROOOORRRRORRRRORROOOOOOROOOOORRROOOROOOOROOROROOOROOORORORORROROROROROORRROOORORRROORRROROORORROORORORROROROOOROOOOORORRRROOROOOORORRROROOROORRROORORRRORORRROROOOOOORROORRRRROOROOROOORRRRROROORRRORRRORRRROOROROOOROORORRRROORORRORRROOROROOOORRORORRRRROOORORROOORRROROOROROORRRRORROOORRRROROROOROROOOOROROROORRRROORRORRRROOROOOORROORRRRROOROOORRORRORROROOOOOROOOORRORRROOOOROOORORRROROOORRRROOOOORORROOORORORROROOOORROOROORRRORRORRROORROORRRROOORRROORRRRORROROOROROORRRRRORORORROOORROROORROOOOROROOOROOOOOORORRRORROROROORRROOORRROROROROOOROOOROOOOORRRROOORRORORORORORORORORORORORRRORORROROOORRROOOORORORRRRRROROOOOROOOROOOOOORRROOORRORRORROOORROORRRROOOROOROORRORRRRRROOORRORORRRORORRROORORROORRRORRROORRRROOOOROOROORROOORRRRRROOROROORRRROOOORROROOROROOOROORORORORRORROOOOROOROOORRROOOORRROOORRORORROOORRRORRRORROOOROROOORROROOOOORORROOROORROORRRRORORROROOROOORORORORRROROROORRORRORRRORROOORORORRRRROOORORORRRROOROROORRROORORRRROROROORRRRRORORRORRRRROOOOOOOORROOOOOOOOOOROOOOROORRROOORROROOROROROROOORORORRORORROOOORRRROORRORRORORRRORORRORRORORORRORROOOOOORROOROOOROORROROOROORRROROROOOROORROOROOORRORRROROROOORRRROORRROROOOORORROOROORRRROROORROOOOOROOORORRRRROOORRORROORORRORRROORROORRORROOORROROROROOORRRRROOOORRORRRORRRORROOOOROROOROORORRORROORROOROORROOORRORRROORROOOOROORRRROOROOROROROOOOROROORROOROROOROORORORRRRRROOORORRRROOORORORROROOOORORRORROOOOORROROROOOORRORROOORRRRRORORRRRORRRROOORROORRORORORROROOOROOROROOROROOORRRRROORORRRRROOOORRORRROORRROOROOOORROOROORRROOORRORROOOOORRRROOOOOORORRRRRORORROORROOOROOOORROOOROROORROROOOOOOOOORORRRROORRROOOROROOROOOROORRROORRORRORRORROOOOORORRRRRROOROORROROOOOOOROOOOOORORRORROROROROORRORRROOOOOOORRRRORRRRORRRROORRORRORRRRRROOOOOOOROORORROOOOROOOOOORRORROOORRROORRRROOOORRRROOORORRORROOORRORORRRORORORRORRRROOORORRROOOOOOOOOOORORROORROROORRRRORROOOORORORORORROROROOROROORRORROORORRRRRRRRORRRROOOOOOORRRRRROOOORRORRORRRORRRORORORORRRRORRRORORRRRRROORRORRRROOOORRRRROROORORRORRORORRRRORROROOOROOROROROOOOORRORROROORROOOORROROROOOROROORROROORRROOROOOORROOROROROOOORRORRORORROORROOOROOOORROORROROORORRRRRRRORROOOOOORRRROOROOOORRRORRRRRRORROOOORRROOROROOORROROOROORRRROROROROROOORORRRRORRROOOOOOOOOORORRRORRROORORRORORRRORORORORORRRORORRORROROORROOROOOOOORORROORORORRORROORRRROOOOROORRRROOORRORRRRRRRROORROROROROROORRORORRORROROOROOROORROOOROROOOOOROROROORROOORORRRORRROORROOORORORRRROOOORRRRORROORROOORROOOORRRORRORORORORRRRORROROOOOORORRORRROORORRRRORORORROORRRORORORRRRROOOORROOROOOOROOOOORORROROOROOOROROORORORRRORRRROORRORORORRRROOORRRROOOOORRORROOOOOOOOOROOOOORROROORROOOORRORRRROOOORRORORORRROOOOOORRRORRRORRORORORRRROOOROOORRROORROORROORORROROORRORORRRROORRRRRROROOORROORRORORRRRORROROROOOORORRRROORRRRROROOROOOROOROOORRRRRORROROOROOOORRRRRRRROORRRROOROOORORROORROOOORRORRORORRRORORORORRRORORORORORRORROOROROOOORORRROORRORRRRROOROORRRRROROROORROORRRRRORORROORORORROROORROOOROOOOOOORRRORRROROROOROOOROROROOORRRRORRRRORRORORRRRROOROOROOOROROORRORROOORROOROOROOROROOOROROOOOOORORRRORRROROROROORRROORRORORORROOROOOOOORRROORRRRRRRRRRORRRORRORRROORORRORORRRRORRORROROORRRRORRROORROROOROORORROOOROOOROOROOROORROROORROOOOORRROORRROOOOORRROORORRRORROROROOROOOROOORRRRRRROORRORROORRORRROOORRORRORRORORRROROOOORRRRORROOORRRRRRORRROORORRROOOROORORROOROOROORORROOOOOOOOORRRROOOROORROOOOROOOORRROORRROORROOORRROOROOOORORRRORRRORRRROOOOOROOROOOORRROOOOOOOOOOROORRRROROOOROROROROOORROOORRRORRRORROORRROROORORRROORORORROOOROOOORRRRRRRROORRRROOROOROOORRRRORORRORRORRRORRRROOOORROORRRRORRORROOOOOOROOROORRROORRORRORRRRRORORRRROORRRROORROOORORRORRRRRRROOROORRORROROORORROROOROOROROORROROROOOOOORRRRRRROORROORRRROORORRROOOROROOROORRROORRRORRORORRRORRRROROORRROOROORRORORROORORROORROROOOOOOOOOORROORORROORORRORORRRROORROOORROROROOROOOOOOOORORROROOROOOROOORORROORRRROROOOORRRRROORRROROROORORORROOROOORRORROROROORROROOROOOORROROROROORROOORROOOOORRORRROOORORRRRORRRORORROROOOORROOROOORROROOROROORRRRRROROROROOORORROORROOROORRRORRORRRRRORRRORRORRROORRRRROORRROROOOORORROROOORROROROROORRRRRROOOOROOOOORRRROORROOORORRORRROOORRRROOOOROOOORROROOORRORRRRROOOORROOORRROOOOOORRROORRORROORRROORORRORROORRROOOOORORRRRROORORRRRORRRROOOOORRRORROORRORRRROOROORROOOORRRORROROORORROOOOOORROOOORRROOROROORORRRROOORRRORORRROROORRRRRRRROROOROROROOOOOOROORROORRORRRRRRRROOORORORRROOOORRORRORRRORRORROROOORRROORORORROROORRRROORORRRROOOROORRRROOOOORRRRROROROOOOROOOORORRRORRRORRRRRORRRROROOOOOORRROOROOOORRORRORRRORRORROORRRORROOOOROOROOOOOROOOROORORORROROORROROOOROROROROROROOOOROROOOORRRRORROORRORORRRRRROOOROORRRORORROORORORORRRRRRRRRROOROROOORORROOROORROOROOROOOROOOOORORRROOROOROROROROOOORRRORRRROORRRROOROROORORRRRORORRROOROORRRORROOOOORRRRRORROORORROOOORRRROORORROROOROORROORROORRROOOOROOORRROROOOROROROROOORRORRORORROROORORROOOOOOOORORORROROOOOOOOROROOORORORRRROORROROROOOORRROOROOORROROOROORROORROORRROOROORROOOOORROOORRORRRORRRROORRRORRORORRROROOOROOOOOOOOROOORROOOOORRRRROORRRORORROOORROORRRRROOOROOROOOROOORRRRROOOOROOROOROROORRRRORROOORROORORRORRRORORRORORRORRRRRORRRROOROORRORRRRORRRRORRROOROOROOROOORRRRRRORROOORROORRROORORRRRRROORORROROOROROOROROORRROORORRRROORROROORRROOORORRROOOORRRORRORRORRRORRORRROORORROOOROOOOOOORROORRRORRRRRRROROOORORORRROOOROORORROORORRORRROORRROROORORORRORRRRROORROOOROOOOOOOROROROOOORRORROOOOOORRRRRROOORRRRROROOORORRORORRRROORRORROOOOOOOOOORROOOOOROROOOOOROOORORORROROROOOORRROORROORRRORRRRROROORROROROROORORORRROROROOROORRRORRROROROOOROORROORROOROORRRRORROORROORORROOOROROORROOORORRROORRRRROOOROORRRRORORROOOOOOOROROOROORRROOOROORORRRROORRROOOOROROOORRRROOORRRROROOORRORORRRRRRRRORROROOOROOOORORORROOORROOROORORRRRROOOORRRORRRORROROORRRRROROROOROROOROORRRRROOORORROOROORORRRRRRROORRRORROORRRRORRROOOROOOOOOOOORRRROOROROOOORRRROOORRROOOORRROROORRROOORORRORROOOOROOORORROORRRORRROOORROROOROOOROOORORORRRRRRORRORORRROROORRRORORRORRRRRRRRROOROOROOROOORORRRROORROOOOOOORRRORORROORRRRRORROROROOORRROROORRRROROROOROORRORRROROOROORRORRORRROOORRRRRROROOROOORROOOOROORRORROOOORRORRRROROOOROOOORROOROROORROROOROOROOOORRRRROOORRROROOORRRORORRRORROOOORRRROOOOOOOORRORRORRRRRORROORRRRRRRRROOORRORORROORROORROOORORROROORORRRRROROOROROORRORORROORORRROOOOOROOOOOORROOOOORRRORORRRORORORRRRORROOOOORRRRORROORRRRROROORRORRORRROOORRORRRORORRORROOROOROROOOOROOOROOOROOOOROOOROOORRRROOORRORRRRROOROOORRRRROROROORRROOORORRORRRRRROOOROOROOROOORRORORRORRROOROOROROORORRROROORROORRRRRRORORROOORORORORRROOOROOORRRRRRRORROROROORROROOROROOORRRORROORRRRRROORRRRRORRROOORRROORROOOROOOROOOROOORRRRROOORRRROOROROROORROOORRROOROOOORRORRORORORRROOOOORRRRROROOOOROOORROOROOOOORROOORRRORRRRROROROROORRROOORORROORORROOROOOORORRROOOORORORORRORROOROROROROORROORRRORRRRRRORRORRRORROOROOORROOOORORRRRRRRRRROOOOROOROOORRORORORRORROROOROOORRROOOOORRROOOOROOORRORORORRROORROROOOROORRRORORORROOORORRROOOOOOORRRRORRRROROROORROORRRRROORROOROORRRRRRORRRRORROOROOROROOROROOORRORRROORORRORRRORRRRORORRORORROROROOORORROORRRORRROORRROORRRRRRRROOOROORROOROROORRRORRRRORRORRORROORRORRROOORRRRRROROORRRROROOOORROROOROOOROOROOOORRRRRROOORRRORRRRROOORRRORROOOROORROOOOROORRRRRRROORRRRORRRORROOOOORRRROOROOROROROOROOROOROOORORORRORRROROORROORRROROOOOORRRROROORRORROROROOORROOOORROOOORRROROOORRORORROOOROORRROORRRRRRRRRROOOOOOROORRROOOOOROROROORORRORRRORRRORORRRROOORRORRRRORRRRRORRRORROOROOROOORORRRRRORRORRORRORRRORORRRRROOOOROOOORROROORRORORROORROROORRORROOOROORROORROORROOORORRROORORRORROROROORRORRORRROROOROOORORORROROOOORROOROOOROOOORROOORROOOOORORORORROORRROROOROORROROOORRROROOOOROOORRRRORRRROROOOORRRRRROROROROOOROORROOROOOORRROOROOROORRORRROROROORRRRRROORRRROROROOOOOOORORRROORORRRRROOOOOORRROOORROOROOROOOROORRORRRRORORROOORRROOOORROORORORROOOROOOORRRROOROOOOOROOROOOOOOORRRROORORRORORRRRROORORRRROOORRORORRRRORRRROROOROOOORRRRROOORORRRRROROOROROROORRRRORRORROOOOROOORRRROOOOOROROOROOROOOOORRROORORRORRROOOORROORROORROORRRROOOOROOOOOROOORORORROOOORROROORRRROOORROORRRRRORORROOOROROOORROORRRORRROORROROOROOOORORROROORRRRRRORORRRRROOOROOORROORRRRORRRRRRORORRORROOORORORROORRORROROOOOORORROORRROOORRRRRRORROORROOORORRRORRRRROOOROORORRORRROOROROOOORRRRROORRRORROROOOROORORRROOOROORORRRORRORROOOORROOORRRRRORROOORROROROORORORORRORORRRRRRORROOROROOORRRROROOORORROOROOROOORRRROROROOORORRORROOROROOOOOORROROOOOROORROOOOROOORRROOORROORORRROORROOROROROROOOROROROOOROORORROOROROORORRORRRRROROOORRRORRORRROOORRRRRRROOROORROOORRRRORRRROROROOROORRROORRRORORRORRRRRRRROOOORORRRRRRROORORORROOOOOOOROOORROOOOOROOROROROOOORRROORRRROOOROROOOROOOOROORRROOROOOROOROOOOOOORRORORORRROORRRORRRRRROOORRROOROOOOROROORRRRROOOOROORRROOORRRRRROORRROORRRORORORRRORORRRORRORROORRORORROROROROORROOOOOOROOOORORROORRORRRRROROOROROROROOOORROOROROOOOOOOOORORORROORRRROOORRRORORRROOORROORRORROORRRRROOOOOOORRORRROOROROOOROOROOROORROORRRORRRRRROORRROROOORORROOOORRRROROORORROORORRRROOOOOROROOROORORORROORRROROOROOOOORRORRRORRROOORROOOOORROOROOORRROROORRRORRROOROROOOOORRRRROOROROOORROROOOOORORORORORRRORRRRRRRROOROOORRROORRROOORRRRROOROOOOOOORORORORRROOOORRORROOORROOORORORRORROORRROOOOOORROOOROORRRRORRORORRRORROROROOOOOORROOOOOOROORROORRORRRORORORORORROROROOOORRORRRORRORRROORRRROOROOROORROOROOROOOOORROOOOOOOORRRROROORORROOOOORORRORORORROOOOROOORRRRORRRROROROORRROOORORORROROORRORORORRRRORORRORRRRRORORRORRRRROROOOOORORRROOROOROORRRRRORRORRORRRRORRORROOOOORRRORRRROOROORRRRRRRORRROORRROOOORRORROOROOOOOOROORRROOOROORROOROROOROORRRORORRRRRRROOOORRROOOORORRROORRORRRRRRRRRRRROORROOOORRRORRROORRORRORRRORRORRRORRROOOOORORRROORRORORROOORRORRRRROOOROORROROROOROROOROROOROOROOORRRROORRROORRRRORRROORRRROOOORRORRRRRRRROOOROOORORORROROOORRORORRORRRROOOROROOROOOOOORRRORROROOOOOOOORRRRRRROOORRROORRORROOOORRROOORRORRORRROORRRRORRORRROOOOOORORRORROOORRRORRORRRROROORROORRROORROOORRORROOOROORRROOOOORROORRRORORRORORRROOORRORRROROORRROROOOOROOROORROOORORRRRRORRRORORRRRROROORORROOORRORROORRORORRROOROOOORRRORRRRROROORRRRRROOROOOROROORRORORRRRRORORROORROOOOOOOOROOOOOOORORROROORROOOOOROOORRRORRRROOOORROROORROROOORROOOROOOOROORROOOOORORROROOORROOOORRRROORRORRRORORRRRRRRROORRROOORORRRORRRROROOOOORORRORORRORRORRRRROORORRRROORROROORROOROORORRORROOROOROORRORRRROORORROOOROORROOROOOROOOOORRRRROOOOOORORRROORRRROOROROOOROORRRROOOORORRRROOROOOORORRROOROOOOOORRROROOROOORRROOOORROROORRROOORROROOROOORRRRROOROORROOORROOORROORORRRORRORORORRRRROOOROOROORORROORRORRROROOOOOROOOOOORROOORRRRRORRORRORRROOOOOORRRORRROROOROORORRRRRORRORRROOOOROORROORRORRROOROOORROROORORRORRRORRRORRROROROOORRORRROORORRRRRROROOROORRROROORROOROOROROOROOOOROROORRRRROORRORRRRORRRROORRRORRORORRRRORRRRRORROOROOROORROROOORRRORROOOOOORRRRROROROOOOOOORRROROROOORRORRORRORORROOOORRRORRROOOORRORORROOOORORROOORRORROOOORRRRRROROOORRROROOOOOROORRROOOROOROORRORORRORRRROOORORRORRROORORRROOOROROOROOROOOROROOROORORORROROROROROORRRRROOROOOROORRRRORORRRORRRROORRRRROORRRROROOROOOOROOOROOOOOROOROORROROOOORROORRRROROROOOORORORRRRROROORROROOROOOOOROOORROORRORROORRRORORRROORORORRRORROOORRORRRORRROROROOORORRRORRRRRRRRRRORRORORRRRORORRORRORORORRORRORRRRORRRRRRROORROOROOROOOOOOORROROOOOROORROROORRORORRRORORORROOOROROORRORROOOOORORRROORRROORRROOORRRRORROOORORORROROORROOOOROOOOOOOOROOOORRRRORRROROORROOROROROROOORRROOROORRRROORRRROOOORRRRORRROROOOROOROOROROROORROROOROROORRRROOOORROORORRRROROOOORROORRRRRRROOROORRRRROORORRRROORRRRROROOOOORORRRRRRROOOOROOROOROORORORRRROROOROOORRROOOOROOORRRORRRORRORORRRROOOOORORORORRRRRORRORROROROOROROROORORROROORRRRORORROORROORORRORORRORORRROOROOOOROOOOORRRRRRROOOOORORROORROOROORRRRORRRRRRORORORORORRRORORROOOOROOOOOOROOOOROORROORORORORRROOOOROORRRRRROORRROROROORROOROORROORRRRRORROOROORRRROOOOORORORROOOOORRRORRRRROOOROOORRRRRORORRROOOOOOORRORRRROOROROOROOROOOOOORORORRRORRORROOOORORROROOOORRROROORROROORRORROOOORROORORORROROOROORRRORROOOORROROOORORORROOOORORRORRRRROROORRRROORORRRROROROOOOOROORRRORORROROROOROORORRRROROROOROOROORRORRRORORRORORROOOOORORROOOORROORROROOORRRROORRROOOROORROORORORROOROOOOOROROOROORROOOOORRORRORRRRROORRRROROORRRRROOORORRRROORORRROORROROOORRORROORROORROROOOROORRORRRRRRORRRORORRRRORROOORROOORORRROORORROOOORRRRROORRRORRROOROROOORORROOOORRORROROOROROORROOOORRRRORROORRORORRRRROROOOOORRROORROROOORROROOOOOOOORROOOROOROOORORRROOOOROROOROROROOOROOOROOORORROOOORROOOORORORRRRRROOROOOOORORORORRRRROORROOROOROROOROROROOOORROOROORRRORORRRRORRROROOOORRORROOOORRRRROROORROOROROOORRORRRROOORROOROOOOOOROROOROROORRRRRROOORROROROROOOROROROOROROOROROOORROROOOOOROROOORROOOOORRRRORORORRORRRROORROORRORRORORRRRROORRRRRORRRRRORRORROOOOROOROOOORRORROORRORROOORRORRROOORROOORORRRROROOROORRROROROOORRROOORRRORRROORRRROORRRRRORORORROOOOOROOROOOOOROOOOOOOORRROROORORRRRROORRRROOROROROOOOOOORORROOROOROROROORRRROROORRROOORRRRRRRROOOORROOROOROOORROOORRRRRORRORORRRORRROROROROROROROOROOOROOORRRRROROROOOORROROOOORROOORROROOROOOOORORORORRRROORRORRORROORRRORORORRRROROOORRROROORORROOOROOOORORRORRRORRRRRRORORRRRORORRORORRROOOOOOROOROOOOOROROROOOOORORORRROOORRRRRROOORORROORRROOOROOOOOORRRRRRRRORRRRORRRORRORORRROOORRORRROORORROROROORRRRRRRRRRRORROOOOORRRORROOOORORRORROROOOOROOORRRRRORRORORRRROROROOOORRROROOOROORRRRRRRORROOORROOORRRROORRRORRORRORROOOROROORORORORROORRORORRRRRROROROOORRRROORRRRROOROROOROOORORRORRRORORRRORROROROORRRORRRORROROOROORROOOROOORROOROORRRROOROOORROOORRROORRROROOROROOOORROROROORORRORRROORRROOOORRROOROOORROOOOROOORROOOROOORORRORRRROOOOORORROOOOOORORRRROOOOORRORROORRRRORROORROORRRORRROOROORRORORRRROOROROORROOROROORRRROORRROOROORRORROOORRROROOORORRROOROOOOOOROOOOOOOOOOOROOOOORORRROOROROROOROOORRROOOOOORRROROOOOORORRRRRRROOROORORRROOROOOORORORROROOROOORROOOOROORRRROOROOOOOORROOOORORROOOOORRRROOORROORROOOOORRRORORROOORRORORORORRRORRROOOROOORORROOROORRROROOOOROOROORRORORORRRROORROOOORORRORRRORRRRROORRRRRRRORORORORRRRRORRROORRORORROOROOOOORORRRRRROOROORORRORRRROROOOORRRROOROOORRRRRORORRRRRRRORROROORORRRROROOROOROOOOOOORROORORRRRORRORRRRRROOOOROOORRRRRRROORORRRRROROROORRROOORRROOOOOOORRRRRRRRORORRRORROOORRROOORRROROORORROROOOOOOROOROOROOORRORRRRORRRRORRRORROORRORORORORROROOROORROROOOOOOORRRRORROORRROORROROROOOORORRROORRORORROOOOOROORRROROOOROROORRORRRORROORRROROOROOROROORROORRRORROORROORORORORROORROOORROOROOOORRORRRRRORROORRRRROORROROORRRORROOOROORRORRROROORRRRRRRRORROORROOOORROOOROOOORRORRRORROOOOORROOORRRRROORRROOOOROORRROOORORROORRORRORORROOORRROORORRROORRROOOOROORRRRORORRRRROORROROOROORROOOOROOOOOROOROORRRORROOOROOOOORROOORORORRRORRRRRRORORORRROROORRRROROOOOOOOOOOOORRROOOOOROOORRORRRROOORRROOROROOOORROOOORORRORRORRRRORRRRRROROROOROROOORROROOORRORRORRORROOOROROOROOOROORORORRORROORRROROROORROORRROOOROORRORRORORROROROROOROROORRROORRRRORROORRRORRRRRROOROORROROOOOORRRRROOORORRRRRROOOORROOOORROOROORORRRORRORRORRROORROOOROOORROORORROROORROROORROORORORORORROOOOROORRRORROORROROORROORRRORROORRRORROROROROOOROROOOOROOROROROORORROROORROOOROROOORROOORROORORORRORRRORRROOOOORRRRRROORROORROOROORROORRRROOOOOOOOOORROROROOORROOROOROOROROROROOORROORRRRORROROORRRROOROOOOOOORRORRRRROOOOOROROORORORRRRRROOOORRORORRROOORORROORROOORRORRROOOOORORROROROOROOOOOORORROOROORRROOOORORROORROORRROOORROOORRORROORRRRRORORROOROOROROOROOROOOORRRROORORRRROOOOORORROOORROORRRRRRROORRORROORRRORROOORROOOROOROOROOROOOOROOROOORORORROOOROROOORRROROOOOORRORORROROORRORRRRORRORRORRROOORORRRRROROORORRORORROORORRORRROROORROROOORRRRROOOOORRRROROORRORORRORROOOOOORRROOORRRRROOOROOORORRRROOOROOROORRRRRRRORORROOOOOROROOORROOOORRRROROORRRORRROOOORROOOROROOOOOROROOOROORRORRRRRORRRORRRRROOOOOROROROROORRRRRRRRROROOOOOOORRRRROROOOOROOROORORROOORRROOOROOROOORRROORRRROOOROOORRORROOOOORRROORORRRRRRORRRROORRRORRRRRRORROROROORRRRRORROORRORRRROOROOOOOOOROOROOROOORRRORRRRORRROOORRROORRRORORROOOOOOROORORRRRROORORRORROOROORRROORROOOOOROORORRRORRRRRRORORRORORROORRROROROOROOOOOROORROORORRRROOOOOORRRROORRROOOORRORORRRRRRROOORORROORRRRROROROOOOOROOOROOROORORRROOROROOOOROROROROOOROROOOROORROOOOROROROORRRROROROOOROOOORRRROOROROOOROOROORRRROOOROROORRORROORROROORRRROORROROORORROOROORORRRRORORRRRRORROOORROROOORRROROOROOROOROOOORORRRORORRROOROORROORRORRROOOROOOOOORRRRRROROOOOORROOOROOORROORRROORORRRRRROOORRROOORORRRRRORRORROOOOOOOOOOROORORRROORORROORROORRROOOOROROOOORRORRROROOOOOOORRORRROROOORORORRRORRRROOORRROORRRRROORROORRRRRRROOROOOOROOOOOOOOROROROROOROORRORORORORROROROOORORORRROROOOORORRRRORRROORROOORORRROORROROROOROORROOROROORRRRRORRROORORROOOROOROOORORRROOROORRORRORORROOOORRRRROORROORRRROORORRROROROROROOOOOORRORORRORRRORRROROOOOROOOORRRROORROROROORROORORRROORRROOOOORORORRRROROOOORROOROOOROOORRRROROOOORROORORORROROOOOORRROOOOORRRRORROOORRROOROORRROOROROROOOOORORROROORROOOORROORRRORRRROORORRRORROOOOORRROOROROORROORRRRRORRRORRROOOOOROROROOOOOORROROORRRRRORRRROOORORORRROOOORRORRROOOOOOORRORORORROORROROOORORROOORRORORROOROOOOORRRRORRROROOROROORRORROOOOROROROOROOROOOOOOOROOOROORRROORRRROOOOOORRROORRRORRRRRRORROOOOORROOORRRRROORORRRRRORROOROORRRORRRORRRRRRORRRROORORORORRRORRRRORRRROROOOROOOORRRRROROOROOOOOOROOORROORROORRORRORRRROOORRRROOROROOOOROOORORORRRRORORRRORROROOOOORRRROOOROOOORROORRORRROROOOORORRORROOOOROROOROROOOORRRROORROORORROORORRROROOOORRRRRRRORROROROORORROORROORROOOOORORRRORRROORRRROOROROORRORORROORRORRRORRRRRRROOOORRRORORRRRRORRROORRRORROOROROOOROROOOROORRORROROORORROOOOOOOROOOORRRROOOOROROOOOOOORROORROORRROOROOORRRROORROOORRORORRORORRORORRROOROORRORORRRRROOOOORORROORROORRROOROROROOROORORRRORROOORORORROOOOOOOROROOOROROOORRORORRRRROOORRROOOOROROOROOORRRRORORRRRROORORRROROROOORORROOROOROOROORRRRRORROORROROORRORORORROOOOOROOROOOOORORRRROOROOOOOROOOORRRROOROROROOOOORORORRROORORORORRORORORRRORRROORORRORRROROOROORORRROOOORRORROOOROOOOOORRRRROORRORRRRORROORRROOROROROROOROOOROOORRRRORROORORORRRRROORROOORRORRRRRRRORRRRROROORROROOOORRRRRORRORRRRRRRRRRRRROOROOORRRRRRROOOORORRRRORROORROROOORROOROORORORRORRRRRORRROORROOORROOOORROOORRORRORROOROORRRROOROOORRORORRROROORRORORRROROOOROORRRROOORROROOOROOOOROORRRORORORRORRRRORRRROOOORRROROOOOORORRRRRRRORRROROOOROROORRROOOORORRRORROOOOORRROROOORRRRORRROOOOOOORROOOOOROORRORORRROROOROOORROROORROOORORORRORRORRRROROROROOOOROORRRRROROOOROOROORRRROROOORORRROOROOROOORRRRORORRORORORRROOOOORROROOOOROOROOROOORRROOROOORROOOOROOORROOORORRRRORROOORRRORORORROOOROORRRROOROORROOORORROROOROOORRROORRRROORORROORROOROROORORORORRRORRORRROOROROORROOROROOOOOORORORROROORRROORROOORROORROOORRROROOORORRRRROOOORRRRRORROOOOOOORRROOROOROOORRROORROROOROROROROOROOOORRROOOOROROORRORROORRORRROOORRRRORORORRROOOORRORORROORRORORROOOROROOOOOROOOOOOOOOORORRRROOROROOORRRORROOORRROOOORRRRRRRROOOORROROOOOORRROROROROORORORROOORORRRROORRORROORRROOOOOOOROOOROOOOROOOOORRRROOOROROOORRROORROORORRROOOOOOOROROOROROOROOORORORRRRROROROORROORRRRORORRRRRRORRRRRRRORORORROOOROOROOROOROOOOOOOOOOOOROOOOOOOROROOOROOORROOORRRRORORRROORRROROOOOOORRORRRORRORRORRORRORRORORROOOROORRRRRORROOOROOORORRRRRORRROORRORROORROOORROROORRORRORROOROROOOORRRRORORRORRRORORROROOORRRRORRRRROROORROORRROROOORORRORROROOROOORRRORROOROOOORORORROOROOORROORRRROOROROROOOOORORORORRROORRORRORRRORRRORORORRRRRORRORROROOOOOROOOROORRORORRORROOROOORROOORRRROOOORRRRORORRRRORROOOROOORRORRROOOOOROOOOOOOORRORROORRRROROOROOOORROOORRRRORRRORRROROORROROOORRRRROOORORRORROOROROOORROORRROORROROOOOROOOOOROOOORORROOOOOORRORROROOOOROORROORORRRROOORRRRROOOOOORRRORORRRROROOROOORRRRORRROOORROROROROOROORRROORRORROOROORORROOORRROOOORRRROOOOOROROORRRROOOORRORRROORORROOORRRROROROROOORRRRRRORRRRRRRROOORORRRRROORROORORRRRORRRRORROOOOOROROORRORRROROOROORRRRROROROROOORORROROORORRRRRRORRORRRROORRROOOROOOORROOROOROORROORRROOOOOORRRROOOROOORORRRRORROOROOORRRRRRRRRRRORORRRRRRRRORRROOOORROOROORRRRROOOROOROORRORROOOORROROOOROORROROORRRRORROORRROOORORRROOOOOOOROROORROOROOOOOOOROOROOROROROOORROOROOOROOORRRROOOROROOOROOORROROORRRRORORROOROROOOROROOOOROORROOROORROOORORRRRROORROOOORRRRRROOORROORORRRRRRRROORRRROORORROROROROOOOROOROORORORRORRORORRORRORROOORROOOOROOOOROOROROOOOORORORRROORRROOOORRROROOROOORRORRRRRRRRROORORORRRRRORRROOOROOOORRORRORRRORORRORRORORRROOOOOOOROOROOOORROROOROORRORRRROOOORRROOOORRRRRROORROOORORRRRRORORRRROOORRRORROOOOOORRORROROOOORRORRORRORRRRRRORORORRRRRORORORROROROORROROORORRRRORRORRRRRRRROORROOOORROOORRORROROOOOORRORRROOROORRRRRROORORROORRRRRRRRORRORORORRRORROORORROORRRRRRRRRRRROROORROROORRRRORORRORRORRRRRROROOOOOORORRRRRROOORORROROOROORROORRROROOROOOOORROROOOROROOOROROORROORRRROOOOORORROOOOOOOROOROOOOORROOOORROOOOOOOROOORRRRORRROOORRROOOROOOOORRRRROOOOORRORROOROORORORRRORORROOROROOROORRORORRROROOOOOROOOORORRROROOOROOOORORORRRORRORORORRROOOROROROROROORORRRORROORROORRROOOORORRRROORROOOOOROOOROOROOROOORROOOOROROORROOOROORROOOOROOORROROOOROORRRORORORRRRRROROROOOOOOOOROOORROROORORROORROORROOOORORORRROOROROROOROOOROOORORRROORRORRORRROORRROORRROOOORORROORROROOORRORORRORORRRRROOOORORRRRRRRROOROROROOOOOOROORRROOOROOOOOORORORRRORORRROORRORROORRROOOOORORRRRRROOORORORRROORORRORROOORORRRRORORORRRRROORRRROROOOORRRRRRRRRORORRRRRRROORROOORRROOROOROOOOORRORROOROORORRROORORORROOORRRRORRRORORROORRORRRROORRORORORRORRRRRORROROROOROORORROOORRRORRORRORORROOOROROOORROORRRORROROROORRRORRROORROORORRRORROOOOOORORRORRORROORROOOOROORROOOOROROOOOOROOOORORROOORORRRRRROROOOORRRORRROROOOOOROORRORROOROOORRRORRRROORORORRORORROOOORRROOOROROORORORRROORORRRROOORRRRROORORRRORRORROROOOROORRROORRORROORROROOOOROOROOORORRRRROROOOORRORORORORORORRROOOOOOORORRRRORRROROOOOOORORROORRROOORORROOROORORORORORROOROROORORRRROOOOROROROOOOROROOORRROOROOROOOORRRROROOORRRORRROOROOOOOORRROOOROORRORRRRRRORROROROOORRRRRORORRRRROOROROORRRORRRROOORRRRRORRORROOOOORORROORROROOORRORRROOROOOORROOOORROROORROOOORORRRROOORRRROROROROOROROOROOOROOROOOORROORORRRROOOOORORRROOOORRROOORROROOOOOROROOOROOROORRROROORRRRRORORRRORRROOOORROROORROOOROOOORRROORRRRRROORROROORORRROORRROORROROOROORRRORRRRRRRORROOOOORORRORRROROOROOOORRRRRRORORORORRRROOROORROORRRRRRRRRRROROOOROOROOOORORROOOOROORRORRORRORORRRORROROOOOOROROOOOOORORROROOORORORRRROOORROORRRROOORRORROOOOOOOOOOOORORROORRORROROOROORRRROROROROROOOORORROORORRROOOROROOOORRRROROORROORORROORROROORROORRRRRROROROOORROORORORRRROORRRRRORROOOORRROOROROORRRRRRRRRRRRRROORORRRRROOOOROOOOOOOOOOOORORROOORROROORRROORRROROROOROROOROOOOOOORORRORRRROORROROROOOORRORROOORROROOOORROOORORRRROORRRRRRROOOOOOORRORROOOROOROORROROOOOOORROOORORRRROOOROOOOROOORRROOORROROROOOOROOOROOORORRRRORROOOROOOOORRRORROOOOROORROORORRORORRRRROOROOOORROORORORRRORROROOORRORRRORRROORRRRRRROROOOOORROROOROORORROROOOOOOOOORORRRROORROOOORRORROOORRRRROOORROOROOOROROROROROORRROOOOOORRRORORROORORROROOOOORROOORROOOORORROROROOOOORRRRORORRROOOORRRRRORORORRRORRRRRRROROORRRROOROORROOOORORRRRRRRRROROROORROOOROOROROROOOOROOROROOOORORRRROOROROROOOORORROOOORORRRORRRRRRROROROOOROOOROOOORROROORRRRRRRORRORROOOORRRRROOORRRRORRORORROOOOROOOROOOOOOOOOROOOOROOOOROORRROOOORRROOOOROROOORRRROORRRORRRROORRORROORROOROROOOORRRROROOROORRORROOOROORROORRROORRORORRRROORROORRROOOROOOROOROROOOOROORROOROROOOORRRROOOOORORRROOROOOOORROOOORRRRROROROROOOOORRORORORORORORORRRRROOOOROORRRORORRRRROORRROROORORRROOROROOROOOROOOROROOROORORRRRROOOOOORROOORROROOOOROORROOROOOORRROOOORROOOORORORORORROOORRROOOOORORRORORORORRROORRORRRORRROOORROORORRRORRRRRROOORRORRORROOOROOOOOOORORRRRRRORRRRRORORROOOOORROORROROORORRRORRORRRROORORORRRROORORRRRRRROROORRRRRRROOORRORROORRRRRRRORRRROOROOORROOOROOOORRRRRRROOOROORROORROORORRRROOOOOROORRROOOORROROOORRRROOROORROOROROOROOORRRORRROOROROROOOROOOROROOROROOOOOROORROOOORORORRORROORRRRROOORORRROROROROOROORRRRRORRRROROROOOOORRROOOOROORRRRRRRORROOOORRRROOOOROROOROROOROORROORROOORROORORORROOOROORRRRRRRROORORROORRRRORORORORRRORRRRRRRROROOROROOROORRRROOOOOOOROORROORROOOOROOORRRRROROROOORROOORORORRROROROROOOROOOOOORRRRRRROROOOOOOOOROOORRRRROOORRRRORROROORRROROROOORRRORRORRRRRROOOOROOOOOOOOROOROOROROOOOORORRROORROOORROOROOOORRROOORRRRRORORORROOOOROROOORROROOORRRRRROORROOROORRRRRROOORRRROOROOROORRORRROORRORRORRRRRRRROOROROOOOORRORRROROROOOORRORRORORRRRRORORROORORRRORORRRRRRRROORRORRORRRRROROOROOOOROORRORRRRORRORRRROOOOROROOORROROROORORROORORRROOORRRROORRRRROOORROROORORRRORRROORORRRORROORORROROOORORROOOOOOOOORORORROOORROROOOROOOOORRORRROORORRRRRRORRROROOORRROOORRRRROOOOROOOOOOROOROORRRRRROOOOOROOORRROOORRROORROOOOOOOOOORRRRRROORROOOROROROORRRORORORORRRORRORROROOORROOORROOROOOOROOOOORROORORROOOOROROORRRROOOORRROOOOORRORROORORRRROORORROOOROORRROOROOOORORRRRRRROORROROOOORROOORRORRRORORRORROOOOOORROOORRRROORORRORRORROOROOORRORROORRORROOORRORRRRORROOORRROROOORROOOOOOROORRORRRRRROROORRROOORROOOORRRROORRRORROOOROROORRRRORROOOROOROOOROOOORRROROOOOROORORRROORORRROORRRORROROOROOOORROOROORROOROORRRROOROOOORORORORRROOOOOORROROOROROORORORRRRRROROOORRROOOORORRORROORRORRORROOOORRORROOORROOROORORORRRRRRRROOOOOOROOORRRROOOORORRORRORROORORORRRROOOROOROOOROORRROROOOOROROOROORROORROOORROOOROOORORORORRROROORORORRRORROOROOORROOOROROORROOOOROORROORROORROOROORROORRORORORRRRORRRRRROORORROROORROOORORRORROROORRORRRROOROORRROROROOOORRRRORROORROROOORRRORRROOOOROOROOROOROROORORORORRROOROROORRRORORRRORROROROOOOOOROOOOROOOOOOROROOOROORORRRROROORRROORRRRROORRROOORORRRRROROOOROORROOROOROROORROORRORRRRORRRRROOOORRRROROOORRROOROOOROOOOOROROOOOOOOOROROOOOOROORRRROROROOROOORRROORORROOORRRORRORRRROOROOORRRRROOROOORORRORRORORRRRRORORRORRORORORORRRROROOOORORRRROROORRORORROORROOOORORORRORRRRROROOOORORROOORORORROORRRRORRORRORORORRORORORROOOOOROORORROROOORORROOORORRORORORORORROORORROOOOORRROORROROOOOOROOOOOROOROROOORRORRRORORRRRRRORORORROOOOOORROORROROORRORRORRRROOOROOORRRRORORROORRRRRROOOOORROOOORRRROORROORROORORORRROOOROOORORROOORROROORORRROROOROROROORROOORRROORROOOROOROORRRROOOORRORRROROOOROOOOOORROOOOOROROOOOOOOOOOORRRRRRROOOOOOROROORORORORORROOOORRRRRROOORRRROOORORRRRORRRROORRORRORRRORRORROOOORORRROOROOOOOORORRORRRROROOORORORRORRRROROROOOOOOROOORROORROORROORRORRRRROROROROOORROOOROORRRROORORORROROOOORORRRORRRRROOROOORRORRRRORRROORRRRRRORRORORROOORRRRRRRRORRRRORRORRORRROOOROROROOROOOOORRORRRRROOROORORORRRRROOOORORRRORRORRRRRORORRRRRRORROORROROORRRRRRRRRRROROOOOOOOROROORRRROOOOROORRRRRROORRROOOORROOOOOOOOORRORRORRORRRORROROROOORORORRROOORROROORRORROORROOORORRRRORRORORROORRRRRRRROORORRRRORROOOOOOOOOOROOOOOOORRRORRRRRROOORRRROOOROOORRROROOROOOROORRRROOROORRORORORROROOOROOROOOROOROROROORRRROROOROOORRRROROROOROROOOOORRORRRRRORORRORRORRRRORRRRRROOORORRRROROOOOOROOROORRORRORRORRRRORROROOOORRRORROOOOORRRRRRORRRRRROOOROROOORROROROORRORROROROOROROROROOOOROOOOORORROORORRRRORORRROORRRROOOORORRRRROORROORRRROORORORRRRROOOORORROROROOORRORRROORORRRRRROOOORROROORORORRORORRRORRORRRRRORORROORROROOROROOOORORROROOROOOORROOORORRRRRRRROOOORRRRROORROOROOOOOOROROOROORRRRRORRORORROOOOOOORRRROROOORROOOOOROOOOROOOOOORRRRRRROORRRROOORORRROOROROOORRORRORRRRORROROORORRORRRROORRRRRROROOOOORORRROOROORRORORRRRRRROROOROROROOROORROOOOORRRRRRRROOOOROOOOORRRROOROROROOOOOOORRROOORORROROOROORRROROROROORRRRRROOROORORRROOOROORRORRORORRRRRROOROOOORORORORRRROROOORORRRRORORROOORROORROOOOOORRROOOOOOORROORORORRRRORRRROOORROOORRRROORROORROROORORRORROOROOORORRORRORRRORRRROORROOROOORORROOOOOROOOOOORRRRROOORRRROOOOOOORRROROROROOROOROOORRORROORRRORRORRRRORRROORRRROOOOROORRRROROORROORRRRRROOROORRRROROROOROROOOOOORROOROORRROORROROROROORROOOOOOROOORORRORROORORORRRROOORORORORROOOOOOOROOORRRROOOOORORRRORRRRROROOORROOROOROOORRRROOROOOOORROORRROROROOOROORRORROORROOOROORROROOOORROOOORRORRROOOOORROOOROROROOOROOOOOOOORROROORRRRROORROROOORRORROOORRRRRROOOOOOOROORORRROOOOROOORROROROOORRRROORRRRORRROOOOORRORORRRROOOROORROROORRRRROOORROOOORRRRROOROROORROORORRORORRROOOROOROOORRORRROROORORRORRRRRRORORORRROORORROORRROROORRORRROOOORORORRRORRROOOOOOROROORORROOORRRRRORROOROOOORRRORROROOOORRRORRORRRRRRROOORRROOOOOOORRRRRRRROOOOORRRRROOOOROROORRRORRRROROOORROOROORORRRRRRROOROOROORRRROORORORRRROOROOROOORROOOOROOROROORROOOOOORROOORROOROROORRROROORROROROOOROOROOROROROOOROORORRRRRRRRRRORRRORORROROORORRRROORORRORRORRRROORORRROOOROROOOORROOROOROROROOORORRRRRORRRROOORRROORRRORORRROOROORORRRRORRROROORROROOOOROORORRROOOOOOORORORRRRRRORORRROOOORORROOORRRROORRRRRRRRORRORRRRRRROROROROOOORRORRORROOOOOOROOROOROOOORRRROOROROROORRRRROORORRRRROORORROROORROOROOOOOOOORORRORRRRRRORRRROOROORRROOORROORRORRRORROROOROOOOORRORRROOOORROORROROORROOOORRROOROOOOORORROOOROOOORRORORORRORROOORROORRRROORRROOORRRRORRRRORRRORROORRORRRORRORRRRRRRORRORRROROOOOROOOOOORRRORRORROROOOOOOOROROROOORRRRRRRRORRRRRORORORRRORRRRROORRRRRRORRRRRORRRROORROROOROOOOOOOOOOOROOOOOROOROROORRRRRROOORRROORRRROOORROOORORORRRRRRORORRROROORROROORRRROROORORRRRROROOOOROOOOOOORRRRRRROOOOROORROORROOROROORRRORROOROOORRROROORRORORROORRRRRRRRROOOORROOORORROOOOROOORROOROORORROOOOORRROOOORRRRROOOOORRRORRRRROOOORROOOORRORROROOORROORROOROORROOROROROOROORROOORORORROOORRORRROOOOROOROROORORROORORRRORRRORROOORORORRRROORRORRRROROORORRRRRORROORRORROOOORRRRRROOORORROROOOOORROROORROOOOOOORRROORRROORRRRORROOOROORROOORORRORORROROROOOOROOORROOROOOORORRROROOOORROORRRROORRROOROOORORRRRORRROORRROROORRORRORROOORORROROROORRRORRRROROROORROROROOORORRRROOORORRRROORROOOROORROROOROORORROORRORROORROOOOOORROORORRRRRORRROROROOOROOROOORRORORRRORROOROORRROROOOOROOORRRROROROROORRRROROORROOORRROROOROORROROOOROOORROOOOORRORRORRROOROORROOORORORROOORRORRRROOROORROOOOORRRRRRORORRRRROROOORROOROROROOOROORORRRORROOROOORROOROOOORRROOROOOROORRORORORRRORRRROORRORROOORRRROOOOROOOROOOROORRRORRORRROORROROROOOORROOORRRORRORROORROROOROOOOORRRRRORORRRORROROROORROROOOOORROORROOROOROORORORRRROOOORORORROOOOOOOORROOORROOOROOORRROORRORRORORORROOORRORRRORRROROOORORROROOOORROOOOOORROOOOORROOOOOROORORORRRROOOROOOORRRRORRROROORRRROORRORRROROROROORROORRORROOROOOOROOOOORROOORORROROROOOOORRRROOORRROOOOOORROOOOROORRRRORRORROOOOOORRORORRROROORRROORORRORRROOORRORRRRRROROOOROORRROOOOOORORORRRORROORORROOOOROROOORRROORROROORRRRROOOOORRORRRROOORROOORRORORRORROOOOROORROORORORRORRORRRRORRRORRRROOOROORROOORRORROOROORRORORROORRRORORRRORORRRRRRORORRRORORRROORORRROORROORORROROOOOOOOOROORRRROOOORRRROOOROOOOOROROROROROORRROOOOOOOORRRRRROOOOROROORROOOROOORRROOOOOROORORORORROOOOORORRRRRORRRRROOROORROOOOOORRRROROROORORROORORROOOORROOORRRORRRRORORRROORROOROORRRROOORROROOROOORORROOOOOOOORROORORRRRROOORORROROOORRRROOORROROOOOOROOORRRROROOORROROOORROROOOOORRORRRRRRROROOOOOOORRROOROROOOROROORRRRRRROROROROOOROROOOOOROOROOOOOOOORORRROOORRRRRROOOORRRRROOORROOOOOROOORROORRORORRRORROROROORROOORORORORRRRROOOOORROROOROROOORORRRORORRORROOORRRROOORRORORORORROOOOROOOORRRORORORORRROROORORROROOOORORRORRROORRORRRRORORRROOOORRRROOROROOOROORRORROOOROORRRROORROOOORRRRORORRORRROOORORROOROROOORRROROOOORRRORROORROOORRRROROROROOOORRORROROORORRORORRRRRORRROROOOROOOOORORORORRORRORRRRORRORRROOORRRROOORROORRRRRRRRROOROORROOORRROROROOROOOOOOOOROOORRRORRORRORRRROROOORRROOOROOORRRROOOOROOROOROOORRRORRROOOROROORORRRRROORROOORRRRRORROOORRROORORROORRRRROOOROOROOOOOOROOROROORRROOROORRROOOROOORORRROOOORRORRORORROOOORRROOORRROOROROOOOOROOOOROROOOROOORRRRORRRROROROOORRROROORRROOORROOROROOROOROOOROOROORRRRORORORRROROOOOOORORORRRRRROOROOOOOOROORRROOORRRRORRORROORRROOORRRRROOROORRORROOOROOROROROOOROOOOOOOORRRROOROOOOORRORROROROROROORRRORROROOOORRROORROROORRRRORORROROROORRROORROOOOORROOROORROOORROORRROORRRRRROOOOOORROOOOOORROORROROROOORROROOORRORORORROOROROOOORROOOROOROOOOOORRRROORRROROROROOROOOOROORRROOROOROOOROROOOOOOOROROROROOROOOOORRROOOOOORRRROOORROOOROROORORORRORRORORORRRRROORRROOROORROOOROORROOROOOOOOOOOROORORRRORROOOOOOOORROOORROROROORROORROORORRORORORRROROORROROROORORROORORROORRORRRROROORRRROORROORRROROOROOOORORROORRROROOOROOOROORRORRROOORORRRORROROROOOOROOORROOROORRROOOOOOROROROOOROOORRRRROORORRORORRRROROOROOOOORRRRRRORRROOOOROOOOOOORRRRROOOOROOROROORRROORORORRROORRORRORORRROROORROROROORORRORRRORROROOOOOORRRRRRORORORRRRRRORRRRROROOORRRORRORORRRROORROORRORRRORRROROORRROORROORRRORROOROOORORROROOORROROROORRORRORORROOORORROOOROROORORRRORRRROOOROOOORRRRRROORRROOROOROROROOORROROROOROOOOORROROORRRORORRROORRRROROOOORRRORROORRORRRRORRORORRORORRROOOOORORORRORRRROOOOOOOOORORROOORRRRRRRRRRORROOOORORORORRRRORORROORRORROROROOORROORROORROROORORORROOOOOOOORRRORORROROORROORORROORRROROOOROORROOOOROROORORRRRROOORRRROOORORROORRRRORRRROROOOOORROROORRRRORROOROOOOOOOORRROORRORORORRRRRORRROORRROOOROOROROOOORROOOOOOOOROOORORRROOORROROOORROROOORROOOORORORROORORROORRRRRROOORROOORRROOORROOOORORRRRROROORRORRRORORRROOROOORRRORRROROOOROOORRROROOROOROROROORRRRROOORRRRRORROORRORORRRROOOOORORRRORRORROOROOROOOROOROORROORORROROORROOROOOROOOROROOROORRRRORRRRORORORRROORORROOROORRROROOOOROROOOOOOOOROROOROORRRORRRROOOOOROORRROORROORORRROORORRRRROOOROOOROORRRROROOORROOOOOOOOOORRROOOROORRORRRRRRORRROOORRROOOROOOOOORRORORORRORRORRROROORRRRROOORROORRORRRROORORROOOORRRRRROOORRROORRRRRORORRRORRROOROOROOOOOROOOROORRROROROROOROOOOROORROOOORRRRRRRRRRROROOOOORROORRRRROORROROORORRORORRRROOOOORRRRRRORROROOOORROROOORORRROOOOROOROOOOORRORORRRORORROOROOOORROOOOROORROROOOOOORRORRRORRROORRROOORRRRORRROOROOROROORROROROOROOROOROOOOORORRROROOORRROROORRROORRRRRORORRRORRRRORRORRRRORRORRORRORRORRORRRROOOROOROORORRRORRRRRROOOOORROORRROOOROROOOOROOROOOROROROROOORRRROOORROOOROORRROOOOOORORRRRRRRRROOOOORORORRORRROORRRRRRORROOROORROOOORORROORORRRRRRRROOOORRROORORORRRRRROROOROORORRRORORRORRRROORRORROROOORORRORRRROROORRRRRRRORRRRRROOORROORRORROORRRORROROOROORROROOROOOROOOORRRRRROROOORROOROOORRRRROORRRRORROOORROOORORORROROORRORORORROOOOORRORRRRRORROROOORROOROOOOORRRRORRRORROOOOOOORRRRRROOORRROORRORRORORORORORORRRORROOORORRRORRRROOORORORRRRRORRRRROORORROOOOOORRROORORROROOOOOORRRORORRROORRRRORORRRROORROROROORROROORRRORROROROOROOORROORORORROOOOROOROOORORRRROOOROOROOOOOOOROROORRROOOORORROOOOOORORRROORROOOOROORROOOOOORRROORRRORRROORRROOOORORRROOOROOOOOROORORROOOOORRROORRORRORROOORRRORROORRROOOOOOOORRORRRORRROOORRRRROOROOOORRROROOROOROROOORRRRRRRROORORRRRRRORRORORORORORRORORROROOOROORROOORORRROORROORRRRORRROOORROORORORRROORRRRRRORRRRORROOOOOORRROOOOORRRRROORORRORRRORORRRRORROOOOOOOOOORRRROOOROORRRRORROOOOOROROROOOROROOORRRORRRRRORORORORRRRRROORRRROOOORORRRRRROROOOOORRORRRRORRORORORRORROORORRORRRORRRRRRRORRRROOROOORRROROOOROOOROOOORORORRRRROROROOROROORROOORRRROORROORROORROOOOOOROROOROOOOOOOROORROORRRROORRROOORRRRROORORORRRRROOOOOORRORROORROROORRRRORRRRRROOORORROOOOORROOOORORRORRRRRROROROROORRROOROOOROORROOOOOOROROOOOROOOOORRORRROROROOOROOORORRROROOORRORROOROORRORORROOORRRRRRORORRRROROROORRORORORRROOROORROORRORROORRRORRROROOOOOOOROROORRROOOOOROROOOOOOROORRROOORRROORROOORORRRROORRROOOROOORRRRRRROORRROROORORRRRRROOORRROOROORROOOOOOROORRRRRORROOROORORORRORRRRORORROORORROORORROOOROROORROROOOOOOOROROORRROOROORROORRRROORROOORORRRROOOOORROOOOORRRORRRROROROOOOOORRROOOOOOROROOOORORROORROOOOORROROROROOOORRROORRRRRROORRRROORRROORROOOOROOOOROOROORRROROORROROROOOROROORRROROROROORRROOOOOOORORRRROORRORORORRROOOOORRROORRRRRRRROOOORROORRORRRRRRORRRORRRRRROORRRRORRROOOOOOOOOOOOROOROOROOOROOOOROROOORRROOROOOROROOOROROOOORRROORRRORRRORRROOORORORORRROOOROROOROORORRRRROOORORRRRORRRRROROOORRRRRORRORRROORROORORRORRORROOOOOOOOROOROORRRORORRRROROOOORRRORROOOOOOORRROOOOROROOOORRRORORRORORORORRRORORORRRROOORRROORROROOOOOROORORRRROROOORRRORRRROROOOOORROOOORRORRROOORROROROORROOORRRRRORRRRROORORRRRRRRORORROOOOOROOROORORROOOROOOOOOOROORORORORROOOROOOORRROOORRROOOORROOORORRROOOORROOROOORRORRROROORRRORRRRROROORORRROOORRORRORROOOORRRRRRRRROOOROORRRRRROOOROOORROROOROORORORORORRRRRROOORRROOORROOORRORRORRRRRRRRRORORRORROROORORROROORROOROORROROOROOORRRROORROROROOROROORROROROORRRORRRRROOROOROOOOROOROOOOOORROOROOOOROROOORORORRRROROROOOOOORRRORORRROOOROOOOOOOOROORRRROOORROORRRRROORORORORORROOORROROROOROOROORRROROROROOOROOOROOOOORRRROOOOROOROORORRROORORROOOORROOOORRROORROOOOROOROOOROOOORROOORROOROROOOORRRRRROOOROROROOOORROROROOORRROORRORRROORROOOOORRORORRROOOOOOOROORROROROROROROOROOROORRROORRRROOROROORRORRRRROOORORRORRRORRROOOOORRRRROROOOORRRRORRRROROOROROORRORROOORRROOROOOROORORRRRRRROORRRORORRORRROOORROOOORRORRORROOOOOROORORRROOOROORRRORRORRROOORRRRRROROOROROROROORRRRRORORORORRRRRRORORROOOOROOOOOOOOOOROORRORRORRRRRRROOORORORORRRRORRROORROOOROOROOOROROROROROOOOROORRRRRROORORRROOORRROORROOORROOROOROORORRRRORRRORROOOROOOROROORRRRRROOROOOROOOOOOROORRRROORRRROOROOOROOOROROROORRRORRORORRRORORORORRROOOOOROOOOOORORORORROOORORRRRRRROOOORRROROORRORRRRORORRRRORRORRORORRRRORORROORRRROROOROOOOOORRRRORROROOORRRORROOOORRRROOOOROORORRORROOOOORRRRROROOROOROOOORRRRRRORORRROORROORROOROOOORRROOROOORROOOOORORRRORORROOOROOOORRRROORORORRROOROOORROROOORRROOROORRRROOORORORRRORRROROROORORRROOROROOORORRRROROOOOROOOOROROORROORORORRRRORRRROOOOOORRRRRROOORRRROROOROOOOOOOORORRRRRRRRRRRORRORROOORROOOROROOOOOOORORRRRROROORORORROORRRORORRORORRORRORORRROROROORRORROOORROORRRRORRROOOOORRRROROROORROORORROORORROOOORORROOORORRROORRRROORRRROROOORROORRROOOROORRRROOORROORRRROOROOOOROOORRRORRRROOOROOOROOORRRRRROOROROOOOOOROOOROOORRRRRORRORROOOORRORORORRROORRROOOOOOROOROROROOOORORRRRORRRRROOOROROOORORROORRRORORROROORROOORROOORORRROOOROORROORRROOOOORRRROORROORROOOOORRORRRORRROOOOOROROOROROORROOORORRRRROROOORRRRRRROORROORROOOOOOOOOORROOOROOOOROOORORORROROOORRRROORORORRROOROROOROOROOOORRRRRRROORROORRRRORORORRRORRRRORRROORORRROOOOOOOOOOOOOOOOROORORROOOORROROORRROROOORRRROOROORRORORRRRRROOOOOOROOOROOOOOROROORRRORROORORORORROROORRROROROOOOORORROROOOORRRRRRROOOOOROORORRRRRORRRRROROORRORRROOORRORORORRORRRRRROROORROROORORORRORROROORRORRORRROOOOOROOOOROROROORROROORROOROORRORORRROROROOOOORROORORROOOORORORRRRRORRRRRROOOOORROORROOORORRRRROOOROOROORROOORROROORRROOORORRROOOORROORROOOROOOOOROORORRORROROOOROOOOOORROORRROOOOOOROOOOORORORRORRROORRRORORORORORRORORORRRORRRRRRRRORRRRORORORORRRRROOROOOORRRRRRRORORRRRORRORRRRRROORROOROORORRROROORORORRORRORROROORRRRORRORROORROROOROOOOORROORRRRORORROORRRRRROORROOORORROOOOOOORORORRRRRORROOOOORORRRRROOOROROORRRRRORRRORORRORRRROROOOROOOOROOROORRRRROOROOOOOORROORROOOORORRROORROORRRRROOORROOOROORRRORRORRRRRROOOROORROOOOOROOOROOOROOORORROROOOOROOORORORRROOOORROOOOOROOOOORORORRRROROORRROOOOOORRRRROOORRROOOOOOOROOOOOORROOOROOROOOOROORORORORROOORRRRRROOOOOROROROOOORROOOORORORORRORRRROOOORORROOOROROOORORORRRRROOROOORRRRORRROOROORRRROROORORRROROROOROOOOOROORRRRROOOORRRRRRROOROROOROOOROROORRRROOORORRORORRRROROORRRROORRRORROOOOROORROOROORORRRRRRROOORORRRORORRROROOROROROORORRORRRORRORROROORROOORORRRRRRROROOROOROOOOORRORROOORORROOOOOOOORROOOOROORROROORRRRROROOORRROOOROOOORRRORRORRRRRORORORORRROOOROOOORROROORROROOORRRRORRORRROOOORRRRRORRROROOORRORRRORRORROROROROOROROORRROOOORORROOOOROORORRRROOOOORRORRRORROORRROOORRRRRRRRORRROOROORROOROOOOOOORRORRORROOOOOORROROOROORRROROROORRORORRRORRRORRORRRROOROOOOROROOROOOORRRRRRORRROROOORRORORROORROORORRORROROORRROORROROOORRROROROOOOOROOOOROOROROOOOORRORROORRROOORRROOORRRRRRRROOOORORRRORRRRROORROROOROORROORORORRRROROOOOOOOROORORORRRRRROROROOROOORRRORORORORROROOROOROORROOOOOROOOOROORROORORRROOOOOORROOOORROOOROOOROOOOORORROOORRRRRROROORRORORORROROROOOOORRRROOROOOORORRRRORORRRRORORROOROOORROROOOORORROOROOROOOROORRRROOORROROROOROORRRRORROOOORRORROROORORRORORRROROORROROOOROOOROORRRRRRROROORRRROOROOROROOOROOOROOROORORROOROORRORORRRROROOOOROROOROOOOOROOOROOOOOOOOOROOORROORRRROORORRRORRRORORORRORORORRROROROROOOROOOORROROOORORRORRORRROORRRROORROOROOOOORROROOOOORRRROOOOOOROORRRRORORORRRROOOOOOOOORRROROOOROOORROORRORROROROROROORROOROROOORROROORORRORROROOROOOOORROORRORROORORRRORROOOORRORORORORORROOROORORRORORRROOROROOOROROOOOOOORRRRRRRORROORRRRRRRORRRROOOROROOOOOOOORRORORRORRRRRRRRROROROROROOORRRRRRROROOROOOOOOROORROORROOORORRRRRRRROOOORRROORRRRROOORRRORROORRORRRROOOOOORRRRORRRRORRRRORORROOROORRROOOOOROOOOROOORROROOOOOORRRRRORRRRORRROOOOROORORRRRROOOOOOORRRROROORORORROOORRORROROOOORORRORRRROORRROOROROOOROORROOORORRRRORRORRRRROORRROOOOOROOORRORORROORORROROORRORRRRORORORORROROORRRRRROOOROORROOOORORRRRRROORRRROROORRRORORRRROOORRRRRRROOOOROROOORROROORRORROOOOOOOORRROOROORRRORRROROORROROROROORROROROORROROROORROOOOOROOROOOROOOOROOOOORRRRORROOOROORRRROOOOORRROROROOOOOOROROOOORRORRORRROOORORROROROOOOOOOORRRRORROORORRRORROROOOOORRRROOOOOOORORROROORRRRRORORRRORRORRROOROORROROORRRRRRROOOROOOOOOROOOOORRROORRRRORROOROROOORRRROROORRRRRROOORROORRROROORRRROORROROORRROROROOROROOORORROORRRORRORRRORRRRRRROOORRROROOROROORROOOROROOROOROORRRRRROORROOORROOORROORRROOROOOOORORRROROROROOORORRROOORRRROOOOOORORORRRRRROOOOROROOOROORORRROORRRRORRORRORRRORROOORORORORROOOOOOOROROORROROOOORRRORRRRORRRROROROROOORRRRROOORORRRRROROOROOOOOOOORRRRRRROOOROOROORORRRRRROOORRROROROORORROOOROOORRRROROOORRROOOORORORRRROOOORRRRORORRRORROROROOROOROOROROROOORRRROROOOOOROOORROOOOROOOORROROOROOOORRROORRROORORRROORRRRRORORRRROOROORORROOORRRROOOOOOOROROORROROROORRORRRRRORRROOORRRRORROORROORRRROOOOROOOOOORRRRRROROOOROOORROORRROORRROOOROORRROORRROROROORRROOORROOOORRORRRRROOROOOORORORRROOOORRROOOOOOOOOORROOORRORRRRRRORORRROOORRROROROOROROORRORROOOROROORRRRRRRORROROOORRRRRRORORORORORRORROROROOOORRRRRRORRRRRRRROROORROOOOROROROORORRRORRORRORRRROOOORRROROROOOROOROOOOORRRORROORRRORRRRROROOOORRRROOOOROOOROOOOOOOROORORRROOORROROOOROOOROOORROOOORROOOOORRRRRRRRORRRORRRORROOOOROOORRROOROOOORORROROOOOROORRROROROOOORROOOROOOOOORRROOORRORRRRORORORROORORORORRRRROORROROOOOOROROORORROORRROORROROORORORRROORRROORORRROROORRORORORRROOROOORROROOOROOORRRRRROROOORROOOORORROOORRROOORRORROROOOOROOORRRRORORRRORRRRORRORRRRORORROORORRROOOROOOOOOOROOOOOROORROROOROOOORRRROOORRRRROORRORORRRORORORORORRORORRORROOROORRORROROOORRROROOROROORORRROROROOOOOROOORORRRRRROORRRRORRROOOORORORRRORRRROOROOORORROOOOORRORRRROROORORROOOORROROORRRORRRROROORROORORRROOOOORROOOOROOROORROOOOROORRORROORRRRROOOROROORRRROOROOOROOOORRRRRRRROOORORORRRRRORRROOROORROROOOOOOOROOOORRORRORRRRROOOROOOORRRRORORORORROOORRORRORRROROOROOROORORRRROROOOROROORRRROOORROOROOOORROOROOOROOOORROORRRRORRRRROOROORRRRORROOORRROOOOOOORORRORRRRORROROOROROROORROOORROOROOOOORRRRRRROOORORORROROOROOORORROOOOORORROOORRROOOOROROOOORRRRROROROOOOOOOROOORRROROOROOOOOOROORROOROOORRROOOROOOOROOORROOROROORRRROOROOROROOORRORORROOORORRROOROOROOORORORORRROOOROOORORRRROORRRRORRRORORRORROOOORRRRRRRRROORROOOOOOOOROOROOOOOROORRORRORRRRRROOORORROOOOOORRRROOROORRRRROOROROROROORRROOOROOROOORRORRRROORRORORRRORRRRROROORRROOROORORRRRROROROOOOROOROOORRRROORRRRORROOOOORORRRRRROROOOOOOORROOOORORRROORORRORRORROOOORRRORORORRRORRROORRORROOOROOORRRRRORORRORRORROOOOOROOOROOOROOROORRRRRRORRRRROOOROORRRRORROOOORORROROOOOORROOORRROROORRORRRROROOOROROOOROOOROORORRROOOOOOOORRRROROOORROORRROORROOOORRROOOOOOOORROOOOROOROOOOOORRRORROROOOORRRORORRORORRROOOROROOOOROOORRRROOOORROORROOORRROORROROOOOROOOORRORROOROROROROOORROORRROOOROROORROROOROORORRROOOORRORORRRRORRRRRRRROOORORROOORRORRRROOROOOOORORRRROOOOROOORROROOORORORRROOROOROORRROORRROOORORORRROORORRRROORORROROOROOORRORORROOOOOROOOOOROROOOORRRORORROROORORRRRROOORRRORORRRRRRORROOOORRROOROORRRRROROOOOOOORRORRROORRORORROORORRROROROORORROORORRRRRORORRRORROORROOOOROROOORORRORROOROOROOOORROOOORROORRROOOOOOORROROROOORRRRROOOORRRRORRROOOROOORRRROORORRORORORRORORRORORRROOOOOORROROORROOOROOOORROORRRRROROOOOORROOOORRROROROROOORRORRRRROORRRRROOOROORROOOOORRRRROOOOOOOROOROROOOOROOORRROORRORRROORROORRRRRROORROOOROORORROOOORROROROORORRROORROOOOROROORROOROROOOORROORROROORRRORORRRRROORORRROOOOORRRRRRRORRRORORROROROOOOOORRROOOOOOOOOOOROORROOOORRROOOROOROROROORORORROOOROROROORORRRROORROOORROOOROORRRRORORORRRRRRROORRROORRRRORORRRRROROOOOROOROORRORROOROORRORRRRRRORROOOOROOOROOROOORORORRORRORROOROROOOORORRRORRROROOROOOOOROOOOOOORROORRORRRORRRORROOOROORRROORRORRRRRROORRRORRRRRORROOOOOOROOORRORRRROOROOOROORRRRROOORORORRRRRORRORORROOROOOOORROOORRRRORRORRRRRRRRROORORORORROOROOROOORRRRRROOROOORROORRRORROORRRROOOOOORRROORRROORRRRRROROROORORROOOROOROROOOOOROOROROORROROROORROOOROOOOORRRORROOOORRORROOROORORORRRROROOROOOORROORORROROOORORROOROOOOROROROOROROOOOOOORRROROOORRROORORRRROORROOOOORRRRROORROORORORRRORROORROOORRRRRORORROROORROOROOOOOOROOOOROOOORROORORRRORRROOORRROOROROROROROORORRRORORROOORROOORROOOOOROORORRRORRRRORROOOORRRORORRROORORRRORRRRRRRRRRORORROOOOROOROORRORRRRRRRRRRROROOOROROROOOOORROROORRORROOOOOROOORORRRROOORRRRORRROROORRROORORORRRRRRROORRORRRRRROROOOOORRORRRRRRORROOOOORORRRRROOORRRRRRORRRORRRROORROOOROORRRROORORRORRROROORORORRROOORORRORRRROORORROROOOORROOOOORRRROOOROOROROORRROROORRORORORRRORRROOOOOOROOROOROOOROROROOOROOORROOORRRROROOORORORROROORORRRRORRRROORROORRRORORORRRRRORORRORORRRROORORRORRORROORORROOOROOROOROORORRRRRRROOROROOOOOOORORROROOORORRRORRORORRRROOOOORRORROORRORRRRRRORORRRRRORRRROOROORORRROOROORRRRROROOOOROOOORRROORORROOOOROOROOORRROOORROOROOROORROOORRRROOORORRORRRORRRORRRROOOORRRRRRORORRRROOROOOORRRRRROORRRRRRORRRRORORRROROOOROOROORRRRRRORRRORRORRRRRROROROOOOOORROORROORROOROOROORORROOROORRRORRROOROROORROOOROORRORRROOOOORRORROOORRRORRRORRROOOROORRRROORORRROROORORROOOOORRRORRRORROROOOOOOOORROOOOOROROOORRORRRRRORORRRROOORROOORROOORRRRRORRROROOORORROOOOORRROOORRRORROOORORROOROOROROROOOOORRORROOROORROORORROOOOROOORRROORRRRROROOOOORRROORORORORORROROOROORROROROROOROOOORRRRORROROORROOROOORROORROORRRORRRRORRROROORRRRRRORRROOORRORRRROROROOOROROROOROORORRROOOOROOORROOORRRRRROROORRRRORORORORORRRRROOORRORRRRROORROOORROORRROOROOROOROOOOOOOOOROORRRRRROOROROORORORRROOOROOOROROOOOOOOORRROORORRRRRROOOORRRRROOOROOORRRRRORRRRRRORRRRORRRROROROOORORRORORRORORRRRRRROROOORORRORROORRRRORORRRRRRORROOORORRRROOROOOOOOORORROROORROOOORRRRRRRORORORORROROORORORROROOOOOOOOOROOOOROORORROOORORRRRROOOORRRORRROORROORROOORRORRRRRROORROROOROOROORRRRROORROORRORRRORRRORORORROOOOOROROOROROOROOOOOOOORORORROORRRORROROOOOOORRROOORRRROROROROOORRORROOOORRRRRROOROORROOOORRROORORROROOOROORROROOOOROROOOOOORRRORRORRRORORRORROORROORRROOOROORORORRORROOROORRRRRROORRROOOOOORROORORROOORRRRRRRRRRRRRROOOORRORORRORRRORROROROOROORROROORRORORROROOOORORROORRRRRROROOORORRRORRORORORORROROORRORRRRORRRORROORORRRORORROOROROOOOORRRRRRORROORRROOOOROOORRRROOORROROOROORRRRRRROOORORRORROROOOOOORRRRROOROORRORORRORRRRROROROORROROORRRRROORROORORRRRRRRRRRRORRROOOORRRROORRROROROORORRRROROORORRRRRRRRRORROORROORRORROROOOOOROOROOOOOOROOOOORRORRRROORRROOOOOOORRRRRORORRRRROOROORRRRORORORORORORROORRRRORRRORORRRRROROOOOOROOOOORRORRRORROOOOOOOORROOOOORORORORRORRRRRRROROROOOOOORROOOOROORRORROOROORRRROORRROOROROOOROOOROOROROORRRRORORRRROOROOOROROROOORROOORORROOOROOROORRROORROOROOROOORROORRROOORROROOROOOOOOORRRROOORORORRROOORRRRORROOORRRORRORRRORRRORROORROROOOOORROORORORRORRORROOROOROOOOROOOROOORROOOOOROOOORRRRROROOROOOROOORORRROOORRROOOORORRORORRROORRORORROROOOOOORRRRRORRRRRRORRROROOOOOOORRROOOOOOOROORORRROORORROORRRORRORORRROORORORRORRRORRORORROROORRRORRRROROROORORROOROORROORRROROOROOROOROOORORRORROOOORRRRROOOROOOROOOORRRROOOROOORRORRORORRRROOROROOOOOOOORROOOORORRROOOROORRRRORORORRRROORRRROROOOOORROOOOOORROOORROORRRRRRRRORORORRROOOOROORRROORRRRRROOROOOOROOOOORRROROROROROOOOROOOROROORRROORRORROORORRRRORORROOOOROOOOORRRRROROROOROORRRRORRROOROOOORROOROOOORROORRRRRRORROROORORORROOOOROOOOOROOOOOORRORRRROROOROOOROORRROOORRRORORRRRRRRRORORRRORRRORRORRRRRROROOROOOOOORRORRORRRRORORRORRORORROROROOROORRRROROORRROORROORRRRRORORRRRORRORRRRORRRRRORRRORRRRROOROORORROORROROOOOOORROOOROORROORRRRRROOOOOORORORRROROROOOOROROORRRRRORRROORROOOOOROORORORRORRRRRROROORRROROORRRORRRROOOOOROOOOOORROORORROOOOOOOOOOORRRORORORROORORROOROOORRRROOOORROROOOROORROROORRORRRORRORRRRORRROORROOROOORRRRROORORORRORROOOOOROORRRRROORORRROOROROOROORRROROOOOROOROORORRRROOOROROOORRRRORROOOORROROOOROOROOOORROROOROROORRROOOOOOORRORROOOOROOOOROOROOOOORROOORRRRRORROOORROOORORROOOORRORORRORRRRRROORRORORORORROOORROOROORROOROOORROOOORORRRRROROORORRROORRRORORROOORRRORROOOOORROOOOORRROROOOOORRORROOROOORRROROROORRORORORORORRRRRORROOROORROROOOOORORRRRRRORRRRRORRRORRRORROOORRRROROOROOOOOOOOORROORORORRROORROOOOROOORRRRROOOOORORROORORORROOOORORORRORRORRROOOROOOOORORROROOOOROROOROROORROOOOOROROOOORROOOROROOOOOROOROOORRROROOOORROORRRRORROOORRROROROOROORORORORORRORROORRRORRORRRROROOOOROORROOROROOORROROROOROOROOORRORRRRROOOROROORORRORORROOORORROOROORRROORROROOORORRORORRRRORRRRRRORRROORORROORORROOOROOROROOROORRORRROOROOORORORORORRRROROORRROOROORORRRROOOOROORRORRORROOOOORROORRRRRORRRRORORRROOROOORRROORROORORROOOOOOOOROORORORORROROOROROOOORRRORORORRRROORRORROORORRRROROORROOROOOOOOORORRRRRRORORRORROROORRRROOOOORROORRRRRRROORORRORRRORORRROOORRRRORROOROOOROOOORORORRRRORRRRRRRRRRROOOORROOOROROOOROORROROOOOOOORROOORROOOORROOOROOORORRRROROOOOORORROORRRROOOROOOROOOOOOOORROROOOORRRRRORORORRROROROORRROORROORRRRRRRRORRRORRRORORRRRRROORRRORRORRRROOROOOOOORRORRORRRRRRRRRROOROORRORORORROORRORORRORRRRORRROROORRRRORORRRORRRRRROOROORRORRORRRRRRRORROORROOOROOORRRRROOOOROORRORROORRROOORROOOROOOORROOOORORRRROOOOROROOROROROORRRRROOOOOROROOORORRROOOORROOOROOROORRROOORORORRROOORRROORRROROROROORRROOROOOOORRROROORRRRROOORROOOOOORROOOROOROOORRORRORRROORORRROOORRROOORRORRORRRROOROOROROORROOOOORROOOOROOOOROOORORROOROOROROROOROROROROOOROOOROORORROOOOROOORROOROROOORRROOOOORRRORRROOORRRRROORROROORROROROROOOROORRROROOROORROORORROORRRROOOROOOOOOORRRRRORRORRRRROROORORORRROOOOOROOOOORROOROORRRRORRRROROORROOOOROROROORROORRORRRRORORORRORORRRROOOOROORRORRROOOORORRRRROOOOOROROOOOROORRRORORORROOROOOORRRORROOOORORRORRRRORRORORORRRORRRRORORORORROORORORROOORRRRRRRRRRRORRROROOORROORROOORRORRRRRRORRORROROROROORRROOORRORRRRRRRRORRORRRROROOORORRROOROOROOROOROOOOROORRROOORRORROORROORRROROOORRORRRORORORROOORORROOOORORRRROORRORORRRRRROORROORORRRORORRRROORRROOOOOOOOROORRRORRORRORRORRRORROOORORRRRROOORRRRRORRRRRORROOOROROOORORRROOOOOOORRRRRROOOORRRROORORRRRRRROOOOROOROORORORRRORRRORORRRRRRRRRROROROROOORORROOROORRORROROOOOOORRRROROROOOOORRRRRRRORRRROOORORRORRRRRRROROORRORROROOOOORROOOOORRRRRROROORRORORRRROOORORRRORORRORORRRRRORRRRRRRROORROORROORRRRRROROOROROOOOOORRROROOOOOROOROOROORRROOOROROROORROROROROOORRRORRRORORRRROROOOORORRRRROOOROOORROOOOROORORRRROOROOROORRRROOORROOORROORORROORRRROROOOOOROROORORORORORRRORORORROORRRRRRROROROOORORRORROOOOORORORRRORROROORRROOOROOOOROOORROORROORRORORRORROOORORROORRROROROORRROORORROOROOORORROOROORROORROOOORROOROOROROROROORROORRROORRROOROOOOOORORRROOOROORRRRRRRRORRRORRRROOOOOOOORORRROORROOROOOOORRRRRROROROROROROORRRORRROOORORRORRRROROOOROOOORRROOOOOORRROOROOOROOOOOORORORORROOORRROOOORRROOOORROOORORROROOOORROROOORRORRORORRROROOORORROOOROROROROOOOOOROORRORRROORORORORROROOORRROORROOORORROOOOORORRROROORROROOOROOROORRORRROORRRRRROOROORROOORROORRRRRRRRROOROOORRRORORROOROORRRRRORROROOORROROORORRORRRORORRORROORRRRORROROOORORROORRROROOOOOORORROROOROOORROROOOROORRRROOOORORRROOOOORROOORORRRRORORROOORROORROROOOROOORRRORRROORROROOOOORRRRRROOORRROOOOROORRORRRROOOROROOROORRRRRROOOORORROOORROOOORROOOORRORROROORRRRORROROORORORRROOORORRORORORRRRROORROROOORRORRRRRRORRORRORROROOOROROOORROROROOROROORROROOOROROOROOORROORORRRRRORORRRROOORRORORRROOOORROORORROOROROORRRORRRRRRRROOOOOORRRRRRORORRRORRRORRRRRRRORORORRORROOROOOOOOOOOOROOROROOOORORROOOOORRROOOROROROOROROOOORROORROOORRORRRRRROROORROORORORROOOOOROROOOOROORORRRRROOOOROORORROROOORRRORROORRROOROROOORRRRROROORRRROROOORROORRRRRRROORORROOORROORORRROOOOORRORRORRRORROOORRRROORROORRROOOOOOORROROOOORRRORROOOROROOROORORORROROROROROOOROOOROOOORRRROROROOROOOOORROOORORRRRORORRORROROORROORRRORRROOOROOOORORROOORROOOORRRROROOROOOROROROOOOROOOOORRORRORRROOROOOOOROOOORRRROOORORORROORRROORORORROOORROOORRROOOOROOOOROOOOORORROORRRRROOROROROORORRRROORRRRRROOOOROORRORROORRROOOOOORROORRORORRRROORRRRRORRRROOOROOOORRRROROORORRORROOROOROORROROROOROOORORRRRRRORRRORORRRRROOOROROORRRRRORRORRRORRRRRORROOORRRORORRROORRORORROOROORORRROOOOOORROOROROOROOOOORROOOOOROOOORORRORORORRROROROROORRORORRROOOORRORRRROROROOOOORRRRROROORRRRORROORRROORROROOOROROORRRRRRRRROROOROORRRRRRRRORRRROORRORRRRRRROOOOOROORORRRRORRORRORRRORROROOORRROROOOOOOOOOOOROOOOORRORRROOORRROROROROOORRRRROOROORORRORRORROROOORORORORRRRROORRRRROOOOOROOOOROORRORRRRRRRRROORRORORRRORRRROOOROOOOOROOROOROROORORRORRRRRRROORORRRORRRROOORRROROORORROROORRROOROROOROOORRRRRORROOOOOROROROOORORRRORORROORROOROROROOROOOORRROOROOORRORRRRRRORORRROORRRROORORROOORORRORRORRORRORRRORORRROOROOORRRRRRORROROROOOOOOOOROROROOORRORROOROOORRRROOORRROOORORRROOROOORRRROOOOOOORRRORORRROOROROORRRORROORORORROORORORRORORRORORORRRRRRORORRORORRRROOOROROROOOOROOORROORROROOORRRROOORRRORORROOORROROOOORORRORROOORRORRROROOORRORRROOORORROOOORRORRROOORORORROOROOORROROOORROORROORRROROOOOOORORRROROOOORROOOROROROOOOROOORRORRORORRROOOORRRRROORRROORRROOROOORORROORRROORROROOROORRRROOOORRROROOORORROOROROROOOOOOORRRORORRRROOOOOOORRROOOORRRORORRROORRORROROOORROROOORRRRRRRRRRRRORROOROORORROROROROORRRRRRORRORROROOOORORROORRORROOROOOOORRRORROOORRRRORRORROORRRRROOOOOOOOOOORRRRRORROROORROOROOOORRROROROROOOROOOOORORROOOROROROROOOORRROOOROROROOOROOORRRRRORROOOORROROROORORRROORORRORROOOROOORRRROROORROOORRRORORRORRRORRROROORORROOROORRORORRRROOOORRORORRROROOOROORROROOOORRROOOROORRRRRRRORORRRORROOORRORROORRROORORRRRRORROORROOORRROORORRORRORRRRRRROOOORROOORRROROROROOROOOOOOOORRROOOROOOROORRROOORRRROOOORRRORRRROORRROORRORROOOOOOOORRRRRRROOROROOORRRRRORORRROORRRRRROOOORROORRRORRORROOOOORORROORROOORRORORORRRRRRORORRROROORORRORRRRROORORRORROROOOOORROORORRRORROORRRRORRRROOORORRRRRRRROROOROOORRRRRORORORORRRRROOOOOORORROROOROOORROORRORROROROROROROROOROROORRRRRROORROOOOROORROOOROROOORRRRROROOOROOORRRRRORROOOOOOORROOOOORORORRROOOOROOORRROORROOOORRROORRRORRRORORRRRORRRRORRROOROORROORORROROOOOOROOROOROOOORROORROOOOROOORROOOROOORRRROOOOORRRRROOOROOOROOORORRRORRRRROROOROORROOOORRORORRRORROORRORRORORRRORRRORRORORRORRORRRORRORRROORORORRRORROOOOOROOOOORROROOOORRORROROOOOORRROORRRROORRRROROORRRRRORORROOROORORRORRORROROORRRRORRROROOORORROORRORRRRROROORROROOOOROROROORORROROOROORRORORRRRORORRRORRROOOOORRROROROOOOOOOORROORRRORROOORRRRRROOOOROOORRRORRORRORRORORRRRRROORRROROROOOOOOOROOOOORRORRORROOOOOROOOORORORRRROROOOOOROOOOOOOORROORROROOROOROORRRROORRRRROOOROOOOORRROOROORRROOROROOOOOORRROROROOROORROOOOOORROOOROROROROOOORORORORROOOOORROORORRRRRRORORORRRRRRORRORORORRROROOOOOORROORRRRRRROROOOOOOROORRRROOORROROOROOROOORORRROOOOROOROOOROORROOOORROORRRORRROOORORROOOROROOORRRORORROORRORROORORROOROOOORORROOORRORORRORRROORRORRRROORROOOORRRRRORORRRRRROOROROOROROOORRROOROOROROOROOORRRROOOOOOOORROORORRROROOORROOOOOOOORORRROORRROROOOROOORORRROOOOORROOROOORROOORROORRRRROROOORRROORORRRRROROROORRROROOORORRRRROROOORRORRRROROOORORRROOOROORROOROOOOOROOOORORORROROOORRORORROORRROOOORRROORORRROOOOROOROOROROORRROORORRROROOOOORRRRRORORRORRRRROOOOROORRRRROOOOROORRROORRORORRRORORORRRRRRORORRRRRRROORROOOOOORORROROOOOOROROOROOROOROOORRRROROOOROROROROORRRROROROOORRRRRROROROROOORORORRORORRRROOOOOOOOOROOROORRRROROOORRRRRRRROOOROOORORORORRROROOOOROOROOROOOROOORRROOOORROROORRROOOROROROOORROOROOOROOOORORRORRRORRORRORORROOOOOORORORORROROORRORRROROOOOOROROROROOORROROOOORORRRRORORRRORORROOROOOOOOOORRRRRRORRRROOROROORORROOORRROOORRORROORORRROOROROROORROOROOROORORRORROORORORRRRORORROOOROORRRRORRRRRORRRROORROOROOORORRRORROROROORORRRRROOROOORROORROOROORRRORORORRORRRRRROOROOOROORROOROORRROROORRRRRRROOOOORROROORRRRORROROOOOOOOORORORORORRORORROOOROOOOORRROOORORRRRRRRRROROORRROROOORRORRRROOOOOROOROOORORRROROORRORRROROOORRRORROOORRRRRRROROORRRORRROOOROOOORORORRORRORROORRORRRRRROROROOORORRRROOOORORORRORRORRRORRRROOORRORROOORORROOROOROROORRORRORRRRROROORROORORRROORROOOROORRRRRORRROOOORORRRRRROOOOORROROORRRRORROORORRRRRRROOORRRORORRRRRRRROROORORROROOROROOOOORRROROOOOOOOORROORRRRORRRRROOOOROOORRROROROROORROROOOOOOOOOOORORORRRROROROOOROOOORRROOROOORROORROORORRRROOOOOORROROORORORROOOOORRROOROORROOORRRORORRRRORRROORRORRROOOOORRRORROOORRORROROOORORRRRROORRRRROOROORRORRRRORORRRRRRRRRORRRRRROROOOOOROOROROOOOOOOOOOORORRRROORRROORRROROROROROROROORORRRRROROORRRRRRROORRROOOORRRORORRORRRROOOROOROOOOOROROROOROOROORROOORRRORRROORRROROROROOROROROORRROROROORRROROROOOOOOORRRRORORROORRRROOROROOOOOROROROOROOOORRRRORRORORROROROOORRROROOOORRRORROORORRROROORROOOOOOROOORRROROOOROOOORORRORROOORRRRRRORROROOOORORRRORORRRROOORROOROOOOOROOORRRORROOROOROOOORROOOOORRRORRRORRORROORORORROOOOORORORRORRORRROOROOOROOOOOORRRORRRROROROOOOOORROORORORORORRORRORRROOOORRROOORROORROORRRORRRRRRRORORORRORORROROORORROORRORRRORRRRRRORRROOOOOORRRORRRORRORROOOOOOOOOROOOORRRRRRRORRORROORORRROOROOOORRROOROOROOORORROOOOROOOROOORRRRRRRORORROOOOROOORROOORROOOOOOORORROROOOROROORRORRROOROORRROOOOOOORROOOOROOROOORROOOOOROOROORRRORROOORRRROROOOOOROROROOOORRORRORRRORORROORRROROOORROOORROORROORRORRRRROORRROROROORRRRROOOOOORROORORROOOOOOROORRRRRORORRROOOOORROORORROOOROOOOORRROROORORROOOOOOORROROOORRRORRORRRROOOROOORRORORRROROROOOROORROROOORROROORRRRORROORORRRORORRROROROOORORORRORROOOOOROOORORROROOOORORORORROROOOROROOOOROROOROROORRRROROOOOORROROOOOORORORRORRRORROOOORORORRROROORRRRRRORRRROOOOORRORORRRRORROROORORROOORROOOORROOOORORRROORROORORRROOOOORRROOOORRRRRRRROORRRORRORRROOROOROOORROOROOOROROORRRRRORROROOORRROOOOORRROORRORORRORRROROOOOROOROROROORRRORROROORRORRRRROOOOORRRRORROORORRROOORORRRRRRRRROOOOOOROORRRROOROROOOOOOOOOOROOOOROROOOOOOOOOROROOORRROORRRRRROORROROOORRROOOORRRORRROOROOROOORRRRROOOROOOORRORRRRRROOROORRRRORROROROOOOOROOORRRRRRRROOOOOOORROOROORROOOOROOROOOOOOORRRRORORROORRORRRORORORRROOOOROOROOROORORORRRRRRRRRRORRORROORRROOROOOORORROOOOOOROOOROORORORROOOORRROOOOORRRRROROROORROORRORRRRORRROOOOOROOROOROOORORRORRROROOROOROOORROOOOORORROROORROOOROROOOOORRORRRROROROORROOORROOOOROORRROORROROOOOROROOOOOROOORRORORRORRRRRRROOORROOORRRORORROROROOROOROOOOOROROOORRRROORRRRRRORRRROOORRRROROROROOROOOORRORRORRORRRROOROORRRROROORORRRRROORRORRORRORORORRORRORORORROROOOROROORRORRORRORRROROOOORRRORORROORRRRRRRRORRRORORRRORRRRRORORRRORRRRRROOOOORRRORRORRORROOOROORORROROOORROOROOORRORRRRORORROOOROOORRRORRRRORORROORRRROROORRRORROOROOORRRROROOROOROORROOOOROORORROOOOOOOOROOROROOOROOORRRROOOOOORORORRRRROORROOOROROROOOORRROROROROORROROROROROORRRROOORRROORROORORRORORRRRRRRORRROOOROORROROROOORRRROOROOROORROROROORORRRRORRORRORRROROOORRORROORROROOOOORROORORRORRROOORORROORROORORORORROORRRORRORRROROORORROOOOROOOOOORRRRRORORROROOORORRROROOROROROOROORRROORORROOOORRRRORRRRORROOOOOROORRRRRRROOOROORRORROOORORORORRROROOROORRRORROORROROROOOOOOROOROOORORRORROORRRRROROROOORRORORORRROOOOOOORRRRRRRROORRROORRORORROOORRROORORRORROROORRORORRRROORRRRORRRORROROROORRROROOOOOROOOROORROROROORORRROROOOOORORRORORRRORORRRROOROOROOORRRROOORORRRRRROROOROORRRORRROOOOROOORORRORROROORROOOORORRROOORROOORORROOROROROORORORROORORORRRROORRROOOORRRROORRROORRROORRRRRRORROROROOROOROOROOORORRROROOROOOORROORORRRRROORORROORRROROOORRRRROORORRRORRROOOOOOOOOORORORRRORRRRROROOOORROOORRROOOROOROOOOROORORRROOOROOORORROOOORORRROOORORRRRRRORRROOORRORROROOOOOORORRRROROOOROORORROOOOOROROROOOORORRROROROORRROORRROOOROOOORROORRORRROOOROOOORRORRROORRRRRRROOOOOOROROROROROORROROOOOOOOOORRRORORROOOORRORORRRRROOORRRRRORROOROORRRRORRRROOROORRROOROORROORROOORORRRRROOOROOOROOOROOOROROORRRRRORRRRROOROOORORORORORROOOROROORROORROOOORRRROOORRRORRROROORRRRRROOROROROROOOROOROOROOROROOROROOORORROOOORORRRRROORRRRROOOOOORRORROOORRRRORRORRROOOROOOORRRROROORRROOOOORRRRRRRROOROROROORORRRRORRROORORRORRORRORRRROROORRORROOORRROROORRORRROOROOROORROROOOOOROORRORROROOROROORRROORORRRROOOORRROORORRROORRROROOORORORROORRORROOOOROOORRORORRRROROOOORRORRRRRORORRROOORROOOROOOOROOROOOOROORRORRRROOOOROROOORRORORRROOOORORRRRRRRRRROROROROORRORRRRROROROOROOORRORRRROROORROROOOOROORROORORORROORORRRROOROOOORRRROOROROORRORRRRORRORROROROROORRROORRRRRRRORROROORORORRRRORRRRRROOOOOOOOORRORROOORORRORRRRRORROORRROORORRORROORROOROOROORRRRRRORRRRRRORRRROOOORRRROOOOOOOOROOORRORROORROOORRRRORORRROOORRORRORRRRRRORRROORROOOOROOROROOOOOOROOROORRORROOOORRRRROORRRORORORROOORROOORORORORRORROOROORORRORORORROOOOOOOOOOORROROROORORROOORORRRRROOORRRROORRRROOOROROORRRRROOROOORRRRORRRRRORORRRORORROOOORROOOOOOOOROOOOOROOROOORROROROORORORORRRRROOOROORROOOROORRRROOOORROOOOROROROROOROROROOOOOROROROOOOORROORRORROORRORORORORRORRORORORROOORRORRROORROOORRRRRORRORROORROROORRORRROORRRORRRROOOOROORORRRROORRRRRRRORRRRORROOORORRRRORRORORRORORROOROORRRRRORRRRROROORRRORROROORRRORRORRRRORORROORORRORORORRROOORROROOROROOOOORROOOOOOOOROOOORROROORROORROORRRRROOOROROOROROORRROORRRORRRRROROOORRROOOOORORRRRROOROOORORRROROROOROOOORROOROOROOOORRORRORRRRORRRROORRORROOOROOOORROOROROORORROOOOROOROOOROORROORORRORRROORROOORROOROOORORROROROROOOOORRRRRROORRORRROOORRORRRRORORORROOROOROOOOROORRRORRRRORORRROROOOROOORRROORRRORRRROOORORRRROROROORRORROOOROOOOROOORRORROROORROOROROORRRRROOOROORROROOOOORROROOROOOROROORROROROOORORRROOROOOOROROORROOROROOOORRROOOORRRRROOOOOORROOOOORORRRORRROOOROOORORORRRORROOORRRORRORRORRRORRRORRRORRRRRRORRORRROROORRORRRORRRRRRRORROORROROORORRROORRORRROOOOOOORROOORORRROOOROOORORRRRROOOROOROOOORORRROOORORROOOOOOOOROOORROOORROROORRRORRORORRROOOORRRORRRRORRRROOROOOROORRORRORRRRRROOROOOOOORORRRORROOOOROROOROOROROOORROROOOOOOOORRROOORORROROROROOORORROOORORORROOOORRRRRRRORROOOOOROOOORRROOROOOOROORRORRRRRRROOORROOOOOORORRROORORROOOOOOROOOROOORORORRRORROOOOROROROOOROORROORROOOROOROORRRORORRRROOROROOORROOORRROORRROORROOOOROROOORROOOORRORROOOOROROOOROROOOORORROOOROORROROOORORORRRRORORORRRRORRRROROOOORROROOOOOOORORROROOOROORRRROORROROOROOORROOROOORRRORRRORROOOOORROORRROROROORORRORORROORORORRORRRORRRORORRRRORRRROROROOOROORRORRRRRROROOROOOOORRRRORRRORORROORORRORORRORORRORRORRRORRRRRORORRORRRORROOOROOOOORROROROOROROROOOORRRRROOORRRORORROROOORORORORRRORRRROOOROOOOOROOOORROORORRRRROOROORROOORORORRRRRRRROORROOOOORORORRROROROOOOOROORRROOROOORROROORROROOOORROROOOOOOOROOORORRRRRORRRROROORORROORRROORRROROOOORORROOOROROORORORRORORRRRRRROOOORRROOORROOOOOOROOOROORORRORROOOOOOORRORRRROOOROOOOROOOORROROROORORROOOOOOOOROROROOORRRROORRRROROORRRORRROOORORRRRRRRROORORROORROROOROORRRORORRORRRROORORROROORROORORORRROROOOOOOORRRRORRRROOORORRROOROORROOOROROOOOOROOORRROROORRRRRRORRRROROOORRROORRRRRROORROROOROOOOOORRROORRROOROOROOOROORORORORORRRRRRRORROOOORROOORRORRRRORRRORROOROOOOOORRRRRRRORRRRROOOOOOOOORROROOORRRRRRRRRRORRORORROOOROORORROOROORRRRRROROOOORROROOOORRROORRRRRRRRRORRROROROORROROOOOOOORROOROOOOORROROOOOROOOROROOROROORRRORORORRORRROOORROOOROROOORROROOOOOOROOROOROOROOORROOOOOROOOOROOORRRORROORRRROROOROROROROOOROROORRORROOOOORRRROORRORRORORORORORROOROROORRORROOOOROORRORROROOOROOORRROORRRRROOROOORRORROORRRORORROORORROOROROOOORROOROROOOOROROORROOROROOOROOOROOOOOROROROORRRORROOORORRRROOROOORROROOORORROOOOORRROOOOOOROOOROORROOORORROOOOROOROROROORORORRRORRRORRORORRROROOOOOROOOOROOOOOROROORORRRRRORORORORROORRROOOOOOROROOROORRROROROOOOOROOOOORRROORRRROROOROORORRROORRROROROOROOOOOOOOOORRRORRORRRORROORROOROROORRROORRORORROOROOORROOROORORRRORORRRRRRRORRRRRROORORORRRROORRROOROOROORORRORROOROOROOROORROROROOORRORRRROOROOOORRROORORRORRRRORRRRORRORORROOORRRROOORRORRRRRORROROOOROROOORORRORRRORRORROOOROORROOOOOORROOOOOROOOORORRROOOOOROOOOROROORRRRORROOOROORROOORRRRROROOOOOROOOOOORRRORRRRROOOOORROORROOOROOORRRORRRRRRRRRROOOOOOROOORRRRROORRRRRRRROROOROOORRORRROORRRRROOROORRRRRORORRROROOOOROROOROORORORRORRROORROOOOORRROROORRROORROOOOOOOORROORRROOROOORRRRRROOORORORORRRORRRRRRORROOOOROORRRROROOOOOROOOROORRORROOORROOOROORRROROROORRRRRORRRRROOOOOOORORROORROORRORRORROOROOROORRROOORROOOOORRORORROROROOOORRRROROROORRROOOORROORRROORRRRORRORORORORRRRROOOOROOROOORRRRROOROOROORRORRRRROROOORRRRORRORROORRORORROOOROOROOORRRRRRRRROORRRRROOOOOOORORROOORRRRRRRRORRRRRROORRROOORRRORORORROROROOOOOORROOOOOOOROORORROOROOOORORRRROOROOORRRROROOOROOORORRORRRRRORRRROOORROROROROORRORROROOOORORROOOORRORRORRRROOROROORORORRORRROOORROORORRORORRORRRORRRRRRORRORRRRRRRROROOOROOOOORORRORROOOOOOOOOOOOROROROOORROORROROOOROROROOORRORRRROROROOORRORRROOOOROORRRRRROROORROOORRROOOOOOORRROOOOOOORRRROOOORRROORRRROOORORORORROROORROOORRROOOROOROROOORORORROORRRRRRORRRROOOORRORRROOORORRRORRORORRRRORRROORROOROROOOOROORROOORRORROOOORRRRROOROOORRRROROOOROORRRRROOOORROROOORRRROOORORRRRORRORROOROORORRROOORROOORORRORRRRRRROOROROOOOOROOOOORRROOROORROOROOOOOROROOROOORRRORROOOOOROORROOROROORROORRRORROORORRROOORROOORORORRORORROROORRRRORRROOOOORROROOORORRRROORRRRORORROROOOOROOOROOOORROORRROOOORORRRROOORRORRORORORROOORRROOOROROORORRROROORROORROORORROROROOORRRROOROROOOOORORRROROORRROROOOOORROORROOOROORRORRROROOROOOORRRORRROOORRRROORORORRRRRORORORRRORRORRROROROROORRRRRRRRRRRRRROROOROOROOOROROROORROOROOROOOORROOORRRRROORROOOOROOORORRRROOOOOOOROOROORORRROOOROROORRORROOORRROROORORRRRORRRRROROORORROOOOROOOOORRRORROORORROOOORORORRROORORRRORROOOOORRRRRRROOROOOOORRRROORRRORRROOORORRRRROOORRRORRRROOOOORRRROOOROORRORRROOORRRRRRRORROOROORROOORROROROROROOROOORRRRROOROORORORRRROORROORROORRRRRRRRRORORRRRROOROROORORROOOOROORROOROOOORORRROROOOROROORROORROORRRROOOOOOOOOROOOOOROROOOROOORRORRRRROOORRORRROOOROOORRROOORORORRORROOROOOOOORROOORRORRRROROOROROORRRRROOORORRROOROOROORRRRRROROORROOROROOOOROROOORRRRRORRORROOOOORROOOOORROROROROOOORROROORRROORRROOORROOOORRORORORROOORRORRORRORRRORORORROROROOOOROROORRROORORROOORROOROOORORRRRROROOOOOROOOOOORROROROOORORROORORORORRRROOORRROROORRROORRROROOOORRORROROOROORRRRRRRROOOOOROROORROOROROROOOOOROOROORROOOROOOOROOORORRRRROOOOORROORROOOROOORROOORORRRORRRROOOORORROOOROROOOORRROROORRRRRRORORRRRROOORROOOROROOOORRORROORRORRORRORORROOOORROORRRRROOORROROORRRROROORRROORRRORRORORORROORRORROROOOROROROORRORRROOOROORORRRROOORRROORRORORRRRROORRROORRORRROOOROOORRORRRRRORRRRRRRRORROROORRRRROORORRORROOOROOROOROOOROROOROORRRORROOOROROORROOORRROROOOOORRROOOOORRRROOOROORRRROROORROOOOOORRRORORROOOORRRROORROOOOORRRRRRRRRRROROOORROOROROORORORORORRORRORRRRROOROOOROORORRRORRRRORRRRRROOROOOROROOORROORROORRRRORRRORRROROOOORORORRORRRROOROORORROOROOROROROOOOORORRORRORRROROORRRROORROORRORORRORRROROORRRRORRRRRORORORRROROORRRROORRRRRRRRRRROOOORORRRRRRROOROOORRRRRROOROORRRROROROORORRROORRRRRROOORROOORRRROROOOORROROROORROORRRORROROOROOORROOOORROOROROOORORRORRRROORORRORORRRRROOOROROOROORRORRROORROROOOROORROROOOOOROROOROOROROOORRROOROOOORORORORORRRORORRRROROORROORRROORRORORRRROROORORROOROORORRORROOOORORRORRROORORROOORRRRORROROROROOORORROOORORRORRRRRORROOORROORROORROORRRROOOROOOOOROOORROROORRRORROOROROOORORORORRRRROROORRRRRORORRORRROORROOORRORROOROOROORRROOOOROOORROROOOOOOOOROOORROOROOORRRROOOOOORRROOORORORORROOORRRORORORORROOROOOORRRRORROROOOOOOORROOOROOOOOORRRORROOROOROROROROOORRROROROROOROROORROOOOROROOORRROORROORROROOORRORORORRRRROOOOOORROROROOOOOOROOOORRRORRORORROOOOROROOOOORRRROORRRRRORORRRRROOROOOOORRRORROROOROORORRRROOROROOOORRRORRRRRROOOORRRORRRROOROOOROROORRRRRRRROOOOOOOOOOOOOROROORROORRORRRRORRRROROROOORRRRRROOORRRRRRRORRRRRRRORROOOOOOOOOROROOOOOOOOROORRROROOROOORROORROOORRRROOORROOROOOOOORRRORRROROOOROOROROORORRROOORRRRRRRRORROOOOORROROOOOROORRORROROROORROROOORRRORRROOOORORRRRROROOORRORROOROORRORRRORROOROORORRORROROORRRRRRRROROROORRRROOROORROROORORRORROOOOOROOOOOOOOROROORORORRRRRROOORRRORORORRROORROORORRROROORORORROORORRRORRRORORROOROROOOOOROORRRORRRRROOOOROROOORRRROOOROORRRRRORRORORORRROROOROORRRROOOOOOOOORORROOROOROROROOOROOOOORRROOOROOOOORRROORROORORRORORORRRROOOOROROROORRROORROOOOROOOROORRORORRROROROORRROROOORROOOROORROORRORORRRRROORRRROOOORRROOOROOORORORORRORRRORRRROOORORROOROROOROOOOROOORROORROOOORRRRROOROORROOOORORORROORROOOOROOOROROROOROROROOORRORRORRRROORRRORRRRROOROOOOOROORRORORRRROORRRRRRRRROORROORROOOOORRORRORRRORRORROORRRROOOOORRRROORRORORRRORRROOOROORRRROOORORROORORROROOOOOORRRRRRORROORROOROROORRRORORRROOORRORRRRROORRORRRRRRRRROROOROORRORRORRORRROROORRORRRRROOOOORROOOOOROOOROOOOORROOROOOOORRRORROOORRORRRROOOOROOORORRROOROORROOOROROOROOORRROOORROORORORRRRROOOORORROOOOOROROOOORROORRORRORORRROOROOORROROORRRORROROOOOROROORRRORORRRRORRRRROROOOORRRRRORRORROORORROROORRROORRROOOOOOROORRORORRRROOOROOROROORRROOOOROROORROORRROOORORORORORRORRRROROOOOOORRRRROOROORRORRRROROORORORORORRRRRROOROROORROORRRROOORORRRRRRRRRRROORROORROOOROORRROROOOOROOROOOOORROROOROOOORROOROOORRRROOORRRRORRORORRROOOROOOORRRRORORORORROOROROROOORORRROORORRROOOORORROORORRROORRRORRORROORROOORROOORRRRRORRRRRRRORRORRRRRROOORROOOOROORRORROOROROROORROORORRORORORROORORORRRROROORORRROROORRROOOOORRRROOROORRORROOROOORORRORRRRORRRRROORRROROORORRROORRRORRORRRRORROOOROOORORRRRORORORRRROOROOORROROOROROOOOOOORRROOROORRRORORROORORRROOORRRROORRRORORORRRRORROOORROROOOOOOOOROORRORRRRRRRRRROROOROOORRROORRROORRORRORORRORORRROROROORROOROOOORORRROOOOORRRRROOORORRORORRRRROROOROOORRORRORORORORROOORRORRORROORRRROOOOORRROORRROOOROOOOOOOORORROROROOROORRRORRRORRROORORORRRRORRRROOROROOORROROORROORRRORRROORORROOORRROORORRORROOOOOORORRRORROOOOROORRRRRRRORRROOOROORORRRRRROOOORROOROOROROORROOORROOROOORORORRRROORORORRRRRROOOOORRRROOROOOOOORORRRRORRORRROOORORRORRRROOOROORROORRRRRROORRROOOOOROORORROOOROOOROOOOROROOOORROROOOOROORRRORRROROOORORORORORRRRORORRRRRRRORRORORORRROORROORORRORRORROROROORROORRRRRORROORRORRRRROROORROOOOOOOOOOORROROORORRRRRRORORROOOOORRROOOOOORRRORROOROORORROROORRRRRRRROOOROORORRRORRROOROROROOOOOOOOORRORRROOROOORORORRROORRRORROOORRRORRROORORRORRRRRRORRRRRRROOROORORROOOOROOOOOORROORRORROOOOORROORORRRRROOROOOOOOROOROOORRRORORROOROORRORRROOORROOOORROOROROROORROORROOROOOOROOOROORORORORORORROOOOOOROROROOOOOORRROROOOORORRORROOORROROOROOORRORRRRRROORORORROOOROOOROORRRORRRRORRORORORRRORORROROORRRRRRORROROORRRROOROOORRRRORORRRRRRROOOROROROORRRROOROOROOROORORROROROORRRRORRORRRRRRORORRRRRORROROORROROOOOORORRORROOROORORRORORRRRRRROOOROOROOOORRRRRRRORROROORROOROROROROOORROROOROOOROOORORROOOORRRROOORRRROROOORRRORORRRORORRROROOOROOROOROOOROORROROORRRRRRROROOOORRROORRROORRORROOOROORROROORRRORROORORRROROROORRRRRRRROROORRORRRORRORROOOROROORRORRORORRRRRRRRRRRRORRROOOOORRRRRRROOROORRORRORRRRORORRROOROORRORROORRROROOOOROOROOOOORRRRORROORRRRROROOROROORROOOOROOROOOOOOOOOOOORRORRRROOROROROOOROOOORRROROOOROOOOOORRRROORRROOOORRROORROOOROORORORRROOOROORROOOOROROOORRRRRORORRORRROORROOORRRORRROOOORORROROORROROOROOORROOOROORORORRORRROOOORRROORROOOORRRROOORRROROOOORRRRRORORRROOOOOOOOROROOORORORRRORROORORROOORRROROOORRROROORRORORRROROORROOROOOORORRORORRORRRRORRORROORORORRROORRRORRRRRORRRRORRORRRRROROOROOROORROROOOROOROOOOROOROOORRORORROOROOORRROROOORRORRRRORRORORRORORORORORRRROOORRRRROOOOOOOROOOOROROORRORRORORROOROROOORRRRORORROOOROOORORRORRRORRORORROOORORROOOOOORRORROOOOOROORORRROOOORORROOORROOOOORRROROOOORROROOOOOOOORRRROROROOORORRROOOROORORRROOOOOOOOROOOORROORORRRORRRRORRORORORORRRROOOOORROOROOROORRROROORORRORROROROROOORRORROOORORORORRORRRROOORORORRRRRORRORROORROORORRRRROOOORRRRRRORROOOOOROORRRRRORROROORRORORROORORORRRROORORROOROROROOOOOROOOROOROOROROOROOORRORRRRROOOROROORORRROOOORRROOORORRRORRRROOOORROOROORROOOOORORRRORRRORROOORRROOOOOOOOROROROROOORRORORRRORRRROOOORRRRRORRROROOOOOOOROORRORRORROOROORROORORRRORORORRRORROOOROOOROOOROROOOOOOOORORRRRRROOOROROORRRRRORORROOOROROORORRROOOOORRRRRRROOOROOORROOROOOROORRORORRORRORORORORORRORRROOOORRRROROORROROOORROORROOROORRRORRORRORORRORRRORRROORROORRRROROORROROOORORROOOOOOOOROROORROORRROROORROROORORORROOOOROROORROOROROOOOOROORORRRRRORORRRORRORORORRROROORRRROROOROOROOOOROORORRROORROOOOOORROORRROROROOORROROORRRORORROROORORROROORROOOOORORORRROOOOOROROROORRRRRRROOORRORORRORORRRORRRRROORRORROROROOOROROOOORROOOROOROOOOOORORRRORORROROROOOORRORORRROROROOOORORRORRRRRRROOOOORRRORRRRROOOROOROOORRORROROORRRRROOOOROOOOOORROORRORORRORORROROROROORRROOOOORRORORRRRROOOOORRRROOOROROOORRORRRRORRROROROOORORRRORORRROORORORROOORORRORRROROORORRRORRRRORRRROOOROORRRRRROROORROOOROOOORORROORROOOOOOOOOROROROOORORORRRORRRORORRROORROORRRRROOOORRRORRRROOOOROORRORRRRRRRROOORRRRROROORRROORROORRORROOROOORORROROROROORROORORORRORRROORORRRROOORORRRORRROORRRRRORORRRRORROOORROOROOOORROOROOROORRORROOOORRORRRORROOOOORROOOOORROORRRRORROOOOOROOORORROROORORROOROORORRROOOROOOROROORORORRRRROOROOOROOROOOOROORROROOOOROOOORRRROOOROORRRRORORROORRROROROROORRRROORRRRRRRRRORORROOROOOOROORRORRRORORROROOORRRORORRRORROOOOOROOROOOOROOORRORRRRRROROORORORROROROOOROROROROORRRRROORROOROORRORRRORRRRRROROOROOORRRRROORRROOROORROORROROOOROOOROOROORRRRROORROORRRRRORRRORORRROORRORROOORRORORRRRRRORROOOOROOORORORRROOROOROORORROORRORORRROORRORRRROOOORORRRORRROORROOROOORRRRRRRRROOOROORORRORORORORRRRRORRORRORRRRORORRRRROORRRRORRRRRORRRROOOOOOORRORRROOOOOOOOOOORRRRRROOORORORROOOOORRROROROOOROORORRROORROORRRROOOORRRROROROOOOOOOOORRROOOOOROROOOOOOOROROOORRROOOOOOORORRRROORRROOROROOOROOROOOOROROOOOORROOROOOOOROORROOORRROORRROROOOOORRORRROOORRORRRORRRORRRRRROOOORROOROOOOROOOOOORORROROOROOORRRRRRORORORORRROORRORRRROORRRORRRROROOOROROOROOOOOROOROOOOOOORROROORRRROROORRRRROROROOORROROORROOOOOROORRROOROOOOROROOORROOOORRROROOORRRROORRROORORRRORRROOOOOOOORROOROOORROROORRORRRRRRROOOORRRROOOOROORORRROOOROORRRRROOOROROROROROROOORRROOORRRRRRORRRRRRROROROOOROROORORORRROOROROORORROORRORORRROOOOOROOROROOROROROORROORROROORRRROORROROOROOOOOOORROOORRRROOROORROROROROOOORORRRRROROOROOORRRORRROORRRROOOOROOROOROROOOOROOROOOORRRRRROROORRROOROORRRROOORORRRRROROORROOORORORRRORRRRRORRRRRORORRRORROORORRRORRRRRROROOOROOORRORRROOOROROORRORROOORORORROROORROOORRROOORRORORRROOORRROROORRORRRORRROOOOORORRROOORRORORRRRRORRRRORRRROROOORROOOOOORORRORRRRORROORORRRRROOROOOORRRROOOOOOOOROOOORRORRORRRROOOROOOROROROROOORRROROROOOOORROOOOOORORRRRRROOOOOROROOORORRORORRROOOROOROOORRRORRRROROROORRRORRORORRRROOORORRRROORROORRRRRRORROROOOOORROROORROOOORRRRRRORORROOOOORRRROORRRRRORORRORROOOORRROOORROOOORROROOOROROOROROROOROORORROOORROOORRRORROOOOOOOOORRROROORORROROROOROROORROOORROOROROOORORRORROROROOORRORORRROOOOROOOOORORRORORROOOROOOOOROOORRRRROOOORRORROORORORORRROOROROORRRROOOROROORORRROOOROORRROORRORROORRRRRRRORORROOOROROOOORROOOROROOOORORRRRORORORORORRRRRROOROORRRORRRRROROOOROROOOOOOOROOOORRROOOOOROROOOROOOORORRROORRRRRORRROOOOORORORORRROROORRRRRORROOOOORRRORRRRROORORROOORORRRORRRROOOROROORRRROOOROOOORORROROROORRRORRORORROROOOORRROORROOROOOROROORORRRRRROOORROOOOROOORORROOOORROOOROORORRRORRROORRROOOROROROOOORROOOOOROOOROOORORRRORRRRORRROORORROOOOORRORORRRROROOOOORROOOROORORRROOOORORRORORRROORORRROOORRORRORORORRRRORRRRORRRRORROORRRRRROORRRRORROORROOOROORRROOOOROOROROROORRRROOOOORROOROORRROOROORRORRRORROORORORRROORRRROROROROOOOOOOORRROROOOOOORROORORROROORORORRRORRRORORROOOOOORORROOOOOORORRORROORROOROROORRRROROORRROORRORRORORRRRRRORRRRRROROROOROROORRORORRRRRRRROORROORROORRRROROROOOOOOOOROORRRORROOOORRRROROOROROORRROOROROOOROOOOROOOORROOOOORORROROOORORORRORRRROOOROOOOOORORROORRROORORRRORROOOORORRROOOOROOOOROOOROOORORROROROROOROOOORORRROROOORRROROOORORRRRORROOORORRORROROOROOOROROORORRRORRRORROROROOROROOORROORRORROORROROORORORRROROOORORRROROROOOROROOORRRROOOORORROROORORRROOORORROROORRROOORORROORRRRRORRRRRRORORRRRRRROOOOOOOROOOOOORRORROOORRRRRROORRROROROROOOORRORORROOROOROORRRROOOORORROOORROOROOORROOOOROOOOORRROOOOOROORORROOORORORORORORRRRRROORRORORORRORRRRORRRRRORRORROOORROROORORRRORRROOROOROROOOORRROROROROORRORORROOORROROOOOOOOOORRRROOOROOOOOOORRRRROOROROROROOROORRROROORRROORRRORORRRRORROROOOROROORRRRORRRRRRORROORRRORROOOROORRROORORRORROORROOOOOOROOORORRRRRROOROORRRRRORRRROOORROROOOOOORROOOOROOOOOORRORRROORORRORORORROORORRROOOOROOOOOORRRROROORORRRRRRORRORRRORORRROOROORRROORORRORROOOOROORRRORROOOOROROOORORROORRROOROROORORROOOOOOROROROROOORROOOROORRRRROROROROORROOORORRORRROOORROOORORRRRROROORROOOROOORORORORORORRRRORROORROORRRORRRRROROROOOORORROOOORRRROOROORRORRORRORORORORROOORROORORORRORRRRRRRROROOOORORRROROOOORRORRRRRRORROROROOOROOROORRROOROOOROOROOOOROOOORRROROOOOOOOROORRRRROROOROOORRROORROROROORROOROOROORROORRRORROOOOOROOORROOOROOOOROORRRRRRORORRRROOORRRROOROROROOOOROORORRRORRORORRRRRROORROOOROROOROOOOOORROORORRORRORORRROOORRROROOORRORRRROORORRRRRORORORORROORORROOOROORRORRORROOOOROORROORROOOORRRRORRRORRRORRROORORROOOOROROROOOORORRRRRRORRORROORRRRORRRROOORROROOOOOOOORRRRRRORROROORRROOOOORRROOOORRRRRRRRROOROORRRRROORORRORRROOROOOROORROORRORROROROOOOOROORRRORORROORORRORORORRRRRORORROROORRORROOORRRROROOOOROORROOORROOROOOOOORRORROROROROORRORROOROROORROOORROORRRRORROOOOOOROROOORRORRROOROOOROORRORORROOOOOORRRROOROOROOORROOORORRRRROROROROOOORRRRRROOOOROROOOROORROROOORROOROOROORROOOORORORROROOOORROROROOOOOOROOOROROROROOOORRRROROOOOORRROORRORORRRROROORRORROOORORORORRRORORRRRORORRROROOOORRROOORORRORRRORROOOORRRROROROOORORORROROROORROORRRORROORRRROOOOOOOORRROROROOORORROROROORROROOORRRRRRROOOORRORROROOOOORRORRROOOORORROOOROORROROROROOORORROOORRRRORORRRRORROOORORROORORROOORRORRROORORRRROOOROORORROORRRRORRORROORRRRRRROOOORRRRRROOROOROORRROOOOORORROORROROOROOROOORRRRRRROROROOOORRORORRROOOROROROOOOROOOORRORORRROROORORORRROROROROOOROORORRRRRRRROOORRRORORRRRRROOOORROORRRORROORRRRRROOOOOOOOOROOOOOOOROOOOORRORRROOORROORROOORRRORORRROOROORROORRRRRRORROORRORORRROROROOORORRRRRRROOOOOOROOORRORORORORORORROOOOOORROORROOORORRROROOOORRRRROOOOOOOOROORROOOROORROOOOOOOOROOOORRRORRROROROROOOOOROOORRRORRRRORRORRORROORROOOROOORRRRROOOORORROORRRORORRORROROROORRORORORRRROROORORRROROORROORORROOORRRRROROOOOOROORROOORROORRROOOROOROROOORRRORRRRRRORROOOROOOROOORORROOROOROOROOOOROORROROROOORRRORRRORRROOOORRRRROORORRROOOROOROOOOROORRROROORORRRROOORRRORROOORRROORORRORORRRRROORRRRRRORRROOOORROROORROROORORORRORROOOROROOOOOOROROOOROROROOOROOROROOROORRROOOORORORROROORORRRORRRRORORRORORORRRROORROROOOROOOROORRRORRRRRRORRROOOORROORROOROOORORRRROROORRORRRRORRROORROORROORROOORROOORORRROROORORROROORORROROROOROROORRORORORRORRROOOOROORROROROROROOROOOOROOORRROOORRORROORROOORRRORORRROORRORRROROOOOORRRROOORORORORRROOROORROORROOOROOROOROOOORORROROORORROOROROROOOORRRROOOROOORROOORROROORROORROOOOROOORRRROORRROORROOOROROORORROORRROOROORROROROORRRRRRROOROORRRRRRRORORRRORORRRRROROORRROOOOOORROROOORROORRORORORRROORORRROOOOOROOOOOORRRORRRRORROOORRORROOOROORRROOROORRORRORRROOOOOOOORORRRORRROORORRORRRORRORROOOROORRORROOROROOOOOOOOOORORROOOOORRORORRROROOOROOORROOOORROROROOOORORRROORRORORORROOOOROOOORRROOORRRRROROOOOROROOORRROOORORROOOOORORRRROOORRRROOROORRRROOROOOOROOOOOOOORRORRROORORRORRRRRROROOORRROOOROORRORORRRRRRRORROROOORRORROOOOOROOOOROOOOROROORRRRRORROOORRROOOORRRORRROROOORRORRORRROOOOROROROROROORORRRRORRRORRORRRROORROOOOOROROOOOOOORROROORRRRRROORRROOOOOROROOORRORRROOROORRORORROOORRROOROROOOORORRRORRORRRROORORRORROORRROOOOORORORROOOOROROROOROORROORORRROORROOORRROORRRORORRRRORORORRORRRRRRRORRRORRORRRORRRROROOOORRORORRORRORRRRRORRORORROOROORRORROORORROOROOOROORROOROORRRORRRRRORRRRRRROOOROROROOOORRORRRROROOOORRORROOOOOOOOORRRRROOOORORRRRRORRORRRROOOROROORROOOORROOOOROOOOOROOOOOROOOOOOROROROORRRORRROROOROROROROOOORROOOROROOOOOORORROORRRRRORRROORRROORROORRROORRRROOOOOOROORORORROOOORORROROOOOOOORRRRORORRROORORROORRORORORORORORORRRROOOORRROORRRRRRRRROROOROORROROOORRRRORORRRRRRRRRROOOOOOROOOORRRRORRRORRORRRROROORROOORORORORROROOOOROORORROORRRRROOOOROORROOOORORROOOOROORRRRORORRRRRROORRRRORORRRORRROORROROROORRORRRORRORRRORRRORROROOROROOOROOROORORORRORROORRORROOOOROROOORRORROORRORORRRORORRORRRORRRROORORROOOOROROORRROORORRORRRRRROOROOORRRRRORRRRRROOOOOOROORRORORORORORRORRORROROOORRRORROORROOORRRROROROOOOORRROORORRRROOROROROOOORORRROORORROOOROOROOORORROOORROOOOOROORROROROOOOORRRRROOORROROROOROROORROOROORRRRROORRRORRORROOOOOORRORRROOOOOROOORROROOOROORRROOORRRRRROORRRRROOROROOOROROOROORRORRORROOROORORORROOORORRRROOOOOROOOOORRRROROOROOORRROOROOORRRORORORRRRRROROORORROORORRROROORRORORROROORRORORORRROROORRRROOOORORROOORROORORRRRROORRRRRROOOROOOORROOOORRORROROOORORORROOROOORRRRROOOORORRRRROOROORRORRRROOOOORROOOOROROORORORROORORRORORORRRRRRROOROOORRRROORRRRROOOORRORROOROOORORROOROOORRRORRROOOOORROROOOROROORRRRRRORROOROOROOOROOROROORRORRORRORRRORRROORORORORRORRROOOROOOOORRRRORROORORRROOOOROOORRRROOOOROORORORORROORORRROROROOOOORRROOOROORROROOORORROOORROORROOOORRROORROROOORROROOORRORRORRRROORRROORRRRORRRROROOOOOORORRRRROOROORROROROOROOOOORORRRROROOROOORRORORRRROORORRRORORRORROOOOOROOORORROROROOOOOROROOROORRORRRROOOOROOOORORROROOOORRROORRRRRROOORRORORORRRROROROOROORRORORROOOOOOROROOROORRORRRORORROORRORRROORROOORROOORORROROROOROROOROORORRORRRRRRRRRORROOOORROORRORRROOOOROOOOROOROORORORORRROROROOORRROROOORORROOOOROORRORRROOORRRRRROOORROOOORRRROOOOORRRROOOOROORORORORRROOOORORORRORRORORRRROOOOORORROOOOROOOOROOOOOROROOROOORROOOOOORORRROOOOROOOROOORROROOROROOOORRRRRRORORRROROOOROOOOORRRROORRORRORRRRROORROOOROOOORRORORRRRRRROOROROOORROOOOOORRRROOOROOROORORRRRROOOOORROOOROORRROOROROROORRORROOORROORRRORRRRROOOORORORROROORORRORORROOOOOOOORRRROORRORORRRRORRRROORRROOORRROOROROORRRORROOOOOOOOROORROOROOORORRRRROROORRROORRROOOROOOOROROORRRRRRORRORROOROORRRROROROOOOOOOOOROOOOORORRRROORRRRORROOOORRRROORRROORRRRRRRORRORORROROROOOOORROORORROOROORROORORROORROORRROORORORROOORRORRRORROOORORRORROOORROORRROORORORORRORORRORRRROORRORRROROROORRRROORRORROOOROOOROORROROOOOOOOOOORRRRORROOOORORRRORROOORROOORRORRORROROROROOOOORRRROORROOOOORROROOORORRRROORROROORRRRROORRORRRRRROROOORRRORORRRORROOOOROOOORRORROROROORROROOROOOORRROROORRORROROOOOOORORRROOORRRORORRRORORROORROROROOOOROROROORROORORRRORRRROROOOOROROOOOROROORROOOOOORORROORRROORROOORROOOROORRRROOOOOOORROORRRRORORRRRROROROOOORRROORRRROOOOOOROOOROORROORRROORRROOROORRROOROROROOOROOORORROOROOORORRRRRORRRRRROOOOORRORRRORRRORRORROOOROOOOOOROOOROOOORORRRRORORROOORRRROOORORORRORRRROOROOOORRRROORORRROROORROOOOOROROORROOOOOOROORORRRROORROOORROROROOORRRORORORRRRRRRRROROROOOOOROOOROOROOOORRORROOOOORORROOOROOORRRORRRORORRRRRROOOROORRRROROOOOOOROROORROROOROORROOOROOROOORORORRORORRROROROROORORROROOOORORRRRROOROORRROOOORROORORROOORORROORRRORRORROOORRRROORORORORROORRRRRRRRRORORORRORRORRRRORORRROROOROORRROROOROOORORRRRROROORRRROOOROOROOORROORROOOOOOOORORROOORRRROOORRRROOROOORRORRROROORRROROOOROROOROROOORORORROROORROROOORRRROROOROOOROOOOROOORRRRRRROOOOOOROOORORORORRRORRRRRRRRORRRORROORROORRROOOROOOOOROORROORRRRRROOROROOOORRRRORRRORRORRRRRRRRRRORRRROOOOROORROROOROROOROOOOROOOOORRROOOOOORORRROOOORRRORORRROORRORROORRRORROORORRRRRROROORRRRRRORRROROROORORRRRRRROOOORRRRRRRRORORROORORRRORROORRROOORRORROOOOOROOORORRORORROOOOORRRRRROOORRROROOOORRRRRORORORORRRRORRRORROROORROOOOOOOOORORROROORROOROORROOROROOORRROOOROORROOOOORROOOOROORROOORORRROORRRORORORRROOOROOOROROROOOOORORROROROROOROROOORRRRRRORRRROORRORRORRRRORRORORORRRRRRRORRORROROOROOROOROOOROOOOOOORROORRRRROOORORRRROROOOORROOORRORRRORRORORORRRRRROROROORORORRRRORRRROORRRORRORRORRORORORRRRRRROROORRORROROOOOOOOORRRRORRORRRORRROORROROOOROOORRRRRRRORROORORRORRRRRRRRORRRORRORRROROORRROOROOROORROOROORORRROOROROOOOORRORRROOOOOOROROROOROOORROOOOROOOROORRRORRRRORROROROROOOORRROOOROROOOOOOOOOORORROROOROROOOORRRRRROOOORRRRRORORRRRORRRRORORRRRORORORORORROORROROROORRORRORROOOORRRROROORRORORRRRROORROROORRRRORRROORROOORORRRRORORROORORROOROORORROOORRORRORRRRORRRORORROOORROOOORRROROOROOROOOROOOOOOORRRROROROORRRROORRRRROORRROOOOOOOOORORRORRORRRRRORROROORRRROOOOORROROROORROOROOORRRROORORROOORRRRRRORORROROOOOOOOOORORRORORROOROOROOOOOROOOORRRORROORORRRRROORORRROOOOOORORROROORRRRRROROORRROORORRROOOOROORRROROROORROOOOROROROORROOORRORROROOOORRRRROROOORROOROOOOOOOROOORRRORORROROOOOOOOROORRROORROOOROOOOOROOOOOORRRROROOROOOOOORORORRROORROOORRRRRROOORORROOORRROOOOORROOORROOROOROROORROOOOOOORRROOORRROOROROROOOROORORORORROORORRRRRRROOOOROOOOORROORRRRRROORRRROROORRRORROORRRRRORRORROROORROOOORRRROOROROORORRRROOROORORROOORRORRRORRORRROORORRRORRRRORORORRRRRRRRRROORORRRORRROORROORROROOROOROOOORRRRRRRORROOOOOORROORRRRORRROORRORRORRORRRORROORORROORORROOROORRORROROORORROOORRRROORROORROOOOOROOOORROROROROOOOORRROROORRRROORROROORROORORRROORORRRROOROORROORROOOOOOORRORRROROORROOORRORRRORRROOROROORROORROORROOOOORRRRROORRRORORORROOOORORROROROOROOOORRORRRRRRORORRRORORRRROOORORORORRRROROOOROROORRORRORROOOOOOOORORROOORRROORRORRRROROOOROROROOOROORRRRRROOROROROOOORRROORRRROORRRRROORORRRRROROROROORROOROORRORRROOOOOOOOORROORRRORROOORRRRRRRRROROOORRRRRRORRRRRRROOROOROORROROOORRRORROROOOOOOORRRRROROROOROOOOORORRORORORROOOOOROOOOORRRRROOOOOROROOOOOOORROOOORORORRRRRRRROOOORORRROOOOOORROORROORRORRORRROROROORROOORRORRRORRRORROROROOORORRORROOOROOOOOOROOROOORRRROOOOORRRRROOROROOOORORROOOROORRRROROOROORRRRORRROOOROORORRRRORRORRROROOOOOORROOORRRROROOROOORRRRRROOORRRROOROROOROOOORRRRRORRRRRROORRORROORROOOOOORROOROOROOROOROOROROOOROORROOORRROORORRRORRROOOORRROOOROORRRRRRROORROOOROOORRRRRRROROOOROOOOOOOROROROROROROOROOOOROOORORORRRROROOOORORORRROOORRRROOOOORRORROORRORROORRRORORORRRROORRRRRRRROORRRRRRRRRROOOOROORRRRRRRRRRRRROORRORRORROROOORRORRORRRORROROORROROORORRRRROORRRRRROORROROROORORRORRRRRRRRRORRRORRRORROROORROOOOROOROOOORORROROOROOROROOOOORRROOOROROROOORRRROROOOOROROROORROOOOOROROORROROOOORRRROORROROOROROROOOORROOOOROOOOOOORRROORRRROROOOROROORROORRROORRORROOOOROOOORORRRROORORRORRRRRROORRROORRRROROORORRRROOROOOOOORRRRROROOROOROROROORRROORRRORRORRORORRRROROOORROOROORORROOROOOOORRROROOOORRRRORROOOORROROOORROOOORROOOOROORRRRRORORRORRRORRRORORROOORROOROORRORRORRRROOROORROORORORRROOROORORROOOOROROOOROORROORORROOROROOOORROORORRRRRROORRORRRROOOORRROOOORRRROOROORRRRRROROORRRRORROOOROOOOORRRRORRRRRROOOROORORROORORORORROORORRORORORORORRORRRORRRROOOOORROROOOOROROROROOOOOOROOOORRRROORROOORORROORROOORRORORORRRRRROORORRROOROROOOROROOOORRRRRRRRRORORROOORORROROOORRROOOOROORRROORRRROORORROOROOOOORROOROROORORRORRROORRORROOORRRORRRORORROROORORROOOOROORRROROOOOOROROORROORRRRROORROOROORROOOROORROROORRRRRORORROOOROOOOOROORRROROOOROORRRORORRRORRROOOROROORORRROOROOOOORORRRRORROOOOOROOORRRROOROROROROOROOROORRROOOOORROORORROORRRRROORRRROORROOORRROOOROOROROROOROROROORRRORORROORRRRROOROOROROORRRROOROOORRRROORRORRROOOOOROROOROOORROOOOOOOOROOORORORORORRROOROOROOOORRRROORRRRRRRRRORRORRORRRORORORROORRROOOOOOOOORRORROORROORRORORORRRROOORRRORRRRORROOOORRORROOROORORRRORRRRRRRROROROROOROORRORORORRORROOROOROROOORROOOORORORRRROOOROORROOROORRRORORRROROOOORRROOORRRROOOORRORORORROROOROOOOOORRRRRRROORROROROOOOORROORRROOOOOOORRRROORROOOORORRRRROORORORORRORRORRROORRRROROOROOROORRORORROORORROORRORROROROORORORROORROOOOORORRRRRRROORRRROROOOORRRROOORROOROOROORORRRRRRRROOOROORRROOORRRROORRROROOROOROOOOROROORRRRORRORRRORRRROORORRROOOORRRORRRROROROORROORRROROOORRROOOOORRRRROOORRRRRRORRROROROORROOORRORRRORORROOROOROORROOROORORORROOORORRRRROORRRROOROOROROOOOROORRRRRRRRORRRRROORROOOOOORRROOOOOROORROROOROOORROORRROORRRROORRRRRORRRROOORRROOOROORRORROORRORROROOROOORRRRROOOOROOORROOOOORROORRROOORORROROORROORRORRROOOOORRRRROOOORORORORRRRORRRRRROROROOROORRRORROROOOROORRORROORROORRRRRORRORROORRRRROOROOOORROOOROORROORRRRROOOOOORRRROOORROOORORROROROOROROOOORROORORROORRROOROOORRRORRRRROOOROROOOOORROOORRORORROROOOOOOORROORROOORRRROORORRRRROOOOROROROOOROOORRRRRROORROORROROOOORORRROOORRRRRROORRROORROROOORRRRRRRROOOOORORRROOOORROROOOORRORRORORORORRORRRROOOROOROOORRRROROOORORRRORRORROOOORRRROOOOOOROROROOOOOORROOROORRRRRRROROOOOORORRROOORORRROORRORROOOORORORORORROROORRRRRROORRRORORORRRORORRROOOORRORROOOOROOORORROOOORORRORORROORROORRROOORRRORRROORORRRROOROROOOOROORRRRRRROORRRRRRRRRROOORRRROORROOROORROOOOOOOOORROROOORORRRORRRORRRRROOOOORRRRRROORRRRORRORRORRORRORROOORRORRROOOOROOOROORORROROROORROOROROORRROORORROOOOROORORRORROOORROOOROOORRRRROOORORRORROORORORRORORRRRORRRRROOOROORRORRROOORRORRORRORORRORROROOOOOOROOOROROOOOOROORRRRRRROORRROOOORRROOOORRROOORROROOOOORRRRRORORROOORRRRORORORORRROOOOOOORORRRORORORROROORROROOROORRROOOOROORROORROOORRORRRROORRRRRRROOOOOOOORORORORROORROROOOROORROROOORRORRRROROROROORORRRORORRORROOROOOOOOOOORORORROOROOOOOORRORORROOORORRRRROROOROORRROROORRRROOORRROOOOOOOROORRRORRORROOROOORRROORRROORRRRRORROORRORRROOOOROORRRRROROORRORORROOOOROORORORROOROROROOOROOOROORROOOOORRROORORORROORRROROORORORRROORRORRRORRRRRROORROORRRRRRRRRROORRORROROOROORRRRROOORRORRORORORROOOROOORORRORROORRRRROROORROOROORROOORORROORRROROOROORRRRROOORROOORROOOOORROOOOROOORORROROROOORRRRORRROOROROOOORROROORROOROROOORRRRRROOROORRRORRRROOROOOOROOOROOROORRROOOOOOROOOORROOOROORRORORORRORRRRROOOROOOROOROORRRRROOORROROORROROORORORRRRROOOOOOOORROROOROORRROOROOOOROORORORROROORRRRORORROROORRRORROOORRRRROROOOOOORORROOORROOOOOORRRRRORRROOORRROROOORRROOORRROORORRROORORRORROOOORRORRROOROROOROOOORROORORRRROOOOOROOOORORROOORRRORRRRRRRRRROOORRROOOROROROROOOOROOOOOOROORRRRRRROOORROOROOORRROROROROOORRORRORROOOOORRROOORRROROOORROOROORORROOORRRRRRRRRRRROROROORRORORRRRROROORORORRORROROOOOROOORORROORORRRROORROROORROOOORORORRRORORRRRORRRORRORORROROROOOORROROOOOOOORORRORRROORORRORORRROROOORORRRORROOOROOOOORORORORRROROROROORRRRRROOROROROOOOOOOOOORORRRRRORRRORRROROOOORRORORORRRROROROOOOOOROOORORORROOOOROROOROOORORORORRROOOOOOROORRROORRROROROROOORORROOOROROOROOROOOOOOOOOOOOORROORORRRROORROOROROORRROOORRROOORROOOOROROOORROOORRORORORRRORORROORRORROOOROROROOORORRORROORROOOOORROROROROOOORORRRRROOORRORRRROORORRRROROOROOOORORROOOOOOROORROROORRRORORRRRORRORRROROROORROROOROOROORROOOOROOOORORRORORROROOOOROOOROOORROOORRRRRRROOOOOOORROORRRORRROROROROROORORORORRRRRRORROROORRROOORORRRORROORORROROROORRORORROOORORRRORROORORRRRRORORROORRORORORRRRRORRRRRORRORRRRORORRORORRRORRORRRORROOROOORRRRORORRORRORRRRRRORRRROOOORORRORORORROOOOROOOROOOOOORRROORRROORRRORRORORROROOORROROORORROORRRRRRROOOOROOOOOROORROOORRORRRRROROORRROOOORRROOOOOORORRORRORRROOOOOOOORRRRORRRROOOORRRRRROROORRROOORROORRRORROOORRRRRRROOOROOROROORRRORROOROROOOROOROROROOOROORORRORROOOOOOOORROORORRORORROROOOOOROOORORRRRORRROROORROOOOROROROOROROOOROORRORRROROOROOOROROORRRRORRORRROROOROOOOOORRRORORORRRROOOOROOOROROOOOOORRORRRRORRRORRROOORRROOOORRROOOOOROOOROORORROROOOOOORRROOORRRORRROOOORROOOOOOORORORORORORRORRORRORORRORRROORROOORORRRROROOOOROOOORRRORRROORRROORROOOORORORORRROOROOROORORROROROOORRRRRORRRRROOROOOOROOOOORRRROROORROROOOOOOROORROORRORORROOOROROOROROROORROOROOOOOORORRRROORRORRROROOOROORROOORROORRRORRROROOROOOOROROROOOORROOOOORORROORORORORORRRROOORRRORRRROORRRROORROORRORRRRROOORORORRORORRORRROORRRORRORROROORORRRRRORORRRRORRRRRROORRORRRROROORRRROROOOORRORRORROOOOOOOOOROOROORORRRROORORROORRRRORORORRROORRRRORRORRRRORROOOORORRRRORROOOOOOORRRORROOOOORRROROORORRORORROOOROORRRROORRRROORORORRORORORRROOOOOOOORORRORRRORRRRRROROOOOOROOORRROORRORROOROOROOROORRRRRRROOOOOORRROOROROOOORRRROOORRORROOORRRORROOORROORORROOROROORROROROOROORORRRRRRRRORRROOORRRROOORORROROROORRRRRROOROORROROORROORRRRRROROOROOROOOROOROOOORRRROOOROOROORORRRORRRRROORORORORROORROOROOOOROORRRRRROOOOROOOROORRORROROROORRRRRRORRRROOROROOOOORRRROROORROROROOOOROOORRROORRROROORRRRRRROROOOOROOORRRROOROORRRORRRRRRROORROROOOROOOORRRROOROORORRORROOORRRRORORORORRORRROOOOOOOOROORORROORROORROORRRRRROORRROOOOOROROOOROOORROROORRORRRRRORORROORROORROORRRRORORROORRRRROOROOOOOOROOOROOOOOROROORRORRRROOROROROORRROOORRRORORORRRRRRRRROOOOROROOOROROORROROORRORRORRORORORORRRROROORRORORORROORORRORORRRROOORORRRRRRORRORROOROORRRROOOOORRRROOOOOORRRRRRROOROROOOORRROOORROOORORRORRORRORORORORORROOORROROOORRORORRRRROROOOOROROOORORRRROOROOOOROORRORROORRROOOORORRORORRORORORRORRRRRORRRRROOOOROROOOOOROOROORRORRRORRORROOORROORROOOROOORRRRRRORRRRRORROOOORRORRRRORORRORRRRROOROORRRROOOOOORRORROROOROROOROROROOROOOORRRRRRRORRRRORORRROROORORORRROOROOROOROOROORORRORRRROROROOROROORRROORRROROOOROOROOROOROROOORRRRRROOORORRROORRROROOORORROOOOOROORRROROORORRROROORRRRRROOORRRROOOOORRRRRORROOORROOROORRROOROOORRROOROOOOOOROROOORROOROORROORRRRROOOORRRROROROROORRROROORRRRRROORRROOROOOOROOROROOOROROROORORORRRROORRRRORORRROORROORROORROROORORORRORRRRROORRRRRRRRRORROORORRRROOOROOORORORRORRORRRRRROOORROOROROOOORORRRRRROROOOOOOROOOOORROOROORROORRRORRROOOROOOORRROORRORRRORRRRRRROOROROORRROORROOORORRRRORRORORRRORROROORORRORORRORRORORRORORROOORORRROROORRRRRRORROROOOOOROOORROOROOORRORROROOROOORORORROOORRRROROOROOORRRROORRROROROORROOOOOORRRORROOROORRRORRRORRRORORRROOOROOOOORROOOROOORROORROORRRRROROOOOOOROOROORRRORRRORROROOROROOOOORRROOOORROOOROORORORRROROOOOORRORRRROORRROORORORRRRRROROORRRRROORROROORROORROORRORROOOOROORORRRRROROORORORROOROOROROROROOROOROORORRRRORROROORRRRORORROOORRRRROOOOOORRORROOOOOOORORRORRRRRRRRROOORROOOOORRROOORRRORRORROOOOOOOOROORROOOOROOOROOORROORORORROOORRRORORORROROORRROORRRORORROORRORROROOOROORRRRORRRORRRRORORROROOORORRRROORROOOROOOOOOROOOOORROOOOROORRORROOORORORRROROOOOROOORRORORROORRRRORORORRRORORORORORROORORRROORRORRRRRRRRRROROROOOROOOOROOROROOOOOROOROOROOORORORRROROOORRROOORRORORORROOORORORRORROOOOOOORROORROORRORRROROOOOROORRROOROORORORROOROOOOORRORORRRRRORORRROORORROOORORORROROOROOROOORORROOOOOROROORROOOOOORRORRROOOORORROOOROOROROOORROOROROOROOOORRRRROROOORRRRORROROORRORROOORRORORRRRRRORRROORORRROORROROROROORROOROORRORRROROROOORRROROORORORRROOOROOORRROROOOOOOOORORRORRRROROROOOOROOROORROOORRROOOOOOOOORRRROORROOORRORORORROOORRROORORROROROOORRRROORROORRROOOORRRRORRRROOORRRORRRRORORROOROROORRORROROOOROORRRORRRROROOOORORORRRROORRRRRROOROROOROORRRROROROOROOORROORROOOOOORROROOROOROORRRRORRRROORORORORORORRRRRRORORRROOOOOOORRORRRRRORRRRRRRRRRORROROROROOORORRRORRRRRRORROROOOOROOOORROOOOOROOOOOOROOOOORORROORRROOOORROOOORRRROORRROOOOOROROORROOORROOOORRORROOROOOOORRORRRORRROOOOOROROOOOOROORRROORORROOROORROORRRORORORORORRRROORRROOOORROROOROOOOROORRORRORRROOROROROOORORORRROOROROOOORRORRRORROORRROORRRRROOOORRRROORRRRROROOOROROOOOOOOORRRRORRORRORROROOORORROOORRROOOROORRRRORRRRORRRORORROOOROOROROOORORROORRRROROOOORROOOROOOORORORORROORRORRRRORORROOROOORROROOORRORRRRRRRRRRRRRROORORORRROROOOOORROOROOOROORROROORRORRRRRROORORROROOORRORRORORORRORRORRORRRROOORORORORROROOOORRRORRRRORRORORORRRROOOOOROROOROORROROOOOORORRORROORRROOOORRRRRORRRROORRRRROOOOORROOOORRRRRRRROROOORROOROOORRORROOORRRRRROROOOORRROROROOOROOOOOOOOOOORROORRRRRORRRORRROORRRRROOORRRORROOOOROOOORORROROROOROOORRRROOOORRRRROOOOOROOORROOROROORROROROROROORRRRORROORORORRORORROORRORORRRORRRRRROOOORORROOROORRRRORRRRRRRORRORRROOOOOROROOOOOROROOROROORRORORRROOOOROROORRROROOOORROOOOOOOROORRRROOORRRRRROOROROOORRROOOROROROORRRORRRRORRRROROROORRROORRROROOROORRRRRORROOOOROOROORRROORROOOROOROORORRROOORROORRRROOOROROOOORROOOORORRROROOOROOORRROROORROOROOOORRRRRORRROOROOOOOORRORROOORRROOOOROROOROOROROOORROROORORROORRRORRORORRRORROOORRORROOORROOOOOOOORROORRRRRRORORRRRROOOOORRRRRROOROOOOOOOOOOOROOOORRRORRRRRRRRORRROROROOOOROOORRRRORRORROORROORROORROOORROORRRRRROORRORRRRRRORRRORORORRRRRRRRRORRROROORRRRRORRROROOOOROORORRRORROORROOROORRRRROROOROOOROOROOOOOROOORROORRORRROOOROROROROOOROOOORORROROORRORROORORROOOOROOORRRORORRORORRORRRORRRRROOROROROORORRORRRRORRRROROORROOOOORORRROROORRRRRROOORORROOOORRROOOROORRRRORROOORRROROOORRRORRRROORRRORROOOOORRORRRORORRORRORROOOROOOORRROOOORRORRRRORORRORROOOROROROORRRROORRORROORRRRRORORRRROOORRORRORRORRRORORROROROOOOOOOORROOOOOORORROROROOROOOORORORORORORORRRORROROOROOORROOOOROOORORRROOOORRORROOOOOROORRROOORRRORROROOOROROORORORORORROORORROROORORRROROORROOROOROOROROOOOROOORRRRRRRROOROOORRORORRRRRRROROOOOORRORROROROROORROORRRORROORRROOOOORRORROROOOORRRORROORORRORRORRRORRORRRRROROOROORRRRRRRROOOROOOROOORRORRORORRROORROOROOORRROOOROROOROORRRORRRRORRRORROOROORORRROOOORRRRROOOOORROOOOORRORROOROOOOROORORORORRRRROOORRRRRRROOOORRRROORROOOROORROOORORRRRRROOORORROORRROOORORROORROORRORRRRROROOOOOOOORRRROROROOORRORRRORROORROOORRROOOOORORORORRROORORROOOROROORROOORRROOORORRRROOROORRRRRORRRORRROROOORROROOROOORRRRRRROOOORRORRRROORRROROORRRORROOROOORRRRROROOOROORORRRORROOOORRROOORRRRROOOORRROROOOOOOORORRORROROOROORORRRRRROROOORROORRRRORRRRROROOOROORROROOOROORROOROOOORRRRORORORRRRROOOORRRRRROORROOOOOOOORROOROROOORORRORROROORORROOORRRRRRROORROORRRROROROROOROOOROOROROORRORRRORROROROOORORRRROOORORRRRRRORRORROOORORORRROROOORRRORRRROROOOROOOOROROOOOORRROOROORORRRORORORROOOOOORRRRORRROORRORRORRROORROROOOOROOROOOROOOORRRRROOROROORORRROORRRRRROROOOROOROOORORRORORRORORRRRRRRORRROROOOORROROROOOOORORRORRORORROOROROROOOOORORORORRRRROORROOORRRRRRORRROORORRRRRRRRORRRRROROOROORRROROROOROOROOOORRORROROORORORROOOORRRORORRRROORORRORROORRORRROOOOOOOROOOROOOOOOOOROOOORORRRROORROOROOOROROROROOORROOOOOROORRRROOROOORORRORROROOROROOOROROORRROORRRORROOOOOROROOOOORROOROOOOORROOOROOORRRORROROOORORRORORORORRROORRROOROROOROOORORROOORORRRRORORRROOOOOORROOORROORRROORRORRROROORROOORRRRRORROOORORORRORRRROROOROROOROORORRRROOROOOOOOOROROOOROORRRROOOOOOOOORORROOOROOOOORROOOROORRROOROROROORORORRRROOOORRROROOOOOROOOOOORROORORROROOOROORRROOOROOOROOOROOROOOOORORORRROROOORRROROROROOROOORRRROORROOORORRORRORRRROOOOORRROOROROORRRORRORORORRORROOORRRRROORROOORORORROROOOOOOOORORRORRRORROOROOOOOOORRROOORRROROOROROOOOOORORROOORRORRRRORROOOORORRRORORORROROROORRRRRRORRROOOOOORORROOOOORORRRORRORROORROOOORRRRROROROROOOOOOROOROOOROORROOROOOORORRORORORRROOOOORROOROOORRRRORRRROOORRROROROROROORROORRRROROOROOOORROOOORORRROOOORORRORRRROOOROROORRROORRRORORRRRORRROROOORRROOOOOROOOROOORRORRROORORORORORRRORORROOOOOOROOOOROROROOORROORROORORRROOORROORRRRRRORRRORRROORRRRORRORRRRRORRRRRROOROOOORORORRORRROORORROORROORORROOORRORRRRRRRRRORRRRRROORORRRRRRORROORORRORORRRRRORROOOOROOOORORROOORRORROORORROORRROOORORORRRORORROOOROOOOROORRORRROORRROOROROORORORRRORORORRRORRRORRRRROROOOROROOOOOROOROOROOROOROOROOOROROOORRRORROOORRRROOOORORRORORRRROROORRRRRRRORRORROOOOROOOOOOOOOOOORROOROORROOOOORORROOOOORRRRROOORORORORROOORRROOROORRROOROOROROORORRRRROORROROOORRORRROROROROROOROOROORRORRROOOOOROOROOOORRROOOOORORROOOOOORRROORORRRORORRROOORRROOROROROOOOORRRORROOROORORRRRRRROROOROROROROORROOROOORRRORROROOROROORRRROOOOORRRRORORROORORRRRRRRRORRROOORRRROORROOROROORRORRRRRRRORRROORROOOROOOORROOOOOOROORROROOROROOROROOROOOOORRORRRROOROROROOOOOORROOOORRROROROOROOOROORROORORORROORROROORORRROROROORRORRRROROOORROOOOROOOOOOOOROOOOORRORRRRROORRROORORORROOORORORRORRRRROORRRORORRORRRRRORORORORRRRROORRRORRROORORROOORROORRORROROOORRORORROORORRROOOORRORRRRORORORRORRRRROOROOOORRRRRROOROOOOROOOOROOOORRRROOORORRORRROOROROORRROOOORRORROROOROOOROOOOROROROOORRROORRRRRRRROOORROOORRRORORRRORROOROORORRRROOOOOROROORRRORROORRROROOROOOOORRRROROOORRRRORRORRORROROOORRROOROOOORRORROOROOOORRRROROROOOORROOORROROOORRORRRORROROOOORRRORRROOROROORROROOROORORRRROORORRORRRRORRRORRROOROROROOROORRRORROOROOOOOORROOORORRRROOOROOOOROOOROOOOROROORRRROROOORRROOORROOOORORORRRROOROOORRROORROOOROROOORORRRROOORRORRRRRRROORRRORROOOORRORRROOORRRRRORRORORROOROOORRRRRRORRRRORRORRRORROORRROROROORRRRROOROOORORROOOOOOROOROOOORRRRRRROOROROOOROROOORROOOORRRRROROOROORRRROORORRRORROORRORRORORRRROOOOOOOORORRRORROOOORRRRRROROORROOORRRORRROROORRRORRRRORRRROROOORROOOOOOOROROORRRRRRRORORORRRRORRROOOORROOROROOOOOOROROOOOOOORORROORRRROOORRROOOORORRROORRRORROROOROOORRRORRROOOROORORRORRORRROOOORRROORRORRORROOOORRORRROORORROORORORROROROORRROOROORROOOOOOORRROROROORROOOOOORRORORRROORRRORROROORRRRROOORRRRRORRORROOROORRRORORRORROOOROORROOROOORRRRORRORROOROROOORROROORORRROOROROORORROROROOOOROOOOORORRRRROOOORROOOOOOROROROOOORORRRRORROROROOOOORRROOOOROORRRRORORRRRRORRORORORROROROOORROORORRRRRROROOROORORRRROORRROORRRRRRRROROROROOOOOOOROOORROOORORRRRORRROORRROOORORROOORROOOORRORROOOOOROOROOOROROOOROORROOOORROROOOORORROOOOORORROOOROOOOOROOROOOORORROROROROROOORRROOORRRORROOORORRORRRROROROROOROOROOROORORORRRRROROOORRRROOROOORORORORRRRRRRROORORORROOOORORORROOOORROOROOORRRRRRORROOORORROORRROORORORROOROOROOOROROOROORRRRRRROOOOROOOROOOORRORRORORORROOOOOORRROORORRRORRRRORRRROROROROROROOOOORORRRRRRRRRORORORRRROOOORRRROROOOOOOOOOROROROOOOROROROOOOOOROROOOORRRRRRRRROOORORROORRROOOROOORRRRROROOROOORRRRRROOROORRRROOOOORRRORORORORRORROOOOORROOOORRORRORRRROROOORORRROOORORORORROROORRORRROROROORORRROOORORORRORRROOROOROORROORORROROOORROOOORORRRORORRROROOOOROOROROORORORROOROROOOOOROOORRRROOROOORROROOROORROORROORROOROORORORRRRROROOORROOOOOORRRROOROORROORORROOROROOROROROORRORORRRORRORRRRRROOORRRROOROROORRORRORRROOROORROOOROOORORRRROROOOOOOOOORRORRORORORRROROORROORRROOOROOOOOROOOOORRORORRRORRROROORRRROOROORRRRRORRRRORRRORRROOOROOROORORORRORROROORRRRROROOORROOROROORORRORRRORORRORRRRROOOORRRROROORROROORORRRORRORROROOOROOROORRROROOOOROOROROOROOORRROROORRRORRRROORROORRRRORRRORRRRRRROOROROOROROOOOROOOORORRRRORROORRROORRRROROOORORORROORRRRORRROOROROOROOOOOROOROORORRORROORROROOOOROOORROOOROOOROOROROORRRRRROOORRROOOORRRROOROOORROOROOROORROOROROROOOOOOOOORRRRRROROORORROORRRROOORRRROOOOROOROORROORROOOOOOOOORRORRORRRORORRORROOOOOORRRORORORRRRORROROORROORRROOORRRRRORRRORRRRORORRRORROOROOOROOOORORRORROORRRROORORORORRRRROOORROORROORRRRRRROOROROOORORROOOOOORRORORRRRRRORRROORRRRRORROOORRRRRRORRORORRRRRROOOROOROOORRRRRORROOROORROOROOOOOROROOORROROORRRROOORROOOROORRROROOOROOORORRORRROOOORRROORRORRROOORRRROOOOOOOOORRRORRRRORRRRORORRRRRROOORRROOOOROORROROOORORRORROOOORRROOORRRRRROORROOORORRROORRROORRROOOROORROOOOORORORRORRRORRRRORRROORORRORORORRRROOOOOOOROROOOOOOORRROROORORROOOORRROOORROORRRORORROORRRROROOORRORROOOOOOROOROOROOORRRRRORORROROORRRROROOORRRRROOOOOOOROROORORORRROROOOORROORORORROROOOORROOROROOOORROOROROOORRRROROROOOORRROROROROOORRROOORORROOROROROOROORRRROROORRORORRORRROORRORRROORRORROORORROOORROOROOORRRRRRROORORRORROORRRRORRROROOOOOOOORRRORORORROOOOOOOROORROOOOORRRORRORORRRRRORORORRROOROOROROOROOORROOOOOOORORRORROOROROOOOROORRRRROOORROORROROOORRORORORORORROORRROOOORROOROROROROOOORORROORRRRRRORORRROOROROOOOORRRRROOOROORRRRORRRRRORRRROROOOOOOOORRRRRRRRROOROOROOROORROOORRORRRRROOROORORROOOORRRORRRORORRRRROROROOOORROROOORORROROOOOROOOORRRORORORRORRRORRRROORRROOOORRRRRRORRRORRRROROORROOOOORRROOOOROOROOROROORORROORORRROORRROOORORORORRRRORRORRRROOROORRRRROOOROROOORORRORORRORRROOORORRORRRRROROROOROROOOORRORORORRRROOOOROOOORRRRRRROOOROOORROOOOROROROOOROROOOOOOORRRRROORRROOOORROOORRROOORRROOOOOOOORRORROORRRROOOROOORRRRROOOOORRROOROOOOOOOOOROOORRRORRORROOOOOORRORRROORROORRRORROOOROORRROOORRRRRRROOROROORORORRRORORROROOOOOOOOORROROORRROROORORRORRRROOROROROOROROROORORORRORRROOROOROOOOOOORRRROOOROORRORROORRRRROROOORROORORRROORRRROROOORORROROROROORROROORORRORRRORORROOROORROOORROOORRRRRRROOOOROROOOROROOORRROOORRORORRORRROOOORRRORRRROORROOOROORRRRRRRRRRROOROOOROORORROORRROORORRRRRRRRRROROOROROOORRRORROOROOROORRORRRRRRROROOROOROOOORORRRORRRRRRRRRORROOOROOOROROROOOROROORRORRRRROORRRORORROORORRRORROOOOOOOOORORORROORORRROOOOOROORRRORRROOOOOOROORRRORROROOOROROOORRORORORRRRROORROORRORORRROROROORROOOOROOROOOROOOOORRRRRRORRORORROOOROROORROROROOOROORORROROOOORROORRRRRRRORROOOROROROORROOROORORORRORROROORROORRORRROROOROROOOOROOROROROORRRRRRORORROOOOROROROOROOOOOORRRRRROROOOOOORRRROOORROROROROOOOOOOORRRRORORRROOORROROORROROROOOORRORRORROROOORRORRRRORRRRORRROOOORORROROROROORORRORRORROOOORRRORORRORRRRRROORROOOOOROOROROOORROORORRORRORRORRRORRRRORRRRROOROROROOROOOROOOOOROOROROORRRROOROROOORORORORORRORORRRRRRORROOORROOOOROOOORROORROORROORORROOOOORROOOORORRORORROROORORRRRRRROOOOOROOOORROORRROORROROORRRRRROOOORRROOOOOOOROOOOOOROOOOOOOOORROOROORROORRRROOORRRROORRROOOOROROROOROROORROOORRRORORRROROROOROORRRROROOROROOOOORRRRRRORRROORRRRRRRRROOROORRROOROOORRRRRRRORRRRORROORROOOOORORRROOROROOROOOOOORORORROROOORORROOOOOOORROOORORRORRORRRROORORROROROOOROROOORRRRORRRRROOOROROOOOOORROROOORRORRORROROOORRROROROROORORROOOOOORRRRRRROORORRRROOROROOROOORRROORORRRROOOOOOOORRRROOORORORROROOOOOOOORRROORRORROROROOOOROORRROOORRROOOORROOOOOOOOORROOORRORORORRROOORRORRRROROOOROOOORROORROROORRRORORROORROOORROOORROOORRORORROOOOROOORROOOOOOROORORORROORRRROOOROORROROOORRORORRRRROOORORRROOORRRRRRRROOROROOROOOORROOOOOOROOROORRORRRRRRROOOORRROROROROOORRORORRORRORROORRROORORROROOORRRRRRRRRORRRORRRRRROOROORROOOORRORRORROOROROORORROOROROOROORROROORRRROORROROOOOROORROORRRORRRROOROORRORRRRRRRORORROROORRRRRRRRRROORRRRROOROORORROORRORRORORRORRRORRROOOROROOOORRRRROOOOOROROORORORRROORROORRRRRRROROROORROOOORORRRROORROOROORRRRORROOOOORRROROROORROORRRRORRORORROOORRRRRROOOORORRROOROOOOROOOOORORRORRRROOROOOOOORROORROROROORORROOOOOORROOORROORORROOOOROROOOORROOORRRORORRRORRORRROORRORORRORRRORRRRORORROORRRORORROROOROOORROOROOROOOORORROOOORROORRRRRRORRRORRORORORRRROOOROORRROOOOOOOOOOROOOORRRRROOORRRORRRROOOORRROOOOROOOOORROOOOOOOOOOORORORRRROOORRROORRORRROORRRORORRRRORROROOROORORRORRORORRRRORRORROOOOOORROROROORROORRRRRRORROOROORRROROOOORORORROOROOOORROROOORROORROOORRORRRROOOORRRRRROOORRRROOOORRRROOROORROORORROROOOROORRROOOOOORRRRRRORORRRRORORORRRRORRRORROORORRORORORROROOOORRROROOROORORROORROROOOOORRORORROROOOORORRRRRRORRRROOOOORORRRRRROROROOOORRORRROROOOROROOOOORROROOOOROOOOOROOORORRRROORRROORORRRRRRROORRRROOORRORRROORORORROROOROOORRORROOOOOORORRROROORORORORRRRORRRROROROORORRROORRORROORRRRRRRRRRRORORORROOROROORRRROOROOOOOOOROOOROOOOORROOROOOOOOORRRROROROOOOOORROOROROORRROROOOOOOOROOROROROORRROROOORRRROROROOORROROOOROOOROORROORORROROORRROOROOROROOORROOROROORROROOOROORROORROORORROROOROORROROORRRRRRORORROOOOROORROORRRRROOOROOROORRRORRRRRRROORORORRORRROORROORRORROOOOOOOORORROORRORRORRRROOROROROROOORRRRORRORROOOOROORORORRROROOORROOROROROORRRORRROORRRRRRORRRORRROROROOORRRRORORORRORROOOOOOROOROOROOOROORROROOROOOOOORRROOOOROROOOROORRRRORORRRORORORROOORRORROOOOROOOOORORORRRRROOROROOORRORORROOORRRRROROOOROOORORORORRROOOOORRRORROOOORORRROOORRROOROOOROROOOOROOOROOOROOROOOOOORRORRRROORRROOOORRROORORRROROROROOROORRRRRRRORORROOOOROOROOROORRRROORORORROORROROOOROOORRORORRRRROOROOOORRRRRROOOROROORORRORRORRROOOORROOOOOORORORRROOROOOORRORROORRRROOORRROORRRORORROOOROORRROOROORRRRROROROORRRRRROOROOOOOORROORRORRROROROOROOROOOOOOROROROORRORRRRROROORRROOROORRROROOORRRRORRORROORROROORROOOOORROORRORROORORROORRRORORROOOOOROOOROORRROOROROROORORORROROOORORRORORRORROOOORORORROORORRROOOOOORRRRRRORORORROROORRROOROOROROROORROORROOROORROOOROOORORROORRRRORROOROOORRRRROROOORRROORORRORROORRRROOOOOOROORRROROORROORRROROROOROORORORROORORRROOROOOOOOROORRROROOORROROOOOOOORROOORRROORRORORRROORROOORRROOOOORRORROROOROROORRORROOOROOORRROROOOOOROORRRROORORRROOORROOROOOORRRRROOOOOOOORORORRRORRROORRORRORROROOORRROOOORRORRRROROROROOROORRRROORRRROOOOORRORRRORORRRORORRRRROROOROOORRRRROROROOOOOOROOOOOORROORORORRORRRRRORRROOORRROOORROORROORRRRORRORORRORORORROOOORRROROROORORORROROOORRROOROORORROROOOOROORORROOROOOOORRRRROROORRROOOROROOOROOORRROOOORRRROROOOOORRROOORORRRORRORROROOROOORRROOOOORRROOOOOROORRRRORRRROOOOORRROROORRROOROOORRORRORRORRORORRROORRORRORROOOROORRRORRROROORRORORROORRORRROOOOOOOOROORRRRORRRROORRRRROORRRROOORRRRRORRORRORROOOORRRROOOOOORORRORROOOROORRRRROROOROROROORROORRRRRROORROROORORRRRRRRRROOROROORROORRRROORRRROOOOOOOOORRRROORRORORROORRRRROROROOOORRRRROOOROOOORROOOOROORRORROOOROORROOOROROOOOOROROOOROROORRRRRROOROROOROOORRRROROROORORORORRORORRROORORORRORROROOOROOROOOOOOOROOORROORROROORROOROOOROROOORRRROOOROROOROORRORRRROOROORRRRRRRRORROOROOORRORRORRRORRRORRORROOOROORROOOROROORORROOROROORRROOORRRORRRORORRROROORROOOOROOOORRRRRRORRROROOROOROROOORORRRROORROOROROORRRORROOOROROORRORRORORRROROOOORROORORORRRRRORROOORORROOOOROOOOORRORORROROOROROROOOORRROROROROROROOOOORORRORRRRORRRRROORRROROOOORRROROORORROOOROOROOORRORORROOOORRORORRRROOOROROOORORRRRRRRORRRRROROOROROROOORRROOOOORRORRRRRORRRRORORRRROROORROOOROORRROORORORROORRRRORROROORROOOROOROROORORRRRORROOORORRRRROOOROROOOROORRORROOOROROOOROORORORRRORORRROROORORORRRRROORROROOORROORROROORRRRORORORROOROROOORRORORRORRRORRORRORRRRROORROOOORORRROOROORRROORORROORORRROOORRORORRROROROORRROORORORORROOOOORROORROORRROOROOOROOROOROOORRROROOOOOROOROOOORROORROOOORRORROOORRRROOOOORROOROROORORORROORROROOROORRRORROORORRORORRRRORROROOORRRRROROOORROORORRRROOOROOOORORRORROOORRRRROOORROORRRORORRRRORORROORRORROOORRRROOORORRRORROORRORRRRROOORRRORROOORORORRRRRORRROORRORORORRRORRRRROORROORROORROOOOORROOOOOORRRRRROOROOOOOOOOORRRRRRROOOROOROOROORROOOOORRROORRORROROOROROOOROROORRORORRORRRRROOROOORORRROORROOROROOOOROOROORORRRROROORRRORRRRROROOOROROOROOOOOOOROOOOOOROOROROOOROROOORORORRROORRROOOROORORROROOOOOROOROOROORORROORORORRORRRROOOORRRRROORORRRROORORRRRROOROOOOOROOROORROOOROOOROROOROORROOROROORRROORRROORRRORROOOROOROROOORRORROOOOORRRRRORROORROOOORROROORROOORRRRRRROROOORROORRRORRRRROORRRRORROOOOROOOROOOROOOOROOROOOROORRRROOOOOORROOOORORORRROORRRRRRRRRRROROROORRROORRRORRRRORRRRRRRORROORROOOOROROROOOOROOOOROOROOOORRRRRORORROOOOROROOROROOROOOROOROOOROOOOORRRORORRRROOOROROROROORORRROOORRROORROROOOROOOOOOROORORRORROOROOORRRRROORORORRRORRRROROORORROOOOOOOORROROOOOORRRROROOORRRRRROOOOORROROOOORRRRRRROORORROOOOORRROORRRROOORROOROOOOROROOORRROORORRORRORRRRROORROOOORORRRRRROOORROORORROROOORRROOOOROORORRRORORRROROROORRRRRRRRROORRRRRRRRRRORROOORORORRRRRRRRROORRRRRRORROORRRROROOROOROOROROOOOOOROROORRRORROORRRRROROOOOORRROORORRROROOOOOROOOOROORRROOOOOOORORROOORRROOORROOROROOROORRROOORORRRORRORRRRROOOOROROOOROOOORROOROROORRRRORRROOOORORRROOORROROOOOORROORRRRRRORORRRORRRRORRRRROOORRORORRORRORRRROROOROOOORORROOOOORORROOORRORROOROORRRORRORRROOOOROORROORORORRRROOOORROROOOOORORRROORRRORORRORRRROORROROROOORRORROOROROOOOORRRRROORORROORRRRRRRRORRRRRROOOOOOOOORORORORRORRORROORRRRRROOOROOORRRRRORROROORORRROOROOROOROOOROOROORROROORROORRORORORROORROORRORORROROROOROROOOORORRRORROOROOOOROROOOOORORRROOOOOROOOOOORORORRORRROOOROOROOOROROORRRORORORORRORROOOORRRROORORROORORROOROOOOOROORRRORROOOROOOORRRORRORRROOOORRRRROOOORRORORORRRRORRRRRRRROOROORRROOROOOOROOROOOROOORRORROORRRRROOOORRRORORORORROOOOOOOORRORROOORRRRORROORRORRROROROROOROROORRORROOOROOOOOOORORRRROOORORORROROOORRRROOROOOROROOROROOOOOROOORRROOOOOROOORRRORORORRROOOOOORROOORRROORRORROROROOOOROOOORORROOOROORROOOROOOOOORRRORRRROROOORRROOROOORROORRRORRORRRRRROOORRORRRORROORORROORROOROORRORORORRRROOROOOOOROORRRROORORROORRRORRROOOOORRROROORROOORORRROORRORRRROOORRORRROROORRRORRRRRORROORROROOORORRROORROROOOOOOROORRRORROORRRROORORROROOOROORROOOOORRRROOROORORORRORORORRRORORRROORROOOROORRRRORORRRRRRRRROORORRRRRROORORRORORORRORRORRRROOOROOOROOOROROROOOOROOROOOOROROOORRRORORROORRORRROROORRRRRRORRROROOOOROOORRRRRRRORRROROORORROOOORRROROORRORRORRRRROOORROOORORORRROORRRRRORRRROOOORRRRORORRRROORORORRRROOOORORORROORORRRRRORRRROROOROROOOOOROROOORRRRRRROOROORROORROROROROORORORRORRRRRORRRORRORROORROOOROOOORORRORROOOOOOORORRROORORRRROOORRRRROORRROROROOOOOORRRORRRROOOOOOROROOOORORRRRROOOORORRORORRRRORRORORORORRORROORORRRORROORORRORRRRORROORROORRRROORRRORORRORORROROORORROROROOOOORROROOOOORRRRRRROOOROORRRROOORROROOOROOROORRORROOOOOROORRRRORROORRRROOROROOROOOOORRORORROROORRRROOORROOORRORRROORORRRRRORRROROOORRRRROORRRRRROOOROORRRORRROROOROOROOOOROORORRRORRRORRRRRRROOOORRORRRORRRRORRROORRRRRRROORRROOORRORRRRRRRROORRRRRRRORRROORRROORORRORRRRORORRRRRRRRORROROORRROROOOOOOOOROOROOROOROOOOROOROORRORORORRROROROROOOORRROORRRROOOOOORORROROROROOORRRRRROOOOROROROROOROOOOOOROROROOOOOOOORRORORRRORROOORORROOROROROORRROORROOROROORROOORROOOOROOORROORRRRRORRRRRRRROOOOORROROROROOOROOROOOOOOOOOORROOORRROROROOORROOOORRRROOOOOOOORRORRORRRROOOOORRROOROOORRROOOOORRRROROORRROROOROROOORROOOORRRRRRROORRRRRRORORORRROOOORRROROOROORRRRRRROROOOOROOORRRRORRRROROOOOORRRRROORRROORORRORRRROORROOOROOROOOORRORROORROOOOORORORORORRROOORRORRROROROORROOOOORROORROROOOROOOROROROOOOOORORORROOOOOOORROOORRORRRRRROOORORRRROOORROOOOORROOOROOOOOORRRROOROOORORRROROORRROORRROORROROORRROOORRORRORRRORRROROORRORRROOROOOOOOORRRORROORORORORRORRORROROROROORROROOROORROORROROOOOOORORROORROROOOROROOORRORORROOORRORROOOOOROROORRORORROROORORORROOROROORROOROROOROORORRROROOOORRRRROROORRROOOROOORORRRORRRORRORRRRORORRROOORORORRROORROORRORROORRRROORORROROOORROOOROROORRRROOROORORORROORROOROOORORRRRRRROOOOORRROORORRRROOORRRROOROOROOOORORRORORRORROROROOOROROORRROOORORROOROOOROOOROOORROROROOROROOOROOROROROORRRROOORROROOORROROROROORROOORRORRORORROORROORORORRRRRORRROOROROOOOOROROOORROOORROOROROROROORRROOOROROOOROROOOROROORORRROOROORRORORRRORROROROOOORROROORROROROOOORROROORRORRROORRROROORORORRRORORRRROROROORRRRRRRORORORRRROROOOOOORROOROROOROOOORORORRORRRROOOOROOORROORRRROOORROROORRRRORRRROOORROROORROROORROORRRORROOOORORORROORRRRRROROORRRRRROROORRRROOOOORRRROROOOORRORROROORRRRRRROOOROOROROOORORROORRRROOOOOOORRROORROROORORRRROOOOOORROOORRRRRRRRRROORROOROORRRORRRRROORRORRRORROOOROOOROOOOOOROORORRRRRRRRROOROROOOROOORRROOROORROROOROOOOORORRROORRRORROROOOROOORRRROROROOOOOORROORROROORRRRRRRRRRRRRRROORROOOOORROOROOROOOOOOORORRRRROORRRROROORRRROOOOORRRORRRRRRROROORROORRRRORRRROOOORORRRORROROOOOOORROORORORROORROROORORRRRROOOROOOORRRRRORRRORRRRORRORRORRRRROOORRORROROOROOOOOOOORRRROROORORORRRORRORRROOOROOORRORRROOOROROOROOORORROOOOROROORRRRRROOOOOORROROORRORRRROOOORROROOOORROOORRORRRORORROORRRRORRROOOROORRRRRRORRROROROROOROOOORORORRROOROOORRORROOOOROROOOORROOOROOORRORORRRRRROORROOROOOROOOORORRRORRORRORROROORORROOORORRRORRRRROORROOOOOROOORRRRROOROOROOOOOORRRRROOOROORRORRORRROOOROOORRRRRRRORRROROORORRRORROOOOROROORROORRRORRRRROOOOOORRRROOOOROOROOOROORROOORORORRRRRRRRROOORRRRROOROOOORRRROOOOOROORORROORORRORRRROOORROORRRRRORORRORORROORORRORRRRRORORRRRRROROOORRRRROORRORRRRRRRORRORROORROORRRRRRRORRRORRORROOROOOROOOOORROOROOOOOOOOROORROOOOOROOORRRORROOORORRROOOOOROOOORORRROOROOOOORORORROROROOOORRROROOROROOOROORORRRROORRROOORRRRORROOOOROOORROORORRROROOOROOROOROOORORORORROOOOROOOOORRRROOOROORRRROROOROOOROOORRRORRRRRORORORRORROORROORRROOOOROOROORORROROOROROROORRRRRROROORRRROOROOORRROROOOORRRROROOROOOOOOOORORORROOORROORORRRORORRROOOORRRRORRRROOOOOROOROORRRORRORRRORROOOOOOORRRRROOOOROORORROOROOORORORORRRRRORRROROOORORRROORORROORRORRORRROORORRRROROOROOORRORORRORROOOOORRRRORROROROORRORRRROORROOORRORRORRRROORRRRORRRROORRRROOOROOOOROOROROOROOROOOOORRORROOOORORORRRRORRRORRROOORRRROORORROORRRORRRRORRROORORORRORRRORROROOROOROORRORROOOORORROORORORRRROOORROOROOOORRROOROORRRRRRORROROOOOOROOORRRRRRRORORROOROOOOROROROOORROORORORROOORROOORORORRRRRRRORROOOORORRROROORROORRORRRROROOOOORRRORRROROOOOOORRRRORROROOORRRORRRRORRRROOORRRRRRROROOORRROOOROORORRORROOOOORRORROOORRRRROOOOOORRORRROOORRORRROOORRORRRROOROROOOROORRRROROOOORRORRRRORORROORRRORRRORROOOROROORRRROROOORORORRROORRRRROROOOORROORRROOOROOOOOOORRORROOOORRRROOOROORROOORRROOORRRORROORRRROROROOOOORROOROORORRORROOOOOOOOROORRRRORROOORRRRORRRORRROOOORROOORORRORRROOROOROOOOROORORORRROOOOOOOROORRROROOOORRORRROROOOORROROROORORROOROROROROORORROOOROROOOROORRORORORRRRORRRROROROROORRRRROOROROORRORRRRORROOORRROOOOORORORRORORROOOROOOOOROROOORRROOROOROROROOROROORRRORRRROOOOOROORRRROROORRROOORORRRRRORRRRORRRORROORRROROOOROOOOOOOOROOOOOOOORRROOROOOORORRROOORORROOORORORRORROORROORORRRRROORRORRORRRRRRROORRRROOROOROOOORRRORROOROOOOOOORROORRRROOOORRRORRRROOOORRRRRRORRRORORORORORRRORROOORROROOROOOOOROROOOOROOROOOOORROROROROOOOORROORRROOORROOOOOOOORRRROROROROROROORROROORROROROOOOORORRRRRORRRROOOORORROOOORORORORRRROOOOROORORORRRORROOORRROORRROORRROORRRRRRORROROOORRORRRROORRRRRRRORRORROOOROOORROOORORRRORRORROROOOROORRRROOOROROORRORORROOORROOORRRRRRRRRROROOORROORROORRRRROOOROORORRORRRRRRORRRRROOOOROORORROROOOOOOOROORORROORRRROORORRRRRORRRROOOOORRORORORRORROORROOROOOROORORORROROOOOOORROROROOOROOOROOOORRRRROROOROROOROOROROORORROOOOROOROOOORROORORORROORRROOROOORROOOORROOROORRRRORRROORRRRROOROOORRORRRORORRORORRORRRORRORORRRORROOROORORRRROOROROOOROOOROORORRROORRRROOOOORROOORORRROORRRORROROOROOOORRROROOORORRROOOORRRRRRRROROROROOOROROOROORORORRORROOROOORRROOOORORROORROROOOOOORRRORRRRRRROOOROROOOROOOOROORRRRRROOROOROORORRRRORRROOOORRRRORROROROROOORORRROOOOOORROOROORRORRROROORRORROORRROOOOROROROORRRORRRRORRROORRRRORORORRRRRRROORORRRRROROOORORROOROOOORORRRROORRORRORRROOOOOOORROORRORRORROOOOOROROOROOOORRRROOOROROORROROROROOOOROORROOROORRRROORRRROORROOOORRRRORROOORROROORRORROROORRROOOOORRORRRORROOORROROROORRRORRRORRORRRRRROROROROROOOORRROROOOOOOOROORORRRRORROOROOORORRRROROOORROORORRORROORRRROORRORRORRORORROORORRORORORROROOROOOOOROORORRRRRRORROROOOOOORRRROOORRORROORRORRORRROOORROOOOROOORRROOROOOOOORORRORORROOORRRRRORRORORRROORRRROOROOOOORRRROROOOOOROOOOORROOOORROOOROOROOORRROOOORRROOOOOORRRORRRRROOOORRORRORORRORORORORORORRORRORORORRRRROROORROORORROORROROOOOORORRROORRORRRROOOROORROROOROROROROORRRORRORRORORROOROROORORRRROROOOOORROORORROOORROOORROOROOOORRROROORORRRROOOROROOOROROROOOROORROROOOOROOOOOORORORRORROOORRRORRORORORROOORRRROOROOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORROORRORRRRRRRORRROORORRRRRRRRORRORROORORROROROOORROORORRORROROROORRROORORORRROOROROOOORRRRRRORORROOOROORRORRORRRRRRRORRORRORRRROOOROOOOOORRRRRRRRRRRROOOOOOROOOOOORRORORRORRRRRROORORRROOOORORORRRROROOROOROORORORRORROORROOOOOOOOROROOOROROORRORRRRROORRROOORRROROROROOORRORRRRRRROROOROOOOOOOOOOOROROORORRRRRRRROROOROROROROROROORRRORROOROORORRROORRORRRRRORRRORRROORRRROOROOROOOOORORORRRRRROOOORROOROROROORRRRROROOOOOOORROOOROORROOOROROROOROORRRRRROOROROROROOORRRORRRRORRROROOROORROOORRROOORROROOROOROORRRORRROROORRORRROORORRRROROOOOOROOROOORRRRRRRRROOOOROORROOOOROOOROOOROROOROOOORRRORRORRRRRORORROOORRRROOORRRORRRROROOROOROROORROOOOOORRRRRROROORROOOROORROROORRROOOOOOOOOROOORRORORRRORRRRROORORRROOOOORORRRRROROORROOROOROROROOORRROOOROORROORROORRROOOORRROOORORROOOOORROOOORRRRRRORRORROOOOOROROROOORORORROORROOOOORROROROORRORRRORRRRRRROOOOOROROORRORRRORRRROROOOOOORRROORROOORRORRORRRRORORORORRRORROOOORRRORORRORRORORORRRRORRRORRRRRRRRROOOOORORRROROOOOORORRRRORRORROOORRORORROROOORRROOOOOORRRROROOOROROOORORRRORRRRROROROOOORRROOOOOOORRORRORROORROORROORROROOORRRORORRRRORROOOOORROOOOORROOOROOROORORROORORROOOOOORRRORRROORORORROOROROROORRRORORRORRRRROOORRRRROORROORORRORROORRRORRORROOROOOORROORROORRRRRRORROORRORRRRROOORRROOROROOROOROROOOROOOROORRROOROOOROROROORRROROOROROORORROORROOROROOORORRORORORROOORORRROORROORROOOROROOROOROORRRORRRRRORROOOOOOORORORROROOOROOOROOROOROOORROOORROROORROOORRROORRROROOORRRROOROOORRRRRRRORRORORROORRRRRRRRROROOOOORRRRRORROROOORRORRORRORROORRROOROOROOOORORORRORROOROOORRRRRROOOOOORRRRRRRORORROORRROOROOROORRROOROOROORRROOROROORRRORORORROORRRROROOOOORRRRRRROORRRROOOROROORORROOOORROOROOROROORRRROORRROORRORRROOOORROOOROOORRORRRRRRRORROOOORRRORROORROOOOOORROOROORRORROOOORRRRROOROOORRORROOOOOOOOROOOOOROOROOORRROOOOROROROROROOOORRROOORORRORROROROROOOROROOORRROORRROOOOORRORRRRORRORRRROOORRROOROORRROOOOROOOOOOOROOROOOOOOORROOOORROOORRRROOOROORROOORRRRORRORRRRROOOROORRROOOROROROOORORRRORRRRROROOORORRRORRRROROOOORRRRORROOROOORRORRRROROORRROOOOROOROOORROOOORRRRRRRRROORROROOOORRROOORRROOOOORORRRROOOOOOOORRRRRRRRORRROOOOOORORROORRROORROROROOROOROOORRRORORROOOOROOOOOORROOROROOORROROORROROOOOOORRROORRROROOORROORORORRRROORRROROORRRROORROOOORROORRORORORRROORRRRRRRORRROOOROOROORROORRRRROOOOROORRORROORRROORRRROOROORRROOORORORRRROOROORRRRORRROROOROOOORORROROOOROOOROOOOROORORRRROORROOOORORRRROOOOROROOROROOROOOROROOOROROOOORRORORRROROOORORROROOORRRRROOORRROROOROOOORROROOOOOROOROORRORRORROOOORRROOOOORRROORRORORROORRRRROOOORROOORRRRORRRRRORRRROOOOROOOOOROORRRRORORRORRORRORROOOROOROROOOROORRRRORRROROOROORRRRRROROOORROROORROOROOOORROOORORRRRORORROROOOOOORRRROOORROOOOOOOOORORRORROOOROOROORORRORORRROOOROOROOOOORORRROOOROROOOORROROOORRRROOOORRRORRROOOORRROOOOOOOROOROOOORRORRRORORRRORRROOOORRRROORORRRRROOORROOROOROOROROROOROOORRORROROROOROROROORROOOROROOORROROORRRROOOORRROOOORRROROORRRRRROOOOOOOROOROORRRRORROOORROROORORORROROOORORORORRRRRRRORRROORORROORRORORRORROORORRORROROOOROOORRRRROROOOROOOOOROOROROOOROORRRRRRRROOORRRROOORRROROOORROOROOROOOROROOOOOORRRRRROROOOOOOOORRRRROROOORRROORRORROOORRRRROOOROORORROROOROOROOOOOORROOOOORRRRRRRORRRROROROOORRROOOROROROOOOROORRROORROOORRRROOORROORRRORORRRRRRROORRRRORRORORRRROORROORRRRRRRORRRRROROOORRRORROORROOOOROOROROORRRROROROORRRRRRRRROROORORRRRRRRRRROROORORRORROROOROOOOROORRORRORORORROOROORORORROOORROOROOORROROOOOOROOORROROORROOROROOROORORRROROORRRRRROOOROOOOOOOOROROOOOROORRRRORROOORRRRROOORRRORRROOROROOOORRORORRRORROOORROOOOOOOOORORRRORRORRORRRRRORORRROORRROOROOROORORORRRRROORROOROOORORRRORRROOROORRORRORORRROORRRRRRROROORRRRROORORRRORORROOORRORROROROOROOROOOOROOROOROOORRORROOOOROOORRORRRROROOORROORRRRRRROOROROROORRRRRRROOORROOOOOORORROORRORROOROOOROOOOROOORROOROORORORRORRROROOOORRRORORROOOOORROORROROOROORORRRRRORORRORORORROOOOROOOROOOOROORRRORORRRRRRORRRROORRROOORRRRRRORRRRORRORROOOOOORROORRROORRORRRRROROOORROOORROOROROROOORROOROROOOORRRRRRORROORRRROROOROOOOOOORRRRORROOROOORRORROROOOORRROOORRRRROORRROOORROORORRROOOROROOOROOROROOOORRRRROOOOROOOOOOROOORORROOROOORORORRROOOOOOORRRROORORRORRROOOORORRRORORORORROOORROROOOOOORROOORROROOROOROOORRROOOORRRORROROROORORORROORROOROOORRRROOOOOROROOOOROORORRRROORROROOROROOOROORRRRRROOROOROOOROROOOORROOOORORRORRORRRROOORRRRRRROOOORROOOOROOROROORRROOOOROORROOOROOOROROORROOROOROOORRRRORROOROROROOOOROORROOOROROOOOOORORROROOOORROORRORRRORROROROROOROORROOOROORRRRRORRORROOORORRROOOROOOOROROORRORORRORORORORRORRRRRROROROOOOOOROORORRRROROOOOROOROOOOROOOORRRROOOOOOORORORORRRRROORORORORRRORORORRORRRROROROOROROOOOOOOOOORRROOOOROORORORRROROOROOORRRORORRROOORRROROOOORORROORRRRROROOROORRRORROOOROROOROOORROORORRRORRRRRROOORRRRORORRRROORRRRORRROOROOROOORORRROOORORROOROOROOROROOOOORROOOOOORRORRORORRRORORORRROOOOOORROORRORORRRROROROOOORROOORRRRRRROOROOOOOOOOORROORRORRRORORROROOORRROOORROROORRRROOOORROORRRROOOOOROROOORORORORRROOOORORRORORRROORRRRROROORORRRROOROOOORRRORROOORRORRRRORRORROORROORRRRRRORRRORROOROROORORRROOROROOROORRRRRORROORRORORRRRRRORRRROROOOOORROORRRORRRRORRRRRRORORORRROOOROORROROOROORORRORRORORRRORRROOOOOOOROROOROOOOOROOOORROROOROORRROOOORROORRROOOORORROROROORORROROOOOOOROOROROOOORROOROORRRORRRRROOOOOORROOORRRORROROROORORRRRRRROOORROOORROORROOOOROOOOROOROOROOOROOORRRROOORRRORROOORORRROORORROROORROOORRORRORRROOROORORROOROOROROOORRORRORORROOOORRRORRORRROOOORRRROORORRRRRORORRORROROOOORROOROORRRROOROORROOORROROROOOROOOOOOROOOOOROROOOORROROOOORRRRROROROOORRRORORRROORORRRORRORRORROORROROORRRRRRROOOROOOROOORORRORRRRORORRRRRRRORORRROOROROORROOROORRORORRORRROROOORORRROROORRRRRRRROROOROROOOORORRROORROOOOOOOOOORORORRRROOROROOROROORRROOOORORROORRRRORRRROROROROROOOOORORORROOROORORROOORORORORORORRRROROOORROOOOORORORORORORRRRORRRRORRRORRRRROOROOOORORRRRRRORROROOROORORRORRRRORORRROOOOOORORROOORRRRORRORROROOORRROOORRRORROOOROOROOORRORORROOROOORRORORROOROOORROOOOOROORORROOORORROORRRRROOOROROROOOORORROROORROROROOROORRORROORORORRORRRROOOOROORRROOROROORRRROOROOORROROOOOOORROROORROOOOROOOROORRORROOOORRRRROOOROOOORRORRRROORRRRRRROOROOORRROOOORROOOOORRRORRRORROOOOORRORRRORORROORRRRRROOOOROOOORRRROOOOOROORRRORROROROROORRROOOOOORRRRROOOOOOOOORORRORORRRROOOOOOOOOOORORRROOROOOORRRORROOROROROROOROOOOOOORORROOROOORROORROOROOORORORROROOOOORRORRORRRORRROROROORRORRRROORRORRRRRORROOROROOOROORORROROROORRORORORRORRROROOOORROORRRRORRRRROROOORRORROORRRORRROOROOOROOROORROOOOOROOOROROOROOOOOORROROROOROROOOOORRORROOOOORRROORROROORROORRROORORORRROOOROORROORROROORROORORRORRRRRROOORRORRROOROOOROOOROOOOROOOOOORRORRROORRRROOORRROOORROOORRRRORRROORRRRRRRROOROOORORRROOROORRROOOROORRORROOROROOOROORROOOROORRRORRRRRRRROORORRROROROOORRROORRRRRRRORRORROOOOOORORRRORRORRRRRRRRROOROOOORRROOOOROOOROOOOORRORRROOOOORRRRROOORRRRRORORRORROOROOOOOOROORRROOORRORRRROORROROROORRROORRORRORRRRRRRRRROOORROOORROORRRRROOOROOOOOOOOOORORRORRRRROOOOROROROROROROROROORROOROORROROROOROORRORRRRORROOORRRORRRRRORORRORORRRORROOROOORRORRRRRRORRORROOROOROROOOROROOROROOOORORRORROOOORRROROOOORORORORORORRROOROOOROOOOORRROOOROOOORORRRROOORORORORORRRRRRROORRROOROOOORRROROROROROORRORROORORROOOROROORRRROROOOOOROOROOOOOOORRROROOOROOOOOORROROOOROOROROROORORROOOORORORRRRORRRORRRRORROOOOOROROROROROOROROOROOROOORROOORRRRORRRRROROOROOOROROORORROORRRRORRORROROORROOOROROORORROOROORRRRRROROOOOORRROORRROROORRRRRORRRORRRROOOROOOOOROORROOOOOOROOROOOOOOOROOORRROORORROOOOORROROOOROOORRROOOOROOOORROOORRRROORRORORORRORROOOORRRORRRRRRRROOROROOOOROORROOOORRORORORRORROOROORRROOOROORRRRORROROOOOORROROOOROROROROROOOOOROOOOOROROOROORRORROORROOORORORRRRRROROORRRORROORORRRROOORROOORRORRRROOROOOOOORRRRRROORRORROORORRORRRROOOROOOOORRORORROROOOROROOOOROOOROOOROOOOORORRROROOOORORRRRROOORRROROROROORORRORORRRROORROROROOOROOOOORORRRRROOOOOORRRRROORRROORRRRRORORRORROOORRRROOOORRORROOOOROOOOROORROOORORRROOORRORROORRRRORORROORORORROROOORRRROROROOOOORORORORRROROOOORROOROOOOROROROROOORORROOOOROROORRRRORORRORRORRROORRROOOROOOOROROORROROROORRORORRORRRROOORRRROROOORROORRRRRROOROOOOOORRRRORRRORORRROOROOOOORORORORORRRRRORROOROOROROOOORORRRROROOOOOOOORRRROROOOROROOORRRRRRRRROOOOOOROORORORORRORRRRRRRRRRRRRROROROORRRORORROROOROOROOOOROORORRROOROORRRORRROOOORORORORRROOROORRORORRRRORROOOOOORORRRRORORROOOOROOOROOOOROOORROROOROROOOORROORORORRRRROROROORROORORRORORRROOROOOOROORROOOOROOOOOROOOOOROOORORRRRROOROOORROROROORRRRRORORORORRORRRORRRORRRRRROORRORROROOROORORROOOOORRORRRRROOOOOOORROORRRRROROROOOOORRRRRRRROOOOOOORROROORRORRROORRORRRRORRROOORRRROOORROROORRRORORRORRRROORRRROOORRRROORRORROORRORRRORRRORRROOOROOROROOOROORRRRRRRROORORORRROOROORROORRRORRRRRRRORRRROROOOOOROROOROOROOROOROORRRRRRROORORORRORRRROOORROROOOOOOOOOROOOOROORORRORRRROORRORORORRROORORORRRORRORORORRRORORRRROORRRRRORRROROORORROOROOOOROROOORRORRRRRRROROOOROOORORORRROROROOROOROOOOOROOOROROORRORROROOORORRROOOORRRROORROROROROOROORRRRORROOORRORORRRRROROOOOORRRORRORROROORROORROROORRRRROOOROOOOOOOORROOROOOOOORRRRORRORRRROOOORRRRORORRROROOOOOORRRRORRORRROOOROOORRORROROROOOOOROOOOROORORORRROOROOOOROOROROROOORORRROROOORRROORORORROORRORRROOOROORRRROOROOOORROOORRRRRRRRRROORROOROORROORRRRORORRRRRRROOOORROOOROROOOROOOOORORRORRROOORRRRROORROROROROROOOORRORROROROOROROROORROROORROOOORROORORROOORORRRRROOROOORORORORROOOOOOORRRRRROROORROOOOORORRRORRROOOROOOOROROOOROOORRRORORRRORROOOOORRRRROROOOORROORORRORROOROOORRROROOORORORRRROORRORORRRORORORROOORRROORRORROOOOROOOOORROOOROOORRRRROOOOROROOORORORORRROROOOROROORORRRORROROORRORROROORORORRRROOOOOOOOOORORORRORORRROROOROORROROROROROOOOOROROOOOOORRROROORORRRRRRORRROORRRROOOORRORROROROOROORORORRROOROORORORROOOORORRRORROROOROORORRROROOOOOROROORORRORRROROOORORROOOORRRRORORORRRRROOOORORORRRORORORRORROROOOROOROOORROOORROROROOOOOOORROOORORRROOOROOOROORRRROOOOORRORRRORRORROOOOORRORRORROOROROOORROROORORRRORORRORROORRORRRROOOOOROORRRRRRORORORRORORRRRRRRORRRORORRORRRRRRORORROROORRORROOROORRRRRROOROOROOROOOORROROOORROROORORROOOORRROORRROOOORORORRORRRORROOORROOOORROOORRROOOORRORRRRORROOROROROROOORRORRRORORRRRRRROOORRORRRROROOOOORRRROROOROORRROOORORRRRRORRROOROOROORRRRORROROROOROOROROORRROROORRRRRRRORROROOOOORROORORRORROOOOOOOOOOORORRROROORRRRROROROOORRRROOORRRRORORROOOOOOOROROOOROOROOOOOOOOROROORRROORROROOOOROROOOORRROROOOORRORRRRROORRROORROOOOROOROORRROOROOOOOORRRORORRRRROORORORRORRROOOOROROOOOROOOROORRRROROORRROOORRRROOOOROOORROOOOOORORORRRROOROOROOOOROROORRROORROROOOROORORRRROROROOROROORORROROORRORORRROOOORORRROROOORRORRRRORROORROOORRROROORORORRRRRORRRROROROORRROORORRRROORRORRORRORRROROOORROOOROOOROOOOOORRORROOOOORORRRORRROROROORRROROOROORROORRROORRRRRRORORRORROORORRRRORORRORRRRRRRRRRRRRROROROOOOROOORRORRRRRRROOROOOOOORORORRRORROORORROROROOORRROORRRROOOOORRORORRORRROORROORORORRORRRORORROOROORRRRROROOORORRRRROROORORROOROROOROOORORORRRRORROOORROORORROORORORRROORRRROROOOOOROOOORRORROROOOOOOROOOORROOORRRRRROORRRRROROORRROOOORRORRROROROORRRRRRRRRROORROROOOOOROORRRORORRORRRORROORROROOORRRRROOOOORRRORROORRORORRORROOOOROORROORRRROOROROOOOORORROROORROOROROOROORRRRORRROORRRRRRROORORROORRRRRORRORRRRROORORROROROOROOOROROORRORRRRRROOROORRRROOORORRRROROORRRORROROROORROROOORROOROORORRRRRROROORROOOORROOOROORROOOOROORROOOORRORROOOOOORROOOOOROROORORRROOROROORRROOOROORRROORRRORRRRROOOOROROOOOORROROOROOROORROROORRROOROOORRROOROOOROROOOOORROOROORORORORRROROOOROOOOOOORRORRRROOORORRRROROOOOROROOORRRRROOROORRRRORORORRROROOOORROOROOOORORROORRROORROORROROROOORRORRRORROROROOORRORORROORRRRRORRRRROOOOOORORRRRRRRRROORORRORORRORORRROOORRRRORROORORROOROORRORROOROORROROORRORORORRORROOOORROROORORROORRRRRROORRROOROROROORROOORRRRROORROORRRRRROORRORRROROORRORRORRRORRRRRRROORRORROOROOORORORRRRROOROOROROROOOROORROOROOOOROORRROORROORORRROORRRROROOORRRRROOROROROROOOOOORORROROORRRROROORROORROOORRRORROORRRRORRRROOORRORORRORRRRRORROOOOOROORROROROORROOOOROOOORROROORRRROORORRRRRORRROORRROOROOORRRRRORORROOROOROROOOROOOORORORROORORRORRROOOOORORRROORRRROOROOORRORRROORRROOORRRROOOOOROROOORORRRRORORRRROOOOROOOROROOOOROORROORORRORROROROOROROOOOORORRROORRRRRRRORRRRORORORORRRROOOOOOOROOROORORRORRRORORRRRRRROOOOORROOORROROOORROOOORORRORRRRROOORORORRROOOORROOOROOOOOROOROORRRROOOROOORORROORROOORRROOOOOOOOOOOROORRRROOORRORRRORROOOOORRRRORORORRORROOOORRRRRORRORRRORROROOOOROORRROOORORRORRROOROOOOORRRRORROOROOORORROROOROROOORROOOORORROOORROOOROOORRRRRORORRRORORRROROROOORORRROOROROOOOOOOOOOROORROOOOORORRRROOORORRROORRRORRROROOORRRRORROOOORORROOOROORRORRORORRORROOOOORRRRRRROOORRRRRROOOOROOROROROOOOOOOOROOORORRORRROORRROROOORRROOROROOORROORROORORRORRORRRRRORORRRORORRRRRRROORRRRRROOOOOOORORORORRRRRRRRORORORRORORORORORORORRRRRRROOOOROORROORORRRRRROROOOOROORRROOOOORROOORORRORRORORROOOOOOOOOORRRORRROOOROOROROOOOOROOORROOOROORRORROOOOROOOOORRRROOOROOORROOOOOROROROORRROOORRRROOOOOROORROORROORORRRRRRRRRRRRROOORROORORORROOORRORRRRORRORROROROROROOOOROOOROOOROORRRRRORORRROORROROROOOORRRROROROOOORRROORORRRRORORORORRORRROROROROORORORRORROORROORORORROOOOROORORRRORROOROOROOORRRROOORRRRRROROORORRRORRRORORRRRRROOORORROROOORRRORRRROOOORRORRRORORRORRRROROORRRRROOORRORRROORRORROOOOOOROOOOORROOOOOORORRROORROOORRROOROROROOROROROOROORORORRROOROORROOORORRROROORROOORROORORORRROROROROOROOROROOOORROORROOROROOOORROROROROOOOROROOORROORROORRRRROROOOOROROROROROOOROROORRROOOOOROROROROOOOROOROROOOORORROOORRRRORROORRROOOORORROORROOROROOOOOORROOOOOROOORORRROORRROROORRRORRRROOOOOORRRROOROROORORORROORRORRORRROOROOROROORRROROROORRRROOOOROOORROOOORROOROOOOROOOOORRROORRROORRROOOOORROOOOOORRRRORRRRORROOOOOOROROROORRROOOOOOOOROORRORORORRRROROOORORRROOROOOROOOOOROORRORRROROORRRRROORORORRROOOOORRRRORRORROOROORORROORRRORORORRORRORROORRROROOOOOOROOOOROROOOOROOROOOOROOORORORRRROOORRORORORROORRRROROORORRRRRRRORROROROOOOORRRORRROOOOOOOOORRRORROROOORRROORORROROORRROROOROOOOORORORRRROOROOOROROOOOOOORORORRROORRRRRROOORRRORRROORRROROOOROOOOOOOOROOORORRRROOORORORRRORROOOROOOROROROOROORRRROORRORRORORRRROOOOROOORRORORRRROOROORRROOROORROOOORRRORRORRORROORRRRRROORRORRRORORRROORROROORRRROOROORORRRRORROOROOOROOOORROOOORRROORRORRRORRRRRROORORRRRRROOOOOOOOOORRRRORRRRRRROROOROROOOROORRROROORORORROROORRRORRORORORORRRRORRRROROOOORRRRRRRROORRORRORROOOOORORRRROORORRRRRROOOROORROOORRROROROORRORRORROOROROOOROORRRRORROORRORORROOROROOOROROOROORORORROORORRRRROORRRRRORORORRRRRRRRRROORRRRORRRRRORROORRORRORRRRRRRRORRORRRRRORORROORROOROORROOROOOROOOORRRROROOOOROOOROROORRROORROOOOOOOORROOORROOORRRRORORRRORROROROOOROOORRROOOROOOOOOROORRRRORROOORORORRORORRROOOORROOORROROOROROOOOORRRROORORRRORRORROROOOORROOROOOOOOORRRRORRRROORORRRRRORROORRROOOORRORRRRROOOROROROORROROROOORRROOROORORORORORORRRORRRORRROORRRRORORORRROORRRORROOORORROROOROORROOORROROOOOOROORRRRORRRROOOOROORORRORORORORRRORRRRORROOROROOOROROROOOORORRORORROROROOOORORORROOOORRRRRORRRORROOOOORRROROOOROROOOOOOORRRROORORRROOROROOOROOROROORRROROOORROOOORRORRORORRRRRRROORRORRROORRORORROORORROOOOOOOOORRORROROOOORORRORROORRROORRRORORRRRRRROOOOOROOOOOOOROOORORRORRORRORROOOORRORROOORROOROOOOOROOOORRORRRROORRORORROOOROROROOORRROROROOOORRORORROROROROROROROROOOORRROOOOOORROROOORROOROORORRRRORRORRRROOOOOROOOOOORRRORRORROROOOOROORROORROOORRROOOOROOOOOORORORRRORRRORORRRRROROROROOORRRROOOOOOORROORRRRORORRRRRROOROORROOOROOOOOOROORRROOROORORORRORROORROOOORRRRROORRROROROORROROOORROORRROROOROROOROROORRROROORORROOOOORROOORRROOROOOROORRRORRRRRRRROORROOOOOORRROOOOROOOOOOOOOOOOOOOOORRROOROORORORORRROOORRRRRROOOOROORRORORRRORORRORRRORRORROROROOORROOROROOOOROOOOOORRRORRORROOOOROROROOOORROOOORORRORROOOROROROORROROROROORRROOOOORRORORRROORRORRRRRRORORRROOOROROORORRORORRROOROORROOOOOOROROROROOOOOROOROORROORROOOORRROOORORRROOOROROORRORRORRROOOROROOOOROOORRRROORRORRORORROOOOOOORRROROROORROOOORRRROROOOROROROROORRROOOROOROROOROORRROORROROORRRORRROROOOORRRORRRRRRRORRRROOOORRRRRORORRRRROOROOOOOORRORRORORRORRRROOROROOORORRROOOOOOORROOROOOROOORORRROOOROOORRROROORORORRROROROROORRRRORORORRRORORROOROORRORRRROOROORRORROROOOORRROORRRRRORRORRROOOORROROOOROOOOORROOROOORRRRRROOOOOORROROOORRROORRRRROOROOROOROROROORRORRRRRRRORRORROORRROROOOOROOOROOROORRRROROOOORRRROORRRORROOOORRORRORRRORORORRRROOOOOOOOORROOOOROOOOOORRROOOOOORRORRROORORORORRRROOOOOOORORRRRROOROOORORRRROOROORRRORRRROOROOORROOOOROORORRRROORRRORRRROOORRRORORORRRRORRORRRRORRRRRROOOROORROOOOROORRORORRRRORRRORRRORRROROOORROOOOROOOOROOOROOOORORROROOORRORROROOOORRORORRRROORROROOORORRRRRORRROOOORORRORRRORRRRORROOROORROORORORROORORORRRRROOOOORROROORRRRROORORROORROOOROROOOROOOORROOOOORROORORRROOORORRROORORORRRROOORORRRRORROORROOOORRRRORRRORRROOOROORRRRRRRRROROORRORORROOROOOOROROORRRORROROORRORRRORROOORRROORRRORROOROOOOROOROORRORORORORORROROROOOORRROOOOORROORORROROOROOORROOOORROOORRROOORRORROOOORORORROROOOROROROOORRROROOORRROROROORRORORRROOORRRROROOORRORROROOOOORROOOORRROROORRORORRROORROROOOOOORRRRRRROROROOOOOOOOOROOROOORRRRRRRROOORORORRROOROROOOROOOROORORORRROORRROORRROROOOOROROOOORORRRRORORORRRORROOROROROORRROOROROORRRRROROOOORROROOROROROOORORRRRORROOOORRRORRRORROORROOOORROROOOOORRROROORORRRRROOOOORRRROOORORORORORRRRRORORROOOROROORORRRROORORRRRRRRORRRRROORRRRORORROOORROORORRORORRORRRRRRRRROROOORRRRRORRRROORRROOROOROORRROROOOROORRRRRRROROORROROROOROOROOOROOORROORROOOOROORRRORORRROROOROROORORORROORROOROORROOORORROORROROROROORRRROOOORROORRRRORRRROOOORORROROORORROOROROOROORRRRROOORRORRRROOOOROROOOROORRRRRRORORROROROORRROORRORRORORRORORORRRRRROORRRRRORROROORROORROOOOROORORRRORRROOOOORORRROOOOORRROROOOOOOORRRROOORRRORROOOOOOOOOOROROROROOROROROOROOOORROOOROOORORRRRORRROORRRRRROOOOORROORRRORORRORORROORRORRORORRRRRROORORROOROORROOOROOOOOOOOOOOOORROROORRRROOOORRORORRRROOORORRRRROORRORORRROOOOROROORORORORROOOORROOORRORRROOOROOOROROORROROROROORRORRRRROORROORROORRRRRROORRRORROOROORRROROOOOORRROOROOOOOROOROROORRORORRROOOOOOORROROOOOORROORRRRROROOROOORROROORRORORORROOOOOORRRROROOOROOOORORRRRROORORROOOROOOROOORROOOOOOROOROOORRORRROOROOOORRRRROOORRRRORORORROOROORORORORRRRRROORRRRRORORRRROOOOOORORRRRRRRROOOOOOOROROOROOOORRROROOROORROROORRROORROROOOOOROORORORROROOOORROROOOOOOOOROROOOORROOOORORORROOOORROORROORROROROOOROROOOROORRRORRRORROOOOORORRRROROORRRRORRRROROOOOORRROOROOOOORRRRRORRRRRROORROOOROOOOROROROOOOOOOROOOROOOORORORROOOROORROOOROOOROORROORRRROROOORRRROOROOROOOROOOROROOROORRROOOROORROOORORORRRORRORORRRORROOORORRRROORORRRROOOOOROOROORORORORRRRRROORROOROROROOORROOOOROOROOROORORORRROROORRROORORORROROOORRROROOROORROROOROROOOORROORROOROOOORRORORRORRRROOOORRORRORRROOORRROORORROORORROOOROOORORRRRROORORORRRORRRRORRROORORRORROROOORRRROORRRRRRROORRRORORRRRORRROOROOOOROORROORRRORRRORRORRRRRRROOOORROOOROROROOOOOORORRRRRROORRRRORROOROORROOOROROOROORRRROOOOOOOOORROOORORORRRRRRROOROOORRRROOORROORRRROOOOOROORROORROOOOOOORROOOROOOORRROORRORRRRORORORRRORROOOORRRORRRORRROOROOOORRORRORRRORORRRORRORRORRRORORRORRROROORORROROOOOOOOOROOOORRORORROORORRRROORRRROROROOOORROORORROROOOOOOOROOROOOOROORORROOOORROORRROOORRRORROORRROORRORRRRORROOROOOOOOOOOOOROOROOROOOOOROORORROOORRRRROOOOORROOOOROORROOOOOOOROOOOOOOOROROORRORROOOOOROOORROROROOORRRROROOORROROROOOORRRROORROROORROOORRRORRRRRROOOROROOOROOROOORORORROOOROOROORROROOORRRROROROOOORRRROORRORRRRROORRRRRRRRRRROORORRORORROORORORORRRRRROOROOOORORROORROROOOOORORRORROOOROOORRRORRROORRORORORRROROOORRRORORRORROORRROOOORRRORRROOORORRRRROROOROROORRRROORORROROROOOORRORORORRROOROOROROOOORROOROORRORROORRORORROROOOROOORORRRROORORROOOOROROORROOOOORROOOOOOOROROOROORROORRRRRRROOOROROROROORROOROROOORRORORROROROOORROORRRROOROORRROROORROROOOORORROORRORRRRROOOOOROROORROOOORRRRROOROOOROORORORORRROORRORORRORORORROOOOORORRORRORRRRRRORROOOORORRRORORORROROORRRRRROOOOORRRORROOROOOOROOORRRRRROORRROOOORORROROOORORRRRORRROORRRORRROORORRRRROOORRRRORRORRRORROORORRRROOROOOORROORORROOOORRRRROOOOORORORRROOROROROOROOORORRORRROOOOORRORRROOOORORRROOORROROORROROROOOROORRROOOOROOORRORRROORORROOORROROORRORORRROOROOROOOOOOORRRORRORRROROOOOOORROROOORRRRORRORORORROOOORRRROORRRROORRORRORRROORRROOORROORORORRORRRRROORROROROOROROROORROORROOOROOROOOOOOORORRRRROROORORRROOORORRROOORRROOROOROOORORRRORRRROROOROROORROOOOOROROORROOOROOROOOOROROOOOOOORRRRRROOORRROOOROOORRRRROORRROOROOROROROOOORRROOORRORRROORROOOOROORORRRROOROOOOORORRORRRRROOORRROROOROORRROROROOOORRRRRRROROORRRRORROOROOROORRRRRRRRRORRRRRRRRRRORORROROOORRRORRORRRORRRORRORRRROORORRRRRORRRRRORRORRRRORROOROOORORRRORRRRRRRROOROOROOROOOROROOROOROROOROORROROOOROROOORRRORORRRROORRROOOOORORORRORORROOROOOORROOORORORORRRRROROROROORROOORRORRRRROROROOROOROROOORRRRROOROOORORROORROOROOORROOORORRORORRORROOROOOOOOROROORORROOOOOOOOORROROORRROOOROOOORORROOOORORRRORRORORRORORORORORRROORRROOOOOOROOOOROOOOROOROOOORRROROOORORORRRRRORORRORORORORRORRRROROOOORORROROROORRRORORRORORRRRRRROOORRORRORROOROOORRORROORRORRORORROOOROOROROOOOROOROOOOOORRORRORRRORRROROORRROORROORRROROOOORROROOROOORORROOOROOOROROORRROORRROOOOROORROROROROOORROOOOORORRORORROROROOOORRORORRORORROORRORORROROOOORRRRRROOROOOORROOOOOORROROOOORRORROROROOORROORRRRRRORRRRROOOOOROORORROORORORROOROOOOOOOORRROOOROOROOOOOROROORRROOOORORROOROROOOROORRROOORRRRRROORROOOORRROROORRROROOORRORROROOOOORRRRRRRROOOOOOROROORORRORRROOORROORRORRROOOOROROROOORRORROOROORRRRRRRRROORRROOORRRORRRROROOOOOOOOROORRRRROROROOROOOROOOOORRRORORROOROORORRRROROOORORORRRRRRORROROROROOORROROOORROOOOOOOOORRRROROOOOOOROOOOROOOORRROROOOOOROOOOROOORROOORROOOROROOOOORRRORORRRROOOOORRRORRRRROROOORRROROOOROORRORORROOORORROOROROORORROROOOOORROORROOOOROOROOOORRRROROORRROOROOROOOORROROOORRRRORRROOOOOORORORRROOOOOOORRRROORROORRROORROORROROROROROORROROROORRORRRRRROOORROOROOROOORORRROOOOORORRORROROOROROROOORROORROOORRORROROOOROROROOOOOROORRORRRRROROORRRROOROOROOORRRRORRRORRORRROOROOROOORRRROOOORROOROOOORRRROOROROORRRRRRRORORROOOORORROOROROOOOOROORORROORORRRORRRORRROROOOORRRRROROOOOOORORRRRRROORORRRROORROOROOORRRORRRROOROOORRRORRORRORORRRROORRRRRORORROOOOOORRRORROROORROOOROORRROORORRORORRORROROORRORROORRRRROOROORORROROROOROROOROORRRRROOORROOOOOORRRORORRRRRRROOOOROOORROOORROOROORRRORRORROROOOROORRORORROOOOORRORRRROOROORORROOOOORRROROROROOOROOROROORROORORORRRORRRRRROROROOOOOROROOORROROOROOOOROORORRRRROOORORORRRRRORORORRRORRRRORRRRROOORRRORROORRORORROOROOROROORORROOROOORORORRRROORRRROOORORRRORRRORROORROOROOROROOROOOROOROOROOROORRRRROOOROOOORORRROROROOOORROOOROORRRROOORRROOROOROORRRRORRORROOOOOROROROOOROOOROROROORRRRORRRORROROOORRRORORORRROROOROOROOOOROOOOOOROORRRRRORROORRRRROOORRROORRROORRORRORRRRORRORRRRROORORORRRROORORROOOORORRORRRRORORRRRRRRRROORRRROOOOOOOORORROORROORRORRORRRRRRORRROOORORRORORORORROOORRORRRROOROOOROROORROORRORRROOOOORORRROORRORRRRRORRROOOOOOORORRRROROOORROORRORRRRROOORRROOOROOORROOROORRORRRRRORORORRROOORROOOOORROOOORROROOORORRORROOOROOORRRRORORRORRROORROORORROORORORORORRRRORRROOORRORRRROORORRRRRRRRORROROROROROORRORROROOORRORRORRORRROORROORRRRROOORORRRRROORRORORRROOROOROORORRROROORORRRORORRRRRROROROOOROOROOOROORROOORORRRRORORRROOORRRORRORRRORRROOROOROROOORROOOROORORRRRRROORORROOOOROORROROROOOORRORROORRROORORRRORRRRRORROROOOOORRROOROOORORROOORORROOOOOOORRRORROOORRRORRRROOOOROROOOORRRRRROROOOROOOROORORORRORROOOROOROORROOORRROOORROOROORROROROOORORORORORROOORRORORORROOORRROROROROOOROORRRROROORRRRRROORROOROOOOOOROROORROOROOROOOOORRORRORORRROORROOROOOORRRROOORORORROOORRORORRROORROOOOROOOOORROORORRRRROROOROROOOROROORORORROOOOROOOOOROORORROROOORORRRROROROROOROROROOOORROOROOOOROORORRRROOORORORORORORRRORORORRRORRORROOOORROOORORORRORRRRRORORRORORROORROROROROROORRRRRRORRRRRORROROORORORORRRRORORRORRRRRRRORROOORROOORORORROORRORRRRRROOOROOORROORRRROROOROOOOROORRROOORORORRROOROORRORRROOORORRRRROOOORORROROORRROOROORRROROORORRROOORRRRRRROOROROOOROORRORRRORRROROORORRRROOROORRRRROORRORRRRORROROOOOROOORRROROOROROOORROORROROOROOOOROROOORORROOROROOROROOROOOORROOORORORRRRROOORRRRROROORORRRRROOOORORORRORROORORROOOORORRORRRROOOROROORROROOOROORRROOROOOOROOOOOOROROOORRROOORROOORROOORRORROOORORORORRORRRORORORROOOOORROROROROOOORORRORROROORORORORROOOORRRROOOORRORROROORROORORROROROOOOOOOOOROOOOOROROOOOOOROOOOORRROROROROOOORRRRROOORRROROORRRROROOOORROOORORROROROOOROOORORROORRRORROOOOOROOOOOORRRRORROOROOOOOOOOORRROORROOORRRRORRORORROOOROROROROOOROROROOOORRRROROOORORORORRRRORRROROROOOOOOOORORORORORRRRORORRORRORRROOORRRORROORRRORROOORRRRORRRRRROOROORRORROOROROORRORROROOOOROOOOOORRORROOORRROORORROORROOOOORRRRORRORRRORROROORROROORORRROOOOOOOOORROROOOOORROOOORRRRRRROOOORRROOROORORORRRROOOOOROORORRROORROOOOOROROOROORRROOOOROROOROROORRORORRRROORRRRORORROOOORRORRROORROOROOROOROORRRRORORORROOROORROROROOOORRRORRRRROROOOOORRROORRRRORORRORRORRORRROROROOOOOOOOOOORRROORROROOOOOOORRRROOROOORROOOOOORROORRROOOORRORORRRROOOOORROOORRRRORROOOOROORRRRRORORORRRROOOOOOOROOROROORROROORROOROOROOORRORRRRORRRRORRROROOROROOORRROOORROROOOORROORROORRROOOROROOORRRROORRRRORRRRRROOORRROORROOORRRRROOOORORRORROORRRRRROORROROORORRROOOORORORRROROOROOROORROOOOOOROOOORRRROROROOORRROROOROROORRRRROOOROOROROOOORROROORROOORROOOOORRRRROOOORROORORRRORORRRORORORORRORRROORROOOORRRRORORROOORORRRROOOOOROORRRRRRRROORROORRRROROOORRRORRROOOROOROOORORRRRRRRROOORORRORROOORORORORORRORRORORRRORRORRRRROORROROORRRRRRRROROOOOOOOROORORORROORORROOROOROROORRROOROROOOOROOROROORRROOOORRRORRROORROOOROORROORRRORORORORRRORROOROOOORRRRRROOORORRRRROOROOORROORROOOOOOOOROROOROOROOOROOROORRRRROOROOORROOORROOROROOOOROROOROORORRRORRRORORRRORORRROORROOOOORORRRRRRRROROOOOOOROOORROROOORRORRORRORROOOROROROROOOOOROOOROOOOOROOROROOORROORROOORROOORROORROORRORRORORROOOOOOROORRROROROORRRROOOORORROOORROORRORROORROOOORROOORRRORRROROOOROOOOOOROOORORROOORROROOORROOOROROOORROOORORRRORORROROROOORRRRROOOROORRRRROORROORORORORRRORROROOORRRROOROROORRROOORRRRRRORROORRRRRORORRRRRORRROROORORROOROROORROOOOROROORRORRORORRRRROROORRRORRROORROOOORORRRRRROROOROROOOOROOROOOORRORRRRORROROOOOORORRRRRROOORRROROOOOOROOORORORRRORRRRRRROOROOOROROROORORRRRORROOOOOOROOORROROOORROOOOROOROORRRRORORROROORROOOROOROROOOORORRORRRRRRRORRRRRRRRROORRRRROORROROOOORORRRRRROOROOORROOROORROROOROROOOOOORRROORRRORROOORROOOOROOOOORORRRRRROOOOORROOORRROOOOORROROOOROORORRROOOOOOOOOOOORRROORRORRRROOROORORRORORORORORRRROOORRORROOOORORROROOOORRRROOROORRRRRORRRORRRORRRRORORROROOOOROOOOOOOOROOROOOOOOOROORRRROORRROROROROORORRROORROORRRRRORORRRRORORORORRRROOOROOOROROORRRRRRRORRRRORORORRRORRRORRORORRORRROROOROORRRRORROOROOROROOOORORROOORROOOOOOORRROOROORROORROROORRRORRORORORRRRRORRROOORROROORRORROORROORRRRRRRRROROROORRRRORROROROORROROOOOOOORRROROOOROOOOORORRORROOORRRROOOOROOROROOORRRROORORRRROOROORORRRROOORORORORROORORRRRROOOOROROOROORROOOORRORORRRROROORRROOROROOORORROOOOORORRRRROOOROROROOOORRRORROOORRRRORROORRRROORROOORRORRRROOOROOOOOOORRRORRRORRROOROROOOORROORRROOOORROOROOROORRROORRROOORRRRORORORROOORRRROOROOORROOOOROORORROOOOOOOOOOOOOOORROORRRROROOROORRROORRROORRROORORORRORRORRRROORORRRRROOROORROROOOROORRRORROOORRORRORORRRROROORRORORROROOROROOROOOROROROOOORROROOOOROOOROROOOORRRRROORRROOROORORRRRORROORRRRRRRRORORROOOOOORRRRRROORORROOROOORORROROROROOOOOORORORRRRROOOORRORROORROROOORRRRROROOROOOOORROROORRRRORRROOROORRRROOOOORRRRROROOROORROORRRORRORRROROROOROORROOOOOOOORRROOOOOROORROOORROOORRROOORROROORRROOOORORRROOOROROORRRROORROOROORRRROROOOOORROOORROROORRRROORROOROOORROOOROROOOOORRRRRRRROOOORROROORORORRRROOORORRORRRROOORORRRROORROOROOORORORROORROROORORRORRRRRROOROROOORRORROORROOOOROOOROOROOOROROORRORRORORROROOOORORRRORRRRRRROORRROROOORRRROOOORROROOOOOOOOOORROROORRRRRRRRROORRRROOORORORRROROOOROOROROOROOOOOOOROORROOROROOOORRRRRRROORRROOOROOOROOOOROOORRROROOOOORROOORRRRORROOOOROROORROORRROOORRROOROOOOOOROROOROOOROROOOROROORRROROOORRROOOROORRRROROROOORORRORROROOROOOORRRORROROROOOOOORORORRRROORROROOROORORRRRORRROORROORORRROOORORROROOOOORRRRROOOOOOORRORORORORROORRRROORORROOOORRRORRROOORORORORROORRRRRRROOORRRRORORORORROORROROROOOOOOROOOOOORRROROOOOORRORRROROOORRORORROOOOOORROOORORORRORROOOORORRORRROROROORRRROORRRRORRRROOROORROORROOORROORORRORRRORRORROROROORROROROORORRRRRRRRROOROORRRORORROOOROROOORRRRRROORRRROOOOORRROROROORROOOOOOOROROOOORRRORRORRRRROROORRROOROORROORRRROROORROOOOOROROOOOOROROORORRORRROOOORRROROOORROOOROORORRROOOOORROORORRRRROORORORRROROROOOROROOORROOROORORROORRROOOORORRRROORRRRROROROORROOORROOOOROROOOORRORRROORROOOOOOOOOORRROROROOOOOORRORORROORROOORRROORORORRROOOORROORROOOOOORROROOORRRROROORROOOORRORRROOOROROOOOROORORRROROROROOROOROROOOROROROOORORRRORRRRRRROROOORORORORORRRROOOROOOORORROROOORROROORROORRRROORORORROORORROROORROOOROOOROORRRRRORROOROORORRROORORRORORRRRRRROROOORROOOORORROOOROOOOROORORRROOORRRROORRRORRROORORORRORRRRORORRORROOOOOOORROOORRROORROOOORORROOROROORRRORRRRRRRRRORRROOOOOOORROROROOOORORRORORROORORROOOROORORRROOOROOOOROOOOORROORORRORORORROOOORORROORRROOOOORRRROROOOOROORROOOROOOROORRROOROORORRRROORRORORORRRORRRORRROORORRROROOOROOORROORRRORROOOOORROOOORROOORORRORRRRORRRRRRROOORROOOROORRRRRRROOOOORRORRORRORROROROORRORRRRRROOOOROOOROORRRRROROOOROORRORRRRROROROROOORRORROOORORORROROOOOOOOOROORRROOROOORORORRRRROORRROOOROOORORRROOORRROROOROROROORORORORORRRRORORRRRROROORROORRRROOOORRRRRROORRORRORROOOROROORROOOOROOROORROROROOROOOORORRORROOORROOOOROOORRRROORROROOORRRRROOROROROOORRRRRROOOORROOROOROOROORROROROROORORRROOROROORRRRRRROOOORORRRROOROOROORORROORORRORRROORORROROORORORORROORRRRORRORROORORRRROOOORORRRORORRORROORROOOOOOOOOORRROROROROOOOROORRRORRROOORRROROORRRRRORORORRRRORRRRRRROORRORRROROORORROOROORORORRORRORORRORROORROOROOORORRRRRORORRORRORRRRROOORRRRROOROOROOORORRRORRRRORRORRRRRRRRROOORORRRRORRORORROOORROROOROOOORRRRORRRRRROORROOORROOOORRROOOOOOOORRRRRROOOOOOROORRRORRORRROOORRORROOOORRROROROOROOROROORRROORORORORORROOOORORORROROOOOOOOROROOOOOOROORRROORRRRROROROROORORROOORRROROOROROORROROORRORORRORRROORROORRRRROROORORORROOROOOROOROORORROOROOOOROOOOOROROOOORORROOORRORORROORRROROROOOOORORORRORRRRRORRRROOROOOOOORRRROOOOROROOROORRORRRORROORRROOORORORROORRORORRORORRRRROORRRROORROOROROORROOORROOROOROORRORRRORRRORROOOOROROORRROOOORROROORORROOOOOROROOOORRRRROORRORRRROROROOORRROORRRRRRRRROOOOOOOOOOOOOORRRORRRRRRRRROOROROOOORRROROROROORRORROORROOORORROOORORRRRROORRROROORORRORORRORORRRRORRRRROOOOOROOOORROOROORROORORRORROOORRRORRROOOOORROOOROROOROOORRROOROOOOOORRRORROORROOOOOORRRRRROORORORORORRRRRRORRORORORRORORRROROROROOOOOOOROORRRRORORROROOORROOROORRRORRORORROROORROROORRRROROOOOOOOOOOROORRRROORORRORRORRRRRROOOORRRRRRORROROORROOOOOORRORROROOOOOOORORROROROOORRRRRORRORRRROOOROORORRORRRRORORRRRRORRRRROOORRROORRRRRRORRRRRRORROORRRORORRORRORRORRORORRRRRROROOROORROOROROOOOOOORROOROOORRRROORRRROROOORROOORRRROOROOOROOOORRROORRORORRROOORRRROORRRROOORORROOOOOROROORRORROROROORROOOOOROROROOORROORROORRRRORORRORROOOOROOROROORRRRROOROORROROROORRRORROORROOOOOORRRORROORROORRRRORRORORROOORROOROOROOORROOORRRRORRROOROROOROROROORRROORRRRRRROOROOOOOOORRRRRORORROOOROOOOROOOORRROORRORRORRRROOROROOOOROORRRORRORRORORORROROOOOROOOORRRORROOOOROORORRRRRROOOROORRRORROOROROROROOROORORROORROOOOORROROROORROORORRRRROROOOOORROROORRORRROROROOORRORROROROROORROOOROOROOOOROOROORROROORORROOOOOROORROOORORORRRORORRRORROOORRRORORROOROOOOOOOORORROOORORORRORRORRRORRROOORRRRRORROOOORORROOOORORRRRROOORROORORROORRRROROOORRRORRORORRRORRRRORRORROROOORRRRRROOOROROORRORRORRRORRROOOROORORORORORRRRRROOROOROROORRORRRORROORROOOOOOROROOORRRRORROOROOROOOORRROORORRRRORRORROOROROROORRROORORRRRORROOOOOROOORRRRORORRROROOOOORORRORORORROROORRROROROOOOORRRRRRROORRRROROORRORRRRRROOORRROOROORRROOROROROORROOROOOORROORRRRROOROROROOOORRORORORORORROOOOOOORRROROOOORRORRRORORROORORORRRRORROOOOORROOOROOOOROOOOOOOROOROORRRROOOOORRORORROOORRRRORROOORROROOORROROOOOOOORROROORROOOORROORROROOOORRRROOOORRRORROOOOROOROORROOORRRORRRRORRRRORRRORORORRRRRRORRRRROOROOOOOOORORRORROORORRORRORRRROORRRRROOOOOOOROOOORROROORORRORORORROROROROOOOROROORRORRRORRRRRRORRRROOOORRRROORRROOROORRORRORRORRORORRRORROORORRRORORROOOOROOOROORRORRROOOROOROOOROORRROROOOROOOOOORROOOOORRROOOOROROOOORRROOOROOOOOORRRORROOOOORROOORRRORORROOOORRRRRRRRROOORRORORRRRROOOOOROROORORRORROOOORRRROOROORRROROROOOROORORRORROOROORRRORRORRORROOORROORRRORROOOORRORORROROOOOOROORORRORRRRROOOROORRRRROROOOOROROROORRRRORRRROOOROOOORRROOORROROOOOOROOOOOOORROROROORRORORROOOORRROROROROOROOOROOORROOROORROOOOROORROROOOORRRROOROOORORRROOORRORORRORORORROROOROROROOOOORRRRRRRRROORROOOOROROOOROROROROOROORORROOOOORRRRORRRORRRROROOOROOORRORRRRORRRRROROORORROOORORRROORROOROOOOOORRRRORRRROOORORROORRORORROOOROOROOOROOROROORROOOROOROORORRRROOORORRRORRROOROROROROOORORROOORRRRORRRORROOORROORRRROOROROROROOROORROOROORRORORORROORORRROORRRROORORRROORORROROOORROROORRRORROORRORROROOOOOROOOROROOORROROOORROROORROOOOROORROROORORROOORRRRROORRORROROOOROOORRRRORRROOROOORRRROORORRRRORORROOROROROROORORRORRRRROROORRRRORORROROOORROROORORRORRORORORROORROOOORRORORRROROOROOORRRROROROORRRRROROOOORRRRORORORRORORORRROOOROOOORROOROOOROROORORRROORORRROROROOROROROROOROROOROORROOROORRORRROROOOOROROOORRRRRRRROORRROROORORROOORORORRRRRORROOORRORORRRORROROROOOORROORRROROROOROOOOOROORROOORRROOROROORROORORRRORORRRORORORRORORORRRORROORRORRRRORRROROOOOOOOOORORRORRRRRROORROORRORRROROOOORROORRRORROORRRRROROOOORRRROOOROORORROORRRORROOOOORRRORRORROORROROOROROORRORRROOOOORRRRRRROROOOOORRRROORORROORRRORRRRORROORRROROOROOORORORRRRRROROORROOOROROORRRRRROROOOOOOORROROROORRRRORORRRORROORRORRROOROROROROORROOROROOOOOROORRORRORORRROORRRRRROOOORRROORRRORROOOORORRRORORROROROOROORRRRROORRRORRORROORRORROORRROOROORORORRORROROORRORORRORRORRRRROOROOOORORRRROROOOOROROORORROROOOOROOOOROORRRROOORRORORRRRORRROROOORRRRROOROOOROORRRRRRROOROOOOORROORROOOORRROOOOOOORRROORRORRRRROOOORRROOOORROORRORROOROOOOOORRROORROROROORRRRRROROROOORROROOROROORRRROOOOOOOOORORRROROOOORRORRROOROOOORORORRROOOORROORRRRROROORROOOORORORROROROORRROROOROROROORORORORRRRROORORORROORROORORROOORORRRORRORORROOOOOORROOOOOORRROROORRRRRRRRROOORROOROORRROOROOOOROOROOOOOORRROORRRROORORORRRORORORRROORORRORORRROOOROOROOOOOOOOROOROORRORORRRRROOOOORRRROOORRRRROROROORORRORROOROOOOOOORRRRORRORRRROOROORRROROOORRROOROOROROOOOROOORRRRROROOORRRRROOROOORORROORRROORROOOORRRORRORROOORROOROROOOOORROOORRORRRRORROOOROOOROOORRRRORRROORORROORROOORROOROOORRRRRRRRRROOOROORRRROOROOORORRORROOOOOOOOORROORORRROOROROORROORRROOORRRRORROORRORROORRRRORROOROORRRRRRRRROOOOOORRRORROROORRROOOOOOORORROOOORRRRRRROROOOORROOOOROROOROOORRRORROORORROORRORORORRROROOORRRROOOORRRRRROOROORRORORRRRROOROOORRRRORRORRROOOROORORRRRRROOROOOOOOOROOOOROOORORRORROROORRORORROOORRORORROOOOOOORORROOOOORRORRRRORRRROORRROROOORRORRROORROOROOROORORRRRRORRRORROORORRORRRORRROOOOROOORRRRRRORORRORROOROOOROOORRRORRRRRRRRROOOOOOOORRORRRROOOROOOOOOOOOOROROORRROORRRRRRROOOORORRROORRORROOOOOOOROORRORRRORROOROOROORROROROOORROROORRORRRRRROOOOORRORRRRROORROORRORRRRROOOORRROOORRORRORRRRRORROOROORRROOOROROROORROORRORRORROOOOOOOOOOROOOORORRORORROOORRORORRROORRRORORORRRRRRORROORRORORRRRROORROOROORORRRRRORORROOOOROORORRRRRRRROORROORROORRRROOROOORRORROOROORRROORROROORROOOROROROOOOOORORORORORROORRRRROORORROOORROROOOROOOOROOOROROORRORROOORROOOOROORRROOORRROORRROROOROROOOORRROOOOOROROORORORRROOOROROORRRRRRORROORRROORRRRRRROOORORORRORRORROROOROOORORROROORROROOOOOROOOROORRROOORRRRRROOOORROOORORRRRORORORRROORORORRROOOORROORRRRRROOORRORRORRRRORROROROORRORROROORRRRRRRRORRORRRRORRROORRROROOOROOOOOORORRROOROOOOOOOOROOOOOROORRROROOOOROOOORRORRROORRROOORROROOOOOORRORORORRRRROOOOOROROOORORRROOOOOROOROOOOOORROROOOORRROOROOOROOOORRROOOORROROOORROOROROROOOORRROOOORRROOOOORROOORROOROOORORROROROOOROROROROROROORROROROOOOOOOOOORROOORRRRORROOOORROOOROROROROOOOORORROOOROOOORROOORROORRRRROORORRROOORROOORRORORORRROOROORORRRROROROORROORORROOOOOORROROOOOROROOOOROORRRRORRROOOORROORORORRRROORROOOOOOORROOORRRRRROROOOORORORRROOORROORORORRRORROOOROROORORRORRRRRRORORRRROROOORORRRRROROOOOROOROROOOOROOOROROOOOROORRRORORRRRROROOORORORRRRORRRRORRRRORORRORRRROOOORORRROOOOORORRORRRRORRRRRRRORORROOOORRROORRORORROROROOROROORRORORORROOOROORRRRRRRRROOROOORORORORORROOROROORROORRORORRRRRRORROOROORRRROOROORRRRRORRRRRRROOROOROROORRROORRRROORORRORRRROOROROOOOOROORRRRORRRORORROROOORROORROOORORORROROOOOOOOORROOOROOOROOORROORROOORROORRROORORORORORORRRRRROORORRORORRORORORRRROOORRORRORROOOROOORROROORORROOOORRORROROOORORRROORORORROOROROROOOROOORROOOROORROOOOROOORRRROORORRRORROOORORRORORORRRRORRROOOOROOOROOOROROOROROOOORROOROOOORROORROOROROOORORRRRRORROORROROOROORORROORRROOOROOROORORORRRRRRROOOROOROOROROORORRRORRORRRRRRRROOOOORORORORORRROOOROOROORRORROOROROOROORROOOORRRORRRROORORRROORRRORRRORRROOOOORRRRRROOOOOOOOOOOOROORRORRRRRRORRORORORORRROOORRRRRORRROOOOOOROORORRROOOOORROOROOROROOORRROORROROOROROROOOORRROORROORRORRRROROOORROOOORRRRRRRRRRRORRROORROORRORROOORRROOROOROORRORROROORRORRRROOORORRRORRRROROOOORROOOORRRRRROORRORROOOOOOOORRRRRRORRORROROORROROORORORROOOORRORRORRRROOORRORROROOOROORROOOOOOORRRRRROOOOORROOROOOORRORORORRRRRRRRRRROROORORROOORROOOORRROROOROORROROORRROOROROOORRROORORRRORRROROOOOOROOOORORORRROOOORORORROROOOORRRROOOROOROORORORRROROORROROROOOORROOORROORRRRORROORRROROOORROOOOORRROORROROOOOROOROOOROROORRRROORRROORRRROOORORORROORRROORROROROORRRRRRRORRROROORRORROROORRROOOOOOORRRRORROOOOOOORRRORORRRROOORRORRORORRORORORRRRRRORRRRRROORROORRRRORRRROOORORRORRORRORRRORROOROORRRRRRRORRRRRORRROROOOROORROOOROORROOROOROOROOOOROORROOROOORRORORRRORORROORRROOOOROOOROOOROORORROROOROOORRORORORORRRROOORORRRRRROOOORORROORRORORROOORRRROORRORRROOOOROOORRRRRORRROORRROOOOORROOOOROORRORRORRROORRRRRROROOOROOORROOOORRRROROOORORRRROORRRRROOOROOORROORRROORROOROOOROOOOOOOROOORRRRROOROROORROOORRROOOOORROOOOOOOROROOOOROORRRRRRRRROOOOORORORORRORORRROOROOROOOOOORRRROROOROORRROORORORROORRRORRRRRRRROOOOOROORRROORRORORORORROOROOOORROOOOORROOOOOORROOOOROOORORRRRROORRROORRROOOOROROROORRRRORRRROOOOORRRRRRRRROROOORRRRRRROROOORRRORROROOOOOORORORRORRORORORRRRRROROROROROOOOROROROORRROROOROOOORORRRRRROOOROORROOROORORORRRROOROROORORRRORORORORRORRRRORRORRROORRROOROORORRRRROROOROOOOORROOOROOORROOOOOORORRRROOORRROROOORRROOORORORRRRRRRRRROROORRRRORRORRRROROORRORRORROORROROORRRORRRRRRROORRORRORORROORORROOROOOOOOOORRRORORROORRORORRORORROOOORORORROOOOROOOOOOROOORROOROROOOORRRRRROROOOORRRRORORROOOOOORROOROOROOROOOORRORRRRORRRROOOOOORROOOOROORROORORROOOROOROOORRRORRROOROROORRRROOORRRROOROROOROOROOOOOOOORROOROROOROROORRORRROORORRRROOOOORRROROOROORROROOROOORRRRRROOOROOOOOORRROORORRORORORRORROROROROOORRRORRRORROOOORORRROORROROORRROORORRRRORRROOROORROROORROOOOROROOROORORRROROOOROOOORORORORRORRROROOROOOOROROROORRRRORORRRRORRROOORORRRORORRROOROORORRORROOROOORORRORRORRORRROROORROROORRRRRRRRORRRROOROROORROROORRRRORRRORROOOOOOOROOOORRROORROROORROORRORORORROORROROORORROOORRRRROOOROOOOORORORRRRORRORRROOROOOROROOORROORRORRORROROROORROORRRRORORROOOOOORORRRROROOOOORRRRRRRROOROROROOORRORRROOORRRORRRRORROOOORRORORROROOOORRORRORORROORRRROOROROORORORRRRRROORROOROOOOOOORORROOORROOROORROOOORRORORRROORORRORORROROOORROOORROROROORRRORRRRORORRRROOOOOOROORRRRROORORRORROORRORROORORORRROROOROORRRRRRRROORRORRROROOROOROOORROORORRORROOOOORORORRRORRROOOROOOOOROOOOORROORORRRRROOOOORRORORRRRROORRORORROOROROOORRRRRROOOOOROOOOORRRORRROROOORRRORRORORRRORROOOROORRORRROORRRRROORROOOORROROOORRRROOOOOROOROROROORROOROROOORROORRROOORORROORROORROOOOROOOOOORRORRRORRRRRRRRROOROOOOROROROOORORRRRRRORRORRROROOORORORORORORROOOOOOOROORRRROROROROROROOOOOORRROORRRROOROORROROORROORRROOOOOOORRORRRRRROOOROOOROOORRORORRRRORRROOROORRRROROROOOOROOOOROOOOOOROROORRRRRROOOORRRORORORORRRROORROOOOOOOOORRROORORRROOORRORRRORRROORROOORRROOOOOORORORROOROOOOORRORRRORROROOOORROOORROROROOOOROOOOROORRRROOOROOOORRORRRROOORRORORROORORRROOOORRROROOROORORROORRRROORROROOORRRRROOOROROOOORROROOORROORRROOROORORORRORORRORRROOORROOOOOOROOOROROOROROOROROORROORORORROORRRRROROROORRROORRRRROORROORORORROROORROOOROOOROOOOORROORROOOOOOROROROOOROORROOOROROOOROOOORRRRORRRROOORRRRRROORROORROORORROORROOOORRRROOROOROORRORORROOROOOROROROOORRRORORRROOOROROOORRROOROROOOOROORRORRRRROORROORRRROOOOROORORRROOOROOROOOORRROROORROOOOORORRRROOORRORORRRRRORRRORRROORRRORROORRRRRORRRRRRRORRORRORRORROROOORORRORRRRRROROROOROROORRRROROOOORORRRRRRRROROROORROORORROOROROROOROOROOROOOOORROOORORROORORRROOOORRRORROOORRRROOOORORORRRORRRRRORRORRROOOOOOORRRRROROORORRRRRRROROOOORROORRRRORROORORRROOROOROROOORRORORRRROORORORORRROORROOROROORORROOOOORRROROORORRROROROOROROOOORRROOROORRRORRORROORRRROROOOOOROOOROOOROORROROOROOOOOOOORRROORROORRROROOORROORRROORRROOROOROORROORORROOOORORROOOROORRRROORRRORORRORORRROROORRRORORROROOOOOORRORRROOROROOORORORRRRORRROOORRRROROOORORRRORORRRRRRRORROOOORROROOOOORROROORRORRRORRROORRRORRRORORORROROROORRRRROOOORRORRROORRORRRROORRROORROORRRORROORRROORORRRROOOOOOORROROOROORORRORROORROOROROOORRROROOOOORRRORROORRRRRROOOORROOOOROOOORRORRORRRORRRORRROORRROOOROROROOROOORRORORROOROOROORORORORRRRRRROOOOOOOOOORROROOOOORORRRRRORROOORRRROOORRORROROROORRORORORROOOOOROOOORRORROORORORRROOOOROROROROOROOOOOROOROROOOOOORRRRRORROOROORRROOORORRRROORRRORORROOROORRRORRORORRRRRROOOOORROORRRRRRORROORORRRRROOROROOOROORRRRRRRROORRROOOOOORRRRRRROORRORRORROOORRORRROORROROORORRROORRORORRROOROOROOOOORROOORRORROOROOROORORRROORRRRORROOOOOORROOOOOROROOOOOORRROORRORRROORROROOORRROROROOROOROROOOROOORROROOORRORRRRRRRORORORORORORORROORRROORROORRORRROORROORROORRORORRRROOOORROROOROROORROORRRRORRRRRROOORRRROROOOROROROROOOORRORRROOORROORORORORROROOORROOOOOOOOORRROOORORRRRRRROOORRORORORORROOROOORRORRRRRRORORROROORRRROORRRORRRRRRROROORRRORRRROOROOOOROOOROOOROORROOROORRORRROOROROROOOROOOROROOOROOOROOROORRRROOROROORRROOOORRROOORRRRROORRRROOROOORORRROOOOORROOOOROOOROOROOORRROROOROROORRORORORRROROROORRORROOROORROOOORRROOOROROOORORROORROORRRORRRRORROROOROOORROOROOROOOOOOOROOOOOORROOOORROORRROROOORRRRORRROORRORORORRROOOOOOROOOOOOOOROROOOOOROROROORRROOOOROROROOOOOOORRROOORRROOOOOOORRRRORROOOORRROORRROOOOORRROOORRORRORRRROORROROOROOORRRRORRRORRROOOOOROOOROORRRROOORROROORORORRRORORROOOORROROORRRRROROROORRORRRRORRRRRORRROOOOROORRORRRORRRORRORRRRRRRORRRRRORORRRORRROOROROOOOROOROOORRORRRRORRORORRRORROOORRORRROOOOOOOOOOORRRRORROORORROORRORRRRRROOOORORRORRROROROOOORROROROOROOORORRRROOOOORRRROOOROOORROOROROORRORRROOOOROOOORRORRROROOOOROROOOOOOOOORROOORROOOOORROOORRROROROROOORRORORORORORORRROOOOOORROROOORORRRRRORRRRORROORRROOROORROOORRRRROORRORROOROROORROORRRRROOORORRROOROROORROOOOOOOROOROOROROOROORROROOORORROOORRRROORORRRROORORROOOOORORROOORORROOOOROORROORRROOORRRRROOORRRRRRORROROROOORROROOROOROOOROROOROOOOORROOORRORRROORRRRRRRRORORROOORORRROOROOOOORROOOOOOOOROOROROORROORRROOORORROOORORORROROOOOOROOORROOOOROROOOROROOOROORRROOOROOOOOORRROORRROROOROORRRRORORROOOOORRORRRORROOOOOORRORROORRRRROOOROOROORROORRROOOOOROOOOROORORRROOOOOROOORORRROOOOOORRRRROOOOORRROOOROOOOROROOORROOROOOORROROORORRORORRRRORORRRROOORORROROOORRRRROOOOOORRROOROOOORORROORROOROROOORROOOOOORRORRRORROOOROROORROOOROOORORRRORRORRRORORROORORROORORORORORRRORRRORRROOROROOOROOOOROOROOROORRORRRRRROORROROORORORROORRRROOROOROOOORRRROORRRRORRRROOOORORORORRRROORROROROOOOOOOORRROORRORRRRORRRORRROOOROROROOOOOORORORROORROOOOOOORORRRRRRROOORRRORORRROOORRROOOORRORRRRRROOORROORROOORRRORRROOOORORROROORRRRRROOROROORORROOOOROOOOOROROOOROORORRRRRORORROORROOOORROOOOOROROOOROOROOOOOORRORORORRORRROORROROORRRRROOOROORRORORROORORORRORRROROOOOORROOORRRRORRROORORRRRRRROOOORRRRROROOROOOOROOOORORRORORRROORRORRRRRRROOOOOORRRRRROOOROORORROOROOOOOOOOORRRRORROOORROROOOOORRROOOOORRRORRORORRROROOOORORORRORORORORROORROROOORROOORROORRRROROORRORRROORRORORROOORROOOOOOORRRRRROROOORRRORORROOOOOROOORRRORRORORRRORROROOOOORORRRROOOORORRROOOOOOOOORORROROOOROORRORROOROORRROROROROOOORORORROOOOROOORRORROROORRORORORRRRORORRRRROOROOOOORRORROORRORRORRROOOOOOORRORRROOOOROOORROORORRRROOORORROOOOORORORORRRRRROROOROOROORRORORROORRROROOROORORROOORROOOOOOROORRORROORRROOOOOORRRORRRRROOOORROROORRRORRRROOOROORROOROOROROORORRRRROOOOOOOOROROROROORROORORRRRRROOORROROROOOORORRRRRROORRRORROOORRRROROOORORRROOOOOOROROOOOORROOOOOROORROORROOORRRROORRROORORORORROOOOORRORROORORRRORRRORROROOOOORRRROORROROOOOOOORRRRORRRROROROORROOORRRROOORROROORORRROROOORRRRRRRORRRROORRRORORRRRRRORRROROOROOROORORRRRRROROORRORRORROORRRORROOORRORRORORRRORRORORROOORROOROROORORRORRRRRORROORRORRRORROORROOORRRRRRORROORROOROROOOROOORRRROORRORROORRORROORORRRROOOORRORRRRRRORROROOOOORROORRRROORRORORRRRRRORORRROOOOOOROORORRRRRORRORRORROROOOOORRRROROOOROOROOOOOOOOROROOOOROROOROORRRORORRRROOORROOOORRROOOOROOORROROOOROORRROORRROORORRROORROORORRROORRRRORRRRRRORRORROORRROORRROROROROOOOOORROORORRRRORROOOROOOOOORORRRROOROROOOROOROORRROROOOOROOOOOOOORORROROOOOORROOOROROOOOROROROOOORROORORORORRROOORRROORORROORRRORRORRRRRRRRRROROORROORRRROOROORRRORRORRORROOOOROORRORROORROOOOOORORORRRROROROROORORORORROOOROORORRORROOOORROROROORROORORORRRORRRRORORORRRRORROOOOORROOROOROOOOOOROROOOOOOROOOORRRRRROROORRROROORROOORRRRRROOOROOROOROROROOOORRORRORRORRRRROOROORRRRROORRROORRROROOROOOOROROOORORORRRORRROOROOOOORRRROORROOOORROOROOROORRRRRORORRORRRORRORORRROORRRROOROOOOROOOOROROORORRORROOOOOORRRROOOORRRORRRROOROOOROOORORORROOOORRRROROORROROOOORORRROORROORRROOROOOOOROOOOROROOOROOORROROOROROOOOORROROOOORROOOOOOROOOOROROOOROROOROOOROOROROROROORRROROOOOORROOORROORRRRORROORORROORRROOOROOROORORORRRRORRRROOROOOOOROROOROOORORRORROOOOOOORORRROOOOROORORORROORRORORORRRRRORROORRORRRRORRRROORORRROOROOROORRRRROOROOOROOROROOOROOORORORORROOROROROROOORRRROOOORRRRORRORRROOROORORRRRRRRRROROOROOORRORROROORRRROOOOOOOOOOROROROOORORROORRRROOORRRROOORRORRORROOOOROOOROOOORRRORROOOROROOROORRROORRROROOOROOOROOOROROOOOORROROROOROORRRROOORROOOOROOOORROROROOOOOORRORRROORORRORRROROOROOROOORROOROOROOORROORRORRRRROOORORORROOROROOORORRRORRRORROROROOOOORRRORRROOOORORRRRRROOROOOOOOORRORRRRRRORROROOOROORORORRROOOROOORRRRRRRRROORRRROORRRORRRROORRORROROOROROROOROOORORRORROROROROORROORORRRROORRRRRRROOROROORROROORROROORRROORORRRRROOOROROORROORROORRRORRRRORRORRROOOOROOOOOOROOOROOORROORRORRORRROOOORRROROOORRRROOROROOOROOOOOORROOROROOORORRORORRORRRORRRROOOROROOROROORROROOROOOROOORORROOOOORRRRROOOORRROOROROORRRRRRROROROOROORROOROORRRROOOROOOOOOORORRRROROORRORORRROROROROOORRROOROORORROROOOOOORORRRRRROOOOORRRRRRRORORRRROOOOORORRRROOORORROOROOOOORORROOORRORROORORORRRROROOORRRRRRRROORRRORRROROOOORROOROROOOROOROROOROOOROOOOROROORRRRORROORRORROOOOORROOORROORRRORROROOOROOOOORORORROOOROOOOROOORRRROROOOROORORRORORORORRRORROOROORROOOOORRORRROROOOOROOOOOORROOROOORRROOROORORRROOOROOORRRROOOORRRRROOOORRRORRORROROROOROOORRRRRORRRORORROOOROORROORRRROOROOROOOOOOROORRRRORORROOOOOOORROOORRROOROOORRORRROOROROOORRRRORORROOORORRRRRRORRROOOORRROORORRORRRORORROOOOOROORRROOOROROOOORROROORROOORRROROOROOORROORRRRORROOOROOORRRRRORORRRRRRROOORROOROROORORROORROOROROORORRROORORRRRROOOROORRORRRRORORRRROORROOOOOOROROOOROROOROROROORRROORRROORORRRROOOOOORROORRORRRRROOROOORORRORRRRROOOOOOORORRORROROOORORRORORORROOORORORRORRRORROOORRRRRROORROROOOOROORRRRRROORRRRORRORRRRRROROROORORROROORRROOOOROOORRRRRROORRROROOORORRORRROOOOOOOOOOOOORRORORORORORRORRORROROROROROROORRROOORORRROROOROORRORRRRORROROORORORRRORORRROOOROOROORRROROOOOORORORRRROROROROOOOOORROOOORRROOROOOOOOOOORORRRRROOOROROROOROOOORROORRRORORRORRORRRRORORORRRORRORORROOOORORORRORRORRROROORRORRROOOORRORRRRORRRRORROROOOOOORROROROROOOOOROOROOOROOOOORORRRRRRRORROOOOROOOROOOROOROROOOOOROORORRORROORRRRROOORRRROOOORRRRORRRRORROOOOOOOOORROOOORRRORRROOROORROOORROORRROOORRRORRORRORORROOROOOOORRORROOOROORRRRORORRRRROORORRRRRRORRROROROOROROOOOOOOOORRRORRORRRRRROROOROOOORORORORRRRRRORRRRRRROOOORROOOORORRRRRRRRRRORRORRRORORORRORRROROOOOOOORORRRRORROROROOOOROORORROOORORRORRORRRRRRRRROOOOORROROROROOORORRORRORORRORROORRORRRRORORROORRRRRRROROOOOOOROORRRRRRRORROOOOOOOOOOORORORRRRORRORRORRRRROORROOOROOOORRRRRRRORRRRROOOROOOOORROORRRRORRORRORORRORORORROORRORRRORRRRORRROROOOORRROOOOORROROOROOOOOORORRRRRRRORROOOOROORRRRRROOOOROOOORRORROORROOOROROOOOOORORORRROOOOOOOOROORRRRROROOOORROORROROORRROORORORROOROROROROROROOOORRRRRRORRRROORRROORRRRROROROOOROOROOOROOOOORROROOROORORRORRRORORORRRROOOOROORORORORRRROOOOORORORRORORRRORRRROROOOORRROOOROOOORRRORORROOOOROORORRRRRROOOOROOROOROOOORRRORRROOOOORRORORROOOROROOORRRRROOROROROOOOORRROROROOOORROOROORROORORRRORRRRROORROORRRRROOROOOORROORRORRORROORORORRRORRRROOOROORRRRRORROOORRORRRRRROOORORORRROROORORORORORRRRORROORRRROROORRRROORRROROOOOROOORRROROORROOROORORROOROOOROORRRORRRORORROORORORORROORRRORORORORRORRRORRORRRRRRRRROOROOROORROOOOOOOOORORRRRRRORROOORRRRRORRRROROOORROOROORROOROORROROORROOOORORORRORROOOROOORRRROORRRORRROORRRROROORORRORORROORRRRROOOOORRRORRROOOOROOOORROROOROROROROORROOROOORROORRROOROOOROORRORROOOORROOROORRRRROROOOROORRRROROROROORORRROORROROORRRRORROROORROORORRRRORORROORROROOOROOROROORRRROROORRORROOORRRROROOOOOOORRROORROORROOROOOOOOOOROORORORORROOOROOOOOOOORRROORORRROROOROORRROORRRRROOOROOOORORRORRRRORORROOOOOOOOOORROROROOOOROOROOOOOROROROROORORROORORORORRRRROORRRROOOOROOOOROROORRORORROORRRRRORRROORRROOROORRRROORROOOROOOOORRORORROOOOORROORORORRROOORORRRRRRROROOORRRORORROROORORORRRRRORROOROROOROOOOOOOROROOOOOROORRRORORRORORRRORORORRORORRRORRORROOROOORORRROORRROORROROORRORORROOORORRRRRROORRORORRRRORRROOOOORORRRRRRORORROROOOORROORROOOOORORORRORRROOOOOORRORROOROOORRROORORROORRROOORRROOOOORROORORROOOOOOORORROORRRRROORRORRRRROROOORRRRROOROROORORRRORRROOOOOROROROROORRRROROOROORORORORORORRRORRRROOROOROOOROROORORRRROROOOORORROOOOORORORRROORORROOORORORRRORRRORORRRRRORRRORORORORRRROORORRRORRRRROORROOROOOORORROROROORRRRORRORRROORORRROOORROROOOROOROORROROORROORROOROROOOROROORRRROORORROOOORRORRRROOORROOROROOROOORROROOORORRRRRROOROOORRROOROROOROROOOROOROORROOOOROOOOORROORRRORORORRROORRORROOOORRRORROORRRROROOOROOORORROROOOROROOROROOROROOORRORROROOROOORRRORORRRORROOROOOOOOOORROORRRRRRROOOROOOOOROOOROOORRORRROOROOROOORROROROOORRRROOROROOROROOOROOOROOROOROROORRRROROOOORROOOORRROROORORORRRORRORROROROORROOOOOORROORROORORORRORRRRROOOORROOORORRROORORRRROROROOOOOROOOOORROOOOOORROOOOROORROORROORRRRORROOOORORRORRRORRRRRRRRROROORORROOOOROROROORRRRRORROROOOORROORRORORROROOOROOOOORORORORORORORROOROOOROROOORRRORRRROROORORRRORRROORROORRROROOOOOOORRRRRORROORORORROOOROROOOORRRROOROORROROOROOROOOORORRORORRORRRORORRORROOORROOORROROROOOOOOOROOROOOROOORROROOOROORROOORROOOOORORRRRORRRRORRRRRRORRRORROORRROOOOORORRORROOROORORRRRORRROROOORRRORROROROROORRRORRORRORRROOORORORRORORRROOOOOORORROROORRRROOOORRROROORORORORRRORRRROORORROORRORRRROORRROOOOOOROOROOOORORORRRORRORRORROOORRRRROORRROROORRORRORORROOROROOOOOOOOROOOROROOROOORORROORORRROOOORRROOORRORORRRROROOOOROROOOROROOOORRORRRRRRORRRORRROROOORRROOOOROORRRORROROOORRORRRROORRRROOORORRORRRRROORORROORRORORRORROORORROROORORRRRORRRORRRRROOOOOROOROROOOORROROOOOOOOOROORRRORRROORROORRRROORRROOORRRRRRRRRRRRRORRROORRRROOROROROOORRORRORRROROORORRORROOOOROROORROROORROORRORORORRORRRRORRORORROORRROOOROROOOOOOORRORRORRRORROOORROOORORRRRRROOOOOOOORRRRORRROORORORRROOOOOORRROROROOROOOOORORRRRROORRROOOROOORORRORORORROROOOOROROOROOORORORROOORORRRRROOOOROOOORRROOOOORROROROOOORRRROORROOORRORRRRROORRRROOROROOROORRORORROOORORROOOOOORORRROOOOOROORRORRROOROORROORROROORORORRROOROOOOOOOORRRRRORRRORORROOROORRRROROOOORROROORROORRORORORRROROOOROROOOOORORRROOOORROORRORORORORRORRRROORORROORRRRRROORROORROORRRORROORORRROOROORROOOROROOOOROOOROOOROOOOORRORROROROOOOORRRRROORRORRROORRRRORRRRRROOORROOROOOOOORORRRORROOOOOOOOOROROOORROOORRORRORRROORRROOROOOORRROOROROORRRRROOROROORROORRROORORROROORRRRRRROOROORROROOROOOOROORROOOOROORROROROORORROORROOOORRORRRROROOOOROORRRRORRRRROORRRROOOOOORRROORRRORROOOOORORORRORRROOOORROOOROORRRROOORRORRRRRROORRRROORRROROOROORRRRRROROROORRRRRORRRRRRROOOORRRRRRRROOOOROORORRRRRROOROROROOROORORROORROORORROORROOORROORRORRRROROROOORROOROOOOOOOROOORROOROROORRORORROOROROORRROROROORROOROROORROOORRRROOOROORROORROORRRRORORRRROOROORRROOOROOOOROROOROROOOOOOORROOROORRRRRROOOORORROORRROOOOOOORRORRRRRROROROOOROOOOOOOROOORRORORROROORRRRROOORRROOOOORRRORRRROOORORRRRRRROOROOROORRRRRRORRRRROORRORRORRRROROORRRRRRRRRRRRROROROORORORRORROOORRORROOOOOOOORRROOOORORRRRRROROORRRROOORROOOOOORRROORRORRRROROOROORRRRRROOOROROORRRRRRRRRRRROORRRRRRRRROROROOOROOORRORROOROROOOOOOORROORROOOROORROROORRROOORRRRROOROOOOOOROORROROORRRROORRORROROORORRROOORRORROOOORORORRORROOORROORORRROROROOORRORROORORROORRRRROOOOORROORRRROROORROOOOOROOOORORORRRRROOOROOORRRRROOOOOORRROROOOROORROROOORRORRRRROOORROOOROROOROROOOORRRRRRRORROOORROOOROROROOORRROORRRRRRRORRROOROOORORORORRRRRORRORRRRRRRROROROOOROOOROROOROROOROORORRORRRROOORRRROOROOOROORORRRRRORRRRRORRRRRRRRROOORROOORRRRRROORORRRORRORROROOORRORRORRORRRROOROORORROOOOOORROROROOOOOOOOOOORORROORORRROORROORROOOORRROROROOOOORRRRRRROOROROROOORRROROOORRROORRORRORRROORORRROOOOOROOOROOORROROORROORRRRORRRRROOOOORROOORROORRRORORROROOROORORROOOOOROROOOROOORORRORRROORROORORORRROORRRORORORORRRROOOROOOROOOROORRRRRROOOORORRRRROOOORRROOOROOOOOOOROROROORORRRROORRRRRORROOORORORRROORRORRORROOOOOORRRRROOOORORORRROORRORORROORROORORROORROROOOOROOORORRORORRORORORROOROOORRRORROOOORROORROROROROORRRRROORRRORRROROOROOROROORROORORRRRRORROORRRORORRRORRROORRRRRORRORRORRRORROORORROOOOORRRRRRRRROORORRROOROORRRRROOOOOROORROOROROOOROOORRRORROROOORRRROOOORROOROROOOORROROOOOORRRRROOORROORRRROOORRRRROORRROORORROOOROOOROROOORORROROOOOOOROOOORRROROORRRROROOOOORRROOOOOORRRORROROROOROOOORRRRRORRROROROOORROROOORRRRRORORRRRROROOOOORRRORORORRRRROORRORRORRRORORRRORRROOOOROORRROORRRRROROOOORROROOOORRRRRRORRORORRORRROORRORRRORRRORRRRRRRRROROORRRORORROOORRRRRRORROOROORORORRORRROOOORRRRRRRRRRORORROOOROROOOOORRROROORORORROROROORRROOROROOOOORORRRORROORROROOOOOROOOOROOORRRRORRRRORORROORORORROOOROOORORROROROORROOROORORRORRROOORORRRRROOROROOROORRRRRROOROOOORRRORROOOROORRRROOOROOROROORROOOOOROOORRROORRROOOROOOORRRRROOORRRROOOROOOOROOOORORORRRRRRROOOOOOORRORRRRORORORRROROOROORROOORRORROOOOOORRRROOORROOOORRORORRRRORRROORRRRROORRRRROOOROOOROOROOOOOOROOROROROOROORRROROOOORROOORRRRROOROOOORRROOROOROOORRORRRORRRRRORRRORRRRRORROORRROOOROOROORORRRROOOOOOOOOOORORROOORROORROOOOOOORRROORORORROOROOOOOORORRROOORRROORRRROOOROROORRRORROOROOORRORRRORORORORRROROORORROOOORRRRRRRRRROORRRORROORRROOROOOOROOOORORROROOROOORORORRROORRRROOOOROOOOOROOOORRRRRRRRRROORORROORROOORRRROORRRRRRRRRRRROOOOOORROROROOROROOROOROOOOROOROOORRORORRROORORROORRRRRROOROORRRRRROROORRRORROROOROOROOROOORRORROROORRORORROORRRRORROORROORORROORRRRROROORRORRORROOOOOOROOOOOROORORRORRROROOOOROROROROOORROORRRROROROOOROROROOORROOORORROOORORROROOORROROORRRRROORRRORRRRRRORORRRRROROOOROROORRORROORORRORROORRRRROOORRROROOOOROOOOORORROROOROOOORRORROOORRROROROROROOROOORROOOROOOOORRRROROOROOROORROORRORORORORORORRRRORROROROROOORROROORORRRROROORORRRROROOORRRORRRROORRORRORRROOROORORROOROORROORORORORROORROROOOROORRRORORROOOORRRROROROORROOROOOROORROORRROOOROORROOOROORRORORROROOROROORRRORRROROROOOORRRRORRORRROOORRORROOROROORRRRORROOORORROOORROROROROOROROOOOORROROORRORRRRRROORORRROROROOOOROOROROORRRROROOOROORROOROORRRORRRROROORROOOORRRRRORROORRORROOROOOOORRRROOORORRORRORORROOOOORORRROOOOOORROROOOROOOORROOORRROOOORRRORRRRROORRRROORRORRRORRROOOROOOROOOROROOOORRRROOROOOOOOORRORRRROOOOORRROOROORRRROOROROROROORROOOOOROOOROOORRRORORRRORRRRRORRROOORRRRORORRORRROOOORRORROROOROOROOROOORRORRRRROOOROORROORROORROOOORORROOROORRRROOOOOORRROOOOORROORROOOROORRORRROOOROROOORRRRRROORORORROOROROOORRROORRRORRORROOORROOORRRROOORRROROROOOROORRROOOOROOOOOOOOROORORORORORRRORRORROORRROORRROOORORORRRROROROOROORRORROOOOROROOORORORROORROORRRORRRORRROOROROROROOOOOROOORROROROOORRORORORRRRORRROOORRROOORORRROOROROOOROORROOROROORROOORORRROROOORRRORRRORORROROROOORRRRORRRROORORRRRROORRORORROOOOOROOOOOORORRRRROOORRORRRRRROOORROORROOOORROORORORRRRRRRRRRROOROOROOOOOROOORORROOROOOOOOOOORRROOROOORROOORRRRROOORRROOORROROORROOOROOORROROOOROROORROOOOROROOORRRRORORRRROROROOOROOOOROOROOOROROROOOOORROROOOOROROOORROROROROOOOOROROORROROROOOOOROORRORRRROROOOORORORORRRRORORORORROOROOROOORRRRROORRORROORROOROOORRORRROOOORRORORROORORORRROOOORROOROOOOOROOOOROOORORRRRRRROROORRORRROOOORRROROROOOROOROOROOOROROORRROOOORORRRRROORRRRROOOORORRORRORORRRRORORROOOOROORORORORROORRROOOORORRRROORRRRRRROROOOOOOOROOORRRRRRORORRORRORROOORRRORORRRROOROORORORROOOOROROOOOOOOOOOOOORRRORROROOORORROORORORRROOOOOOROOROOORRROOOROORROOOROORORRROORORORRRRRROOORRRRROOOORRROOROROROOOOOOOOOOROOROOOORRRRORRRROROOROROROORORRROOORRRRROROORORRROORRROOORORRORORRORROOORRORRORRRRRORORORORRRRROROOOORROOOOORROORORRRROROOOORORRRROORRROORRRROORROROOOOROROOORORROORORRRRRRRRORRRROOOOOROOOOOOOORROOROORRRRRORRRRROROORRRROOORROOOROOOROOROOOOOOOROROROORRROORRRRROOOORORORORORRORRORORRROOOOOOOORRRRROROOORRORROROOROORRRORORORRRORRRRRRORRORRRRORROOROROOOOORROOROOOOOROROORRRRRROOORORROROORRRROOOOORROOROOROORROOORROORRRRRRRORRROROROOOOOOROOOORROOOOOROOROOROOOOROOOORRRRRORORRROOOOORRROOROORROOOOROORRORRRRRROOOROOOOOROROOROORROOOROOROOROROOORROOORORRORRRORRRRORORRORRRRROORORORRROROOOOROOROOOOOORORRORROROOORROORORORRORRROOOROOROROORROORRORORRRRROROOOORRORORRRRRORRRRRRORRRORROOORRRORRROROOROORRRRRROOOOOROROOOOOORROOOORRRORRORROROOORRORRROOORRRRROOOORORRORRRORORRROOROROOOOOOROROOOORRORRORORORROOOOROROORORRROOORORRRRRRRRRORROOOROOOORORRORORRRORRRRORROROORRROOORRRRORORORRORROORORROORRRRORORORRRROROOORORROOOOROOORORROOROOROORORROORORRORROORRORORRORORORRROROORRRROROORORROROOOOOOORORROROORRORRRROOOOROOOOROORRROOORORROORORORROOORROORORRRORRORORRORRROOORRORORROOORORRORRROORRRRORROROORORRRORORROORRRORRRORRORRROORRRRRORRRORROOOOOORORROROROORRRRRORRROORRORORORRROOROROROROORRRROROOOROOOOROROORROOOORRRRORRORRRROORORORORROOORORORRORRORROOROROOOORRROOROOOROROROOOOOROROORROOORRRROOROROORROORRRORROORRRRRORRRRRROOROOOROOOOORORROOOOORRRORRORRRRORORROOORRORROROORORROROOROOROOOOROOOOORORROOOOROROOOORRROORRORROOOORRORROORRRROROROOOOOROOOROOOORROOOOOOOOOOROROOORROOORORRROOOORORORRROOROOOOORROOOORORROROORROOOROOOORORRROOROROOOOROORRRORORORRROOOOROORRRORORORROROORRRROROOOORROOOROOOOROROROOOOROOROOORRROORORRROORRRROOOORRROOOROOOOOOORRROORRRORRORORRRRRROOROOORRROORROOOOOOROORRRRRRORRRRRROOROORRORROOORRRRORRORROORORRRROORRORORROOORRORRRRROORRRRRRORRROOOROROROROORORRORROOROROORROOROROOOOROROORORRRORRRRORRRORROORROROOORRROORRORROROORRORROORRRRRRROOROORRORORROORROORRORORROOOOOOOROROOOROROOORRROORRROOOOORRROROOORROOORORRRRRRROORORORORRROORRRORORORORROOROORRRRORRRRRRRORRRRORORROOROROROOROOORRORROOROOROOOOOOORRRRRORORRRROORRORRRROORROOOROOROORRRROOOROROOOROOOORROROROOORROORORORORRRROOORRROORORRORRRRRRORORRRROROORRRRRRROOOOOOROORORORRRRRROORRRRRRROROROROROOOOROOOOOOROOOROOROORRRROOOORORRROROROOORORORRRORORROORRROORRRROORRROOOORRRRRROORROOORROOOOROROOROOROROORRRORORROORROROOOOOOORROOOOROORROROOOORORRORROOORRRORRROORROORORRROOOOROOROOOROORORRRRRORRROROOROOORRRRRROOORRRRRRORROOOORROOROOOROOROOROOOOOOOOOROROOOROOOROROROORORORORORRORORRORRROROORORROOOROORRORORROORRROOROOROROOROROROOOROROOORRRORROORRRORRROORROOOORROOROOOOOORORRORROOROOOOOORRROROOROROOORROORORRORROOORROROORRROOROOORRORRROOOOOOORROOOROROOROORORORRRORRROOOORRROROROOOOORRRORROOROORROROOOROOORORRORORORROOROORRRORRORRRORORORORRRRROORORORRRRROORORRORORROORROROORRRROOROOROOOOOOOORRRRRORROORROOROORROOOROROROROROOROOOOOOORORORORRRROORRRORORRROORRORRROORROORRRRRRRRRRROOOOOORRROORORORROORRORRRRRRROROROOOOOOOROOOOROOOROORORRORROOROOORRRORORORORROOROOOOROORROOOOROOROOROORROORRRRRROOOOOOOORORROOORORRROROOOOOROORRROROROROROORRRRORRRRROOORROROOROOROORORRROROORRRRRRROORROORROROROROORROROROORROOROORROROORORRRROOOROOROORORROOOOROORROOOORORROOOORRRRROROORRRROROOROROORORRRROOOOROOROOORROORROOORRROORORROROROORRRRORORRRORORORRORROROORRORRROOROOROOROOOORORORRORORORROOROOOROOROROORRROORRRRROROOOORRRROORRRORROOOOORORRORRORRROOOOOORRRRRRORRRORROROORRRRORROOOROROOROOOORORRORRRROOROORROROOOOROROOORRORROROOOOORRORROROORRROROROROOOROOORRROOOOOROOORORROROROOOROOOORRORROOOOORORROROORRRRROORORORRORORRROOORROORROOOROORROORRROORROORROROOROROOROROOROORRRRRROOROOOROORRRRRRRORORORRRORRORORORRRORRROROOOOOORORRRRROORORRRROOORROROROROROROOOOROORRRORROROOOROROOOORORRRROOOROROROOOORROOOOORORRROROOOOORRRORRRRORORROROOORORROROROROROORORROOROOOOOOORRRRORROROOOORORORORRROOORROOOROOOOOOORRROOOOOORORRORORROOORROORRROROOROROROROOOOROROOROROOOROOOOROOOORORORORORROOROORROOORORORROOORROOOROROORORROOOOORROOOORRORORRRRROROOOROROOORRRRORORRRRRRROROOROROROROOORRRROORROORORROROORRROOORORRROORRROOOOOROOROOOORRORORORROROORRRRROOORRROORRROOOROOOOOORROOOOOOORRROOROROOOROROOORROOOOORROROROOORORRRRRROROROROORROOOROOOOOROROOOOOROOROOOORORROOORROOROOOOROROOORORROOORRROORRRORRRORORORRORORORORRROORROOOOOOROOORRROOOOROOROOOOOORRORRROOORRRROORORORORRRROORRROROOOOORROOROOOROORRORRORORRORRROOORROROROOORORORRRORROOOOORROOOOROOOOROOROOOOOOOORROOOOOROOORRROORRRRROROOORRROOOORRROORORRORRROROROOOORRORROOOROROOORRRORRORROOOORRRORORRORROROOORRRROOROROOORORROOORRRRORRRROORRRRROOOROROORRORRRORRORROORRRRRRRROOORORRROROOROOOOROORRRRRORRORRROORRRROORRRRORRRROORORRROORROOOOROORRRRRRROOROORROROOOORRRROOOROORRORROORRROOROOORORORRORRROROOOOOROOOROROROORORRRRORRRORRRROOORROROOROOOORROOROORRRRROOOOOROOOOROOOORROOOOORRRRROROOORRROOORROOORRRROOORORROORORRROORRRROORORORRRRRORROOROROROORRORRORRROOORRORROOOOORRORRORRRRRORRRRORRRORRRRORORORORROROOROOROROORRRRRORRROORRROOOOORRRORORORRRRORRORORROOROOROROROOROROORROORORROOROORRRRRRROROORRROROROORROOROOOOROORORRORORRORROOORRRORRRORORORRROOROOOROORROROOOOOOROORROOOOOOORRORRORORRORRROROROOOOOORRROOROORROROOORORRRROROOORRROOOORRRRORRROOOOROROORORROOROOROOOROROOOOOORROOORRRRRORORROROOOROOOORRRORRRROOOOOOOROROORROOORRRROORRRRRRRROORROORORRRRRROOORORROOROOROORORROOOOOROOROOROROOROOOOORRRORRRRRROOOROROORROOOORORORORRRROROOROORORRRORRORORORRROORRORRROROOORROOOORROROROOORORORROOORORRROOORRRORROORROROORROORORORROOOORRRROOOOORRRRRROOROROOOOORRROOOOORRROOORRRRRRRROROOOORORROROROOOOORRROOROOOORORRROROROORRORROOORROORORORORROORRORRORORRORROOOROORRROROOROOORROORORRROROOORRROORORRRROORRORROOOOOROOOOORROROROOOOOORRORRRRROROROOORRROROORROROOORRORORRORRRROROOORORORORRORRRORROOROORRRROROORRORROORRRROROOOOORROORORROORRRROORORRORROORRROOOORROROORRRRORORROOROROOORORORORROOOORROORRRRORRROORORORROROORROOOROORRRRRROORORORRRROOORORROROOORRORROOORRRRORRRRRRROORORRRRRORROORRROOROOOOROOROOROOOROOROOROOORROOOROORRRROORORORORRRORRORORRRROORRROROORRRROROOROORORRRRRRRROROORORRROROORRORROOORRORRRRORRRROOROORORRROOOROORRRRORRORORROROOOORRRORRROOORRRRORRRRROROROORRRRORROOORORORRRRROOROOORRRROOOOOOROORORRROOOOOORRRRORORRRROOORORRRRRORRROROOOROROOOOOOOORRRORORRRROOROOROROOORORORORRRORRROROOROOOORORRROOORORRROOOOOROORRORROOOOROROORRRRRORRROOORROOORRRRROOORROROROOOOOROOROROOROOOOOOOORRROROOORRROOOOORRRROORRROOORRROOOROROORROOOOOROORRRRRORRRRROROROOORORRORRROOORRORROOORORROOROORRRROORRORORORROOOROROOOOORROOOORROOORRRRORROROROOOOORRROOOORRRRRRRORROROORRRRROORORROORRROOROOOOOROORRRORROROORORROOOORORORRROOROOOOOROORRROORRORROROOORRORRRORRRROORROROORRORROROORRORRRRROOOOROROOOROROORRRRRROORORROORRRROORROOORRRRORORRORROOORRORORRORORROOORRORROROOROOORRRRROROORROORORRORRROROORRROOOOROORRRRRRROROOROROORROROORORRROROORRORROOOORRROROROOOOROOROOROORRRRORRROORORRRRORORRRRORRROOOOOOOOROOOORORROOORORROORROOORRROORRRRROOOOROROROOROOORRROOOROOORORRRROOORRRROOOOOORRORROOOORORRRRRRRORORRRROORRROORROOOORROOORRORRRRRORRORRRRRROOORORORRROROORRRRRRORROORORORRROORRORRRRRROOROORROOROOORROORRORORROROOROOORORROROORORROROROOOOOOOROROOORRROORROOORROROROOOOORRRORRROOOOROROORRORROOROORRROORORRORRROOOOOORROOOOOOORRRRROORORROOROOOOROROORRRRRROOROOROROOROOOROOOORORRRORRRRRROORRORROOOOROORRROORRORRORROOOORROOOOOORRRROORROOOOOOOORROOORROOORRROORRRROOROOOORRRRORRROOOORRRORRRRRRRRROROROROORORRORORORRORORRRRRRRRRORRRORORORROOOOOROORRORROROORORORROORRRORROOORRRORROORRRROORROOROORRORORRRORRRRRRROOROORRRROROOOROOROORROORRORRORORROORORRRROROROORORROOOOOOOOROOOORROORORRRRRROORRORORRRROOOORRRORORROORRRRRROOORROORORRRORRRRROOOROOOOOOOORRRORRRRRRROROOROOOORROOORRRROORROOROORRORORRRROOORRROOORRRROOROOORRRRRROOROORROROORRRORRORROROROORRRORORRRRRRORORRRRRROOOORORROROORROOROOROOOROORORROORRRRRROORRRRROORRROORROORRRRROORROORORORRORRRRRRROORROOROOROOOROROOOOROOOROOROOROROOORORRORORRRROOOROOOROROOORORRRORORROORRORROOOOORRRRORORROORORROORRRRRROORORORRORROOOROOORORRORORRORROOOORRRRRORRROORRROORROOROORRORROROORRRRORRRRRRRRRORRORRRORRORRRRRORROROROORORRORRRRORROORORRRRORROROROOOOOROROOROOOOOROOOOOORRORROOROOORROORRRRROOOROROORRRRORROOOORRRROOOOOOROROOROOORORROORORROOROOORRRRORRORORORORROROROOROOORRROOOOOOOOORRRROOOOORRROOROOOROORORORRROOOOOROROORROROROOORRORRROROORROROROORRRORORRROOORRORRORORORROORORRRRROORRORRROOOOROORORRRORRROOROOROROOROORORORRROORRRROOROOORRRORORRRROOORRRORRROROORRROORRORORRRRROOORRRRROROORORORRROORORRROROOORRRRRROOOOROOOOOOROROORROROOORROOOROOORORRRRROOOORROORORRRORRROOOOORROOOROORORORROOOORORRRROROROOOROOOROOOORORRORRROROOORORRORRRRROOORRROOROOOROOOOORRRRRROOOOOOORRRRROROOORROROROOOOOOORRROOORRRRORRRROOOOROOOORRRRRRORRROROOROOOROORROROOOORROOOOOOOOOORORORRROROORORRROOOORORORORORORROOOOOOROROOOORRROORORRRORRRRROOORRRORRRRROROORROORRRROOROOOORRRRRROROOOOOORRORORRRROOOORORRORRROOOOROROROORRRRORROOOOOOROOORROOOORORORRROROORRRROOORRORRRRRROOORORRRRROROROOROROOORORROOROORRORROORROORROOROOROROOOROOORRRROOROOOOOOOOORROROOOOOROOORRORROORRROORRROOROOOOOORRRROOROOOROOOOORRRRROOOORORRRORROORROOOROOOORROOOOORROORRORROORRRROORROOOORROOORRRRROOOOOOORRRRRROORRORORROORRRRORORRRROOOOROORRORROORROORRORROOORRORRRROORORROOROROROROOOROOOORROOROORRRROOORROROORROOORORRRORRRROOOORRROOORORRRORROOOORRORORORRROOOOOOORROROORROOORRORRRRRRORROOROOORRROORRRRROOROROOROORRORRRRROORRORORRORROORORRRORRROROORROOOROOOOROOOOOORORROOOROROOOROORRORORRROOOROOOORRRROORROOOOORROOORRRROOOROROORRORRRORROOORRORRRRRORRROORRRRORRRRRRORRROOROOOOOOOROORROOROOROOROOOROOOROOORROOORRRRRROOORROOOORRRROROOOOOOORRORROROROROOORRRORORORRRROOOROORROOORROORROORORRROROOROOOOROROOROROOROROOORRORROORRORORORORRRORORRRROOORRRRORRRRRRORROORROOOOOROOOORROOROORORROROROORRORRROORRROOOROROOOROORRROOORROROORROOROOOROOOORROORRORRROORORORROROORRRRROOOOROROORRORORROORRRRRROOOOOOOORRRRRROORROROORROOOOOOOORRROORRRRRRRRRRRROOOROOORRRROROOROOROORRRRRRRROROROROOORORRORORRRORRORROOROOORRRRORRRRRRRROROOROOOOROOORRRROOROOORORRORROORRRRROOOOOOROOOORROOOOOOOOROORRORRRRRORORORRROOROOORROOORRRRRRORROOROORORROROORRRORRRROOROORORRORORORRRRRRROOROOROOROROOOROROROOOORRORROROROOOROOORROORRROROORROOROORORORORRROOORORRORROOOROORRRROORRROOOROOOROOROOOORRRORORRORRRRRORRROROROOORORRRORRROROOROOROOOROORROOORORRRORORRORORRRROROROROOOOORORRRORRROOROOOOOOOORORROROROOOORRORORROOROROROROOOORRROROORROOROORROOORORRRORRROOROORORORRROORRROROROOORROOROOORORROORORROOOORRRRORROOROROOORRRRRRORRRRROOOOOOORORRROROROROOROOROOROOROOROROROOOOOOOORORRRRRROOOROORRROROOORROORROORORRRRRRRRORROOROOOOORROOORORORRORROROOOOOOORRROOORRRROORRRRORRRRROROOORRRRRRROROOROORRORROORORRROOORRRRORROROOORRORROORROORROORORRORRRORRORRRORRRRRRRRRORROOORRORRRRRORRRRROOOORORRORRRRRRRRRRORRORROROORORORRORROORORORRORROORRORRRROOROROOROORRORROORORROROORRORRORROORRRRORRRORRRRRORRRROORRROROORRRRRRRRRRROOROORRORRROOROOORRRRRROOOOOOROOOORROOOOOORORRRORORROROROOOOORRRORRROOOOORRORRRRORROOROROOOROORORROOOORROROOORORROOOOORRROROORRORRRROORRORORRRORORROOROOORORROOOOROROORROOOOORRORRRRROOOORRRROOOORRROROORRRORRRRRRRRRRRORRORORRORRORRRORRORRRROROOOOOORRORRRRROOROOOOROROOROROROOORRRRROROOOOORRROOOORORRRRROROROOOOOORRROORRORRROROOOOOOOOOOROROROOROORORROORROORROOOROORRRROORRRORRRROROROORRORRRRORORROOORRORRRRRROORRROOROROOROROROOORRORORROROOOROORROOOORRROOOORRRROORRORRROOOROOROROOOOOORRROROORRORRRORRRRRROOORORORRORRORRROORORORORRORROOORRRORORRRRORRORRRROOOORORORROOROOROOOORROORORRORROORROOROOORROOOOROROORRRRRRRORORROOORORRRRRORRRROORRORRRRRRRRORRROROOROOOOOOOOORRORRRRRRRRROROORROOORROORRROOORRORROOROORRRROROOOROOORRORRRORROOOORROOORORRRROROROOOOORORRRROROROOROROOROOROOROOORRROROORROORROOOORROORRORRROOOROOORORROROORRRRORROOROOOROOORROOORRROROOORROOROORRRRROOROROORROOOOOROOOROORROOOROOROORORRROOORRRORRROOOROOORRRROROOOOROOORRROORRORORORRROOOORORRROOORROOROOOROROOOOROROROROOOOOROROORRRORORRRRROOOORORRORORRORRRROOORORRRRRRORORRROOOOROOOOROOROOORORROROORRRORROOORORRROORROROROROORROOOOOORROOOORRORRRORRRROROOORROOOORORRORRRORORRORORRRRORRORROORRRROOOROOORORROORRORRROORRORORRROOORRROOOOROOOROORORRRORORRRRORORRORRROOOORRRROORRORORRRRORORORRORRORORRRRRRRROOROOOOROROROOOOOROOORRORRORRORORORRRRRRROROROROORRRRRORRRRROOORRRRRRRRROROOOORRORROROORORROOOOOOOOOORORRRORROROOOOORRORROOORRRRORORRORROOROROOORRRRRORORORROORRORROORORORROOOROOROOORROOORORROORRRORORRORORORORROOROROROOOORORRORROOROOROOOOOOORROOROOORORRRROORORROROOORRROOOOOORRRROROROORRROORORRROOROORROOORRORROROOOROORRRROROOORRRRRROOROOOOOROROORORROOOOORRORRORRRORRROOOOROOORRRRRROOOOOORRRORRORRORROROOORROROOOOORRRRORROORRORRROROOORRROORRROOOROORRORRORRRORRRORORROROROORRRRROORRORRRORRRRRRORORORRRRORRRRRRRROROORORRORRORRROROOROORORRRRRRROROORRORORRORRORRROOOOOOOOOOOOROOOROROOOOORRRORROOOORRROOOOORORORRRROORORRORROOORRROORRROOOOROROOROOOORRRORRROORRROORROROOORRRORRRORRORRRRRRRORRORORRRROOOORORRROORORRORRORRRRRRRORRRRROOOOOROOORORROORORRRRORRORRRRRROROOOORRROOROROROORORORROROOROOOORRRRORRROOOOROORRRRORRRROORORRROROOOOOOOROROROORRORROROORORROROROROORORRRRORRROROOROOOROORRRRORRRROROOROOROORROROROOOORROROOROORORRROROOROROOROORRROORRROOOOROOROOROORRRORORRRORRORORROOORROOOOORRRORROORROOROORROOROROROORRROOROOROOORRRROROROORRROOORRORROORROORROOOOOORRRROOROORRORRRROOOOORROOOORRRORROOOROOROOOOROOORORRORORRRRROOOORROOOROOORROORROOROROOOOOOORORRORORROOOROORRORRROOORRRORORRRORROORORRROOROROORRROORROORRRROOOORROROORROROORROROROORRORROOORRRRRRROOOOROROOOROROROORRROOOROOOROOROROROOORRRORRRROOORORORROOOOOROROORRRORROOROOOOORORRRORORRRORROOOROOOROOORROOORORROOOORROOOROOOROOORORORRROOOORRROOOOOORRORORROOOROROOROOROROOROOOORORROOOOOORRRORRRORORRRRRROOORROOOOORRRRORROOROOOROORORROORROROOOORRORRORRRRORORRRRRRROOOORROOOOROOROOOROORROOOORORROOORROROORROOOOORRORROROROORRORORRORORORRRROOORRRORRRROORRORORROROOOOOROOROROOROOROOOOROOROORORROROROORROOROROROOROROOOROOOORROORORORROROOOOROORORRROROOORRORROROOOOORORRRORRRRORORROOOROOORORRRORRRRORRRRORROOOROOORROROOROOROOROOOOROORRORRRORRRRRRORRRROROROORRRORRRRROOROROOOORORROOOROROROORRRORRORORORORRROROOROROOOOROOOROOOOORORORORROROOOOOROORORRRORRROOOOROOOOROROOORRRROROOOOOOOOROOOOROROROROOOROROORROOORRRRORROOOROORROOROORORRRORROOOOOROOROROORRRRROOORRORRORROOORRRORRRRORORRORRRRRORRRROOOORRRRRROORRORROROROOROOOORORORORRORRORRRORROROOOOROROROOROOOOROROORRRROOROROROROROOORORRROROOOOROROORRROORROORRORROROOROORRRRROORRRRRROORORORRORRRROORRROOOOORRORRORROORROORORRRRRORORRROOOROOOOOROOORORORROOOOOORORRRROOOOORRROORRRRORRROOORRRORRRORRRORRRRROROORRORROROROOROOOOOROOROORORORRRORRORORRROOROOORRRRROOOOOROROOOROOORRRROOROROROOROOORRRROORRRORRORRORRROROOOOROORROROORROORORROOROORROOROORROOROOORRRRROOROROROORRRRRORORROROOOOROOORRROROOOROOROORORRROORORORORROOROOOOOOOORROOOOOOOORROOOORRORORRROORRROORORRROOOORROROROOORORROOOOORORORORROOORRORRORRROORORRRORORROROOOOORORROOOOOOROROROORRRRORRRRROOORORRRRROOORORRORRROROOOORRRROOORORRORRROORORRRRRROROOROOROOORROORRRRRRRRROROOROORROORRRROOOOOOOROORORROROOORRORROOOOOOORRROOORORRRRRRORRORROORORORORORRORRRRRRRRRRRRROROOORROOROOOOROROOROOROROORORRRROOOOOOROROROOOOROORRROROOOROOOOORORRROORRROROORRRRORROOORRRROOOOROORROROOROROOOORRRROOOROORRROROROOORRRORORORORRORRRRORORRROORRROOOROOOORORRROOOOOROOROOOORRORRRRORORROROOORRROROOORRRROOROROROOOORROOROOOOOOROOROOROOOORROORRRRRRRORRRORORORRRRORRROOOOOORRORROOROORORRORRORROORORRROOORRORROOOORRRRRROORROOOOOROORROOOOOOORROROORORRROORRROOOOROOORRROOORROORROROOROROORORROORRROROOORRORRORRRRROOOOROOROOOOROOOOROROOOOORRRRRROOORRRRRROOOORROOOROROROOOOOOROOOROOOOOOORRRRROOOOROOOORRROORRRRRROOOORRORORORORRRROOOOOORRRRORROORRRRORORRRRORROROROROORROROOORROROOOOROORRRORRORRORRROROOORROROOOOORORORRROORROROORORRRRORRRORRROOORORRRROORRROOOOORRORORRRORROOORRRORRORORROOOORRORRORRORORRROOOOORRROROOROROROROORROROOOOOOORRRRRRRRROORRRRRORORRORROOOROROOOROOROOOOOOOOORROOROORORRRROORRRRROROOORRORORROROOORRORROOOROOROOROOOOOORORROORORRORORRROOOROOOROROROOOORORRRROORROORRROOOORRRORORRRORRRORRRROOOORRRRROROORROORRRROOROOROORORORROORROORORRORRORROOORRORORROOOOORRORRRROOOROOOOORORROORORRROOORRRORROOORROOORORRRROORORRRROOROORRRROOORORORRRRRRRORRORROOORORRORRORORRRRORRRRRRRRROOOORROROORRRROROOROOOOOOOORRORORORROOOROOROROOOROOORRRRRRRRORORROROOORROROORRRROORORRORRORRRORRRROOROOORRRRRRRORRORORRORROROOROROOROROOOOOOOOOORROORORRORRRORROROOOORRROORORORROROOORRORROOOOOORRRRORRROROOORRRROROORRORROOORRRRRRORRROOOOROOOOROOROOOOOROOROOORORRORRRROOORRORORRROROORRRORORRRRROORROOOROOORRORRORORORRRRORRORRROORRROORRRRRRRROORORRORRRRRORRORORRROORRRRRRROOOOROOOOOOOORROOROOROOROOROOROROOOORRRROOOROORROORRRORORRRORORORORORROOORRRRRROOROOOOROOROOOORRRRORRRRORRORRRRORORRORORRRROORORORRORROORRORROOOOOORORROORORORRROOOOORRRORROORRROOROROROOOORRRROORRRROROOOOROOOROOOORRRROOROOORROOOOROOORROOORRRROOROOROOORRROOORRRROOOROROOOOOOOOORRROOORROOOROORORRRRORRROORRROROORROORORORRROROORORRRRROORRROROOROROROOOOORROOOROOROORROORORRROROOOORROOOOOOROOORORROOORORORRRRORRORRRRROOOORROOOOORRRORRRRRRRORRROOROOORROORRROOOORORRORROORROOORROOOOROROOROROROOORORROOOROOOROOROROOOORROORROORROORROOOORRROROOOORRRORRRORRRORRORROOORROORROOORRORRRRRROROOOOOROOORRRROORRROOROOROOROROOOROROORRORROOOROOROORRRRROROOOOROROROORROROROOROOOROOROOOOOORROORROOOOROOOOOOORRRRRRROOOORRORRORRRRRRROOORRRRRORRORRRRRORROORROOROORORRORROROROOOORRORORRROORRROROOOOORORRRORORRRRRRRORORORROROOOOORROOROOORRRRORROOOORORRROROOORROOOROOROOROOOOORRRORRORRORORORRROOORROOOORROROORROORROROROOOOORROOOORROOOOROOROOOROOROORRRORRORORORRROROORRRROOORRORORROROOROROOORROORRRRRRORORROORRORRROORRORRORRRORORROROORROOOOROOROOOOOOOOROOROOOOROOOROOROOOOROOORRROOROOORRRROORROOOROOORRRROOOOROOOOROOROORRORORRRROOROOROORRRROOOOORRROORRROOROOORROOOORROROOORORRORRORRORORORORROOORROOROROORRORRRRORORRRROOOOORROROROORORORORRORORRRRORRROOROORROORORRROORRROORROORORRORRRROOOORROOORRRORROOOROROOOORRORRROOOROOOOROOROORROORROORRRRRRRRROOOOORRROROOORROOORROORORRRRRRROROROORORRRRORROROORRRRRRRRRRRROROOOOORORROOOOROOOOOROOROOOORORROORRRROROORRRROORRORORRRROOROORRRRRROOORROROOOROOOORRRRROORRRRRRORRRRORRRROROROROOROOROROOOOROOOROOROOROORORRORORROORROORRRRROORRRROORORRRRRORRORORROROOROORRRRRRRROOOOOOOROORROOOORORROOORORRRRORRROOOROOORORRROOORROOOROORROOOOOORRRRORRRORRROOOOORRORRRORORORORRORRORRORRORORORROOOOOORORRRRORRORRROOOOOROORRORORORORORRORRORRROORRROOOORRORRROROORRRRRROOOOOORRORRROROORRORRRORRORRORRROORORROOORORRRRROOOORROROORRROOOROROORRRRRORROROROORORRRROORRRORORORRRORRRRRORROROROORROOOOOOORROOROOOOOOORRORROORORRORRROOOROOOOORROORRRRORROOOOROOOOOOOOROROOOOORRORROROORROOOOROORRROOORRROOOOOOROROOOOORRROOORROOORRRRRRRRROOOOOORROOROORROOOORRRRRROOOOOORRROOROROORRRRROROOROOORRROOORRORRRRRORORROORRRROOOOOROORRRORRRRRRROORRRRROOROOOORRRROOROOOOOOROORROOOOOORROORRRROROROORROOOROORROOORRROROROOORORRRRRRRRORROOOOORRRORORRRORORRRRRORROOOROOORRORRORORORROORROROOOROOORROOORROORROROOROOORRROROROORORROOROORRORRRRRORORRRRROOORRRRORROORRRRROROOOOROROOROORRRRORRRRROOOOROROROOORORRRROROORROOROROOORRORRORRROORROROOOOOROOOOORORRROROORRORRROROOORRROOORRRORORROOOORORORROORRROOROOOOROOOOORORORORORRROOOROORRRRORORRRROOOOOOROOOROORRRRROORORROROORROROOORRRROOROROOOORRRRRROORRRORRORORRORROOORRROOOOOORORORROOORORRROROOORORRORRROOOROORROORRRROORORROOOOROROOROROOOOROOOROROOOROORRROOOROOOROOOORRRROOOROOOROORRORRROORROROROROOROOOORORRRROORORROORROROOORROOOOORORORROORRROOOORRORORROOROOOORROORRRROOOOORRRORROOROOOROROROROOOOOORORORROORROOORORORORRRORRROROROOORRRROORRROOORRRROOOORORRRROROOROOROOOROOORRRROROROORRORROOORRORROOOROROORROOOOROOOOORORORORORROOOROORRRRROOORRROOOORROOORORROOOOORRORROOOOROOOORRRROORROOROOORRRRRORRROOORRROOOOOORROROORRRORRORRRORORORROOOOROROOOORRRRORRORORRROROOOORRROORRRRROOROORRORRORROROOORRRRRORRORRORORRROOOROOOOORORORROOORROROOROROOROOOROOOORRORRORORORROORORRRROOOORROROOORORRRORORRORORORROROORRRRRORRRORRRRROROORRRRRORRROOOOOOORORROOROOROORRRORROROOORRROOROORRORORRORRROROOOORRROROOROOROROORROORORROOORROOOORORRRRRROROOOOOORRRRORORROROOOROOROOROOOROROROORROROOROOOORRRROOOROORROROOOOORROORRORORRRORRORRRRORROORORRRORRRROROOOOOORRRRRRRROROROOORORORRRROROORRROOROOROOORRROOOROOROOOOOROROORROORRRORRRRRROOORORRROOORRRROROOORROOOOOOROOORROOOROROROOOOOORRROROROOORORORRRRROROOORROORRRRRROOOORRROORRRORROORROOROROOROROOOROOROOOORROORORRORORORORRORRROORRRORRRORRROOOOORORRRROOROORORRROROORORRRROOORRORRORROOORROOOOORRRORROOROROROOOOOROOOOROORORORROOOROROOOOROROROROOORRRROROROORORROORRRROROROROOOROOROORORRRRRORRRRORRORORRRROROROORRRROOROOOOOOOORRRORORROROORORORROROROOORROOORROROOOOOORORRROOROROOORRRRROOOROORORRRROROORORORRROOOOOOOOORROROOOROORRRORRRRRRRROOORRROOORRRROROOORORRRROOROOOOORROORORRORRORRRORROROORRRRORORORRROROORRROOROOOORROOROORRRROROORRRRORORRROROOOOORRRRRORROOOOROOROORORROROORROOOOOOOOROOOROROROOOOOOOORRORROOOORRRORORORORORRROROOOOROOOOOORRRRRRORORRROROOOOROOORRROOOORRORRRROOOROORROOOROROROOROOOOROOOOROOOOROROROOORORRORRRROOORORROORROOOORRORORROORRROROOORORROROOROROOOOORRRRRORROROOOOORROROOORORRRORORROROOROROOOOORROROORRRROROORORROROROOOOROOOROOORRRRRRRORORRROORORRRORROOOOORRRRORROROORROOORROOROROORRROOOOROROORROOORROOOOOROOOOROORORROORROORROOOOOORRROORRRRORORORROORORORROOOORORROOROOROORRRROOORROORRORRRROOOOORROORROORORRROORORORORRORRROOOORRRORRROROOOORRORORRRRROOOORRRORRRRRRRRORORORROROORORRROOOORRORROROOOORORRRROORRORROORRRRORRROROOOORROOORROOORORROOORORRORROOROORROROOOOOORROROOOROOROOOOORORORROORORRROOORROOORORROOOROOORORROROOOROOORRORORRRRRROROROROOOOORORRRRORRRRORRRRRROROOOORRROORRRORRROOROORRRRRRRRORRRRORRROOROOOROOOOORRRRRROOOOROOOOOOOOOOORRRRRROOOOOORRROOORORRRROROROROOOOROOOROOOROORRRORRRRRROROOORROORORORRROOOROOROOOOOOROORRRRROOOORORROORORRROOORROOOORROOOOORROORROORROOROORRRRRORRRRRROOOOORRRRRRORRROORROROOOROOOROOOORRRRROOOOROOOOROOOORORORORROORRORRROOORROORRRRORROROOOOOORRRRRRRRROROORROROOOROOORROOOROOROORORROORROOORORORROOROOOROOOROORORRORORRROORRORORORRRRORORROOOOROOOOOOROROROORROOROORROOROOORRORRROORORRORORROOORRRRRRRROOORORRORORROOORORRRROORORRORROOOROORORROOORRRRORROROORROOOOORRORRRRORRROOROORORRRROOOORRROORRRRRRROOORRRRRROOROOROOOROOOOOOOORORRROOROROORRRRORRRORORORORORROORRROORROOROOROORROORRRORORRRROOROOOOROROORORORROORORROROOROOROOORRRROOROOOOROORROOROROOOORROOOOROORORRROOORRRROROOORRRORORORORRORORRORROOROORROOROOROORRORORROORROOROOORORROOORORRORORRRRORROROOOROOOROROOOROOOOORORRRRROOORORRRROOOROOORROOOROORROORRORORRRRRRRRROROROORRORRRORRROOROOOOOORRRRRRRROROROOOOOORORROOORRROOROORRORROORROOOORRRRRROOOROORRORRRRRRRROORRORORRRRORORORRRRRROOROORORROOOORORRORORRRRORRORORORROOOROOOORROOOROOOOROROOROROOOOORORORRROROORROOORROORORORRRORRRROOOOOROOOROOORROORROORROOOROOROROOORORRRROOOROROORRROOORROOORROOORRRORROOOOOOORRROOORRORRRORRRORROROOOOORRROOORORORROOROOOOROORORRORORORROOOROORRORROROROORRRRRROORROOROORROOORRORRROORRROOROOORROOOOORROROOROOOROOOROOORRORORROROROOROROROORRRROOORRROOOROROOROORRROORROROOROORRRRROOORORRRRROOOOORRORROOORRORRORRRORRRROORORORRRRRRRROOROOOOORORORROORRRORRRRROOOOOOROORRROROORRORORRRRORORROOORRORRRORRRRROORORRROORORRRRORORROORRORRRRRROOORROROROROOOOROOOORRRRRRORROROOOOOOORORRRRORRROORORRRRRORRRROORRROORRROORRORORROOROORORROORRRRROOOOROROOORRRRROORROROORRRRROORRROOROROROOROORRORRRROOROROOOROORRROORRRORRROORRORRRORRRROOOORRROROROORROOOOROOORROORRRROOOOROOOOROROROOORROOOROOROOROOORRRROOOOOOOOORRRRROROOOOORROORORRORROROROROROOROOOOORORROROORROOROOOORORRORORROROROROOROOORRROORRRORRRRROORROOROOOOORORORRORORROROORRROOOOORROOORRRRORRRROROROORRRORRRROOOROOOROROROOROROROOORROOOROOROROOORRORRRRRRROROOOORRORORRROROOORRROORORRORROROROROOOOROOOROROROORROROOROORRORRRRORRRROOORRROOOOOORRROROROOOOROOOOORROOOOROROROROORRROORROOOOORRRRRRORRRRORORROOOROROORORRROOROORRRORROROROORROORROOORRORRROORRORRORRRRRROORORRROOORORRORRROROORORRRRRROOOOOROOOORORRORORRRROOOOOOORROOORRRRROOOROORROORRROOORROOOOORROOROOROOOOROORROORORRRRROORRORRROOOOORROORRORRROOOOOOOOOOOORRRROOORRRROORORORRROORROOORROOROORRRROORORORRRORROOROOOOROOORRRRRORRRORORRORRRRRRORORORRRRRORROROOOOOOOOOROOOORORRRRRORROROOORORRRROROROOOORROORORROORRROOORRRRROROOOOROROORRORRORORROROOOOOORORRROROROOOROROORROOROOROROROORROOROOOORRRRORRRRROROROOOOORRRRROORRROORORORROROOOORORROOOOOOOOROOOORRROROOOROROROROORRROOORORRROOOORORRROORRORRRROORROOORORROROORROOROROORORROORORRORORRROOROROOOROOOOORORORRRRORORRRROOOROORRROROOORRRRRORROROOOORRROOOORROROORRROOROORROOOOROOROORRROORRRROOROOOROOOROROOROROOOROORORRORRRRROOOROROORRROROOOOROROOOOOROOROORORRROOOOOOROROROOORRROOORRRRRORORROORRROOROOOOOROOROROOROOOOOORORORRORORRRROROOORORRROOOOROROOOOOOOROOOOOORORORRRORRROOOOROORRROOROROROROORORRORORRROROORORROROOROOOOORORRRORRORRRRORORRRROROROOOROOOORROROORRORRORROROOORORRROROROROORROORRRORRORORORORRORROORRROOORORRORROORORORRRRRRROROROOOOOROOOOOROOORROOOOOOROORROOORORRRROOOROROROORRRORRRROORRRROOOOOOORRRRORORRRRRORRORRRRORROOORRROORORROROORROOOOORRRRROORRRRRORORORROOOOROORRRORRORROOORORROORROORRORORRROROOROOOOOOROOOOORROROORORRRROOOORROOOORRRROOORROROORROORRRROOOROORRROROORRROORROOOORRORROOORRRORROROOORORRRORRROOROOORRROOROOOOORRROORRORRRRROROOORRORRRRRROOOOOOORORRRRROORROOOROORRORRORORRROORORROOROROORRROOOROOOOORRORROOOORROOORROOOORORORRRROOOOOROORROOROOOROOORRRROROOROOOOORROOROOOOORRRROOOOOORROOOOOORRRRROOROROROOROOORRROORORRROOOOOOOOORRRROROORRROROOORRRORORORRRROOOROOROORRORRROOORROOOORORRORROROOOROROORRRORORROROROOROOORROOROROORROOROOORRRRRRORRROORROROORROOROOOORRROROORORRORRRORRRRRORRORRROOOORRORORORROORORORRRRROOOROOORORROROOOOROROOROOROOROROROROROROORRRORORRORRROOOORROORRROROROOOOORORRROROOROROROOOROOOOOOROORRRORORROOOOROROOORRROOORRROOORORRRROROOORRROROROOOORROROORROROOOOORRROOROORRRROROORRROOOOOROROROOOOORORRRRROROORRORRRORORRORROOORORORRORROOORROOROORRORRRORRROOORORRROORRROROROOOOOOROORROROOOROORROOOOOOOOROOOORORRRROOOORRORRRRROOORRROOOORRRRORORRROROORRORRORORORRROOORRORROOOOOOROOORORRROOOOROOROROORORORORORRORORRRRRROORRROORRORRROROOOOROOOOROOOOROROOROOORORROROOORRORRROOOROROOOOROORRRRORROOORROOOOORRROROOORRROOOOOOOOOORRRROOORRRRROORRROOOORRROROROROOOOORRORROORRRROOORRRRRROROOOORRRORROOOORROORORORRORRRRORORRRRROORORORORRROOOOROOROORORRRRRRROOOOOOOORORRROOOORROOOORORRORROORROOORROOROOORRORRROORORROORORROROROOORROOOOOOROORRRRORRROOOOOOORORORROROROROOOROORRRRRROOORRRORROORORRRROROROORRORRORRRRORRROORRRROOOOOROOORRORROROORRORRRRRORRORRROORROOOOORROOROROOROOROOOORROROOOOORRRRORROORROOOORROORRRRORRROOORRORRRRROORORRRRROORORROOROOORROROOROOROROROOOOORROORRRORORROROROORORORORRROOOROORRRRRORORRORROROOOORORROROOORROROORORROROROOOORRROOORORROOROROOORORROOOROROROOOOORROORORROORRROROOOOORORROOORRRORRRORRRROORRROROOORRORROOOROOROOROOOOOOORROROORRORRRRORORROROROOORROORRRRORORRROORROORORRRROROOOROROOROOORORROOOOOOOORORROORRRORRRROROORORRROOORORORRRRRORRRRRRRRRRRROROORORROROORORRRRRRORROROOOOOORRRORROROOOROORROORORROORRROOOROOORROORRORRROORRRRORRROOOORRRORRRRRORROOROOORRORRRROOORRRRROOROOOOROOORROOOOOORRORORRORROOOOORRROOOOROOOOROROOROOOOORRRROOORROOORRROROROROOORRRRORORROROOOOORRROOORORRRRRORRORRORROROOORROOROROROOOORORRORRRROOOOROROOOORRROROROOOOOOOOROORORRRORRRROOOOOORRORORRROOOROROORRORORRORORORROORROOROROROOORRORRRRRROORRRRORORROOOOOOROOOOOORORROROROOOOORORROOOORRRRROOOROOOOOOORORRRRORORROORRRRRRRRRORORRRROORROROOROORRRORRORRRORRROOOOOORROROROORORROROOROOROROOORRROOOOORORROORROROORROOORRROOOOOORRROORROOOOOORRRRRROOROORRROOOROORRRROOORROROOROOORROROORORRRROORRORORROOOORRROOOOOROROROOROOOROOOOROORRRORROOORORRRRORORRRORRROORROORORORROORORRROOOORRROOROROOROROOOOOORROROOROROORRORORRRROOROORROOOROOOOOORROOOOOROROOOOORRRRRROOROOOORRRROORROOORRRROOOOOOOOOROORROOROOORROOORRRRRROOOOORRROOOOOORRROOOROROOROOOOORRROORRROOORRORRORORRRROORRROOOROOOOOOOORRORORRRRORRRROOOORRROROORRROOORROROOORORRORORRRORROOORROOORRRRROORRRRORRROOROOOORRROOORRRRRROORRORRORROROOORRROROROROORORROOOOORROOROOROROORROOOORORROOROROORROROORRRRORRORRROOORRORORRRROOROORRRRRRORROOROORRRRROROOROOOORRRRRRORRRRROORRRRRRRRORORRRROOROOROOOROORORRRRRRROORROOORROOOOOOORRORRROOOOOOORRRORORRRRROROROROOORROOORRRROOROROROORORRRRORORORORRROOROORRORROORROROOROOOORORRRRORORORROOOROROORROOOORRRORROORRROORRRROOOOROOOOORROOROOOROOOROOOROORRROOROOORRRROOOOOOOORRRROOOORRRROOROOOROORRRROROROROOROROOOOOORROROROOORROOROOOOROROORORORORROOOORORRRORRRROOOROROROOOORORRORORORORRRORROROROOOOROROROOOOROOOOOOOOOOROOOOROROROROOOORORROOORORRROOOOORRRROOOORORROORRRROORORRORROOORORROOOOORROROOROOORROROOOOOROORROORRROOROOROROROROOOORRRRROOOOORRORORROROROOOORORORORRRRROOORROORRRRROROOORROROOOOOOROORRRRROOOOOOOOORRRORORRRRRROORRORRORRRRROOOOOROOORRRORRORRRRRROORROROORRORORRROOOOORRRORROROOOROROOOORORRORROORROOROOOORRROOOORORRRORROROORRORORROOOOROORROROOOROROOROOORROORRORRRROOOROROOOOOOROORORORROORRRORRRROORORROROROORRRRORRORORRORRRRRROOROORRORRRORROOOOORORORRORRRRROOORRORRORRROOORRROORORROOROORROOOOORRORRRROOROORRRRRRRORROORORORRORRRRRROROOOOORORRRROROROOOROORRRRRRROORRRRORRORROROOORROORRORRORROOOOOROOOOOROOOROROOORRORORRRROROROORRRRRRROORORROOOOROROORROORORORRORROROORORROOROORROOOOOROOOOROORRRORORRROOOROROORRRORRROOORROOROOOORRRROORORROOOOOROORRORROORORORORRORORROROROROOROROOOORRRROROROORORROROROOOORRROOOORROORORRRRORORRORRRRROOOOROOORRORORRRORRORRRRROROORORRRRRROOROROROORRRRORORROOOROOOOOROORRRROOOOROOROROOOOORORORRROOROOROOOORRRRORRRRROOOOORORROOROOORRROOORORROROOROOORRROOOOORORORROOORRORRRORORRROOROROOOORORRRORRRORROROOOORRRROOROORRROROORRRRRROROROROROOROORORORROOOORROROORORORORRRRRROOOOROROOORRRROOORROORRRORRRORRRROOROOORROORRROOROROOOOOORORRORRROOORRRRRORROOOORORRRRORRRRROOOORROOROORRRROOORRORROROOROROROROORRRROROOROROOROROOOOROROOOOROOOOOROORRRRROOOOOORRRROORRRORRRORORRRORORROOORRROOOOOROORORRRRORORROORROROROOORRROROOORORRRRROROORRORORRRORRRRRROROROOOROOROOORRORORORRRORRORROOOROROORRROOOROROOOOOORORROOOORRRRROOOOOORROROORORORROORRRROOROROOORRRRROROORROOROORRRORROOOOOORRROOOOOROROORORRROOROROOORORORORORORORRRRORRRRRRROOOORORRRORRRROROOOOOOOOOOORORROOOROROORROORORRRROOORRRRORRORRROORRROOROOOORROORRROOORORROOROOORROROROOORRRRRORRORORRRORORRRROORROORRRROOROOORORROORORRORRORORRORRORROOOOORROROOORORROOROOOROOOOORRRROOORRROROROOOOOROOORROORROOOOOOROROORROOORRROOORORRORROROOORRRROOOROROOOOOOOOROROROOROOOROOROORRORRORORORORORROORORRROORRRRRORRROROOOORROOOOOORORRORORRRRRROORRROOOROORRRROOOOROOOOROOROOROROORRROROOOOOOROROOOROROROORRROOOROOROORRROOORROORRROROOORORRROORRROOROORRORROORORRRRORROORRROOROROORRRROOROORORROORRORRRRRROOOOORROORRRRROOROORRROOOOORRORORORRRROOOOOORRRROOORRROOOROOOROOOOOORORORORRRROOOROORROORROORROROROOORRRORROROOROROOOROOOROORROOROOROORRRRRRROROORORRRROROOROROOORORROORRORRROOOORRORRORORRRRRORRORRRORRRORRRRRORRROROOOORORRRRRORORRORRROOROOOOORROORROROOROOROOOOOOOROROROROOOOOROORROOOORRROOORORRORRRRRROOOORORROROROOROORRRROORROOROORRROORROROORORORORRRRROOORRRROOOROROOOORRRRROORRORRORROOROOROROOORROOOOOROOOROOOORRRROOROORROROOROROOORORRRROOOOOOOOORORORRORORRRROOOOROOROORRROOOORORRORRRRORRRROOOORRRROOROORRROOROOORROROOOOOROROORROOORRORROOOORORROOORRRROROORROROROORROORRROOORORORORROOOROORROOOROOORROOORRRROORRRRROOOORROOORRROOORRROOROOORRORROOORRROOORRRRROOOOOORRRORORRRROOORORORORRORRRRROOOORROORRORRROOORROOOROORRRRRROOOROOOOOORRORORROOORRRRORRORROOOORORORRORRROOOOORRORROOROORORROORRRORRRRROOORRRRORROOORORRRORORRORRORRRROORORROORORROROOOOROOORRORRRRRRROROOOOROROOOORORRORORRORRORRORROORRROOOOROOOORROORRRRRRRORROROROOROROOOORROOROOROOROOROORORRRRROROORROORORRROORRRRORRRORRORRORROROORROOROORORRORRORROORORRROOROOORORORROORRORORRRRRRRRORROROOOROOROORORROROOOOORRORROOROOROROOOOORRRORRRROOOOROOOOOROORRRORORRRRRRRRRRRRORRRROORORRRRRRRORORRRRORROOROOOOORROORRRRRRORRRROROORRRROORRRRRRRROOROOROOOOOROORRRORROOORRRRRRRROORRORORRRRROORROORROROOROOROORRRRRORORRORROOOORROROORROOOOOROOOORRRORRORORORORRRRRRRRORROORRRORRRRRRROOOORORRRRORRORROROROOOROOROOORRROOROOOORROROOROROOOORORRRROORROOOOROROORRORRROROROROROOROROORRRRROORRROOOOOOROORROORRROOORROOOOORRORRROROROOORRORORRROROORRROROOROROOOOORRROOROOROORROOOROROOOORROORRRORRORORORRRRRROOOOROORORROOOOOORRORROROOROOROOORROROOOOORRRRRORRORRRROORROROROOROORRRORORRORRORORROROROOOOROOORRORROORROOOOOOOROOOOROROOROROORORROORRROOOORRRROROORROROOORRRROROOROORRROORRRRORORRORROORORROOORROOOOROROOROORORRRRRRORRRROOORRROOOROORORORRORRORRRROROORROOROOOROORROORROROOOOOOOROOOROOORORRROOOOORROOORROOORRRROOORRROOOROOORRROORRRORRRORORROOROOROOOOORRRRORORRRRORRRRROROROOOOOOROROOROROOOOOOORRRRRRORORORORRRRORORORRRORRROOOOOOOROOOOORROROROOOORRROOROROROORRRROROROOORORRRORRRRROORROORRRROORRORORORROROOOOOOOORRORROOROOORRROROOOORROORRROROOROROOORROOOOOOOORROOROROOOOOORRORRRORROOROROROOORRRROORORORORRRRROOROOOORROROROORRROORROORRORROOOOOORORROORRORRORROORORORRORRROROOOOROOOORORRORROOOOROOROROORROROROOROROOROOOOOORRROOOOROROROORROORORRRORRRROOOROOORORRRORRRORRRRRRRORRORRORRRROROROORORRRRORORRORORROROOOOOROORROOOORRRRROOOOOOOROROOOOORROOOOORRRRRRROOORROOORROROROROOORRROOOORORROOORORORORRRRRORRROOORRROORORRROOOOROOROOOOOOROOOOOROORRRRRRRROOOROOORRROORRROOORROOOORORRORRRROOORRORORRORRRROORRRROROORORRORRROROOOROOOROORRRRROROOROROORRORORORORROOOORROROORRROORROOORORRROORRORORORRROROOROORRORRRRRORRRORRROOORRRRROOOROROOORRORRORRORRORROOOOROORORRORROOOOORROORRORRRRRORORRORRRRRORORRRROORORROORORROORRRROROOROOOROOOORROORORROORRROROOORORRROOORRRORROOROORORRORROOORRRRRRROOOOOOROOOOOORRRRRRORORRORRORROOOROROOROOORRORRORRROOROORORRORRRRORRRROOOOORRRRRRROROROOOORRORRROOROOOOORRORROOORROOORRROROOROOOROORRRORRROORRRRROOOOORRROORRRROOOOOORRORORRORROOOOROOOORROROOORRRRORROOOOORRROOORRROOOOOORRROOORORROOOROOROOORRRROOOROOOOORRROROOORORRRORORROORRROORRRRORRRRORRROROROOOORROROOROOOOOROOROORROROOORORRRORRORORRRORRORORROORORORORORROOOOORROORORROOROORRROOORRRROORRROOORORORROROOORRORORRRRRRROOROORRORROORORROOOOROROORORROROOORROROORORRRROORROROOOOOROOOORRRROORRROOROROROOORORORORRROORORROORROROOORORORORORRRRRORRRORROOOROORORORORRRROROORROROOOOOOORROOOROOORORRRRRORRORRROORRROOROROROOORRORRORRRORRROROROOROROOOORROROOROOOROORORROORROOOOOORROROOOORROORRRORRRROROORROROROORROOORRROROORORRROROOOROOOOROORROOOORROORRRRRROROOOROORROOORRORRRRORRRORRORRROROOORRORRROORRROROOOOOOOOORORRORRRRRRORROOROORROOOROROROOROOOROOROORRORORROROOOROROOOOORRROORORRRORORRRROORRORRRRROOORRORORRRRROORROORRRRRRORRORRRRROROOORRRRROROOOROORORRRRROOOROOOORRRRRROOOORRRRRRRORRRRROOOORRROOOROORRRRORRRRRRRRRRRROORROROORRRRORRRRROOOOOOOROOROROORRRROORORRRRORROROROOROOOROORORROROROOOOROOORRRROOOROROROOOOROROOOOORRRROROORROOOORROORRRRRROROOORRORRRRROOROORRRRROOORRORRRRROORORORRORRROOOOROOROROORROOOOORRORRRROORORORORROOORRRORORORORRORRORRRROORRROORRRORRROOOOROROOOOROOROOOOOROOOOOOORROOOROOOORROORROOORRRRROOOORORROORROOORRRROOOORROOROOOORRRROROROORRRRRRRRROOORORORRROOROOROOOORRRRRRRORROORROOOROORRRRROOORRRRORRORRRRRORRRORORORRRROROROOROOOROOROOOOOORORRRROROORROORRRRRORRRORORORORRRORRORRRORROOROOOOROORRRORORRRRROOOROOORROOOROOORORRRRROROORORORORORORROOROOORROOROOROOOORORRROORRORRROORROORORRRROROROROOOOORORRRRRROORRRORRRRRRRRORRROOOORORRORROORROROOROOOOOOOROORORORORROORRROROORRRROOORRRORROOOOROROORROROORRRRRRROOROORROROROOOROROOROOOROOROORRRORORRROOORRROOROROOOOOORRORRORRRRRRRRROORRROORROOOORRROOROOOOOROOROOROOROOOROOOROROOORROOORRORORORROOORRROROORORRROORRROOOOROROROORRRROROOORORRROROORROOORRROOORRORROORROOOROORRORROROOOOOORRRRROORRRROOORRROROORORRROOORORRORROORORRROORORRROORROOROROOOORORRROOOOOROORRORRROORORRRROOROOOORORORRRROOOORORROORRORROROOOORROORRRRRROROOROOORRORORRRRORORROOROORRRRORRRROOOOOOOROOOOROROOORORRORRRRRRRRORRROOORRROORROOORRORRRORRORROROOROOOROORRROROROORRRROORORRROOOOOOROOORROOOORORRRORRROOOOOORROORROOOROOORRROROORRORRROOOOOOOROORRROORORROOOORRORORROOORRRRRROORORRRROORRRRRRRORROROOORORROROOOROOOORRORRORRRRRROROROOROOORRROOORRRRRRRROOROORORROOOROORRORORORROOROOROROORROOOORROOOROOOOROOOORROROOOOOOOORORROROROOOOROOORRRRRORORROOOROOOOOORROOOORORRRRRRROOORROOORRROORORROROOORROROOROOOORROOOROOOOOOROOOORRRROORRROORRRRRORRROOORRRRROROORRROOROROORRORRORRORRRRRROROORRORROOOROROORORORROOROOORORRRORRRROORRROROOORORROOOROROOOOOORRRRRORRORROOORRRRRORROORRRROOOOOORRRRRORROOOOOORRORRROROORRRRRRORRRRRORORORRORROOROOOORRRORROROOROOOOORORROOROROOOOROOROROOOORRRROOOROROORRROOOORROORRRROORRRRRRROORROORORROOOROROOROORROROOOOOOOROOOOOOOORROROOOROOROOORRROROROOORRRROOOOOROOOOORRORORRRROROOORROOOORRORROOOORRORRORRORORRROOORRRORROORORRROROOOOROORORROORRRRRRORRROORROROOORRROORORROOOOOOORORRROROORROOOORROOOORRROOOOOOROROORROOOOOROOOOOORRRRRRORRROOORORORROOOROOORORORRORRRORROROROOOOROOOORRRROROROORROORROROOOOORORORRRORRORROORRRROROORRRRROOORROOOOORRRRRRORRRRRORRRORRORRROROOORRRRRRRORRORROOOROOOORRRRROROROOOORORRRRROOROROOOORRORRORRORRROOOOOORORROOOROROROORROOOOOROOROORRROROOORRRROROORRRROORORRROOORORRRRRRORROORRROROORRRRORORRROROOOOROOOORORROOOOROORORRRORROORROOOORORROOROROROOOOROORORROOOOOROROOOROROROROROOOROROOOOORRRROOORRRORRRRROROOOROROOOROOOOOROOOROOORRORRORRROOORORROOORRRORRROROOORORROORORRRORROROROOORROROORRRRRORORROOROOORORRRORORRRORORRORRROOOOORRORRRRORRROROOROORROORROROROOOOOROOROOORORRRROROORRRRRRRRROORORRRRORORRRRRRROROOOROORORRROORRRROROOOOOOROORORRRORORROROORRORROORORORORRORORROROOOOORRRORORRORRROROORRROROORROOORRRORORRROOOOOOROOOOOOROROORRROORRROOROOORRRORROORRROOORRRRORRRRRROORORRORROROROORORORRRROOROOOOORROOROORRROORRRRRRRROROROOORRROORRRRRORROOOORORRORRRROROOOOOORROROORRRRROOOOROORORROOORRRORROROROORROORRROROOOOROORORROOROOORROOOROROOOOOORRRORROROOORRORORRRROOROROROROROORRRROROOORORROOROOORORRROORROORRRRRORRRRRRRROORRROROROOORROROOROORORRORRORRRRRRRRORRROORORRORRROOOOOOORRRROROORORRORRROORORRROROROROORROOOORROOORRORRRORRROROOOOROOOROROROOROROOROORORROROOORROORRRROOOORROORORRRORORRORRRRROOOOOROROROORROROOROOROORRORROOORRROROOOOROOOROROORROOOROOROROOORORRORRRROROOORRORORORRROOORRRORROOOOOORROOOOOORORRROORRRRRRROOROROROORORRROOOOORROOOROORRORORORRROOOORROROORORROOOROROORRRROOROOOOOOOORRROROORROORROORRRRROORRRROOOOROOOOORROOOROROOROORORORRORROOOORRROOORRROROOOROOOORORRRRRROOORROOORRORRORORORRROOOOROORROOOROOOROORROROORRRRROOORROOOOORRORRROROROROOOROOOOOROOROROOROORRRRROORRRROOOROOORROOOOORRRROOROOORORRORRROORRROOORRROORROROOOORROORORROOOROROOOROOROOOORORORORRRORORRRORORRROORORRROOOROOOOOOROOROOOORORRORRRROROORRRROOOOROORROOORROOOOROORRROOOOOOOOORROOOOORRROOORROOOROOORRRORRROOOORRRRRRRROORROOOOORRROOOROOORRRORRORROOOOROORRROOROROROROROORORROOORORORRRORROOOOOOOOROORRRROOORRRROROOROROOOROOORROOOROORRROORROOOOROOROROOORRROROROOORRORORROOOORRRRRORORORRROROOOOROORORRRRROOROOROROOOROORRRROOOOORORRRRRRROROROOORRRROOOOOORORORRORROOOOORORORORROROROROOOOROORORROOORRROOORRRRRRROROORRRORORRRRORORROOOOROOROOROOOOROOORRROROOOOOROROOOORRORRROOORORRRRROORRORORRRROORRRRORROOORRORROORRRRROROORRROOROOROOOROROOOOOOROOOORRRORRORRORORRRROOORRROOORRRROOROOOOROORROORRRROOOOOOORRORROOROOOORORROROOROOOORRROROOROROROORRROOROOOORROROROOOOROORORRRROORRROORRROORROROOOOROOOROOROOROOOOORROORRRRROOROROOOROORROOORRROOOOORROOOROROOOOROOORRORRRORORORORRROOORORRRRRRROOOOOROOORORRRRRORRRROROORRORRROOORRROROROORRORORROROOOOOORRORORRROROOOORRRROROOOROROOOORRORRRRRRORRROOOOOOOROROOROOOOROOOOOORRRORRRROOOORROOOROOORRRROOOOOROORRORROROOORORORRROORORROOORRROOROOORROOOROOROOROOORROROOROORRORRRORRRORROORRRROORORORORRORROOROOROOROOORRORORORROROORROOROROORROOORROORORRRRROROORRORORRROOOOOORROOOROORROORROOROOOORRORORORORRROOOOORROROORRRRROROOROOOOROOOOORORRROROOOROORROORORRROOOORRROOORROROOORROOOOOORORROROROORRORORROOORRRRRRRROOOROORROROROORROROROROROOROOROORROOOOORORORROOOOROORROOROOORRRROOOROROROROOORRORRRRRORRRORRORRRROOORROORRRORRRRRROOOOORRORORORRROOROROOOORORORROOOOROORROORROROROOORORORORRRROOORROOOOROORORORORRRROOOORRRRROOROROOOOORRORRRROORROOOOOOOOOORROORORRRORRORROORRORROOORRROOOOOORRRORRRRROORORROORORORRORORRRROORORRORROROOOORRORRORRROOORORRROROORROROORRROROROOROORRROROORORRRORROOORORORRROOOORROOORORRRRRRRROOORROORROORRROOORRROOOOOOOORROOOROORRRROOORORORRRROOROROROOROROOOOOOOROROOOORRRRROORROROOOORROOOROOOOROROROOROROOOOOOORRORROOOROROROOOOROORRRROOORORROROORRRRRORRORORORRRRROROROOOROORRROROOOROORORRORRORRRROORORRROROROOORROROOORRRRRROOROROOOROROROOORRRORRROORORORRROROOROORROORRORROROORROORROOROOOROORRRRROOOOROOROOOOORROOROOOROOOROOROROOOROROOOROROORORRRRRROOROOOORORORROROROROOOORRORRORORROOORRORRORRRORRRRRROORRRRRROORORRROROOOROORROOOOOOOROOROORROOOOOOROOOROORROOORORORRRORRRORORROOOORROORROROROROOOOORRORORRRRROORORRRORRRROROORROOOOROOOOOORROORRORRRORROOOOOOORROORRROOOOOOROORRRROOROROROROORRRORROROOOORORRORROOOOOOROOOOROOROORROOORRRORRROROROROROOORROOOORROORORRORRRRRORROOROROROOROOOROORROOORRORRRRORRORORRRRORRROOORROORRRRROROORRROORRORROOROROROROROOROORROORORRRORROROROOROORROORRRROOOORRORRORROOOOROOOORRROOOOORRROORROORRORRROOROROOROORROORROROOOOORROROORROORRROORROROROOROOORRROROROROORROROOOROROOOORRROOOOORROORRORRRRORORRROROROOROORRROORRROROOROOORORROROOROROOOROOROROOOROROROROOROOORROROOOROORROOORRROORROOORRORORROORROORRRRROOOROOOOOORRROROOOROROORRRORROOOORORRROORRRRORRRRRORORORRRRROOORROOROROORORORRORRRROROORORROOROOOROROORORRORRRRROOOORORRORORRRROOORRRROORRORORRROOOOROOORRRRORRRORRRROORRRRORROOORORRROROORRORRORRORORRORRRORORRRORRROROOROROOOOORRRRRROORRORRORRORRORORRRROORORROROORRRORROROOROORROOROORORRRROOORRORORROORRROOOOOROORRROOROOORRORROORORRRORORRRRROORROOORRROROOOORROROORRRORRORROROOORROOROOORRRRORRRORROOROOORROOOROORROOROOROOOOROORORRRROORORORRROROROOOROORORRRORRRRRROORROOROOORRROOORORRRORRRRRRORRROROROOROOROOOOROROORRORRROOOOOOORROOROROORROORROOROOOORORORRRRORRRRRRROOROROROROOOOROORORRORRROOOOOOOORRROORRRROOOORRORRRORRROOORORRRRRROOOOOORORROROOROORRORORRRRRRRRORRROOORRORROOOOOROOOOROROORORORROROROOOROOOORRROROROORORORROOROROORRROORRROOOORORRRORRRRRROOROOORORROOROOORRRRORORRORRORROORRRRRORRROORRRROOORORROOROORORORRORRORROOOOORRROOOROORRROOROOROOOOORORRROOOOORRROOORORRROOOOORRRORORRORORRORRORORROORRROOORRROROOORORRROROOROOOOOOOOOOORRORRRRRORRRRROOORROOROOORROOOROOOORROROORRRROOOOROORRRORRROORRRRORRRRORRORORORROOOOOOOOOORRRRRROORROORROROOOOOOORRROORRORROOOORRORORROORRORRROOOOOROOORROOORRORORROROOORRORRROOORRRRORRROOOORORROROOOROOOOOORORROORRORROOORROORROOOROROROROOORRRORRROOORRRROOORRRORRROROOROOROOOOROROOOOOOORRORORROROORROOOOROROORRROOORRRROORRRRORORROROOOORROOROOORROROOOROOROROROOOOORRRRROORRRORORORORRRROORROOOORROOOROROROROOORROOOOROROOROORROROROORROROOORROOOORROOORROOOOOOROOOROOOORROORRROORRROOOORRORRRROOOOOOOROOORRRROOROROROOOOROORORORRROOOORRORRRRRRORRROOORORROORROROOORRRROROORORRORRROORROROROOOORRORROOROROROORRORRRORRROORROOOORRRROOROOROROOROORORRRROOROROOROORROORRRRORRRROORRORRORROORRRRRRRROOROOOROOROROORRROOROROORRRRRRRORORORROORROOROORRRROROOROOOOOORORRORRRORRRORRRRRRRRRROOORROOOOORRRRRRRORRROROOOORORRROORORORRRRRRORROOOORRROOORORROROORROOOOROORRROOOROOROROROORORROOROOORRORRRRROROOOOORORRRORRRROORRROOOOOOOOORORORORRORRORRORRRORORRROOORRRORROOROOOROOOOROOROOOROORRRORRRORRROROROOOOOOORROOORRRORRORROROORRRRORRORORORROOOOROOORRORRRRRRRRRROORROORROROORROORROROORRORRORRRRORRRROROORROROORRRROROOOOOORROROORROOROOROROOOOORRRRORORORROOROOOORROOOROROROROOROOOOOROORROOORRRRRRRRROROOOOROROROOOORORRRORRORRORROROOOROORRORRRORROOROOOOORROORROOORRROORORRROOROROORRROORORORRROROORRORROORRRROOOROORRRRRRRROROOOROROORORROOROROOORRORRORROOORRROORROROORORRRROOOOOOORRRRROORRROORRROORORRRROORROOORORRRRRORRORORRROORRRRRRORRROROOOOROORORRRRORROOOORORRRORROOROORROORORROORRORROOOOOOOOORORORORRROORRRROORRRRROOORRORORROROORRORORRRRROORORROOOORRRRORRRROORORROOROORRORRORORRRRRRRORRROROOORRROROROROORRROORRORRROORORROOROORRRRRORRRRRROOROORROROOOORRRRORRORRRORRORRRRRROOOOROROROOORORRRRRRROORRORROROOORROOOOORRRRRORRORROOOOROORRROOOORORORRORRRRORRROOORRRRORORRROORORRRRRROORORRROOORROOROOOOORRRRRORROORRRRRRORORORRROOORRROROOROROORRRRRRRRORRRORRROOOORRRROOORRRORRORRROROOROORROOORRORRROROOROORORROROORORORROOROORRROROOOOORROOROROORORRRRRROROROORRRROOORROOOORRROROORRORRROOORRORROORROROROOROOROOOOOOROOORRORROOOROROOOORRORROOOOORROOOROROORRROROOOROROOOOOORRRORRROORROOROOROORRRROROORRROOOOROOOOROOROOORRRRRORRROROORRROOORRROORRORORRRRRRROROROOOROOROROOOORRRRORRRRRRORORRRRRORRROOORRRORROROOROOOOORORROROOOORRROOROROOROOORRROOOROROOROROOOOORRRRRRROOOOROOORRRROOOROOORRRRORROORROROROOORROROOOROOORROROOOORRRRROROOOOROOOORORRRRORROROROOROOOROOORORORRRRROROORROOOORRRORROORROORRRORRRRROOOOORRROROORRRROORORRRRROOROORORRRRRRROROOOROOORROOROORRRRRRRORRORROORRROORRRRRROORRORRORROOORORRRRORRROOROOROROOROROROORORRORRORRORROOOOROROOOROORRORROORORRRORRRROOOROOOOORRORORRRRRROOOOOORRRORORROOOORROORORRRORROOORRORROROOOROROOOROOOOROORROOORRRRORORRRROROORRORRROORROOORRRORRORRRRROROOROORRORRRRROOOROORRRORRORRROOOOORRORRRRRROOORORRROROORRORROORRRRRRORROORRROOROORROOOOOOORRORRORROOOOOROORRRRRORRROROOOOOOROOOOOOORRRRROORROROROROOORRROORRRRROOOROORORORRORROORRROORRROROOROOOROOOOROORRRORORROOOROOOORRRROORORORROOOROOOOROOORORRROOROOOROOOOROOORROROROOROORRORRROOOOROROROOOOROOROORORRROORRORROOORORRRROOORRORRROROOOOOROOORRROORORRORRORROOROOOOOORRRRRORROROOOROOROOOORRRRORRROOOOOOOROORROOOORROORRORROROORRROORRROOROORRROOROOOOORORRROORORRRRROOOORRORRRRROORORRRRRRRROORORROOOORROORRORRRORORORRORROORORROROOOOORROROROOOOOORORROROOROORROOORRRORROORROORROROORROROROORORROOROROOOROROORORRROOORORRROOOROROOROROROORRRRRROROROOORROOOROROROOORRROOROOOOORRRROROORROORROOORRRROROROORRRORRRRRROOROROOORORROROROROROORRRRRRRRRORRRROOOORORRROROOOOOROOOOOOORRRRRRRROROROORORRRRROORRROOOOROOROORRORRORORROOROOROROORROOOOORRRRRRORRRRROROROROOOOROOORRROOOORORRRROOOORORRRRORRRROOOOORROORORRORRROOOOOOOORRORRROOOROORRRRORRROOORRRROROORRRRRRORROOOOORRRRRROOORRRRORORROORROOROROOOROORORROOROOROORRORRRRRROROOORROOROOROROOOOORROROORRORRRROOORRRORORRORORORRORORRORRROROOOROOROOROORRRRRORROOROOOOOORORRROORORORORRORRRRORORRROOOROROOROROORORROORROORORORROROORORRROROROORRORORRRROROOOROORRRRORROOROOOROROOORROROROOOORRRORRRRORROOOOOOORRRRRRRRRROOOORORRROOOOORRROOORORORRORRORORROROOOORRROOOOORROORORROORRROORORORRRRRRRROOORRROORRORRRRRROORRROOROOROORROROORRRROOROOROORRORROORRRORROROOORORROOOORRROORORRRORRRRORRORORRORROOOROOROROOOROOOOROROORRRROROOROROOORRRROOOOOOORORRRROORORRROROOOOOOOOORORRROORROOOORROOROOOOORRROOOOROROORRRROROROORORRRROROOROORRRROROORROROOROOOORRORRRROOORRORROORORROROROOORRRRROOROOORROOOOOOORROROOOOORROORROOORRROROOORROOOOOOORROOOOOOROORRRRRROOORRROOORROOROROOORRROROOROOORRROORORRORRRRROROROROROOOROOOROORRRORROOOOOORROOORORRRORRROOOROORORRROOOORROOORRORRRROROOORROOROORRORORORRROORORRORORRROORRRRRRORRRROROOROROROORRRORRORRRRRRRRORROOROROORRRROORRORRRORRORROROROOORORROOROORROORROORRORRROORRROOOOORRROROOOORRRROOOOROORROORORRRRORRORRROOOOOOORRRROROORRROOOORORROOROOOORRRRRORROORROOOORRROROOORROROOOOOOOORRROORRROOROORRRROORORRROOROOOROOROOOOORRORORRORRRROOORRRROOOROORRROOOROORRORRORRORORRROROROOORRORORROOOORRRRORRRRRORRRRORRORROOORROROROOROOORRORRRORROOOORORORORRRRRROOROOOOOROOOROORRROOOORRRRRRRRRRRROOORRROOORRRRROOORORROROROOROOORRRRRROOOOOROROOOOROROROOORRRRORROROROROORORRROOROOROOORRORROORROROOOORROROORRORRRROOOOOOROROORROOORORORRRRRROOROOOROOORORRROOORRRRORORRORORORRRORRROORROORRRORRRRRRRROORROORROORORORROOOOOOOOROOROORRORRRORRRRROROORRRRROOOROROOOOORRORRROOROOOOOROOROOOORORRORRRORRORROOORROOORROORROROOORRRRRRORRRRORRRRROOROOOORORROOOOOROORROOORRORRORRRRORORRORRRROOOORORRROORORROOOOROOROORRRRRROOOOOROOOROOOORROOROROOOROOROORRRROORROORROOOORRRRORORROOORROROORROOORROROOORORROOORROOOROROROORORORRRRROOORROROOOOORRRORRRROOROOROOROOOROORRROOORRROOOOOOOOOORROOROOOOORRRORORRRORORORORORORRRRRROOORRROROOROORROORRORORRRRORRORRRRRRROOOOORROORROROOOORROORRRORRORRORORORROOOOOORRROOROOOROOOOOROROOOORROROOOOROOROOORRRROROROOOOROOOOOOORROORRORORORRRRORROOOROROROOORROROORRROORRORRRORRRROROOROOOROOORORRORORRRRRRROOROOORROROROOORROOORROOOROORROROOORROROOOORROORRROROORROOOOOROROORORRORORROOORRRORORROORROORRROORRROORRRRRORRORORORRRORRRRRORORROROORROORRORROORRORROOROORROOOOROOOROROOOROOOROOROOOROROOORRRRROORORRROORRRORORROOOORROOOOOOORRRRRRRROROORRRRORORRROROROORRRRRORROROORRRORROOORROROOROROOROORROORRRORROORRRRORRROOOORORROOOORORROROORROOROOOROOORRRRORRRORROOROROROOORROROORRROROOOROOOROORROORRRRRORRRRRORRROOORROOORROOROOOROORORRROORRORROOOOOOOOOOROOORROOROORROOOORROROOROROROROOOROORRORRRORORORROOOORORORRRRORROOOOORROROOOORORROOOORORROORRORORRRORROOORROOROOORRRROORRRRROOOOOOROROROROROOORRORROOOOOOROROROROROOOROOOORRORRRRRROROROOORROOROORROROROOOOROORROROORROOOORORRRRRRORROOORROROORORORROOOORORORRORRRORORORORRRRRORORROOORROROORRORRROOOROROOROOROORORORROORRRRRRRRROROROOOORRRROORROOROOROORORRRROORRORRRORROROORORORRRRORROROORRRORRORRRROORRRRRORRORRRRROROROOORROOROOORROOORORROOROOOOOOOORRRRROOOORROOORROOROROROROOORROOROOOOORRORORORROORRRORORORORRROORRROOROORROORRRRRORROOROROORRRORROOROROORROOROOOROORROORRRORRRRRROROOOORRRORORORORROOORROOROOOOORRORORROROROOOORROOOROOORRRROROORROOROORROROROOROOROROOOOOORORROOOOOORROOROOORRRORRROOOORRORROOOORORROOOOROROOOROORRROOROORRRROORROOOORROOORRROOOOROOOORRRRORRRRRRORORRROOOROROROOOROOOOOOROOOOROORRORRRROROORROOOORRRRORRROOROROORRRORRROOROOOROROOOOOOOOROORORORROOOOOROOORROOOROROROOOOROOOOOORRRORROOOROROOORROORRROORRORRRORRRORRROOROOORROROOROOOORRRRRRORROOOOOROOORROOROROORROOROOROOROOORROOORRRRRROROROORRROROROROOORROOORRORRRRROOROROORORORRRROOOROROORORRORRRROROROORROORROROROOROROOOOOOROOROOOORRORRORRRROOOOOROROOORROOOORROOROORORRORROOORROORRRRRROOOOROROOOROOROROOORROOOOOOOOOROOOROORRROORROOOROROORROOORRORRRORRRORROOOOROOOOROROORRRROOOOOOROORRORRRRORORORROORROROOORRROORORROOOOROORRORRROOROORRRRRORRROOOORRRRROOOORORRROROROROORRORRROORRRRRRROOOORORRORROORRRRRROORRRRRROROOORROOROOOOOROOOOROOORROORROORRRROOOROROROORRRORROOOOOORROROORROOORORRORRRRRRRROORRROOOOROOROOOORRRRRORRORORROOOOOROOOROROOORORROORORRRROOROROORROOOROOROROOORRRORROOROROOOORROOORROROOOROROORRRORORRORORORORRRORRORRRORORORROROOROOOOROOOROORROOOROROOOORRRRROOROOOROOOROROROOORORRRORRORROROOORRROOORROOOORRRROROROORRORROOORROOORRORORRRRRRORRRROORRRRROOORORORROROOROOOORRORROROOROORROORROOOOOORROOOROORRRRRROORROROROORROOORRRRROORROOOOOOOOROOOORORRRROOOOROORORROOORROOORRROOOROOROOORORRROROOOOOROOOOOOOOOROOORORRROOROOOROROROOOOORRROOORRROOOROOORORORRROORRORORRORRORRORORROOOROOOOOOORORORRRRRRRRORRROROOORRRROOOORROORROROOOORORRRROROROROORRROOOOORRORRROOOOOOROROOORROOROORROORRRRORRROROOOOORORORROROOOORRRORROROOROOROROROOOORORROOOOROOROORRORROOORROORROOOOOOOROOOORRROORRRRRRRORRROORRROROOORRROOORORORRRRRRROROOORORRORRRORRROOOOOOOOROORORROOOROORORRORRORROOORRROORROOOOORRROOOORORROROORROOOOOROROROROROORRRROROOROORROROROORRRROROOOORRORRORROOOROORROROOOOOOORORORORRRRRRRROROOOROORORORORORRRROROORRRRRROORRROOOOOOOROOROOROROROOROOOOORRRRROORRRORRRORORRORROROOORROOROOORORROOOOOORROORROROOOROOOROOORROOOOORRROROOORROORRORRROORROOOOORRRORORROOOROOORROOROOOOORROOORORROROORRRRROOOOOROORROOROOORROOROROOOOOOORROORRRORROOOORRRRROOOORRROOOOOOOROORORROROROORROROOOROORROROROORRRROOORORRRRRROORRRROROROOOORROOOORRROOOOOORRROROORROORRRROORRRORROROROORRORORRRORROROOROOOOOOOORRROOOROROOOOOOOOOROROROROOROROOROROOORORORRROORROOOROROOOORORORROOORRROORORORROOOROOORRRORRRORRROOOOOROOOOROOORRROOOROOOOOOROOOORRRORORORRRORRRROOOOORORRROORRRRRORRRROOOOROORORRRROROORORRORRRRORRRROOORORORORRORORORRRORROORRRRRRRRORRORRORROORROORROOROOOOOROORRORRRORRRRRORROOOOORORRROOOOORRORROROORORRRRROOOROOOOOORORRROROORROOOOROOROOOOROROOOOROROORROOOOORRRORRRROOOROORRROOROOOROORRROORRRORROOORRROORROROROOOOROOOOORROROORORROORORRORRRROOOORRROROORRRORRRRRRORORORRORRORORRRRORRRRRROROROORRROROORROROOROORRRRRORROOORORRORRROOOOOORORRRRRRRRROROOOROORORROOORROROOOROORORRORROOOROROORRROOORORROOOORROOROROOORRRROOOOOORRORROROOOROROORROORORRORORORROORROROROROOROROROROOOOOROOOOOORRORRROROROOROOOOROROOROOORRROORRORRORRRROORROOOORROORROOROROOROROOOOOOOOOOORROORORRORORRRRROOOORORORRROOOOOORROOOORORRROORRRORRRROOROROROROOORRRRROROOORORRORRORORORORRROORRORROOORROORROROOROROOOOROOORROROORORRORORRORROORROOORRRROOROROOOORROORROOROOOORORORORROOOOOORRORROOOORRRRRROORROORROOOORORROROORROOOOOROORRRRRRORROORRRORRRRORROOORRRRORRORRORROOOOOOOROORORROOOROORRRRROOOROORRROOOROROROORRRRROORORORORORORRRROOOOOOROROOROORRORROORROOROOROOORRROORROOROROOOROOOOORRRROOORRROROROOOROOOORRROOORRRROROROROORROORROORRROOOORROORORORRRORRRORRORROORROROROORORRRORORROOROOROOOOORRORORRROOROORORRRROOOORROOOROOOOROOROORROOORRRRRROOROORRRROOOROOORROOROROOROOOOORROOORROROOOORRRRROOROOORRROOOROORORRORRROOOOOOORORRRORRORORROROOORORRORORORRROROORORRORORRORRROOROORROOOROOOROROORRRORORRRRORORORROOOORRROOOROROOROORROORORORRRORORRRRROOORORRRROROORRROORROORROORORROOOROROOOORORRORRROORRRROOROORRROOORRROOORROROORRRORROOOOOOROORRRORROOOROOOOORROROOOORRROORRRRRORROOROROROOORORRRROORROROORRROOROROOOOOROROOOROOROORORRRRORRROROROOOORORROOOORROOOORRROROOROORROOORRORROOORRROOORRRRRORORRRORORRRORROOORRRRROOROORRROROOOROOOOOORROOOOOOOORRRRORROROROROOORRORROROOORRRORRORRORRRRORRROOORRRRRRROOOROOOORORRRROROROORRRRRRRRRRRROOROOORORROROROROROOROOORRORRRRRORORROORROOOORORRRRROOOOOORRORRROOOORROROROORRORROOROROROORRRROOORRRRORRRRORRROORROORRORRRRRROOROORRRRRRROOOORRORORRORROROORRRRRORRRORROOORRORROORRORRRRORORRORRRRRORRROROOOOOOORORROROORROOOOOOOOROOOROROOOORROOROROROORRRROOORRROROOOOORRRROOOORRROORORROORORROORRORORRORORORRORRRRRRROOOOROOOORORRRRRRRORORRRROOROORRRROOOORRORRORRORROOOOORORORRRRRRRRORORRRROOROROROROROORRRRRRRROORROOROORRRORORRRROOOOOOOOORORORROORROOROROOOOOOOORORORORRORRRRRRRRRORRRRRROOORORORRRRROROORROOROORROROORORRROOOROOROOORORROROOOOORROORRRRRROOOOROROROOORRRROOORROORRORROROOORROORRRRRORRRROOORROORORRROROROOOROOROORRORRORRORRROROORORRROORROOOORORRRRORROOROOOORROROORRRRROOORORRROOOOORRROOOROROOORRORROORROOORORORORRORORROORROORORROOOOOOORORRROOROROORORROOORORRROOOORRROOROOOOROOORRRRROOOOOOOORRROROOORRORORRROOROOOORRROOORRRROORRORROORROROROORRROROROROOOOORORRRRROOOORORRORRORRROROROOOORORRORROOORROROROORRORRORROROROOOORRORORRRROROOORRORRROORROORRROORORORRORRRRRRORRORROOOOORRORRROOOORROORROORORROOORRROORROORRRROOOOOORROOOOOOORORROOROORRRRRRRORRROORORRROORROOORRRROORRORRRORROROROOROOOROOORROOROROOROROOOOORORRROROOOORROOORRORROOORORORORRRRRORRROOROROROORROOOORORRROOROOORRORORROORRROOROOOORORROOOROORROROOOOOROORORROROOOOROORRORRRRROORRROROROOOROORRROORROROROOROOOROOOOOROOOOOOROORRORRROORRRRORORORORROROROROOOOOOROORRORRORROOROOOOORORRRRROOORRORROROOOROORROOORRORRORRRRROORRRRROOORROOOOORRORORROOROOOOORROOROROROOORRORROORROROROORRRORRROOORROORROROOOOROOORORORROROOOOORRORORROOOOORROOOOORORROOORORORROORROOORRRORROORROROOORORRRRORRRORRROORORROROORORORORRRRRRRORROOROORRRORROOORORRRRORRRRRRROORRROOROORRRROOOOROOOOOOOOROORRROROROOOROOROOORRRORORORORRROORRRROROROOORRROORROORROOOROORRRRRRROROOORRRRRORROOOORRRORORRRORRORRROOORRORRORORRRRROROORORRRRRRORRRRORROORROORORROOORRORROROORRRRRRRORORROOROORRROOOOROROOORRORRORRRRORORROROOROROROOOORORROOOOOORORORORRRROORROOORRRRRORRRROROORROORRORROOOORRRORRORROOOOOROROORROORRORROOOOORRRRORORORRRRORROORRROROORRORORRORROOOOROOOROORRRRRRORROORRORROOOORRORRROORRORROORRRORORROORRRROORORROOROORRROOOOOOROORRRORROROOOROORROORRORORORRROOOOORORRRRROOROOROROORROOORROOORRRRRORORROORORORROOORROOOOORRRROORORRRROOROORRORORROROOORROOORRRROROROROOOROOORRRRRROOROOORRORRRROORROOORRROOROORORORROROOROROORRRRROOOOOORORORRORROROORRRORORRORROORRROORROOORRORRROOROOORROROOORRORRRRROOOROROOROROORORROOROROORRRRORRRORRORORROOOROROORROOOOROORRRRRRRRRORRORORROORRRRORORORORROOOROORRROROOORORORORRRRRROROOROROORRORRRRRROROOOORORRORRRRRRRORRRRRORORROROOOOROOROROORRORROOROOOROOOORROOORROORORROOROROORROORROORRRRROOOOROORROROORROOOOROOROROOOOOOROOOORRORROROORRORROOOORORRROOROROROOOROOOORORRRRROOOROOROOOOORORROOOOORORRRRORROOOOOOROROROOROORRORORRRRORORROOOORRRRORROROOORROORROROROOOORROOOORORORROROROORRORRROORROORORORORRORROROOOORORRRRRRORORORRRRORROOORORRROROOOOOOROOOOROROOROROORRRRORROORRRORORRORORROOOROOORROROOOOOROROOOOORORRRRROORROOOOORRROORRRORORRROROORORROORORORRORROOOOOORRRORRRRORRORRROOORROROOROROROOOOORORROORORRRRROORORROORROORORORRORRROOROROORORROORORROROROROROOROORRRRORORORROORORROOOORROORRRROORROOORRROORRRROOOORRRRROORROOOROORROROOOROORRROOOROOROOROOORRRRRRROROROOORRORORROOORRRRROORRORROOOORORRRRRROOROORROROORRRORROROROOOROOOROOOROROORRROORRRORROOOORRRORORRROOORORROORORRORRORORRRORORRRRROOORORROROOORRRRROOOROOOOROROORRRRRORRORRRORRORROOOORORROORRRRRRRROOOROOOOOOROROOORORROROOROROOROOOROOORRRRRRRROORRRORRRORROOOROROORRORROROORORROORRORORRORRRROOOROROORORORRRORRRRROROOOROOOORROROORROOROOOOROORRROROOORRRORROOORRORORORORRROOROORROOOOORROROROORRORRRRRRRRRRROOROROOOOOOROROOOOOOORORRRRRRRROROORRRROOORRROOORORRORRORROROOOORROOROROORROOORRROROORROROOOORROORROOOOROOOORROOOORROOOORROOROOOOOOORROROOOOORRROORRROORORROROOORRRORROOORRRRORORRORORRROROOORRRROORORORRRRROROORROOROOORRROOOOORRROROOROORROOOOORRRROOROROROOROORRROOROROOORORRORROOOOROOORROOOOOORRROROOOOROOOOOOROROROROOORORRRRRRROOOROORRROROROROOOORORORRORROORRROOORORORRRRORORRROORROROOORROOOORROORROROROOORORORROOORORROOORROORRORRROROOOOROROROROOOOROROOOOROOROOROOOROORROORORORORRRORRRORORRRRROOROROROROOOOOROORORRORORORRRROOOOORROORRRRROROORROORRRRORROROORRRRROOOOOOOOORROOOROOOOOOORROOROORRROORRROOOROROOORRROOORROOOOOOOOORROOROROORORORROROOROOOOROROROOOORROORRRRORORRORORROORROOROOORRRRROROOROROOROROOROROORRRROROORORORRROROOORRORORRRRORRRRROROOORORROROOORORRRRORORRRRRRRRROOORORROORRROROOOORROOROOROROORRROROORRRRRROOROROOROROROOROROORRRROORRORRRROROOORRRROOOROOORRORORRRRRRORRORRROORORRROOORRRROOOROORROROORRORRORRRRROOORORROOOROOOOORRRRRROORROROORRROROORRROOORROOOOOOOORROOOORRORRORORRROOORROOORROORRRRROROOROOORORRORORORROOROROOROORORROOORRRRORRRORRRROOOOOORROOOROORRRORRORORROOROORROROROOROOOORRORRORRRRORRROOOOORROOROORRROORORROORORRRRRRROOOOOOROOOROORRRROORRRRORROOROORRROROOOROOOROOOORRORROOOORROOOOOORORRRROOOORRRORRRROOORRORRROOORRORROROOOROOOOOOOORORROOROOOOROOOOOOORRRROOORROROOOORRRRROROROROOORROROORRORORRROORORRRRRROROOORRROORRRRROOOOOROORRORRORRRRRORRORORRORORRROOOORROOORORRRROROORRORROOOROORORRRORRRRRORROOOORRROOROOOROOORRRRRORRORRROORRROROOOROOOOOOROOROORROOOROOOROOOOORRORRRROOOORROOOOORRRRRRORORORROOOROORRROOOORRRORRRRORRRRRORROOOROROOROROROOOOOOROOOOROORROROORORRRRORRRRRROOORORRRORRRRRRRROROOORORRRRRRRROOROORORROORROORROOOROOROOOROORROROROOOORRRROORORRROOOOORROOROROOOORRRRORROOORRORORORRRORORRRRORRORRORORROOOOROOOOROOORRROROOROOOORRRORRRRRORORORORRRORRRROORROORORRRRRORRRROOORRRRRORRORRRORORRRRROOOROORROOOOOOOOROROORRRROOOROOORRORROROOORROORORROORORRROORROOOOROORORORROOOOOOOROOOORORORRROORRRORORORRRORRROORROOOOOOROROROORRRROROOOROORORORORORORRRORORORROROOORRRROOROORORRROROORROORROORORORROROOOOROOOORORRROROROOORROORRROORRRROROOOROOOOORORORRRRROOOOORRRROROOOROOORRROOORRORROROOORRORROOROOOOROOROOOROORRORRROOOOOORRRORORRORORRROROROOOOROOORROOOOORRROORROORRORRRRORORRROORRRROOOOROOOOORRRRRRRRRRRRRRRRRORROORRORRROOOORORRORRRROROOROOOORRRROOROOORORRRRRROORORRROROORROROOORORRROOROOOROROOOOORRROORRRROORORROROROORROORROOOROOROOROOOROOOOOOROOOROOOOOORRRRROOORORRRROOORORRRRORORORORRRROROROROORROOORORORROORRROOOOOOOROORROROORRROOORROROOOOORRRRRROROROROOORORRRORROOORRROORRRRRRRROROORROROOORROROROOOORRRRRRRRROROROOORORORROOORRROORRORRRRORORRRRROORRRRORORORRROOROORROROOOOROORROROORRORROROOOROOOOORORROORRRROORRRORROROOORRROOORRRORRRORORRRORRRORRRROORORRROORROORORROOROOOROOOOOROROOOOOOOOOOROOROOOROOOOORRRORRRRRRROOORROOOROOORRORORORROOOOOOROOROOOOORORRROORRRRORORROOORRORRRROORROROOOOORROORRORRROOOORRRRORORROOOOORRRRROOOOOOROROROOOOORRRRRRROOOOOORRROOORROOROROROOROOROOROOORROOROORRORRRRRORORORRROROOOORROROOORROROORROROORORRORRRROOOOOROOOROROROOROROORORROROORORORORROOROOROOOROORRRROROORRRROOOORROOOOOROROORORROROORRRORROOOORROOORORORRROROOOOORRRRRORRROROORRROOORRRRROORORORRORROOROROOORORROOROOROOORORRROROORRORROOOROORRRORORRRROOORORORORRROORRROORRORROROORROOOOORORRROORRRRORRRRRORORRRRRRORORORORRROOROOORRORRORORROORRORROROOROORRORRRORRROORORROOOROORORROORRRROOOORROROROOOOOOOOORRORROOOROORROOOOROOOOORORORORORRRRROOOOROROROROOORROORRRRROROOOOOORRORORRRROROOROOOOROORORRRROOOOORROOROOROOOROROROOORORORROOORRORRRORRRROROOORRROROROROORRORROOORORROOORORORRRRRRRROROORORROOOROOORRROOOORORRRRRRRRROORROOORRRROORROOORROORRORRORROOOROROOOOOOOROOORROROROORORORROOROORRROOORROOOROOOROOORORRORORROOOOOOORROOOORORRRROOOOORRRRORRROOORRRRRROOORRORRROROROOROROORORRORROROORRRRORROROOOOROROOOROORORRROOOOOOOOROOROROOORROOOORRRRRRORORORORRROOOOOORRRRRRROOROOROOOOROROROORRROOOROOOROORRRRRORORROROOORRRRRORORROROOORORROROOOOORROROORROOOOROROOOROROORRORRROOOOROOOOOORRROORRORORRRORORRORRROOORRRROOROROORRRRORROOOROOOOOROOOOOOOOORROOOOOORRORRROROORORRROOOOROROORRRRRRORRORROROOOOROORORORRRRRORRRRRRRRROOOROROROOORORRORRORROOOOOOOORORORORRRROROOORORRRROROROROOOOORORORROOROOORRORORROORRORRROOOROORRORRRROOOOROOOOORRRRORROOOOORROOOOOROROROOOORRRRRRRORROOORRRROOORROOROROROROROORORRRROORORROOORROROOOOROOORORROOROORROROORRROORROROROROROROORORRRRROOORROOROROOOOOORORORRROROORROOORRORORORRRROOORORORROOORRRRRROOROOOOORORROOORRRROORRRORRROORRRRROOOOOROORRRRROOORORRORROOOORROROOORROORORRRROORORROORRRROOROOROROORRORROOROROOROOOOROOROORRRROROOROROOORORRRRRROROOOROROOOOORORORROOOROOOOOORORRRROOORROORROOOOOORRROOOROOOOROOOORRORRRORRORORORRROOORORORORRROOOOROORORORRRROORORROROORRORROOORRRROROOOOOROOOOROOOOOOOOROOORRRRRRROOORRORORORRRRRROOOROOOROORRRRROOOOORRRROOOROORRROROROORRRRRRROROOORORRROORRRRRRRROROOROORROROORROROORRRRRRROROORROOORRRRRROROORROROOROOROROOOROORROROOROOOOORROOROORRRRRRROOROORORRROOROROROOOROROOORRORRRRROOOOOOORROOOOORRORRORORROORORRROOORRRROOORRRRROORORRRORRROOROORORROORRRRORRORORRRROOOOORRRRRRROROROOOOOROROOOORROOOORROOROORRROORRRORROORROOOOOORRRRROOORRORRROOORRORRRRROORROOROOORRROROROOORRRROOROOROOROOORRROOROOORRROROORORORRROORROORRRRROOOORROORROOOOROORROROORRORRORRROOORRRORRRRROROROOROROORRRRORORRRORRROOROORROROROOORROROOORORRORROORRRROOORROOORRRRROOORRRRRRORROOROOOORROOORRORRRRRORRORRORROOOOORRROORRRORRORROORROOOOOROOORRRROORRROORRORORRROORRROOOOROOOOOORROORRRROORROOORRORROOORRROORORROOORROROOOORRRORROROOOOORORRRRROOROOORRROROORROROOORROORRORROOOOOORROOOROROORRROOORORORRORRRORORORORORRRROOROOOROOOOOORRRRRORRROROOOOOOORROORROORORORROROOROOROOORRRROORRRRRROORROOORROOROROOOORRORROOROORORRRRROROORORRRORRRORRRORORORROOROORROROROROOOROORROOOROROROORROOROOOROOOORRRRROOROROOORRROOROROORORRRROOROROOORRRROROORORRORROORRRRRROOROOOROOROOROOORRRRRRROOOOOOOOORRRROROOORRORORRRRRRRROROROOOOROORORRROOORROOOOOOOORORRORORORROORRRROORROROOORROORORROOOROROOORORRRORROORRRRROOOOROOOORORORRROOROOOOORORRORRROOOOOORROORRRROOROROOROOOORRORORRROOOOOOROORRRORRROORRROORORORROOORRROOOROOROOROORRORORROORRROOOROOOROROROOORROORORRRRRRRORRRROROROROOOOOROORROROOORRORRRRRRROORORROROROOORROOROOOOOOOOOOORRROROORROOORRRORRROOORRROOOORRORRRRRORROOOORRRRROOORROOORRRROOOOOOOORRROOOOORROOOROOOROOOORROOORROOROORROOROOOROROROROOOOOORRRRROROROOORROORROOROOROOORRRORRORROROORRRROORORORRROROROORORROROROOORORORORRRROROROOOROORROORORRROOOOORORRORORRRRRORRROROROOROORORORROORRROOROOOOROOORRRROORORORRRRRROOROROOORROROROORORRRROROOOROORRRRORORROOOOROORRRRROROORRRRORRORRROORORORORORROORORRRORRRRORRRRRROOORORRORRORORROROORORRRORRRRORRRORRROOROROROOOOROOROORRORRROORRRRRROOORORORORRROORRORORRORRRRROORORORORRRORRORRRRRORORRORROORRRRRROROROOOORRORRORRORROORRROROOOORROORROOOOOROROORRORRRRRORRROOOORRORORRROOOROROOOOOOORORROROOOOORROOROOOORORORRROOOOOROOOROROROORORRRROORRRORROROROORRRRRORROROOOROORRORROROOOORRRORRRROOOOOORRRRRORRROOOORRROOROROORORRROOOROOROOOROROOOOOORRROOOROROOORRRRRROOORORRROOOOROORRROORRROORROORORORROOROROOOOROROOOROORORROROOOORROOOOOORRORRRROOOOOOOROROOOROORORRRROORORRORRORRROORORRRRORORRRORROOOORRRRRRORROOOORRORROROOOOROOOOROOROOOORORROOOOOORORRROOOROROROROOOOROOROOORORRRROROROROOOROOOOOROROROOOORORROROORROORRORRROOORRRRORRROOROORROOOOORRROOROOOOOROORRRRROORRRROORRROOOORROOROROOOROORROROORRROORRROOOOOORROOORRRORROROOOOROOOOOOORRROOORROOOORORRORROOOROOOORRROROORRRRROOOOOOOOROOOOOORRRORRROOOROORORRROORRROORORORRORROROOORROOOOROORORROORROOOROOOOORORORROOOORORRRORROORORORRROROORRORRROOORROORORROORROROOOROOOROROOROOROORRRROORRRRROORORRROORROORROORRRRRORORRORORRRRORROOOOOOROOOROOOOORORRORRRRRRRORRROOOORRROOORORORRRORRORROOOOROOOORRRORRRROOOOROOOROOOROROROORRROOOOROOROOORRRRRORORROORRRRRRRROOOROOORRROOOOOORORRORRRRRRRRROORROOOROROOORRROOOOOOOOOROOROOOROROOORROOORORRROROROORROOOOOROOROOOROORROROOOORORRRORRRROROOORORORRRRRROOORRRROOROROOOORORORRORRORROOORRRRRORORORRROOOORORROOROOORRROOROORRROROOOORRROOOOORORRRORROOOOROOOOROROROOOORRROORRORRRROOORRROOORORRROOORRORROOOOOOROROOOOOOOORORORORORRRRRROOORRORROOORORRROROROOOOOOOOOOOROOOOROOOOROROORRROROOOORORORRROOORROORRRRRROORRORROORROORRORRRORRRORRRRRROROOROORRRRROOROOORORRRRORROROOOOOOORRORORRRORRRORRRRRROROORRRROOOROOOOROOOOROOOOOOOORROOORORRROOROROROORRRROOOROOOROORROROOROROOOORRRORROROOOORRRRORROORRRRORORROORORRRRROOOOOROOOORORROROOOROOOROOOOOOORRROORORRRROOORORORROORORORORORROORROOOOOORRRORRRROOROORRORRORRROROOORROOOORRORRRORRRORRRRROOORROOOOORRROOROOOOOROOOROOORRROOROROOOROOOROOORRROORRRROOOOORRRRRORORRRROROOOOOORRORRROROOOOORROORRORRORRROOOROOOROOROORROOOOOOROOORRORROOROOORRORRROOROROROOOOROORORROOOOROROOROORROROOOOOROROROOOORROORORRRRROORORRRRRROROOOOOORRORORROOOOOOORRROROOROROROROROOOROROROROOORRORRROOOORORROOOORRRORORRRROOOOORRROOORRRRORORRRRROORRORROORROOOOORRORROROOOOORRROOROOOORROOOORRRRRORORORRRRORROOORRROROOORORROORRRROOOOORORRORRORROORRRRRORROORORORORORRORORROOROOORORRRORRRROORROOROOORORRRORRRORRRRRROOOROROORORRROORRORRRROOOOORORRROORROROOOOROROOROOOORRROORORRRROOOOOORRROROORROOORROROOOOROORRRROOOROORRROOROROROOROROOOORRRRRROOOORRORRROROROROORROOOORRORRRRROOORRORROROORROOOOOORORROOOOOOOOOOOOROOOORROOORRRROROOOROROROOORRRORROOOOROROOORORRRROROOROOOOOOOOOORROORRRROOROOROORRRORRROORRROOROOORRORRROROORORROOROORRRRRROORRROORROROORRROOROROOORRORROORROROOOOOORRRRORORROORRRRRROOOROROOORORRRRRROORRRROORROOROROORROORRRORROORORRORRORORRRORROROORRRRRRORRROOOOORRORRRRRRORRRROOOOOOORORROOOOOROOOOOOOORRORRRROOOOROOOOOOROROOOROOORRRROROOROOORROOOORRROORROOORRRROOOROROOORROROOORORRRORORRRRRROOORORROOOOORROOOOOOROORRORRROOORROROOORRRRRRORRROORRROOROORRROOORORORRORROOOOORRRROOOROOOOORRROROOOOORRROOOOROORRROORRRRORROROORRROOROORROORRRORORROORORROROROORRRRRRORRROOORROORORORRRRORORORROORRORRORRRORROOORORROROORROROOORROORRRRRORROOORORORROOORORRROOROOOOORROORORORORRRRROOOOOOOOOORRROROORRRROOOOROORRROOOORORRRORROORRORRORORORRORRORRROOOROOROOORROOOROOROOROROORRORROOOOORRROORRROORORORROORRORRRORORROOROORRRRROOORRRRRORROOROOOOOROROROOROOROROROOROOOOORRROROOOOROORRRROORROROROOROOORORRORRROORRRORROOOROORROOROROOOROOOOOORORROORRROORRRRORROORRROROORRROROORORROOOROROROORRRRRORRROROOROOORRRROORORRRROOROROOOOOORRRORRRORRORORROOROOOORROOORROOROROORRRRRRRRROOOOROOOOORRORRRRRORORRORRRRRROOOROOOROROORRRRRRRORRORORRORROORRROROOORRRROROOROORORRORRROORRORRRRROORORRRROROOOORORORRROORORRRRORORRORROOROROROOROORROOOORRORRRRROROOORRORRRRRORORROOOORRORROROOOOROROOOOROOROROOROORROROORRROROORROORORRRRROROORRRRROROOORORRROROORORRORRORRROOOOOORROOOOROOOOORROORRRRROROOORRROROOORRRORORORROROOROORRROOOORROROROOOORORRRRRORORRROORORRORROORROOORRRORRORORORROORROOOOROOOROOORORROOROOORORORORRROOOORRRORROORROOOOORRROORRORROROOOROOOROOOROORRROROORRRORROROOORRROOORRROROORROORRRRROORORRROROORRRORROROROORROROOOORRROORRRRORRORORORRROOOOORRRRORRORRRRROOOOOROORRORRRORRORROROOOROOORORORORRROOOOOOOOOORROORROOORRRROROOORROOORRRRROOOOOOORORORRRROORROOROORRORRORRORORORRRRROORORORRROOOROORORORRRROOOROOROROOROORROOOORRRROROORRORORRRRRRRRORORRORRRORRORRROOROORROROOOORORRROOROORROOOOOORRRRORROOORRRROOOORROOORORORORRORRORRROOOOORRROOROOORROORROOROROORORRROOOOOOORROOOOOORROORROOOROOOOOORROORRORORRROORRROORRROOORRROORROOOOORRROROROOROROORROOOOOOOROORRROROORROORORORORROROOORROOORROOORORROROORROOORRORRRORROORROROROROOROOORRROOORORRRRORRRORORORORRRRROOROOROOOOROORORROROROROROOROOOOOORROOORRROORROOORROORROORROOORRRROORRORRRROROROOROOOORROROOOOOORRRROOROORRORROOORRROOROORROOOROROOORRRRROORORRRRRRROOOOOORRRRRROOORORRROORRRROROORRROOORORORROOOOOOOOOROOROROOOOROOOOORROORORRROOORORRRROORRROORRORORRROORRORRORROORRORORROROOORROOROOORROORORRORORRRRORORORORROORORORROOORORRRRRRRROOORORROROROORORRORRRRORRORRRROOOROORORRRROORRROOROORRRROROOORRRROOROOROROOROOOROROOROORRROORROROORRRRRROOORRRROORROOOOORORROROROOOORORORORRORORRORRROORRROORRROOORORROROOROOOORRORROOOOOROOROROROORORROORRROOROORORRROORROROOROROOROOOROORRROOOOOOOOOORORROORRRORRROOROROORROROROOORRORRROOROOROORORORRROORROORRRROROORORRROOROORROORROOOORRORRORORRRRORRORROOOROROORORORROOOROOOOOROORRRRRROORROOORRROOROROOOORRRRROORRORROOROROORROROOOOORORROROORROROORRRRROOOOORORORRRRORORORROROOOOOROORRRORROORRRROROOORROROOOROROORRORORROOROORRRRORROROOROORROROORRRORRRORRRRROOOOOOORROOOROORRRRRRRROROORRRROORRROOROOROOORORROROOORRRORROOOROORROOORORORRRROOORORROROOOORROORROOOOORORRRROOORORROORROOOOROORORORORRORROROROOORORORRRORROOOORORRORRRRRORRORORROROORRRRRROOOORROOROOORROROOOOOROOORORRORRROOROORRROORRRRORROORRRRRORORROROROOOOORRRRRRORROOROORORROOROROORRRROOROORROORRRORRRRORROOORORORRORORRRORRORROROORRORRROROOOOOOOROROORRROORORROOOOOOOOROROOORRRORRRORROOROORRRROOORRRRRROOOROOOOOOOOOROORRRRRROOOOOOOOORRRRROOORRROROROOROOROROROOORRRROROOORROOOOORORORRRRORRROOOOORORRROROROROROORORRORRORROOORROROOOROOOOROROROOOOOOOOROROROORRROROOORRRROROOOROROROORROORRRROROOOOROORROROROROOOORRORORRROROOORORRRRRRORROORORORRRRRORROORROORRRRRRROOROROOOORRORRORROOROROOROOOOOORRRORORROORRORROROOROOORORORRRRRRRRRORRROROOROROROOOROORORRORRRRRRORRORRROORROOOOORORROORROOROOOOROOROORORRORRROOOROORRORORRRROORRORRRROOOROOORRRROORORROOOOOROOORRORRROORRRORROOOROOORRROOOORRRRROOOORRROOOOOOROORRRRRROOORRRORRROORRRROOORRROOROOROOORORROROOORORRORRROORRROORROROROOORRRROROOORORRORRORROROORROROOOROOOOOOORRORROORORROOROROORORORORRROOOROOOOOOOOROOROROOORORORRRRRRROORORRROOOROOOOROROROORROORRORROORRORRRORROOOROOORORORROORORROOOOORRRRORRROOORRRRRRRRROORROROOORRORRORROROROOOOROOROOOROOOORRRROOOOROROOOROOORORROOOROOORROOOORRROOOOROORRROROORRRRROOOROROROOORRRORRROORORORRORRORRRORROORRRORRORRRROOORORROORRORROOROROROOOOOOOROROROROOROROOOOOOOORORRRORRROORRORRRROORRROOOORRROOOOORROROROOROOROORORROORRRRORRRROORROROOORRRRRROROOOROOROOOROOROORORRROORORRRRRROOOORRORRORORRROROOROOORRORRORORRROROORORRRRRORRRORRRRROOROOOROOOOORRRORRORORROORRORROOOOORROROROOROOOOOOORORRRRRORRRRORORRRRROOOORROOORRRORRRRROORROORRORROROROOROROORROOROOOOOROOOROOROOORORORRORRRRROORROOORORORRROROORORRORRRRRRRROOOORRRRRRORROROOOOROOOOOOOROORRROOOROOROORRRROOORRROOORORRROOORRRORRRROOOOROROOROOOOORRORROOOORRRRRROORROROOORROROROORRRROORRORRRROOOOORORRROROOOOROORORRRRRRRORRROOORRRRRRORRROORROOOOOROORORROROROOROORRORRORORRRORORRRORORRRROORROOORORRORROROOOOOOOOROOROOORRORRRORRRRORORRRROOORRRROOORORROOROOOOOOROOOOOOORRRRROOORROOROOOORRRRRRROOORORRORRRROOOROROOORRRORRORROORRRORRRRRRRROORROOORRORORRRROOROORRORROROORRRROORRORROOROORRRROORORRROOOROORRRORORROOOORROORRRORROORRRORORROOOOROOORRRRROORORORRRORROORRORRROORROOROOORORRRRRRRROROROOOOROOORRROOROOOORRORROOORROOOORRRROOROOROORRRRORRRRRROORROOOROORRROROORRRRRRRORRRRORRRRROOOORRORRORORRRRORRORRRRRORRORROOOROORROOROOOOOROOOOOOOORORRORORROROORORRROOOROROORRROROORORRROROOROOOOOOOORORROORORROOOORORRRROORRRORRROORROOOOOOOORRRRRRRRRRORORRRRROOOOOORORRROORORRORRORORRRRORROOOOOORORROROORROOOOORORRRROOOORROOOROORORRRORRROOOOOOORORORORROOROOOROOROORRRROORROORORRRRORRRRROOROOORRRRRRRRRRROORRORROORRRRRORROOOOORORRORRRROOOOOOORORRORORROOOOROOOOOOOROOORROORRRORRROOROORORRRORORORRRORRRORRORORROOROROOOORORRRROROOROORROROOOORRRROOOORRORRORRROOOORRORROROROORROOORROROORRROROROROROORROOROOROROROROOOORROORRORRRRORROOOORROOORORROORRORORRORRORRRRRORRRRROROOOORRORRRROORROOOOOORRRRRRRRORROROORROOOORROOORRRRRRRRRROORROROORRRROOOROORRRROOROORORRROOORORROORRROOOROOOOORRRORRRROOORROOROOOOORRROOORROOROOOOROOORRORRROOORORROOORROROORORORROROORRRROORROOORRROOROORRROROOORORRRORRRORRROORRORORORROROORRRRRORRRRRROORRRRRROROOORORRRRROROOOOOOROOORROORROOROORORROORRROOORRRRROORROOOOORORORRRRRROORORORRORRRRRRROOOOOOROOROOROORROORRRORRORRORROOORRORORRRORRORRRROORROROOOOOORRORORRRRROOROROOOORROROORRROOROOOOROOOOORROOORRROORROOROORRRROOORRROOORORRRORROROORORRROOOOORROOROROOOROORROOOORRRORRROOOROORRROOORRROOOOORRRRORRRRRROROOOOROOORROORRRORRRRRROORRORRORRROORRROOOOROOROOROROOOROOOORRRROOOOROOORROROOOORROOORORRROROORROOOORRROROORRRORRROORRORORRRRRROOORRRRORORRORORROOORRRROROOROOOOROORORORRORRORRROOROOOROROROROROOOOROROOROOOOOORRRROOROORORRROOORORROOOORORORROORORORORRRRROORRRORRROORORRRORRRROROOROORRROORROOROOROOOORRRRRROOOROORRORROOROOOOROOOROOROOOORRRORORRRORRRROOOROOORORORRROOOOORRRORRORORROORROOOOOROOROOROOORORRRRORRRROOOOORRROOORRORROOOOORORROORRORORORORROOORRRRRROOORROOROOORORRRRRRORROOOOOOOOOORROOOOOOROOOOOOROOOOORORRRRORORRRROOOOROROROOOORROROOOOOOOOOOOROOORRROORRORORORRRROROOORRRRORRROOORRRORRORRORRRRRORORROORORROORORROROORRRRRRRRRROOOROOOORORRRRORRRROOOROORORRRROOROROROOROOROROOROORROOROOROORRRRRROROORORORORROOOORRORORRRORROOROROROOORRRORRRRORROORRORRRRROOORRRROORORRRRROROORRRRRORROORRRORRORROROORRORORORROROOOOORRRROOROOROROOOOORRRROROORRROORORROOOORRORRROORRRRRRORORROOOOOROOORRRROOROROOROOROOOOORORORORRROOROOOROOROOOORRORORORROOOOROROROORORRRRROOOROOOOOOOORRROOOOOROOOORRRRRROORORORRROOROORORORROOOOOOOOOOORROOROOROROORRROOOOOORRROOORRRRRROORRRORRROROOOROROROORRROOROOROROOOOROOORRRROROROOOROORRRROORRROOORRROOROOROOOORRRROORORRRORROORRORRROORROOOOROOROOOOROOOOOORROOOOOORRORRROORRRROORRROOORRRORRROOOORRRRROROORORRORROORRRRROORORRRORRRRROROROORORROOROORROOORRORROROOROROORRROOROROORROROROORROOOORRROROROORRRROROORORROOORORRROORRORRRROOOOOOORORRRROOORRORRORORRORRORROOORORRRRORORRRRROOROOOOOROOROOOOOORORRROROOROORORRRORORRRRROOORRORRORRROOOORRROORORRROOROORROROROOOOOORRRRRRRRORORORORRRORRROORRROOORRORRRORRRROROOOOROORROOOROROOOROOROOOOORORRORRRROOROOROOOORRRROOORRROORORORRORRRRRRORORRRRRRORRRRRRRROORROROOROORORORROROOOROORRORROOOOOROROOROROOORRRROOOOOROOROOOORORRROORORRRRORROOORRROOOROROROOOROROORRORROOOORRRRRRROORRRROOOROORRRRROROOORRORORRORRORRORORRRRORROOOROROORRRRORRRRROOOROROOROROOORRRORORROORROOORORORORORROORRRRRORROORROOROOOROOORORRRRRROOROOOROORROROORORROOORORROORROOOOORROOOOOOOORRRRROOORROROROOORROOROOOORORRRRRRRROOOOORRROORROROOOORRRRORRORRORROOORRRRROOROOOORRRRRRRRROOROORRROOROOOORRRROOOOOOOOOROOOOORRORRRRROOORRRRROOOORRRRORORORORRRRRRROORRORRRRROOOROORRROROROOROROORRRRROROOROOOROROORORRORORORRROOROORORORRRORRRRROOORORROOOOOOORORRRORORRRORRRORORROORRROOROOOOROOROORORRRRRROOROOOOOOOOOORRRORROOORORROROOORROROROORRRORROROORRROOOOORRRROORRORRRORROORORORROORORRRORRRROOOORORRRRRORORRRRROOOROOOOOOORORORRRRRROROOOOOOOROOOORRROORROORRORRRRROOORRRORROOORROROOROOORRRORROOORRRRRORROOORRRORORRRRRRRRORROOOOORRRORRRORRORORORRORRORRRROORROOROOOORORRORROROORROOOOOOOROOOROOORORRRRRRRROROROOORRROROROOOORRRRORORROROROOOORORRORROORRROOROOOOOROROOOORROOOROOOOOOROOOROORRRORRRRROOOOORRRRORRROOROROOOOORORRRRRROOORRRROROOROROROROOORROROOROOROROOOORRROOROOROORRROOROOOROORORRROOROORORRRRROOROORROOOOORROORRROOROORRORROOOROROOOORRRRORORROROORRRRROOROROOOROOOROORORROORROOORRORROOOROROORRROROOROORRRRRRRRRRORRRRORORRRRRRROROOORROOROOROOROOOOORRORROORROORROOROROOORROORROOORROOROOOROROORRROORROOOORROROORROOOOOROOOORRRORORROORRRROROROORRRROORRRRRORRROORORROORRRROROROOROOROOROOOROOORRRORRRRRROORROOROROORRROROOOORROOOOOOOOORROOOOORORRORRORORRRORORORORRRORRROOOROOROROOOOOROOOOOORORRORORRROOORRRRROOORORRRRORORRRRORRRRRROORORRRROOORRRRORROOROOOROOOOROOOORORROOROOROROORRRRROOROOOROOORRRRRRORRROOOORROORROROOOROOORORROROOOORRROORORORROOROOOOROORROROOORRRRROOROORRORROOORRRROORORRRORORROROORRRROOOORRRRRRRRRRORORROORORROOOOOOROROORORORRORORRRRROORRROOOROOOORROORROORRRROOOOOORORROORROOORROROOORRRRROOORRROORROOORORORORRORRRORRRROOOROOOROOORRROORRORRROORORRORRRORORORORORORRROOROOOORROOROROOOROROORROORRORROOORRRORRRORORORORROOOOORROOROOOOROORRRRROOOORORROOORRROOOROOORRROOROOOOORRRROOOORROOORRRROOROORROROROROORRROOOROORRRRROOORORROROOOOOOOROOROROOOOORORRRORORROOORRROORRROORRORROOOOROOORORRROOOOROROOOOORRORROOOOROROROOROOOORROOORORRRRRORROOORORROOOROOOOROOORROOROOOOOOORORRRORORROOORROORRRROOOOORRRORRRRROORRORROORORRORRRROOOROORRORORRROOROORROOOOOOROORRROOOROORRRRRROOOROORRRROOOORROORRROOOROOOORORORORRORRORRRORROOROOORORORORRRORORROOOOOOOORRROOROORORROROOOORORROORROOORRRRROROROOROOOORRROOOROOOOORROOOOOOROROROOORRORROROORORORORORORORORRRORORRRRORRRRROROOROORROOROOROORRRORRORORRORROOOROOOOOORRROROOROOOOOOOROOOORRROOORRRRORRORRROROROROROOOOROOOORROOROORROOROROOOORRROOORROOORORRROOOROOORORRROROORORORORRROROOOORROROROORORRRRRRROROROORROROROOOORORRORRRROOROORROOROORORORRROOROORRRRRRROORRRRORROOORROOROOROOORRORRRROORORRRORRROOROROROORRRORROROOORROOROOORORORRORROROOROROROOORROOOROOROOOORROORORRROORRRROOORRROORRRROORRRRRORORORORRORROOOOOOROORORRORRORRRRRRORROROORROOORROOOROORROROOOOROROOROOORORORORROOOOROORROORROROOORORORORRRRRRRORRRROOOORROOOORROOOORRROROOROROOROROROROORROOROROORROROOORRORORROROOORRORRROOORRRRROROORROORROOORROORORRRRRORRORRRRROORORORROOROOORRRORROROORORROROROOROOROROOORROROROOROOORROROOOOROOOROORRROOOROROROORRRRRRROOROROROORRORORORROROOOROROORORRRROROORROROROOOOOROOROOOOROOOOORORRRRRROOOORROROOORORROORRORORRRORROORRRORROORRRRORROOROOOOROORRRROORROORORORROROORRRRROOOOOOOOOOOROOORORRRROORROOOOOOOORRRORORORROOOORRRRROROOORRROOORRRRORRRORRRRRRRRROROOORROORORRORRRRRRRORRRRRRORRROOOROORROOOOROOROOROOOROOROROORRRORORRRROOORRORRROOORORORORORRORRORRRRROOROOOROOOOOORORROROOORRORRORRROOROROORRROOOOOORRROOORORROOROOOROROROOOORRROOROOROOOOROORROORRROOORRRORROROORORRROOORRRROOOOOORRRROROOROORRRORRORRRRRRROOORROOOOORROORRRRRRORORRORRORROORORORORROROROOROOOOORORORRRROOROORROORORORRRORORORRORRRRRORORRRORROOOROROORRROOOROOROORORROOOOROROOORROOROORRRORORRRRRRROOORRROROROOORROORORRRRROOROOROROORRORRRRRRORRRRRORORROOOOROROOORROORRRRRRRRRRRORRRROOORROORROROOOROOROORORORRRRORRROORORRRROROROROORRRORRRRORRRRRROORRORROOROOROROOOORORROOROOROOORORORRROOOOORORRROROOORROOORRRORROORRROOORRRRRRRORROOROOROOROROORRORROOROOROORRRRRORROORRROORRORRRROOOOOROROORROROOORRORRRROROOOORROOORRRROOOOROORRORRRORRROOORROROOOOOORRRORRROROROORRORRROORROROROOOROORROORROOORRORRRRROROOOOOOORROOOROOOOOROROOROORRROROOORRRORROOOORRRORRRRORROOROOROROROORRORORORRRRORORRRROOOOROOOOROROOORORROOROORORROORRRORORORRRRROOORORRROOOROROOORORRRROOOROOROOOOOROORRROROOOROOOORROOORORROOOORROOOROROROOORROOOOORRRRRRRORORRORROROOOORRORRRROOOOORRORRORROOOOOROROORROORRORORROOROOROROOOROOOOROOOOOOROOORROROORRRRRROOOORRRROROROROROROOOOORROORROROROOOROOOOROOROOOOROROROORROROOOOORROROROOOROROORRRROROORORRRRRRORRRRRRROORORRRRRRRORRROOOOROORRRRRRRRRROOOOOOOOORRORORORROOOOOORORRORRROORRROOOOROOOOOOORRORORRRRROOOORROOOORRRROROOORROROOOROORRROORROOORROOORROOORRROROORORORRROOROOORORRRORORORRORORRRROOOOOOOOORROOOOORROORRORRRORRRROOOORORORROOOORRORORRRORRORRORROOORORROORRRROORRORRRRRRRORRORRROORORRRORRORRRORROOROOROROOOOOOORORRORORRORROOOORROOORROOOORRROOROOOOOORRRROOOORORORRRROOORROOOOORORORROROORRRRRROROORROOROORRROROORRRORORRORROORRRORRRROOOOOORROOROOOORRRRRROOROORRRRRORORORROOOOROOROOROOROOORRORROROOOOOROROORRRORORROORRROROROOROOOORROROROORORRRRROOOORRROOORORORORORRROOOORORRORRROORROOORRROORROOOOORRROROOORROOOROORORRORORORRROORORRRRRRORRROOOOOOROOOROOOOOOROOOOROOROOROOROROROOOOROROROOROROROOOROOORROROOOOORORRRROOORORRRROROROROOORORRRROROOROORRRRORORRRRORORROORROROOOORRRRORRORROORORROROORRROOOOROOOOOOOOORRRRROROORRROORROOOOOORRROOROROOOOOOOORROORRRORRROOOROOOROOOORRRROOORROOORROOROORROROROROROOOROOOORROOOROOORRORROOROOROORRRORORRRRROROOOOORORROOOORROOORROORORRORRORRRROORROROOOROOROOROROOOORORRRRRRRORROORRROOROOORORRRORROORRORROOROOOORROOOORRRROROOROOOROOORRRORRROORORRRRRRROOOROOORRORRRRRRORROOORORRORRRROOOORRROOOOOOOORRORORROOROORRORORRO\n"
  },
  {
    "path": "challenge1/tests/mon8b.out",
    "content": "0\n"
  },
  {
    "path": "challenge1/tests/mon9a.in",
    "content": "999999 2\nOROOOOORRRRROOOOROOOOOROORORROROOOOOOROOROOOOROOROOOROROOOROORRRROROOORRORRRRORRRORORROOROROOOORROOROORORRORROOORORRROOROROROOROORRRRROROOOOORRRROOROORRORORORRRRRORRORRRORRRRRRROOOROOROORROROORRRORROORROORRROOOORRRRRROOOORRRORRRORORRRRORRRROOORRORORRRROOOOROOROROROOORORORRROORRROROROROROORROOOOOROOROROROROROROOOOORORRRORRRRORRRRORRRRRORRORRROORROORROORROORRRRROOORRORORROORORORRRRORRORRRROROORROORORRRRRRRRRRRRORRRRRORRORORRRRRRRRRROOOOROROORRROROOROORORRROOROROORORRORROROORRRRRRRRROROOORROOROORRRORRORRRROORORRORRRRRROROOOROOOOORRRORROOOROOROROROORORRORORRRRROROROORORRORORORROROROOROOORRORORORROOOROROROOORROOOOORRROORRRROROOOROORROOORROOROOOROROROOOOROOORORRORRROROOROOOROORORRORROOOORRRRROOORROOOOROOOOOORORORROOROORRROOORROROOOROOOROOOOOOOOOOOOOROROOOROOROORRROOROOORORROROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROROOROOORROROOOOOORRROOOOOOROOOORROOOOOOOOOOOOOROOOROOOOOROOROOOOOOOOOOOOOOOOOOROROOOOROROOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROROOOOROROOOOOOOOOOOOOOOOOOOROROOOOOOROOOOROOOOOORORRROOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOORROOOOOORROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOORORROROOOOROOOROOROORRROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOROOOROOOROOOOORROOOOOROROOOORRROOOOOOOOOOOOOOOROOOOOOOOORRRRROOOOOOROOROOOORROOOOORRRORRORORORRROOOROORRROOOOORORRORRORROOROORORRROOOOROOOOOOOOROORRRRRRROOOOOROROOORROOOROOOOOOROOORRORORORRORROOROOROOOOROOOROORRORORORROOOOOOORROOORROROORRORROROORRRRROROOOOROROORROOORRROROOOROOROOOORORORRRRRROROORORRRORRRROOOROROOOROROROORROORORRRORRORRROROORORRORORRRRROOORRRRRRROROOORRORORORROOOOOROOOOORRRROOOOROORORRROORRRRORRRROORRRRORRRROOORORORORRRORROORORRORRRORROROORRRRORROORORRRRROORORORORRRROORRROORORROORROROORRRORROORROROORRROROOROORRROROOORRRRRRRORRORRRORRORRRRRRRRRORRRORORORROOOORORORROROOROORRRROROROOORORRORRORRRRRRRROOOORRORORRRORRRROOORORROORRRRRORRORRROOORRRRRORRRRRROOORORRRRRRROOORRRORORORRRROROOORORROORRROORRRROOROROOOROOOOOOORRRRROOORORRROOOORORRROROOOOOROOOOROORRROORORROORRRROOROOORORROORORORRORORORROROOROROOOROORORRRRRORRORRORROOOORROOROOORROOROOOOOOROOROROOOOOOROOOOOROOOOROOOOOROOOROOOOOROOOOOROOOORROOROROOOOOOOOOOROORROOOOOOOOOROOOOOROOOROOOOOORRRORRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOROROOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOROOROOOOOROOROOOOOOOOOOOOOROORROROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOORROOORROROROOOOROOROOOOOROOOOOROROROORRROORROOOOROOOROORRRROOROOOOOOOROROOOOOOOOROOROOOROOOOOROOOOROORORROOOOOROOOOOOORRROOOROOOROOOOOOOOOOORORRRRROOROOROORRRRROOROOOROROROOROOOOORORRRRORROOOOROROROOOROROORROROOORORROROOORORRORORORORORRROORORRORRRRROORRRORROORRRORRRRROORRRRRRRROORROROROORRRROOOORROORRRRRRORRRROOOOORRRROROORROROOROOROOOORRRRORROOORRRRRRORRRRRROOOROORRORORRORRRRRRRRORROOORORROORRRROROORRROROOORRRRRRRRRORRRORRRORRRRORORRRRRORROOROORROOROOORRRORRRROORROORRRRRRRRORROOOOROORROOOORROOOOROROOROROORRRRRRRORRROROORRRRORORRRRRRROROOOROOROOOORRRROOOORRORORRORORORRRRRRRRRRRRROORROOOOOORORRROORRRRROOOOORRRRORROOROROROOORROOROROROOROROOORRORROOORORROOROORROROROOOORRRORROOOOOROROORRRORROOROOROROOOROOOOORRRORORROORROORORRORORROORROOORRROOORROOORROROOROROOOORORRROROOOROROORRROOROROOORORORRRROORRROOOORORRROROOOOOOOORORRROOOOOOROOOOOORROOROROROOOOOOOROROORROROROOOROROROROROOOOOOOROORROOOOOROOOOOOOROROOOOOROOOOOROOORROOOOOOOOOROOOROOOOOOOOROOOROOOOOOOOOOORORROOROOOOOOOOROROOOROOOOOOOROOROOOOOOROOROOOOOROOROOOOOOOOOOOOOOOOROROOROOROOOOOOOOROOOOOOOOROROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOORROOOROROOOOOOOROOOOOROOOOOOOROORROOROOOOOOOOOOOOOOROROOROOOOOOOOOORROOOOOORROOOOROROOOOOROROOOOOROOOOOOOOOROOOOOOOOROOOOOOOROOROOROOOROOOROROOOOROOOOROOOROROOOROOROORORRORORORROOOOOOOOOOOOROOOOORROROOOOORRRROORROOOROOOOORORRRORROORORRORROORRROROROOOOORORRROORORRRRROOOOOOROOROOOORROORRORORORRORRRROORRRROOROOOROORRORRRRRORRROOOOOROOOOOORRROORORORROOOOROROOORRRRRRORRRROORROOORRROOOOORORRRRRROOOORORRRORORRRORROOOORRROROROROOOROORRRRROORROORRRRROORORROROROROORRORRRRROROOORRRRRRRORRRRORRRORORRROROORRORRORRRRRRROOOROOORORRORORORRRRRORROORRRRRROOROORRRROROROOORRRROOROOORRORRORROROORROORRROORRRORROOOOOORRORORORRORRRROOORRROOROORROORRRRRROORRRROOOORROOORRORRORORRRRRRRORRROORRRRROOROORRRRRROROOOOORROROROORROORORRRROORORORRRRRRROOOROOORRORRRROROORRRRRROOOORROROOROORRROORORRROOOORORRRROOOOOOOORORRRRROORROOOOROOORROROOROOOORRRROROORRRROOROOROOROOOORORROOROOOORRORRORROOOOORROOOORRRORRRORROORRRRRROOORRROOOORROORRRORORROOORORORORORROOOORRORROOOOROORRORROROROOORROROOOORRROOOOOOOORORRROOOROOOROOROROOOOOOOROOROOROOOOOOOOOOOOOOOOROOOROOOOOROOOORRROOOROOROOOOOROORROOOOOOOOOROOOOOOOOORRROOOROOOROOOOOOOOOROORROOOROOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOROOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOORROOOOOOOOOOOROOOOOROOROOOOROOOOOROOOOOOROOOOOOOROORROOROOROOOOORROROOROOROOOOOOOOOOROOOOOROOOOOOOOOOROOROOOORRROOOOOOORROOROOOOOOOROROROOOOOOOOOROOORROROOOOOOOOOOOOROOOOROROOOORORROOROOOROOORROOOOROROOROROOOOOOOROROOROROOROOOOROOOOROOROROROOROORORORRROORORROROOOORROOROOOORRROOOROORORRRRORRRORORROORROOOROOORRORROORRROORRORRORRRRORRRORRORRROORORRORROORROOORROROROORRORRRROORRRORRRORRRORROROROROOROORRRRRROOROOOOOORRORROOROORORRORRORROORRRORORROOROORRRRORROORRORRROORRRRRRRRORROORROOROORORRORROROOROROOOORRROROOROORORRRRRRRRRRRRORRRRORORRRRRRRRRRORRROORRROOORRRROORRRROROORORRROROROROOOOROOORROORRROOROOOOOROORRORROROORORRRORRRRROROROORORRRORRRRRRROORRRRRRORORORRROORORRRORROOORRROOOOROROOROOORRORORRRRRRORORRROOOROORROROOOROORORROOORRRROORRRROORROOROOOORRORRRORORROOROROOORORORRRRRRROROROOOOORORROOROORROOOOOORRORROOOROOORROOORORRROOOORRRORROORROROOORROORORRROORRRROORORRORRRRORRRROOOROROORROORROOOROOOOROOOOROORRROOOROOOORRRORROROOORROROOROOOOORROORRORORROROOOROROOOOOOOROOOORROORROROOORROOOOOOROROROOOROOOROOOOOOOROROOOOOOROOOOOOOOOROOOOOOOROOOOOOOROOROOOOOOOOOOOOROOROROOOOOOOROROOROROROOOOOOOROOOOOOOROOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOROROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOROOORROOOROROOOOORORROOORROOOOOOOROOROORROROOOORROORRORROOROROOOOROOROOROOROOORORORRRRORROORORRRROOROOOOOORRRORROOOROOROROROORORROROOORRRROOOOOORROROOOOOOOORRRRORRORROOOROROOOROORROOROOOROROROOROOORRORRRRORROORRRROOORROOORORORRRRRRRORROORORORROORORROOORRROROROORORORRRORORORORROOOOOOOOORRROORROOOORRROORRORORROOORRRRROROORROORRRROORORROORORRRRRORRORORROROORRRORROORRRRORRORRRRRRORRRROORRRRORRORRRRRRRRORORROROOOROROORROOROOORRORRRRORROROORORRORRORORRORROOROROROORORORRORORRORRRRORROORRRORORRORRRRRORRRRROROOROORRROOORROROORRRRORRRRRRROOOORORROORORORRRRRRRRROOORRORRORRRRROORRROORRRRRRORRRRRORROOORRRRORRORORRRRRRORRROORRORRRORRRORORORRRORRROORRRRORORRORORRRROOORRORORROOROROOOOROOOOORROROROOORROOOOOORRROORROOORRORROOOOOOROOROOOROOOOOROOOROROOOOROOOOORORRRRRROOOROOORRROOOOORRRRROOORRROOROOOOROROROOOROROOOROOROROOOOORRROOOOOOROOROOROOOOOOOOROOROOOOOORROOOOROOROOORORROOORROOORRROOOOOOOOOOOOROOOOROROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROROOROOOROOOROOOOOROOROOOROOOOROOOOOOROOOOOOOOROOOROOOOROOROOROOOOOOROOOOOROOOOOOOOOOOOROORRROOOOOROOROOOROOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOORROOOOROOOOOROOROOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOORROOOOOOOOROROORROROROROOOOOROOOOORORRRORROROOROOOOOOOOORORRROOOOORROOOOOOOOOORRROOOOOROOROOOROOOOORROOOOROORROROORROROROORRROROROORROOROOOOOOOROORROOROOOOORORRORORRORRROOORORRRRRRROOOORORRORRORRRORROOORRRRROOOOORRORORRRRORROROROOOOORRROOORRORRRROOOOOORRROOORRRORRRROOORRORORROOOROOROOROOORORROORRRRORRRROOORRROOROOROOOROOOOORRORRRORRRROORRRROOOORORRRROOROORRRRRRRRROORROORORRROOROOROOOROOOOROORORRORRRORRROOROOORRRROOOROOOOORRORRROORROORROORRRRRRROROORRRRROOORROOOORROORRROORORRORRROROOROOROROOORRRRRRORROORORORRRRORRORRORRRORORORRRROROROORRROORRRORRORRRORRRRROORRRORRROORROORRRRRROOORRRRORRORORRORORRORRRROOROROOOOORORRROORORORROROROOROOORRRRRRORRORRRRROORRRORRRORROOROROOROOORROORROOORRRORRRROROORORROOROOROORRRROOOROORORRRORRRRROOOOOORRROROOOOORORRORRRORRROORROROOORORRROOOOOROOOOROORRRROROROORROOROORRORRORROOOROOROROOORROOROOOOROROOROOOOOROROOOOOORORROOOOOOOOOOROOOOOOOOOOOORRORRORROOORORORRROORROOOROOORORRRRROROORROOOOOOOOOOOROORRRRRRRROROOOOOOROROROROOOOOOOOOOOOOOOORRROOOROROROOOOOOROOOROOOOOOOOROOOROOOOOROOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOROOOOOOOOROOOOOOOROOROOOOOOROOOOROOOROOOOOORROOOOOOOROOOROOOOOOOOROOOOOOOOOOROOOORROROOORRROOOOOROOOOROOOORROOOOOOOOORROOOOOOROORROOROROORROOOOOROORROOOROOOORROROORORRRRROROOOOORROOOOOOROORORORROORRORROORORRRORRRRORORORROOOOORROOROOOOROOROROROOROOROORRORORORORROORROOOROROROOROROORROOROOOORORROOROOROROOORRRROOOOOOOORRORORRORORORRRORROOROORRORROOOOOORORRORROOORROORRRORROROORORRRRRORRRORROORRRRRRORRORORROORRRRRRRORRROOROROORRRRRRROORRRRRRROOORRRRRRRRORRRORRRORRORROORRRRRRORORRORORORRROROOOROORROROOROOOORROOORRRORORROORORRRRRRORRRROORRRRORRRRRROROORORRORRRRRORORRORRORRRORROORORROROORORROORRRORRROROORROORRROOROROOROROORROOORRROROORRORRRRRRORRRORRRRROROORRORRORRRROORRROROORROOORROOOOORORORROROROROORRRRRORRORROOROROORORRRROOOORROOOOORRRRRRRORORRRRORRRROORRRROORROOORROROOROOOROORORRRORRROOOOORROOOOOOOOOOOOOORROOROORROOOORORORRRROOOROOROROOOORORORROOOOROOOOOROOROOOROOOOROROOROOOROOOOOROOROROOOROOOROOOROROOOOROOOROOOOOOORRORROOOOOORORROOOORROOOOROOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOORROOOOOOOOROOOOOROROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOORROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOORROOOOOROROOOOOOOOOOROROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOROOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOROOROOOOOOROROROOROOOOOOOOOOOOOOOOROOOOOOOOOOOORORORRROOOOOOOROOROOORROOORROOOOOOROROROOOROOOROOOOOORROOOOOROOOOROOOOORORRROROOOOROOOOORORORRORRRRROORRORORORROROROROOOOOROOORRORROOOOOOOORRROROROOROROROORRORRROOOROOORORROORRRRORORROROORRRRROORORROOORORRRRRRROOOOOORORORRROROOOOOROOROORRRRRORRRROORORRRRRORRRROOOOROORORORORRRRROORRRRORRORRRRRORRROOROROOORORROOROOORRRRRROORRORRRRRRORORROORROOROOROORRRORRROORRROOROORRRRRORROORRORRRORRRRRROORRRRRRORRRRRRRRROROROROOOORROOORRRRORRRORRRORRROROORRORORRRRRORRRORRRRRRORROORORROOOROOOROORRROORORRRRORRRROROROOOOROROROORRRRORRRROOROOROOOOOORRRORRORRROOORORRORRRROROOOOORRROOORRORRRRROROOORRROORRORORORRRRORRROOROROOORROOOOOROOOOOROOROORORRROOROROROOOOOORORROROOOORROOOOOROOROROOOOOROOORORROORROOOORROOOROOOOOOROOOOOOROOOOOOOOROOROOROOORROOOOOROORROOOOORRORORROROROROOORORRROOOOOOOOOOORORORROROOOOROOOOOOOROOOROOOOOOOOOROOOOOOOOROOOOROOROOOOOOOOROOOOOOOROOOROROOOROOOORROOOROOOOOROOOOOOOOOOOOOROOOROOOOOOOOORROOORRROOOOOOOOOOOOORROOOOOOOOOOOOOOROROOOOOOROOROOROOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOROROOOOOROORROOOROOROROOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOROOORROROOORROOOOOOORROOOROOOOOOOOOOOOOOOOOOOORROOOOOOOROOORROOOOOROROOOROORORRROROOOROOOOROOORRRROROROROORROROORRROROOOOOOROOROROOORROOOOOORRRORRROROOOOOOROROORROROOOOOORORRRROOOOROORRRRROOOOROOOROOOOOOOOOORROROROOORROOOORORRORRRRORORROROROORRRORROOROOROOOOROROOROORRRROOOORRORRORRROOROOOROOORRROOOOOROORROORRROOOOOORRRORRORRRRRRRRROOORORROORORORRRRRRROORRRRORRORRORRRORRRROORROORROROOORORORROOORORORROOOORRRROORORROORORROORRRORRROORRROOOROOORRRRRRORRROORRRRRRROROROORRORROROOORORROOOORRRRRRORORRRRROORROORRRRROORROROORRORORRRRRRORRRORRORORORRRRORORROROORORORROROROORORRRRORROORORORRRRRRROOOOOOOOORRRRRRRROORRRRORORROOOOOOROORORORRRRORORORORRORRRORRORRROROROROOOORROROOROROROROROOOORRORROOROROOOROOROOROROOORRRRRRRROROOROORORORROOOROOORRROOROOORRROOROROORRORORRROORRROOOOOOORROOOROOOOOORORORROOROOOROORRROOOOROOOOOOOROOOROOOROORROOOROROROOOOOROOOROOOOORRRRROOOOOROOROOOORROOOOOOOOOOROROOORROROOOOROOOROROROOOOOROOOOOORROROOOOOOOOOOOOOOOOORROOROOOOOOOOOORORORROOOOOOOROOOOOOOROROOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOROOOOOOOOROOOROOROOOOOORROOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOORROOOOOROOOOOROOOROOOORROOOROOOOOOOROOROROOOOORROORROOOOROOOOOOROOOOROOOOORROOORROOOOOORROOROOOOOOROOORORROOOOROROROROOOROOOROOOOOROOROOOOORROOROROROOOOOOOOORRROORROORROOOOROOOOORRRORORORRRORROOROROROOORRRORORRROOROOROORRRRROORRRRORORRRRRORROROROORROROORRORROROOROOROORRRORRRROROROORRRRRROORRROORORRRORRROOOOORORRRORRRROOORRRORRRROROOROORRRRRORROOOOROOROOOORRRRORROORRRROOOORRRRRRRORRORRRRROORRROORRROOOROOOROOORROORORORRRORRORRRRRORRRRRORORRRRRRROROOOROROOROORRRRRRRRROROOOROORORRORRORRRRORRRRRORRRRORRORROROOROOORRRRORRORRRORROROORRROORORRRRRORROORROORRROORROORRRORORORRRROOORORRORRRORRRRORROOOORROORRRORORROOOOOOOORRROOOROOORORROROORRORRRRRRROROORROOROOOOROOORRRRROROROOROOOOOORRRRRROROOORRROOOROOOOROOOOOOORROORRROROORRRRORRROOOOOOROOOORRORROOROOROORRRROORRRRORRROOROROROORRRROOROORRROOORORROROORORRROORROOOOROOOOOROOOOOOROROORROOOOROORRROROOROOOOROOOOOOOOROROROOOROOOOOOOROOOROROORROOOOOROOOOROOOOOROOORROOOOOOOOOOOOOROOOROROOOOOOROOOOORROOROORROOROOOOOOOOROOOOOROROOOROOOOROOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOORROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOROOOOOORROOOOOOROOOOOOOOOOOORORROOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOROORORROOOOOOOOOROOOOOOOOOROROOROOOROOOOOOOOOOOROROOOROOOOOOOROORROROROOOOROOOOOROROROOOOROROOOOOOOROOOOROOROOOOROOOORROOOORROORRRROOOROORROOOROORRROOORRRROOOOOOOOOOOORROOOOOORRORORROROOORRROROORROOOOORRRRORRROORORRRRRRRRROROOORRROOROOORROROOORRORRROOROROOORORRORORRRORRRRRORRRORORRORRROROORRROOOOROROOROROOORRRORROOOOOORROOROORRRRORRRORRRROORRRORRRROORRRORROROOORRROOORRORRRRRRRRRRRROOOORROORORRRORRRRRRRRRRORORROROOROOROORROOOOORORROROROORRRRRRRRRRROOORROORROROOOORRORRRORORORRRRRRRRRRORRRRORRRORRORRRROORRROORRRROROOOROOORORORROOOOROORRORRRORROORRRRRRORORRROROORORORROOOOORRRORORRRRRRRRORRRORRORROROOOOROOOOORORRRROROORRRRRROOOOOOROROORRRRORRRROOROOOROORRORROROROROOROOROOOORROORRRRRROORRROROORROOROOOROOOORRRROOORRRRORRROORORROOOROOOROROROROOORORRRORORRRRRROOOOOOOOOOROORORRORROOORORROROROOROOOROOORROOOOORROROORROOOORROORROORROROOOOROROOROOOROROOOOOORROOORROROORRRROOROROROOOOOOOOROOOOOOOOROOOOOOOOOROROOOOOOOROOOORROOOOROOOOROOOORROOROOOOOROOOOOOOOOOOROOOOOOOOOROOROOOOOROORROOORROOOOOORORROOROOOOOOOROROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOORROOOROROOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOORRORRROOOROOOOROOOROOOOOROOOOROOOROORRORROOOOOOROOOOOOOOOOOROOOROROORROOOORROORROOOORORRORROOOOOORORRROOOOOOOROOOOOOROOORRRROOOOOROOROORROOOOROROROOROOOOROOORORROROOROROOROOORRRRROORROROOOORROOOROOROROORRORORRRORROROOORROORRROORORRRRRORORROOOROORRROOOROORORORRRRORORRROORRRRRROORROROOOOOROOROORROOOORRRROORORRRORRRORRRRRRORRRROORORRORROORRRRRROORRROOROROORRORRRRORROORRRRORROOOOOORROOORRORORRROOROOROOORRRROROORRRORRRORRRROORRROROORRRROROOROOROOOOOOORRRRRRORROOOOROROROORRORRRORROOORORRRORROROOOOOOOORRRRRRORORRRRRRRORORORRRRORRRROOOORRRRRRROORRRRRRROOOORRORRROOORORRRROORRROOOORORROOROOOROOOOORRRRORROOORRORROORRRRRROOROORROROOOOORRRRROOROORRORRRRRROOOROOOORORROOORRROOROROOROOOROROOOORRRORRORORRROROOORRORRRRRRRRRROROROOROOROOOOOOROOORRROROOOOOOORRRRROROOOOROOOORROOOOROORORRROOOOOOROORORRRRRROOORRORORORROORRRROOOOOOOOORROOOOROOOORORORORORRORRROOOOOOOOORRROOOOOOROROORROOOOOOOOOOOROROOOOROOOOROOOOROOROROOOOOOOOOOOOOROOROROOOOOORROROOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOORROORROOOROOOOOOOROOOOOOOOROROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOROROOOOOOOOOORROOORRRROROOOOOOOOOOORORROOOOOOOOOOOOOROOOOOOOOOOOOOOROROOORORORORRROROROOOOOOORORORROROOOOROOROOOOROOOORROOORORROOOOOOOROOROROROROROOOORROOORROORROROORRRRROORROOROOOROROOOROROOOOORRROOOORRORROOOROOROOOROROORORROOOORRROORROOOORROOORRRROROROROORRRRORRRORROOOOOOOOORRRORORRROOROROOOOOROROOROOORRORROROOROOOROOORRRRROROROORROOORRRROOORROROROOOROOOORRROROROROROROOOOORROROOORRORRRRORRORROORRRORRRORROOORORORRRRROOOOOOROROORRRROORRRRROROORORRRORRRORRRRRROORRORORORRORRORROORRRRROORRRRRROORROOOORRRRRROOORRRROORRORORROOOOROORRORRRRROORROORORORROOROOROORROOORROORROORROORRROOROORRRRRRRROORRORROROORRORRRRROOOORRRORROORORORRORROROOORROOROORRROOOROORRRROOOORRORRORRORRRROOORRROOROOORRORORORRRROROOOOOOOROOOROOROROOORRROOOOOOORRRROORORORROROROROOORORROORROOOOROOROOOROORROROOORORRROOROOOOORORROOOOROORORRRRROROOOOOOOOROOOOOOORROOOOOOOORRROROOOOORRORRROOOROOROOOOROOROOOOORROOROROOOORROOOOOOOOOORRROOOROOOOOOOOOORROOOROOOOORROOOORROOROOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROOORRROOOROOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOROROOOROOOOOOOOOOORRROOOOOOOOOOOROOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROROOOOROOOOOOOOROROOOOOROOOOOOOOOROOOROOOROOOROOROOORRROOOROOOOOOOROOOROOORROROOOOOOOOOOOOOOOROOOOROOROROOOOOOORROOOROOROORROOOOOROOROOOORORRORROOORORRRRROROOROOOROROOOROOROOOOOROOOORORORORRROOROORRRRORROROORRROOROORROOOOORRROORORROROORRRRRORROOOORROOORRORROOOOOOOROROOOOROORORORRRORORORRROROROOORRRROROOORRROOOROOOORROOOOOROROROOOROOROOORRRROOOORRORRROOORRRRRRRRROORRRROOROORRRORORRRORRRROROOORROROROORRROOORRORRRORROORROOROOORRRROROROOORRRRRROORRORORRRRRRORRROROORRRRRROOOOORRRROOROROOOORRRROROROROOORRRRRRRRROROOORRRROORRRRRRRRRRROOOROORRRROOORRRORRRORORRRRRRORRROOROOOORRRORORRRRORRRRRORRRORRRRRRORRRRRRROORRRROROROOOOORRROORORROROROOROOROOROORRRRRRORORORROROOORORRRORROOORORRRRORROORORORRROROORRORRROORRROORRRORRROORROOOOORORRORRRRRORORRRROOOORRROORORROROOOOOROOORRRRORORRRORRRROOOOORROORROOOORROROOOROOOOROORORRORROOOROOOOROROROROOOOOOOROOOOOROOROOROOOROOROOORROROROOORRROOOOROROOOOOOORROOOOOOOOOOOOOROOORROOROOOOOOROOOOORORROROOOROROROOROOOOORRORROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOROOOORROOOOOORORRROROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOORROOOOOORROOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOROROROROOOOOOOOOOOOOOOOOROOOOOOOROOROOOROROOOROOOOOROOOORRROOROOROROOOOOROROOOROORORROORORRRROOROROROOOOROOOOORROOOOROOOOOOOOOOOOOOOOROORRROORORROOROOOROORROROOORRORRORRROOROOOROORROROROOROOOOOROOROORROOOOOOOROOORRROOROROROOROROOROORORORRROOOROOOOOOROORRROOOOORRRRORORRORRORRORORROOORRRRRROORROOORRRORROOOROOOOOOOOOORROORORRRORORRRRORRRRRRROOOOOORRRRORRORRRRRORRRRRRRORRRRROROROORROORROOROOORRORORORORRRRRRRORRRRRRRRORROORRRROORRRROOORRRORRRORROOOORROROOROOORRROORRRRROOORRRRRRRRROOROOORRROROORORRRORRRORORORROORORRROOORORRRORRRROORRRRRORRRRROORORRROORROROOORROORRRRRRRRRRROOOORRRRRRROORORRRRRRRRROROOOOROORROROORRRRORRRROOROOORORRROOOROOOORORROOOORRROOORORORRRRORRROOROORRROROROOROROROROOOROOORRRORRROROOOOORRORRRRROORRRRRRORROOORRROOOROOOORRORRRRROROOOROOOOOROORRORORORORRORORROOOORROOOROROROOORRROORROORRRROROROROORROOOOORRRORRRROOORORROOOORRROOROOOOROOROOOROOOROOOOOOOOOOOOORROROOROOOOROOOOROOOOOOOOOOOOOROOOOOOOOROORRROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOORROOROOOOOOOROOOOOOOOOOOOOOOOORRROROOOROOOOOOOROOOOOOOOOOOOROOOOROROOOOOOOOOOOOROROROOOOOOOROOOOOROOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOORROOOOOOOOOOORROOOOOOOROORROOOROOOOOOOOROOOOOOOROOOOOROOROOOOOOROOOROOROOOOOOOOOROOOOROOOOROOOOOROOOROOOOOROROORROROROOOOOOROROOOOOOOROOOORROOROOOOOOOROOOOOOROOORRROOOOOOOOOOOROOOOROORORRORRORROROOOOOROORRROOOROOOROOOOOOROORORROOROOOOOOORRROOOOROOOOOROOOOOOOOOOOORROORROROOROROOOROOOROORORRRROOORORRORORROOROOOORROROROOOOOOROROOOOROOROORRROORRROORRROOOOORRROOOORORROORORROOROOORORORORROORROROOORRROORRROORORRORROORROOORRORRRORORRRRRRRRORRRRROOROOOOOORROROORRRRRROOOOROROROROORRORRRRRRRRRRRRRORRRRRRRRORRORRRRORORRRRRRRRRRORRRORROOORRORRORRROORRORORROORRRROOOOOORRRRORRRRORRRORRRRRRRRORRRRRRROORORRROOOOORROOOORORROOORRRRRRRRRROORRRRRRORRRRRORRRRRRRRROORRRORROROROROOOORRORRORORRRRORRRRORROOOOROOORRROOROORRRROOORORROOROORORRRRROOOORRORROROROOORORROORRRORRRRRRRROORORORROORROORRORRRORRORRRORORRROOORRRRROORRORRRROOROROOOORRROOOOORRRRROORROOOORROOORROORORROOORORRORORRORROOOOOOROOOROOOORROOORROORRROROOORORRRROROROOOOOROOOOOOOROOOORROOOOORROOOOOOORROOOOOOROORRROROOOORRORORROOOOOOOOOROOOOOOOROROOOROOOROOROROOOOROOORRORRRROORROORROORROOOOROOROOOROROOOROOOOOOOORRORRROOOOOOOOROOOOOOROROOOOROOROOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOROOOOROOOOOOOOOOOROOROOOOOOOOROROOOOOOOOOROROOROOORROOOOOOOOOOOORROOOOOOOOOROOOOOROROOROOOOOOOOOOOOOROOOOOOOOOOOOROORORORORORROOOROOOOOORROOOOROOOOOROOROOOOORRRROOOOOROOOOOOOROOOOORROOROROOOOOROROOOOOOROOROOOOOROORROOROOOOOROOOORROOORRORRROOORROOOROOROOOOROOROOOORROOROROROROROOOOOOOOORRRORRORORRORORRROOORORORROROOROOROROORRRRORORRRRRORORRROOORRORRRRROOROOOORORRRRROORROOORRRORRORRRORRORROROORORROORRRROOOROOROROORRRORRORRROOOOORRORRORROOORRRRRRRRORORROROOOORRORRRRRRRRRRRRRRRRORRROOROOOORRROORRORRRRRROOOORROROORRORROORRRROOROOOORRRROROORRRORRRRRRRRORORRROORRROROOROOORRRRORRRRROOORRRROOOORRORRRORRRROORRRORROOOORRORORROORRROOOORROORRRRRRRORORROROOOOROROOROOROROORRROROORROROOORROROOOOORORROORRRRORRRRROORROOORORRORRRROORROROOOORRRROOROOOOOROORROORRORORORROOOOROOORORROOORROROORROOROOOOOROOROROROOOOOOOOOORORRORROOOOOORRRROORRRRORORROROOORROORRORRRORRRORRORROOOOROOROROROROOOROOOOOOROORRROROORRRORRORRROORRRROOOOORROOOOROOOOOROOROOOOROOROOOROOOOOROOOORROOOOOROOOOORRRROORROOOOOROROOOOOROROOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOORRROOORROOOOOOOOOOROOOOROOOOOROOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOORROROOOROOOOOOOOOOOOOOOROOROOOROROOOOROORROOOOOOROOOOOOROORROROOOOOOOOOOOOOOROORORROOOOROOROOROOORROOOOOOOOOOROOOOOOOOOORORROOOOROOOOROOORROOOOOOOROROROOROORRRROROORORRRROOOOROOOROORRRROOROOOOOROOOOROOROOOORRRROOROOORROROROOROOROOROOOORRORORORROOOROORORROOOROORROOOORROROOROROORRRRROORORORRRRRRORROORRROORROOOOROORRRRRRROROROORRRRROORRORROOORORRROROOORRRRROORRORRRORRRRRRRROOOORRRRORRROOORORRRRRROORRORORORROORRRROORRRROROROROOROORORROORRORRORORRROROOOORROORORRRRRRRRORRROOORROORRORRRRORRROOORORRORRRROORRRORRRRORRRRRRRRORRROROOOROROROROOOOOOORRORROROORRORRRRRRRRRORORRRRORROROROOOORRRROROOOROROORRRRRORROROOOORRROORRRRRROOROORRRROROORORRRRORORRROROOORORRRRRORORRORORRRRORRRRRORRRRRORRRROORORRRROROROORORRRROOORROORRROROOORRROROOOROOOORROOOOROORORRORRRROOORRRROOOOOROORROROOOOORRRROOORRROROORROOROROROORRROROOOORRRORORRRRRROOOOOROOORORROOOORROROOORRORRROOOOOROROOROORORRRRORORORRRROORROOOORRROOROOOROORRRRORROOOOOOOOOOROOOOOOOROOROROOOOROOOOROOOOORROOORROOOOOROOOROOOOOOOROOOOOROOOROOOROROOROOOOROOROOOOOROOOOOOOOOOOOOOOOROOORRROOOOROOROOROORRROOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORRROOOROOOROOOOOOOOROOROOOOOROOOOOOOOOROORROOOOOOOOROOOOOOOOROROOOOOOOROOOOOOOROOOOOROORRRROROROROOOOOOROOOORROOOORORORORROROOOOOROROOROOROORROOOOOOORROOOOOOOOROORORRROOOOOOOOOROROORROROOOROOORORROORRORROOORORRROOROORORRROROROORROROORORROORRRROROROOROORRRROOROOOOORORRRRRRRRRORRROORRORORRORRRRORRRRRORORROROORORROORRORRRRROOROOOOORORROROORRRORRORORRORORORRRRORRROROOORRRROOORRROORORROOORROROORRRRRRRRRORORRRORRRRRRRRRRROORORRORORORRORRRORORRORORROROROORROORRRRORORORRORRORRRORORRORRROORRRROORRORRORORRORRRRORORORRRRROOOOOORRRORRORRROROORORROOORROOOROORRORORORROOORORRRRRRRRROORRORROORORRRORRRRRROOORRROROOORORRRRRRRORROROROOOROROORRROORORROORROOORRRROOOOOROOOORROOORROORROORROOOROOOOOOROOOORRORROOORROORORRRORORROOORRORRRROROROROROORORRRORRROOORRROORRRORRRRRROOROOOORROROOORORORROROORORROROOOOROOROOOROOOOOROOOROROOORRORORROOOROROOORROROOOOROOOOOROOOROORROORRROOORRRORRROOOROOOOOROOOROOOOOOOOOOROOOOOOOROORORRROOOOOORORROOOORRROOROOOOOOOOOOOROOOOROOROOROOOORROROROOOORRROOOOOOOOOOOOROOOOOOOORRRROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOORRROOOOROOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOORROOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROROOOOROOOOOORROOOOOOOOROOOROOROOROOOOOOOOROOOROOROOROOOOROROROORRROROOOOOROOOOOOOROOOOOOOOOOOOOOOROOOROROOOOOOROOORORROOROOOOROOOROOORROOOORRRROORORRROOROOOOORRORRRRRRORRRORRRORORORORRRORROROOROOORRORROORORRROROOOORRORRROOOROOOOORROORRORRORRRRRRRROOORRORROOOROOOOOOORRRORRRRORRRRRORRORRRRRRORRROORRORRRORRROOROORROORRORORROROOROORRRROOORRRORRRRROOOORRRROORRRRRORORRROOORROROROORRRRROOROROORROOOORRROOORORRROORRRORROOOOOOROROORRORORRRRORRRRROORROOROOOROOOOROORRROORRRRROOOORRORORORORRORRROORRRRRRRROORORRRORRRRRRROROOROORRRROROROORROORRRROOOROOORROORRROOOORORRRRRRORRROORRRRROOOORRRORRRORRORORRORRRRORORRORRORORRRORRRRORRRORRORRRORRRRRROORRRROORRRRROOORORRRROOROOORRRRRRRORRRORRROROORROORORORRROOORROROOOOOORROROROROROOROORRRROORROOOROORROOOOORROROROORRRRRRRRORRRRORORRRRORORRRROOROOOORORORRROOROOOOORRORROOORORRROORROOOROOOROOOOOOOOOROOOROROOOROOORORRROROOOOORORORROOOOORRROOOORORRRORRROOORRROOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOROOOROROOROROOOOOOROOOROROROOROOOOOOROOOOOOROOROOROOOOOORROOROOOOOOOROOOOOROOROOOOROROORRORROOROOOOOROOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOROOROOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROORROOOOOOOOOOOOROOOOOOOOROOOOOORORRROOOOOOOOOOOROOOORORRROOOROOOOROOORROOOORRRROOOROOOOOOOORRROOROROOOOROOOOOOOROOOROOOOROOROORORROOOOOORRRROOROOROOOOOOOORORRORORORROOORROROOOOORROOOOROOORRRRORRROROORRROROROOROOOOROORORRORROOROORRRROOROOORRRRORRORRRROOOOORRROORROROROORROOROORRRORRRORROROORRRRRRROOROORROORRORRRORROOOROORROORORRRRRRROROOOORORRRORRRRORROOOROOORRORRRORRORORROORROOOOOOOOORROORORRROROROOORROOROORORRORORRRRROOOORROORROROROROORORORRRORRROOOOROORRORRROOOORRRORORRRRRORRRORRRROROOROROOORRROOOORRROROORRORRRRROROORRROORORORRORROROOOOOORROORRRORRROROOORORROOROORRORRORRRRORROROOROROOORORRRRORORRORORORROORROOOOORORRRRRROORRORRROROOORORRORRORORORORRRROROOORRRROORRRORRORROORRRROORRRRRORRORORRRROOOOOORRRORRRRROOOORRRRRRORROOOORORORRROOROOOROOOROOORROOOROROORRORORRROOROORRRROORRRORRRRORRROORRRROORROROOOORRORROROOROOORRRORRROOOOOROORRRORROOOOOOROOOOOOORRRORORRROOOOOORROOOOOOOOROOORROORROROORROOROOROOOOOROOOOOOOOROOOOOOOOORROROORRROORROOOOOOOROOOROOOOROOROROOOOORROOOOOOOOOOOOOOOOROOOOOROOORROOOOOOROOORROOROOOOROROROOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOROOOROROOOOOOOOOOOOROROOOROOROOOOROOOOOOROOOORROOROOOORROOOOOORROOOOOORROROORRROOOOOROOOOROOOOROROOROORROROROROOORRROROOROOORORROOROOOROOROOROOROOROOROROROOORORRRROORORORROOOOROROOROOOOOROOROOOROROOOOOOOROOOROROOOOOORORORROORROORROROROOOOOOROOORRRRORRRROOOOORROOROOOROOOROOOROOOOORROROROOOROOORRRORORROROOORRRROROROROOROORRRROOROOOROOORRRROORRRORORRRRRRORRRRRRORRROOORRORRRORORRRRRRRROOORRRROORRRRORRORRORORRRORROORORRRORRRRRROOROROROORRROOORROORORROROROOOORRORORRRROOORROROORRRORRORRRRRROOOORRROORRRRRRROORORRRORRROROORRORRRROORRRRRRRORROORRRORROOORRRRRRRRRRRRRROOOORORRRROROOOORROOOORRRRROOOROORRROORRRORRRRORROORORRRORRORRRRRORRRRROROOOOOORRRRRORROORORORRORRRRRORORRRROORRRRRRRORRRORORROROROROOORRRRRORRRROOOOORROORORROORRORRORRORROOORROORROROOOOROOROORORORRORORORORRORROORRORROROOOOROOOOOORRORRORORRORROOOROORROROOOOOOOROOROROOORRRROROOOOROOOROOOOOROROORRROOOORRROORROOROOOOOOOOOOOOROOOOOROOOOOORORRORROROOOOOOOOORROOOOOOORROROOROROOOOOORRRORORROROOOOOOOOOOROOOOOOOOOOOOOOOOROOROROOORORROOORROOOOOROROOOOOOOORROOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOORRROROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOORROOOOOOOOOOOOOOOOOOORORRROROOOOOORORROOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOROROOOROROOOOROOOOOROOOOORROOORRROOOOOOOORRRROROORORROOOOROOOOOOORROROROOOROOROORRROORRRROOOOOOORORRRORRRRROROROORRROOROOOROOOORORROORRORRROOOOOOOORRROORRROOOORRRRORRROOOORRRRROORORRORRORROROORROOROROOORORROORROORROORRROROORORRRRRRORRROORRRRRROOORORRORRROROORORROORRROROROORRRRORROOORRRRORROORRRROORRORROORRRRRRRRRROOORORRORORRORRROOROOOOORRRRORORRROROROORRRORORROROOROORROOOROOOROROOOORRRRRRRRRRROOORRRRROROOOORORROROORORRORRRORROORORRRROROOOORRORROOOORORORRORRORROOOOOROROORRRORRORRORORRRRRRRORORRORRRRORORROOOORRRRORRRORROROORORORORRORRRORRORRRRRROROROORORROROOROOOORRORRRRORROOORORRROOOOORRRRRRROROROOORORRRROOOROROORROROROORROOORROROROOOOOOOOOROORRROOROOOOOOORRORORORRORORRRRORRORROOOOROOROORROORORRRRROOOORORROROOOOOOROROOOOOOROROROOOOOOOOORROORROOROROROOOOOOORORRRROOOOOOOOOOOROOOOOORROOOOROROOOOORORRROOORROOOORORROROOOOOOOROROROOOOOOOOORROOOROOOOOOOOORRRRROOOOORROOOOOOORROROOROROROOOOOOOOOOOOOOOROOORRROROOROOOROROOOOOOOOOOOOOOROOOOOROOOOOOOOOOROROOOOOOOOOROOORROOROOOOOOOOOOROROOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOORRROORRRROORROOOOOROOROOOOOORROOOOOROOORRRROOOROORROROOOORROOROOOOOOORRORRORROOORROROOOOORRORRORORRROROOOOOOOOROOOOOROOOROORROOOROOOOOOROOOROROOOOOROOOOOROORROROOOOROOOOOOOORRORROORRROOOOOORROOOROORROOORRROOROROOROOOORORROROORORROOORROOOROORRROOROROROOROORRRRRORRRRROOROROOOROORRROOROOOOORRRRRRRRRROOORROOOOOOOOROOROORRRROROOOORROOOOROOORRORRRRROORORRROROOOOOORROROORORRROROOOOOOOROROOOOOOROROORORRRROORROORROORORRORRRRRORROORRORORORRRRRRORRRRORORORRORRRORORRORROROOORRORROORRRRROORRRRRORROORRRRRRORORORRRRRROOOORORROORROROOROOOORRRRORORROORORROOOOORRRRORROROOORRORROROROORRRRROOROOORORROORRRORROROOOROOORORROOOOOOROORRROROROOROOROROORRORORROOORRORRRORRROORRORRRORRROORRRORRRRRRRORRRRRRRORORORRROROORRORRROOOORRRROROOOOOOOOROOOOORRRRORORRRRRORRROORRROOROORROORRRRORORROOOOOOOORORORORRRRROORRROROOORROOORORROORORROOROOOOOOORORORRRROOOOORRROROOOROORRRORROROOROORRRRRROROOOORORORROOOROOORROOOROOOOORORORROOOOORROOOOOOOROROOOOORROROOOOOOROROORROOOOORROROROOOOOROOOOOOOOROOROOROOROOOOOROOOOROOOOORROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOORROROOOOOOOROOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOROROOOROOROOORROOOOOOROOOOORORROOORROROOOOROOROOORROOOOOOOOOORROOOOOOROOOOOOOOROOROORROOOOOOOORRROOOORROROORRROOROOOORROORROOROROROOROOOOOOROROOROOROOOOOOOOROOOOOROOOOOOOORRRRROOROOOOROOOOROOOOOORORORROORROOROOOOORRRRROROORRRRROROROOOORORRRRORORRRRROOOROROORORROOOROOOOROROROOROORORRRRRORORRRRROROOROOROORRRRRROROORORRORORRRRRRROOOORRRROOORROROOORORRRRRRROORROOORRRORRORROROROOORRROOORRRORORRROROORRRRORRORRRROORRORRRORORRRORROOOORRRRRRROORROOORRRRORROOROOORORRRROORROOORRRROORORRRRROROORROORORRORRRRRORORRROOOOOROOOORRRRRORRROOOROORRORRRRORRORROROROORORRRORORRRRORORRRRRROROORROROOORRROOORRRORRRRROOOROROOROOROOOORRORORRRORRORORRRORRRRROORRORORRORROOOOOORRRRRRORORORORRORORRRRROOROORROOOORORORRRORRRRRORRROOOROOOROROROORORROROOOROOROOROORROOROROORROOOROORROOOORRORRRROOOORORRORROORRRRORROOORRRRROOROOORROOOOOOOOROOROORRRROROOOROOOOORROOOOOROROROOOOOOOOOROOOOOOROOROOOOOOORORROORROOOOOOOOOORRORROROOOORRROOOOROOOOOOOOOROROROOROOROROOOOOOOOOOOOROROROOORRROOROOROOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOROROOROROOOOOOROOOOOOROOOOOOOOROOORROOROROOOOOROOROOOROOOROOOOOOORRROOOOOOOOROOOOROOROOOOOOOOOOOOOOROOOOOOOOOROOROOOROOOOROOOOOOROOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOROOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOROOOORROROROOOOOOROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOROROROOOORROROOOOORRORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROORROROOOOROROOOROROOROOORROOROOOOOORRROOROOOROOOORROOOOOOROOOROOROOROOOROOOOOOOORRROOROOOROOOOROOROOROOOORRRROORRRROROROOORROROOOOOOROOOOORROOOORORROORRRRORORORORROROORROROORRORORORROOOROROORROORORRROORROOOOORRROROROROOORRRRRRRORRRROORRROOOORRRRRRRRRRORRRORORORRRRRRRRORROOORORRRORRROOORROOOORRRRRROROORORRRORRRROORROORRRRRRRROROROORORROOORROOOORRRORORORORRRORORRRRRRORORROOROORROOOORRROROROOOOOORROORRRROROOOROOORRORORORROOROOOOOOROORORRORRRRRORRRRORROORRRRORORRRRORORORRRRRROORORRRRRRRRRRORRRRORRORRRROOOORRRROOROOORRRRROOOOOOROORRRRORRRRRORRRRRORORRRORORROOOORROROORRRORRORORRORRRROORROORORRORRORORRRRORRORORROOOOOORRORRROOOORORRROOOORRROOOROORRRROROOORORROOORORRORRROORORRRRROORORROOOOOOOROROORRROROOOOOORROOOOOORRROOORROOROOROOOORROORORORORRRRORROROOOROORRROOOOOOORROOOOROOORROORRORROOOROOOOOOOOOROOORRROOOOOORORROOOROOROOOOOROOOOOOOOORROOOOROORORROOOROROOORRROOOROOOOORRROOOOROOOOOOOOORRROROOOOROOOROOOOOROOOOOOOOROROOOOROOROOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOORROOROOOOOOROOROOOOOOROOOROOOROOROOOOOOORROOOOOOOOOOOOOOOOOROOOOOORROOOOOROOOROOOORRROOOROOOOOOROOROOOOOOROOROROOROOOOORROROOOOOOROROROORRRRORRORROROROOOOORROOOOORROOOORORRRRORRROORROOOROOOOOROOORORORRRRRROOORRRRRORRORORROOOOOOOROOROOROOORORORRROOOORRORORROOOOORRRRORRROROROROROOORORROORROORRRROORRRRORRROROROROORRRRORROROOORORROOORROOOORRORORRRRRROROROOORRROOORROROORRRRRORRROORRORRRORORRRRRORRRRROORORRRRROROROORROORORRORRROORRRRRRRRROOOORROROORRRROOORRRRORRRORRROOROORRORORORORRROROOROOOORRROORRROROROORRORRORORRRRRORRORORRORORRROOOOORRRRRRROORRRRRRRRRROORROORORRRROORRRORORRRROROROORRROORRROOORRRRRRRRORRRRRRROROOORRRRRORRORORRORROOORRRRRROROOOROOORRORORRRROROOOOOROORRRRROOOROOOORROOORRRRRRRRRRROOOORORRORRRRROROOROROROORORROOROORRORRROOROOROOORROOROOOROORORRORRRORROOOROOOROOROOOOORROROOROOOOROOORORRROROROOOOOOOORROOOROOOOOORROOOORROOOOOOROOOOOOOROOROOOOROOOOROOORRROOOROROROOOOROROROROORRRROOORORRROROROOOOOOOOOROOOROOROOOOOOOOOOOROOOROROOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOROOOORROOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOROORROOOORORROOROOOOOOROOROOOOOROOOORROOOOOOOOOOOOOOROROROORORRROOOROOOOOORROOOORORRRRRRROROOOOOOOOOROROROOORROROOOOOOOORROOORROOOOORROOORROROOORORORRORORORRRORROROOORRORROOOROROOROOOROOORORRORRRROROOOORRRORORRRROORRRRROROOOROOORRROOORORROROORRROOOOROROROORRORORORORRRROROOORROOOOOROORORORROOROOROORRORRRRRRRROOORRRORORRORORRRRRRRROORRRORROROORRRRRRRROORROORRRRRROOROORROOOORRORORORRRRRRRRRRRORROORRRRROROORORROORRRRROORRRRROOOOOROOOOROORRORRORRRRRRRORRRRRORORRORRRROROROROORROROORRRRROORORORRROOOOOORRRORRRRRORRRRRORORRRROORRRRRRRRRRRORROORORRRRRRROROORRRROOOOOORRORRRORRORROOOROOOORROROOORROROORORROORRROROOOOROROORORROOOROOROROORRRRROORRRRORORORRRRORRROOOOROOROOOOOROROROORRORROOROOOOOROROOROORORRRORORROOOROOOROOORORROROORROOORRROOOOOROOORORORRRORROOROOROORORROROROROORRRROOROOORROROOORROORRORRORROOROOOOOOOOOORRROOOOOOOROROORORRRRROOOOOORRRRRROOROOOROORRROOOOOOOOOOROOORROROOROROOROOOOOORROOOROROORRROROOOOOOOOOOOROOOOOOROOROOORROROROROROOORROOOOOROROOOOOROOOOOOOOORROOOOOOOOOOOROOOOROOOOOOOROOOROOORROOOOOOOROROOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOROROOOOOROOOOOOORORROOROROOOOOOOOOROOOOOROOOOOOOOOOOOOORORROOOROORROOOOOOOOOORROOOOOOOOROOOROOOOROOROOOOOORRROOORROROOROOROOOOORORROOROOROORROROOOOROORRORRORRORRRORRROROROROOOOROOOOORRORRRROROORORRORROORROOROOROROORORORRROOROORRROROOORRRRRORRRRORRRORRRORROOOOORROOOOOOOROORORRRRRRRORROOROROORORRRRRRORROOROORRRROOORORRROORRRRRORRRRORRRRRRORRROOOORROOOOOORRRRORRROORRRRRRORRORRROORORROROOROOOROORRORRRORROOORROOORRROOOOOOOOORRRORRRRRRORRRRORROROORRORRROORRRRRROOORRRROOOROORROROOOORRORRRROOOORROROORORORROORORRRRRORRRORORORORRRRRRORRRRORROORRRRRRRRORRRORRRORRORRRRORRRRRRORRRRRRORROORRORRRRORORROROOOOORRROORORORROROROOOOORRRORRRRRRORRRORROORORROROORROOORRRROORRRRRRROORRRRROORRRRROORROROROOOOORRROOOORRRORORRRRROOOROORRROORRRROORRROOOORROROOORRRORRORORRROROROOOROORROROROORRROORROOOROOOORRORRROORROORROOROORORRROORRORRROORORRRROROOROOOOOOROROORROOROOOOROROOOROORROROOOOOOOROOOOOOOOOOOOOOOROOOROOROOOOOOROROROOOOROROOOOROOOOOOOROOOOOOROOOOOOROOOOOOORRROOOOOOOROOOOOOROOOOOOOOOROOOOOORRROOOOORROOOOOOOOORROOOOOOOOROROOOORRRORROROOOOROOROOOOOOOROORRROOOOOOROOOOOROOOOROOOROOROOOOOOOOOORROOOOROROOOOOROOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROORROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOORROOOOOOROOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOROOOOROROOOOROOORRRROOORROOOOOROOOORORORORROOOOOROOORROROOORROOOOROORRRRORROROORRRRRROOOOROOROOOORORROROROOROORRRRORROROROOOORROROOOOROOOOOOORORROROORORRROOOORROOOOORORROORORROROORORRRROOROOROOOROROORROOOOOOOROORORROORRRORRORRRRROORRRRRRRRROOOROOROOOROOROOOOROOORRRORRRRRRROORORROORROORRROOOROROROOORROROROOOROOORRRORORROOORRRRRRRROORRRRRORRRORORRORRRORORRRRRORRRROORORROROORRORROOOORRORORORORORRORROOORRORROORORRRROOOORORORRORORROORRRRRRORRRORORROROORRORROOOOROOOORORRORRRRORROOROOROOORRRRROORRROROOORORRRRRRRRRRRRORROORROORRRRRRORRORRRROROROOOORORRORRRROOOOOOORRRRRROROORORROOROOORRRORRRROROORRROORROOORROROOORRROOORORROORORRRORRORRRORROROOORORRORRROOROORROOOROORRROROORORROOORROOOROORRROORROORRRROROOORRRROORROROOROOOOROORRROOOROOROOROOROROROROORRRROOOOOROROORROOROORRRROOORRROOROROOROOORORRROORORROROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROORROOROROROROROOOOROOROOOROOOOOOORROROOOOOROOOOOOOOOOOOOOOOROROORORROOROROROOOOORRROOOROOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOROOOOOOOOOROOOOOOROOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORORROOOOOROOOOOOOOOOOOOROOOOOORORROOOROOROOOOOOROOOOOOOROROROOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOROORROOOOROOORORORRORORRROOORORROOOROROORROORROOROOOOOOOOOROOROOORORROOOOOROOOOOOOOROORORROOROOROROOOORRORRRROOORORORRORRRROOOOROROROROROOOOOROOOOOOORRROOORRORRORRRROOOORROROORORRRRROOORROOORRORORRROORROOROOOOOORORROORORROOORRRORRORRROOORRORRORORORROROROROOORROORROROOOROORRROOOOROROOORROOOORRRORRORROORORROORRORRRORRRORORORORRRRROOORORRROOROOOROROROORRRRRRORROROORRRRORRRORRORROORRRRRRORRRRRRRRRORORRROOOOORRRRRRRORORROORRORRRRROORRRRRRRROORROOOORRORRRRROORRORORRRORRRORORRRORRRORORORROOROORRROORRRRORORORORORORRRRRRORORRRRRROOROORRRRRRRRORRROORRORROOORORRRROROOORRRRRORRROROOROROROOOORRRRORRORROROOORRROROOOORORORRORROOOORORORRORRORRORROOOORROORRRRORRORRORRRORRRRORRRRORORROROOOROOOORORROOORORROOOOOROOORRROROOROROOORROORROOOOORROOORROOOORRRROORORRRRRRRORROOROROORRORORROROOOORROOOROOROOORRROOOORROOOROOOROROORRRRORROOOORROOORRRROOROOOORRORROOOOOOROOOOOOOOOOOOROOOROORRORROOOORROOOORRROOORROOOOOOROOROROOOROOROOOOOOOOOROOOOOOORRROOOROROOOOOROOOROOORROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROROOOOOORROOOOOOOOROOOOOOOOOOROORROOROOROOOROOOOROROOOROOOOOOOROOROOOROOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOROROOROOOOOOOOROOOOOOROROOOOOOOOOROOROROOOOOROROOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOORORROROORORROOOOOOOOROOROROOOOOOOORORORRORROOOOROOOROOOOORROOROOROORROOROOORRRRROOROOOROOOOROROOORROOORORRORORRROOOOROOORRROROORROOORRRRRROOROORRROOOOOOOOORORRORRORROORRRRRROROORROROOOORORRRROROOROOOORORRROOROOORORORROROORRRRRRORROROORRROORORRRORORRORRRRROORRORRORRROROROOOORRRORRORRROOOORRROORROROOROROORROORRROROROROOORORORRRRRRRRORORRORRRRRRRRROROROORROORRORRRROOORRRROROOORRRRRORORROROORRRRROORORRROORORRRORRRRRORROOROORRRROORROOROORRORRRROOOROOROORRRROORRORRORRRRRRROORROOOOORROOORROORRORORORORRROROROOROROROOOOOOOORRRROOROROROOOOORROROOROORORORRORORRRORROOORRRRORRRORROORRRROORRRROORROOOORRRORRRRRROORRRORRRRROOROORRORRRORRORRRROORROOORORRRRRROOOROORRRORRORORRRORRRROOORRORRROROOOOOROOORRROOOOOROROOOOORRROROROOROOORORORRRRORROORORROORRRROOORROROOOROORRORORROOOROOOOORRORROROOOOORROOOOOOOOOROOROORRRROROORRRROORROOOOORORRORRROOROOOOOOROROROROROROOOOROOOORROORROOOOOOOOOOOOOORROOOROOROOROROOOOORROROOOOOOOROOOOROOOOROOOOOOOOOROOROOOOOOOROROOOROROOOOOOOOOOOOOOOROROROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOROOOOOOOOROOOROOOROOROROOOOROOOOOOOOOOROOROORROOOOOOOOOOOOOOROOOOOOOOORRROORORROOOROOOOOOROOOORROROOROORROROOROOOOROOOOOORROROOOOROOOOOOOOOOOOOOOORROOOOORROOOOOOORORORRROOROOORORROOROORROOOOOOOOOORRROOOOOROOOORRORRRORORROOOOOOOOOOOORRRROOOOOORRROOROORROOOROROROROOOROROROORRORROOORROOOOOROOOORROORORRRRRROROOOORROORROOOOORRRORRROROORORRRROROORRORORRRRRORROORRROORRORRRRORRORRROOOOROORRROORORROORRRRRORROOORRRORRRORRRRRRORRRORRRROOOORRORRRORROORRRRRRRROOROOORRRRORRRROORRRRRRRRRROOORROORORROOROROORRORORORRRRRORROROORRRORRROOOOORROOROORRRRROOOORORROORRRRRRRORRRORRRRRRRORRRROOORRORRRRRROORRRRORORRORRRRRRRROROOOROOORORRRRRORRRORRROORROOOOORRRRRRRORORRRRRORROOOORRROROOORRROOOORROOOROORORRRORRRRRRORRORRRRRORRROOROOOORRRORRRRRROOOOORRORRORRRRRRRRRROOOOORORRROOOROOOORORRROOOROOOOROOOOOROOORORORORORRRORRROROROOOORORROOOORROOOOROOORROROOOORROOROROORROOOOOOORORRROOROOOROOOOOOOOROROROOROOOORROOOOOROOOORROOOOOORORRORRROROOROOORRROOOOOOROOOOROOOOOORORROOOOOOOOOOROORRROOOOOORROOOOROOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOROROROOOROOROROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOROOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOROROOOOOOROOROOOOOOOROOROOOROOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOROOOOORROOOROROOOROOOOOROOOORROOOOOROOOOOOOOOROOORROOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOROOOOROROOOOROOOOOROOOOROROOORROROOOROOROOOOOOOOOOOOOOOOROOOOOROOOOOOORRROOROOOORROORORROOORORROOOOOOOOOROOOROROOROOORRRROOOROROROOOROOOROROROROOOOORRORRRRRRROOROROORRROROOOOOOOOROORRORROOOORORRRRORRRORRRROROOROORORORRRORRRROOORORORROOROORRRROORRRRROORRROOORRROOORROROOOROOOROOORRROORRORORORORROOORORRRROROOOROROORRROOOOORORRRRROROORROROORROOROOOORRRRROORRRRORROROORROORRRRRRORORORRORRROOORORRRRRRROOORRORRRORORORRRRRORORORRORRORRORRRRRORORRRRRRRRORRORROORRRROORRRRRRRORRRRRRROORORORRORRRORORRROORORRRORRRRORROROOOOOORRORRROROOROOROOORRRORRORROROOOROOOOOROORRORORROORORRRRORROROORORRRRORRROORORROORRRORORRRRORRRORRROROOROOOOORROOORORRRORRROORRROOOOOORORRORORORORROORRROOORORRORROOROORRRRORRRRORRROORRROORRRRROOROOOOOORORROOORRROORRRROOOROOOROORRROROOOOROOOOOROOOOOORROOOOROORRRROOOROROROOROROROOOROOOOOROOOOROROROROROOOOOOOROROORROOROORRROORRROOOROOOOROOROORROOOOOOROOROOOOOROROOOROOROOOOROROOOOROROROOOOOOOOORRROOROOOOOOOOOOOOOOOOORRROOOOOOOOROROOORROROROOOOROOOOOOOOOOOOOOROROOOOOOOROOOROOOOOROOROOOOOOOOOOOOOOOOOOROORROOOROROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOROROROOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORORROOOOROOOROROOOROOROORROOOOROROOOOORROROOOORRRRRRROORROROORROOROOOOORORORROOOROOROOOOROROOOOROROROROORROORROROROOORORORROOOORRROOOORORRRRRRORRRORROOOOOOOOROOORRRROOOORORRORROROOOROOORRRRROORROOOORROOORROOOOROOROROORRRROROORRRROOOROROROOROORRRRRRORRROOOORRRRORRRORRROROROORRORROOOOOROROROOROORROOROORRROOROROROROROOORORRORORROORRRRROORRRROORRORRRROOROORORRRORORRRRRRRRORROOORORRRRRROOROOROORRRORRROORRROOORORORRROROOORROROOROOORORROORORROORROROOROOORRRRRORORRRORRRORRROOOORRORRORRORRRRORRROORRROROORRRRRRRRROOROOORRRRRRRRRRRORORRRORRRRROORORRRRRORRROOORRROOOROORRROOROOORROORROOOOROROROOOORORRRRRRRORORROROROOOOROROORROOOORROORRORROOOROOOORRRRRRRRROORRRRRROOROROROROOORRROORRRRRRROORROOOOORROOOORRRROOROROORROORRROORROOOOROOORRROROROOOROOROROOOROORRORROOOOROROROOOOOORRROOOOROOORORORRRRORRROROOROROORROOROOOROROOORRORRORROOROOOOORROOOOOOOOROOROORROOROOROOOOROOOOOOOOOOOORROROORORORRRROOOOOOOOOOOOOOOOROOOOOROROROOROOOOOOORROORRROOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOORORROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOROOORROOOOROOOROOOOOROOOOROOOOOOOOROOOROOROOOOOOROOOORROOOOOOROROOOOOOOROROOOOROOOROOROOOOOROOOOOROOOROORRROOROOOOOOOOOOOOORORROROROOOOOOOOOROOOROOROOORRRROOROOOOOORROOROOROORRROROROOOROOORRRROOOROROOOROOOOOOORRRRROROOOROOROROORROOOOOOOOOOROOROOORORRORORORRORRRRRROOORRRROROOOOOOROOROORROORRRRRRRRRRROORORRORORRORRRORROROORRRORRROOORRROROOORORRRORORORROOROROORRROORRRRRRRRROOROORRORRROORRROOORRROOOROOOROOORROROORRRRORRRRORRRRRRRORORRORROOOORORRORRRORRORORORRRRROOROOORRRRORRRRORROROROOROROORROORRRROOOROROOROOORRRORRRRRORRRRROROOROOROORRRORORORRRORRRRRORRRRRRORRORORRRORROORRORORRRROOOROORROORROORROOORRRROROORROOROOOOOROROORORRRRRORORORRORRORRRROOORORRORRROOROORRORRRROOOOOORROOORORORRRORORRORRRROOORRORRORRRRRROOORROOROORRROOORROOORRROOORORROORORRRROROOOROROROORROORROOROROORROROROROOOROOROOOOROORORORROOORROOROOROOORROOORROROOOOOROORORORRRROOROROROROOOORROOOOROOOROOOOOROROORRORORRROOOOORROORROOORRROOOOROROOOOOOOOOORROOOROOOROOOOOOORROOOOOORRROOOOORROOOROROOOOOOOROOOORROOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOORROOOOOOROOOOOOOOOOROOOOROOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOROROOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOROOOOOROOOOROOOROOOOOOOROOROOROOOOOROOOROROOOOROOOOOROOOOOOROOOORROOORORROROOROOOOOOORROROORRORRROOOROOOOORROROOOROROOOOORRORRORRRRRROOOOOOOOOOOOOOOOOOOROOROROOROOOORRRRRRROOOOROROROORORORRROROOOORRRRRRRROORORROORROORRRRRROOOOORORRRRORORROOORRROROOOOROOOOOROORORRROORRROORRRROOROROOROOOORORRROOOROORRRRROORORRRRRRRROROOORRROROORORRRRRORORROORROORROOROORRRRRRORORORORRRORRROORROORORRRRRRORORORORROOORRROORROORRROORRORRRRRRRROOROROOORROROORRRRORRROOORRRROORROROORORRORRRORORROROORRROOORRROROOOOORRRRROROORRROORRRRORRROORORROROORRROROOORRRORRRRROORRROORRORROORRRRRORRORRORROOROORRRROROORORRROROORRRRRRRORROOOROROROROOOORORORROORORORRRORRRRRRRRORROOORROOORORRRRROORRRORORORRORRRORRRRRORROOOOOORRROOROORRRRRRORRRRRORROOORROROROROROOROOORORRORRRORROOOOROOROROROROOOORRORROOORRRORRRRRRROORORROORRROOOOOOOOOOOORROORROROOROOOOOORROOOOOORORRROOOOROOROOOROOOOROOROOOOOOROOORORORORROOOORORROROOOOOOOOROOORORRROOROORROOOOOORROOOOROOROOOORROOOOOOOOROOOOOOOORRORROOOORROOOROOOOOOROROOOOORROROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOORROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORORROOOOOOOOOROOOROOOOOOOOOOOOROROOOOOOOOOROROOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOORROROOOOOOOROOOOOOOOROOOOOOROOOOORROOOORORROOROOOOOOOOORROROOROOOOROOOROORROROOOROOOROORORROROROOOORROOROOOROOROOOOOOOOROORROROOORORORROOROOOORROROROROOROORRROOOROORRRRRROOORROROROROROOOOORRRORRROROOOOOOOOORROOOOROROOOROOOORROOORORROOORORRRORORRROOOROOORORRROOROOORORRRORORRORROROOORORRORORROROOOOROORRRRRRRRROOOOROORORRRRORROOORORROORORORRORRRRRROOROOOOROOROOOROOORRRROROOOROOROOORRRRORROROORRRROORRORORORRORRRORRROOOOOOORRRORRORRRRROOROORORRRRORRORORRROROROORORRRORROROORRROROOORRRRRROROORRRROORRORROROORRRRRORORRRRRORORRRROOORORRORROROOORRROORRRRORROORRORRORRROROROOROOOORORORORRORRRORRRROOOORRRRROORROORRRROOORRORORORROOORRRORRRRROROORRROOOROOOOOROOROOOOORRROROROOROOROOOOROROROORRROOROOROROOOORRRRRROROOORORROORROORROOROROOORORRRRORROROOOORRRROOOOORROOOROROORRRRRRRORORORROOOOROROOOOOORROROOROROOOOOROOOOOOROROORRORRRRRROROOOOOOOROOORRROOOOROOOOROROOOROOOOOROOROOOOOROOROOOOOOOOOROOOOOROROOROROOOOOOROROOOOOOROOOOROOOOOOOOROOOROOOOOOROOOOOOORROOOROOOOROOOOOOOOORROROROOOOOOOOOOOROOOOOOOOOOROORROOOOOOOROOOOOOROOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOROOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOROROOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOROOOORROOOOOOOROOROROOORROOOOOOOOROOROOOROOOOROOROOOOOOOROOOOORROOOROROOOOOOOROOORROOOOOORROOROOOOOOOOROOOOOOORROROROOOOOOOOOORORRROOROROOOROOOOOROOOOOOOOROROROOOROOORROOOOORRRROOOOOROROROOOOOOROOROORORORROOOORORORRROOOOROROOORRROROROROOOOOOOOOOOOOORROORROROOROOROOORROROOORROROOOOORORORRRROOOROROOOORRRROOORRRRRROROORROROORRROORRRROOROORROORRRRROOOOORORROOROROROORRROOORRROORORRRRORRROORORRROROORRRRRORRRRRROORRRORORROROROROOORRRRROORRRORRROROOOORROOORRRRRRRRRORROOORRRRROROORORRRRRRRRRORORROORRRRRRRORRRROOORRRRROOORRRROROROROORROORORROOROORORRRORRRRORRRRORORROOORRRRRROROORORRRRRORORRRRORRRORORRORORRORRRRRRROORROORORRRRROOORROOOOROROORROOROORROOROORROROOOORRORORROROORRRORRROOOOORORRRRORORRRROORORRROROORRORORORRRRRORORORRRORRORROOOOOOROROROORRROOOOOOOROORORORROORRRRRRRRRRRRRRRROOOORORORORRROORRRROOROORRRORRORROROROROROOOOOOOORROORORROOOROOOROROORROOOOOOOROOOOOOOOROROOROROORRRORRORORORORORRROOORRROOROOORROORROOORORRROOOOROOROORROOOORROOOOOOOROOORORRRROOOOOOOOROROOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROROOOOORROOOOOROOOOOROOOOOOORRROROOOOOOOOORROOOOOOROROOOOOOOOOOOOOOOORROOOOROOOOROOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOROOOOROOOOOOOOOOOOOOOOROOOOROOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOROROROROOOOOOOROOORRROOOROOORROOOOOOOOROOOOOOORORROOROOOOOOROOOOOOOROOORORROOORROOOOOOROOOOOOOROOOOOROOOOOOOROOORRROOOROROOOORRROOOROOOOOOOOOOROOOOROOOROOOROORROOOOORRROOOOOROOOROOOOOORROOOOROROROOROOOOOOOORORRORORORORROORROORORRRRRRRORORORRRORORORROOOOOOOORRRORRORRORRRROOORROORRRRRROOOOOOOOOOROOORRRROOROORORROORORORRORORROOROOROOROOORROROOOOROOOROORORRROOOROORRROOORORROOOOOOROORRRROOORORRORRRRRORROOOOORRRORRRRORRORROOORRRRRORRRROORORRRRORRRRRRROOORORORRROORORRRROOOOOOROOORRORRRROORORRORORROROOOOOORROROROORRRORORRROORRRORRRORRRROORRRRRRORRORRORRRROORRRROOORRRRRRROORORRRRORRORORRORROORORORROOORRORRRORROROROOORORORORRRORORORRRRORRORORROORRORROROORRORROOORRRRRRRRRRROORRRROROROORRRORRRRRORROROOORROOORROROOROROOOROOORORRRROORRORROROROOOORROOORRORROOROOOOOORRRRRRORROOOOORROOOROORRRRROOOOORORROOROORRRROOORRROORROROOORROROOOOOOOOOOOROROORROROORORRORROOROOOROOOORROOOOROROROOROOROOORROOROORROOROOORRRROOROROOOOROOROROROOROOORROOOORORROROROROOOROOOOOROROOROOOOOOROOROOOOOOOOROOOROOOOOROORROOOOROORRROOOROOOOOROOOOOOOOOROROROROOOOOOOOOOOROORROOROOOOORRORROROOOROROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOROOOOROOORROOOOOOOOOOOOOOOOOOOOOROOOOOOORROOORROROOOOOOOOOOROORROOOOROROOOROOROOOOOOROOOROOROOROOOOORORORROOOROOOOOOOOROROORROOOROOROOOOOORROOOOOOOOROOOOOOOOOOOOROROROOROOROOOORROOOOOOOOOOOROORROROROOOROOOOROOOROROROOROOROROROOORRROROROOROROOROOORROOOOOOOOORRRRROORROOORORORROOOORRRRRROORORRORRORROOORORRRROOOROROORROORRRORRROOROOROOROOORRRORRRRRRORORRRROOOOORRRROORORROORRORRROOORORORORORRROOOORORORRRRRROORRRRORROORRORORRROORRROOORRRROOORROROORRORRROROROORRRROOOOOOORRRRRRRRORRRROOORRROROOROOOORRRORORRRROOOOORROROORORRORRRROOORORRORRRRRRRRRORRORRRORRROOROORRORRRROORRORORORRORRRRORRRRORRRRROOOOOORRORRRRRRRRRRRROOORORORRRRRRORORRRRROOROORRRROORORRORRRRRORRORRRORORRRRRROROORRRRRRRRRORRRRRRRRROORRRORRORROORRORRRROROORROORRORRRORROORROOROOORRROORRORROOOOORRRORROORRRRRROROORROOOORRRRRRORRORORRRROOORROROOORROOOOOROORRRORORROOORORRRROOOOROROOORRORORRRROOOOOORRORRRRRORROROORROOORROORORRROOROOOROOOROOOROROOOOOOORROOORRROOORRROROOROOORORROOOOROOROROORORRROOOOROOOOROOOOOROROROOOROOROOOROORRRROOOROOORROORROOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOROOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOROOOOROOOROOOOOOOOOROOROOOROROOROOOOOOOROOOOROOOOOOOOOOOOOOOROOOORROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRORORROOROOOOROROOROOOROOOOOOOOROOOOOOOOOOROOOROOROOORROOROOOROOOOROROOOOOOROOOOOORROROROOOOOOORROOROOOORROOOROOORORROROOOORROROOOOOOROOORRRORORRRRRORORROROROOOOROORRROOROORORROROOOROOOROOOOOOOOOOORORRRROOOOROROOROOOOROOOORRROOORRRROOOROOROOROROORORROOOOROOROOROOORORROROOOROORRROROROROOOORRORRORROOOROROORRRROOORRROOOORRRRROROOORORRRORRORORRRROOOOOOROORRROORORRORRORORRRROORROOOOOORORORORRRROROOOORRROROORRORRROOOORRORORRROOOOROROOROORROORORRORRROORRROORROOORORRRRRRROROORRORRORRRORORORRRRORRRRORORRRRROOORROROORROOOORROOORRRRRRORRROROORRRRRRRRRRROROORRRROORRRRORORRROOOOORRRRRORRRRRROORRRRORRRRROOOORRRORORORRRROORRRROORORRRORRRRORORORROOORROROORRRRROOOROOOORROROOOOOOOORORRORORRORRRRRROORROOROORRORRRRROOOORORRRRORORRRRORRORROORROORRRRORROOOORRRORORORORROOROOROROOOOORRROORRROOOROROOORORORROOOOORRROOROOROOORRRROROROOOROOOORORORROOORROOOOOORRRORORORRROROROOROROOOOOORORRROROROROOROOOORRORROOOOOOROOOOOROROOOOROROOOORROOOROROOOORROROOOOOROOOOOROOOOOROOOOROOOOOOROORROOORROOOOOROROOROROOOROOOOOROOROOOROOROROOOOOOOOOOOOOOOROOOROOROOOOOOOOOOROOOROOOOORORROOOOROOROROOOOOROOOROOOOOORROROOOOOOOOOOROOOOOOOOOOOOROOROOOOOOROOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOROOOOOOOOOROOOOOOOROROOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOROOOROOROROOROOOOROOROOOOOROOROOOROOOOOOOOOOOOOOOOROOROOOORROOOOOROROOOOOOOOOOOOROOOORROROOOOROORROOOOOOOROOORROOOOROOOOOOOOROOROORROOOOOROOORROOOROROOROOOOOOOOROOOROROROOOROOOROOOROOORRROOOOOROOOOOOOOOOOOOOOOOROOOROOROOORORROORRRROOOOOORRROROORORROROOOOOORROOROROROROROOOORROOROOOORROOOOOOOOOOOOOROOORROOROOOORROORRRRRROOORRRRROOORRRRRRORRRORORORRRRORORRROOORORORRRROORORRORROROORRORORORRRROOORROROOOROORORRRRORROORROORRORRRRRRRRRRRRRRRORRORORRORROORORRRRRRORRORORROROROORRRRRRRRRORORROORROORRRRRRORORRRRRORRRROROOROORRROOORRRRRROOOROORRROOOOORRRRRROOROORRRORROOROORRRROORROORORRRORROORORRRROROROORRRRRORORROOOOOORRORRORORROROOOROROROOOROOROOOOORRROROROOROORORROORORRRRORRRRORORRORRRRROOOORORRRRRRRORRROROROORRORRORROROOOOORRROROROOORROOORRRRRRROROORORROOROROROORORRRORORROOORRORRROORRROROROROOROORORROORORROORRRROOROROOROORORROROOOOROOOROOOOOORRORROOOOOOOORORRROROOOROROROOOROOOOROOOOOOROROOOOOROORROROROOOOROOOORROOOROROROOOOOROOOOOROOOOROROOOOOROOOOROOOOOOOOROOOOOOOOOOOROROROROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOORRROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOORROOOROOROOOOOROOOROOOROOORROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROROOROROOOOOOOOROOOOOROOOOOROORROOOOOOROROROOOOOOORRRROOOOORORROOOROORROOROOOOORRROOROROOORORROOROOORORROOOOROOOOOORORRORRRRROORORORORRORORRRROROORROROOROROOROOROOROOOOOORROOROOROOOORORORROOOOOOROOORROROOROROROROROOOROOOOOORROOROROOORROORORRROORRRRORROORORROROOORRORROOOORRROROOOOORRORROROOROOROROROORRORORORRRRROROORORRRRRROORRRRRROORRRRRRORRRRRRRORRRRRRRRORRRROORRRRRROORRROORRORRROOORROROORRRROROOOROROORRRRORRRRRORORRORRRRORORROOOOROOOOORRRRORRRROROOORRRRROROORRRRROORRRORRORRORROORROOROORORRRORORRROROOOORRORROROOORRORRRROORRRORRRORROROORRRORROROROOORRRORORORORRRROROORRRRRRORRORORRORRROOROROOROOOORORORRROORRORORRROROROOOOORRRRRORRRROOOORRRRRORROORRROROROROOOOORRORORORORRORRORRORROORRROOOOOROORROROORROORRORROOORRRROORRROOROORRRRORROOORRRORROROOORRRROOORROOOOORORRRRROROOORRROORRROROORRROOOOROOROOOOROOOOOROOORORROOORRROOOOOORROOOOROOOOOORROROORRRRROOROOOROOOOOOOROOOOOROOOROOOROOOROOORROOOOOOROROOOOOOOOOOROOOOOOROOROORRROORROOOOOORRROOOOOOOROOOOOOOOROOOROOOROROOROORROOOOOOOOROOOOOOOORRROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOROOOOOORROROOOOOORROOORROOOOOROOOOOOOROOOORROOOOOOOOOOOORROOOOOOOORROOOROOOOOOROOORORROROOOOOOOOOOOOROOROOOROOOOOOOOOORROROROOOROOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOORRROOROOOOROOOROOORROOROROROROOOROOOOOOOROROROORRORORRRRRORRROOOROOROOOOORORORROORROORROOOORROOORROORRORRRRORROORROORRRRORRRRROOORRRORRRRRRRRRRORRORROORRRRROROROROORRORRROORRRRROOOORORORRROROOORRROROOOOROOOROORRORROROROOORROOOOROORORORROOOOORRROROOORRROORORRRRRORROORRRRRRROORORRROORRRRRROOOORORRORRROORRRROROORORRROROORROOOROORRRRRRORORORRORRRRROOROORRORRROROROORRRORRRRORRORROOROOORRRRRORORRORORRORRRRROROOROORRORRORRORRRROROROOORORRROORRORRROORORRORRORRRRRROROOOORRORORRRRROORROORROOROORRORRRROROOORORORRORRORRRROOOOORRORRRRROROROORRRORRRRORRRRRRRRRROROROROROROOORROOOOORRORORRORRRROOROOROOOOOROOROORRORRRRROROOROOROORRRROOOROORRRROROOROOOORORRORRRORROOROORROOORROOOOOOOOOOOORROROROROROOROOOROOOOOOOOOROOOOOOOOROOOOOOOROROOROOROOOOROROOORORROOOOOORROOOOOOOROOORROROOOROOOOROOOOOORROOOROROORROOROOOOOORRROOOOOROORROOOOROOROROOOOOOROOOOOOOOROOOOOOORROOOROOOOOOORROOOOOOOOOOROOOOOOROOOORROOOOOOOOOOROOOOOOORROOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOROOOOROOOOOOROOOOROOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOORRROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOROOOOOROOOOOROOOROROOOROOROOOOOOOOOOOOOOOOOOOROROOOROOOOOROORROOOOOROROOOROORROOROOORORROOOOOROOROOOOOOOOOROROORROORROROOOOROROORRORORORRORRROORORROROOOOORROOROOROOOROOORORRRROOOOORROOOOORORROORROOROORROOOROOOROORRRORRROROROOROOROOORROORROORROROOROOROROORORROOOROOOROOORORORRRRORRROOOOOORROOROORRRORORROOORRRRRRRROOROORRRRRROROORROROORRORRRRORRRRRROORRORORORROORRROROORRORROROOORORRRRROOOROORROOORORRORRROOOOOOORRORRORRRRORRRROOORROROORORRORRROORORRRROOOOROORRRRRRRORRRRRORRRRRRORRRORROOORORRRORRORRRORRROOORRRROORROROORORRRRRRORORRRRRRRRRRRRRRRROORRRRORROROOOORORRRRORRRORRROOORRRRRRROROOORRRROOORRRRORRRRORRRRRROOROOOROROOORRRROORROOOOOOOORRRROROORROOORRROORORORROROROORRRRROORORRRORORROROOOOOOROOOOROORORROOROOOOORORRROOOROOOORRROORROOORROOOROOOOROOOOORRROOROROOROOOORRRRROOORROOOOOOROOOROOROROOOORRORROOOOOOOOOOOROROROOOOROOOOOOOORRROOOOOROOOOOOOOROROOOORROROOOROOROOOOOOOOROOOOOOROOOOOOROOOROOROROOOOOOOOOROROOROROOOROROOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOORROOOROROOOOOOOORROOROOOROROOOOROOOOOROOOOOROORROOOOOOOOOOOOOOOOROOOOORORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOROOOOOOROOROOOOOOROOOOOOOOOOOOOOOROOOOORROOOOOOOOOORROOOOOROOOOOOOOOROORROOOROOOROOOOOOOOOOOOROOOOOOROOROOROOOOOOROOOOROOOOOOOROOORORROOOOOOROOOOROOOORORORRROOOROROROOOOROOOROROOOOOOROROORROOROOOOORORORRROOROOOROOOOOORORORRORRROROROORORORRRROROOOROOOOORRRROOROROOROROOOOOORORRORRRRORRRROOOOORRRRRROOOROROOOOROOROOOOOOOOORROORROOORRROOORRORRROORRORRRORORORRRROORRRRRRORORORRORROOORROOROROOROOOOOORROORORROORROOOORRRORORORRRORRORRROORRRORRRORORRROORORRORORRRRRORRRRRORORRRRROROORRRROORRRRRRRROOORRRORRRRROROROOORORRRORRRORRORRROROOORRRORRRROORORRRRORRORORRRRORRORRORORRRRRORRROOROORRORRRRRROOORRRRROORRRRORRORRROORORROROOROOOORRRRRRRRROOORORRRORRRRORROOOOROROORRRRRORROOOOOROORORRRRROOORRORRORRRORROOROOOORORRRRRRRRROOOOROROROOOORORRRROOOORORORRRRRROORORRROOROROORRORROOOOOROROOROORRRORORROROOROROOROOOROROROOOOROOORROOORORRRORROOOOOOOOOOORRRORRRORORORRRRRRORORROORROOORRROOROROOORORROOOOOOORROOROROOOROORRRRORRROOOOOOOOOOOOROROOOOOROROOOOOOORORORROOORROROOROORROOOOOOOOOOROOOROOOOOOOOOORRROOOOOROOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOROOOOROROOOOOOOOORRROORROOOROOOOOOROOOROOOOORROOROORROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOORROROOOROOOOOROOOORROOROOOOOOOOOOROOOOOROROOOROOOOOROOOOOOOOORROOOOOROOOOOOOOOOOORORROOOOORROROOROOOROOORRROOOOOOOOOROOOOOOROOOOOOOOOOROOOOROOOORRRROOORRRRRORRROOOOOOOORORRROOROOORORROROOROORORRRRRORRRRORORROROOOOOOOROORRROOROORRRORRRROOOOORRROROORROROOOORROOROROOOOOORROORRRRRRORROROOOROROROOORROORORRRRROORORROROOORRORORROORRRRORROOOORRORRRRORRRRRRORRRRRRROORORORROOOROROROORRRORRORRRORRRORRRRROORRRRRRRRRORRRRORRRRRROORROORRRRRORORROORRRROORRORRROOOROORRRORROORRRROOOOORROORRORRORRORRRRRRROOOOROOORORRRRORRORRROORORRRROORORROROROROORRRORRROORORROORRRORRRRRRROROORROORRRRROOOROOORRRRORRROOORRRRRORRORRRRRORROROOORROORORRORROROORRRORRRRRORRRRRRRROOOORORRRRORRRRRRRRRORROOORRRRRRROOROROROOOORRRRORRROOROOROOOOOOOORORRROROOROORRROOROROROORRRRRRORROOROOOROORROOOOOROOOORROORRORORRRROOOROROORRORORRRRORROROORORRORRORROOOROORORRORROOOOROOOORROOOROOROOOOOOROOOOOOROORROORRORROOROROROORRROROOOOOROOROOROROOOOROROORROROOOOOOROORROOOOOORORORROROOOOOOROOOOOORRORRRROOOOOOOOOOROOORRROOOOOOOOOOROOROROOOOOOOOOOOORROOOOOOORROORORORROOOOROROOROOOOROROOOROOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOORORRORROOOROOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOROROOOOROOROROOROROOOOOROROOOOOOOOOOOROROOOROORORROOOOOORROOORRROOOROOOOOROOROOROROORORROROOROOORROORROOOROOOROOROOOROOOOOORRROOOOOOORORROOROORRROOOOOORROROORROOOROOOOROORORROOOORRROORRRORROOOORROOROOORRRROORROOOOOOOOORORORRROORORORROOOORRORROOOROROOORORROOORRROOORROOOOORRROOOOORROOROOROORRROOORRRORRORRRROOOORROORROOROOROORROROOROROROORROOOORORRORRROOROOORRRRORRORRRORRRRRRROROORRORRROOORRORRRORRRORORRORRORRORRRRRRROORROOORROOORRRRRRORRRROORRORRRRRORRRROROROROROROORRRROORROOORRROOORORROOROOORORRRRRRRRROOOORRRORORRROOROOORRORRORORRORRORROOROORRROOOOOOORORRRROOOOOROOORRORROORORRORORORRRROORROORROOROROROOORRRRRRRORRRRRORRRRRORRORRRRRRRRRORORRROORRRORRRORORORRRRROOORORORROOROROOROROROROOOOORRRROOROROORORRRORROORROOROOROOOOOOROOOROORROORROORROORROOOOOOORRROROOROROOORRROOORROROOROOOORORROOROROROOOOOROROOOOOROROROOOOOOROOROORRORROOOOORRRROOROORORRROOOOOOROORROOOROROOOORROROOOROORROOOOOORROROOOOOOORROROOROORROOOORROROOOOORROOOOROOOROOROROROOOROOOOOOROOOROROOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOORROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOROOOOROOOOROOOOOOOOROROOOOOOROORROROOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOORROOOOOOOOROROORROOORORORROOOOROOORRROOOORROOROOOORROROOOOOOROOORROROOOOORRORORRRORROOROOOOOROOROROORRORROOOOOORROROROOORORROOOOOOOORORROOOOOROOOOOORRROOROOORROOOOOOOROOOROOOOOOORORRROORRORRORRRRRRROOROOROOOOOROORRORROORRRROOOOOOORRROROOROOROOOOROOROROOORORRRROORROOOOOOORORORRORORORRRRORRRORRORRRRORORROORRRORORRRRRRROOORORRORROOOOROROORROROORORRRORROOOOOOOROOOORORROORROOOOORRROORRRRRRROOOOOROROOORRRRORRORRORROROROOROORRRRROROOOOOOOORORRRRORORRORRRROORRORROOROOROORROOOROORRROOORORORORRRRRORRROORORROORROROOROORRORRROORRRRRRROORRRORRRROROORRRORRRRROOORROOROORRRRRRORRORRRORRRORRRRROOROOOOORRORRRRRORRRRRRRRROOORROORRRRRRORORORROORROORRROOROORORRROORRORRORRORROOROOORRRORRROOOOOORROORROORRRROROOOROROORRROOOOOOORROOORRROOOOORROOOOORRORROROROOORRROROOORORROROOROROROOROOROOOOOOOOROOOORRROORROOORRORRRROOOROOORROOOOOOROOOROOOROROROOROOOOOROOOOOOROOOORROOOOROOOOOOOOOOORRROOOOOORRROROOOROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOROOOROOOOOOOOOOOOROOOROOOOOOOOOORRRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOORORROOOOOOOOOROOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOROOROROOROOOOOOOOOOOOOOOOOOOOROORRROOOOOOOOOOOOOOORRORROOOOOORROOROOOOOROOOOROOOOROOROOOOOOOROOOOOOOOOORORROORRORRRRROOOORROOOROROOOORRROROOOOROOOOORROOROORRORROORROOOROOROOOROOOOROROOOORORRROORROOOOROORROOORROOROORRRRRRORRRRRROOORROROROOORORRROROOOOORORORROORORRRRRORORRRROOROROOROOOORORRORROOORORRROOOORRRROOOOOOOROOOORORRRROOORORORRRORRORRROORROOOORROORRRROORORORORRRRRRRROORRROORRORORRRORROOOORRORRRRORRROOORRRORRRRORRROROROROORRRORRRORORRRORORRRROORRORORRORRRRRROOROROROOROOORRORROOROROOORORRRRROROORORROROORRRORRRRRORRROROROOROORRRRRRORRRORORRROORORROORRRROROORRRRRROORORRRRRORRORORORORRRRRRRRORROOOOROOORRRRORROOROROROORRRRRORORRORROORRRROROORRRRORRORORRORROROROORRRRORORROROROOORRRROROOORROOROOOOORROOORRRORORRRRORORRROOROOOOOROROROROROOROOOORRROORRORROORROOOORROORORRROOOORROORRRRROOROROORORORORRRRRRRRRRROROROOOROOROOORRROOOOORROROORORRROOOORORRRRRRRRRRORRORRROOOOOROOOOROORORRRROOOOOOROOROROORORROORROOOOOOROOORROOOORORROROOORORORRORROOOOOOOOROOOOOROROOROOROOOOOOOOOOOOROOROOOROOOOOORROOROROOORROOOROROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORORROOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOROOROOOROOOOOROOOOOROOOOOOOOROOOOOOOOOOOROROROROROOROOOOOOOORROOOOOOROORROROOROOOOOORROOROOOROOOROOORROOOOOOOOROOOOROROORROOOOROOOROOORRROORRROOOOOOORRROROOOOROOROOOOORRORROORORRORORROROORROORRROOORROOROORORORROORORROOROROOROOROOOROORRORRRRRROOOOOOROROORROOROOORRORROROORROOOOORROROOOOORORRRORRORORRRROORRROOOROOOROORORRORRROORRROORRRROORROORROORROOOROORORRROOOROOORRRRORRROOOOROOOORORRRRROORRRRRORORRORORRRRRRORRROORROORRRRORROORORORORRRRROROOROORORORRRRRRROORRRROORORORORROROROOROORORROOOORRORRROROROOORRRRROOROORRROROOORRRRRRORORRRRRORRORRRRRRRRRRRORRRORRORRORRRROOORORRORRROOORROORRROORRORRRROORRROORORORRRRRRRROROOORRRROORROROORORRRORRROOROORROOOORRROORROORRRORRORORROOOOORORRRRROROOORRORROOOROOROROORRRROORRORORRRRRORRRORRRROROROORRORORORRROORROOOORROORRORRORRROROORRORROROOOOOOOOOOROOROOOROROOOORRROOOOOOORORORRROROOOOORRORROOROROORORROOOOOROOOROOOROROORORROROOOOOROOOOOROOOOOOOOOORORRRROROOOOOOOOOORROOROOOROOROOOOROROOOOOOROOOOOOOOOOROOORROROOROOOOROOOORORORROOOOOORROOOROOROOOOORROOOOOOOOOROOOROORROOOOOORROROORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROROROOOOOOOOOOROOOOOOOROOROOOOOOROORROOROOOOOOOOOOROOOOOOROOOOOROORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOROOOORROOOOOROOOOOOOOOROOROOOOOOOOROOOORROOOOOOOROOOOROOROOOOOOOOOROOOOROOOOOOROORORRROORORROOOOOOORROROOOROROROOOOORROOOOOROOOOOROOOROROOOOROOOOOOROOOROORRORORROOOORRROOOOOOOORROOOOOOORORRROOORROOROOROOOROORRRRROOOOOROROOOROOORROORRRROOOOROOROOOROOROROOOROORORROOROOROORRORORROOROOOOORORORRRROOROORRROOOORORRRRRROOROROOROOROOORROOOOROOOOOORROOOROORORORRRORORRORRRORORORORROOROOORRRRRORROOORROORRORORORORRRRORRRROROORRRRRORRRRORRRRRORROROORROOORORORRORORRRROROROROORORRRRRROOOORRORROROORROOROOROOORRORROORORORRRORRRRRORROOORRORORRRRRRRORORRORRRRRROROOORORRORRRRROORORORRRRRRROORRRRRRORRRRROROOOORORRRRRRROORORRRRRRRRRROORRROORRORRRRORORRORORRRORRRROOROOROOOOOORORORRRORRROORRROROORORRRRROOOORRRORRORORRRRRORRRRORORORRORRRRRORRRORRROOROORRORROORORORRORROORRRROROOOOROORROOORRRROOROOOROOOOOORROORORRROORRRROOOOOROROOOOOROOOOROOOOORORROOOOOROROROOROROOORORRORROROROORROOOOORROOOOOOOOOORORRRORROROOOOROOOROROROOROORRROROOROOOOROOOOOOOOOROOOROOORRRROOOROORROROOOOROOOOOOOORORROOOROOOROOROOOOOOOOOORROROOOOROOOROOOOOOOOROROOROOOOOOOORRROROOOOOOOOOROOOROOOROOOOOOOOOORROOOOOOORROOOOOOOROOOOROOOROOOORORRROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOORROOOOOOOROROOOOOOOOOOOOOOOOORROROORRROOOOOOOOORRROOROOORROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOORROOOOOOOORROOOOOOOOOOROOOROOOOOOOOROROOROOOOOOOOOROOOOOOORROOROOOOROOOOROOOORORROROOOORROOOROOORROOOROORRRRRORRROORRRRRRORRROOOOOROOOORRORRROOOOROOROROOROOOORRROORORRORORROOOOOROORORORROOOOOOOOORORROORROOROROOOOOROORRRROOOOROORROROORRROORRRRROROROOROORORROOROORRROOOROOORRORORRRRORORROROROROROROOORROROOOORRRORORRORORORORRRROOORRRRRORROOOORROOROORRORROORRROOORRRRRRROORORRRROROORRRRRRRRRRRRRRROOOROORRRRORRROORRRORRROOOOORRROOROROROOOOOOOOORRORORORORRORRORRORRORORROROORRRRRRRRRORRROROORRORRROROOORORORRRRRRORROOROORRRRRRORRORRORRRRROROORRRRROORRRRRORRRORRRORORRORRRRRRRROOROROORRROOOORRORRORRRROORROORROOROOORRRRORRORRORORRRROROOOORROROORORRROOROOORORRORRRRRROROROOORRORRRROROORROOROOORROORORRRROROORORRORRRRROORRORORRORORROOROOOOOOROORRORROROOROOORRORORRRROOROOROOOROROROOOOROROORROORRROOORRORRROROROORROOOOORRRORROORORROOOROOOOORROROOOROORRROOOOOORRRROOOROOOOOROOOOOOOOOOOORROROORROOOOOOOOORRROOOOOOOORORROOROROOROOOOOROROORROROROOOOOOOOOOOOROORRRROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOROROOOOOOOOOOROROROOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROROOROOOOOOOOROOOOOOOOOOOOROOORROOOOOOOOOOOOOROOROROOROOOOOROORORROOOOROOOOOOOOROROOROOOOOOOOOOOOOOOOOOORRRROROOROROOOOROROOOOOOOOROOOOOOOOOOOROORROOOOOROORROOOOOOOORROOOROOOROOOROOOOOOOOOOOOOOOROOOROROOROROOOORRORRRORROOORORRROOORRRRROOORRROOOOOOROROOOORRRRRROOROOROROROOOROOOOOROOOOOOORRRROORORROORORROROROORRROOROORORROROOORROORROROOROOOROROOROORRORRRRRRRROROORROOROORORROROROOOORORORRRRORRRRRRROOORRRRORRRRRORROROORORRRROROORRORRROOORRRORORRRRRRORRRORORROORROORROROORRRRRROOOOORRRRROROOORROOOROROORROOORORROROORORRORRRRRRRRRORROOORRRORROORROORRRRRROROORORROORRORRRRRRRROORRRROROROROOORORROOORRORRROORRRRRRROOORRRORRRROOORRRORORROOORRRRORRRRRRORRROROORRRRRRRRORROROOOORORORRROOOOOOORROORRRORRRRRRORORRRROOOORRRROROORRRORRRORRRORRORRORRORORRRORRRRORRROORRRRROROOORORRRRRROOOOORROROORRRRRROROOOOOROROROROROOROOOROOOOOORROOROOOROOOOOOOOOORROROOORRORRORROROOOOOROROOOORRORORROOROORROORROOROOOOOROORRRRRORROORROOOOOOROOOOROOROOROOORROOROOOROOROOOOOROROOOOOOROOOOOOORROORROOROOOORROOOOORROORORORROOROOOOOOOOOOOROOOOOOOROOOOROOROOOOOOROOOOOOROOOOOOROOOOOROOOOROROOOOROOOOROOOOOOOOOOOOOOORROROOORROOOOOROOROOOOROOOOOOOOOOROOOOOOROOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOORROOOROOOOOOOOOOROOOOROOOOORROOROOOOROOOOOROOOROROROOOOOROOROOOORROROOOROROOOOORROROOOROOOOORROORROOOOOOOROOOOOORROOOOOOOORROOOROROOOOOOORROOROORRORRROOORROOOOOOOOORORRROOOORRROOROOROOOOOOOORRROOOOROOOOROORORORROROOOOROOOORRORORRROROOOOORRORROORROOOROOROOOOROROOROROORRORRRORRRORROOORROORRROOOOOROROOROROORRRRRRRORRROOOORRRRRRROOROOROORRORORORRORORRROOOROOORORORRRRRROORORRORORRROROORRORRROROROORORROORROORRRRRRRRRROORROROORRORRRRRORRRROOORRRRRRRRRRRRROOOROOOOROOORRROROORRRRROOROORRORRRRRORROOROOROORRRRORRROORRRRRORROROROOORRORRRRORORRRRORRRRORRROROORORROOOORRRRRRORRORRRRROORORORRORROOROORORORRRRORORRRROOOORORROROORRROORRRRROOROOROORORRROORORORRORROROORRRRROOORRRRRORRROORRRORRROOOROORROOOORORORRORORRRROORROOOORRRRORRRROOORORORRRROOORRORROROORRRROROORRORROORORROOOORORRRRRRORRROROROROOROOROOOROOOOORROOOOROROOOROOROOOROOOROORROOOOROROROOORROROOOOOOOOORROOROORRROOORRROOROOOOROROOORORORROOOOROOOOROORORROOOOOROOROOROORROOOOOOORROOROORORROORORROOORROOOOOROROOROOOOOOOOOROOROOORROOOROOOOOOOOOROOOOOOOOOROOOOROROROOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOORROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOROOOROOOROORRRROOOROROOOROOOOROROOOOOOOOOROOOOOOOOOOOOOOROOROOROROOOOOORRROOOORROROROOROOOOOOROOOOOROOOOOORORROOROOOOOORORORRROOROROROOORORROOOROORROORROROOOOOORORROOOORROROORRRRROOROOOORRRRORROOOROOOOOORRRRROOORRROORRORRRORRROOOORRORORRRROOORORRRRRRORRRRORRROOOROOORRORORORRRRRRRRRRORRORRORRRORRRRRRORORROORRRORRRRRRROOORRRORRROOROORRROOROORRRROROORRORRRRRRRRROOOOOOORRORORRRROOOORORROORRRRRRRROORORORORRRRRORRORRROOORRORROROORORRRRRRRRRRROORRORROROORORRRRORORRRRRRRORRRRROROROORRORRRRORRRRORORORRRRORROOOOORORRRORRRROOROOORRRORORRORRORRORORRRORORRRROROOROROROOOORRORRROORRORROOORORORRORROORRRROROORRRROORROORROORORRRORRRORRORROORRRRORORRRRORRORRORRRROOROORRRRRROOROROOOORRORRROOORRRORRRRROOORRORROOROOOOOOROROOORORRROOOORROOOROOROROROOOOOROOOOORROROROROROROOROOROORROROROORORRORROOOORROOOROOOOOOORROOOOROROOOOORROOORORROOOROOOOOROROOROOOOOOOOOOOOOROOOORROORRRRROOOOOOOROOOOOROOOOROOORROORORROOOOROOOOOOROORROROOOOOOOOOOROOOROROOOROOOOOOOOROOROOOOOOOROROOOOOOOROOOOROOOORROROOROOOOOOROROOOROOROROOOOROORROOOOOOOOROOOROOOOOROOOOOOROOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROROOROOOOOOOOOOOOROOROOROOOOOROORORROOOOORROOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOORROOORROOOOOOOROOOOROOOOROOORROROOOROOORROOROROOROOOORRROOOORROOOROROROOOROOOOROOOROORORROOROROOOROROOORROOOROORRRRRROOROROOORROROOOOOOROROOOOROORROROROOOOOOOORRRORRRROROOOOROROOROROORROORORROORORROOOOOORORRROORRROOROOORROOOOOOROOORORRROOOOROORROOORRRRRORRORRRRROOOROOOORRROOOOROOOORROORRROORRRORROORROOOORORORRROOOOROOOOOOOORORRROORROOORRRRRRRRORRRRRROOOORRROOORORRORRORORORRRROOROOROOORROORRROOORORRRORORRROROOROROROOOROOORRRRRRRRRRORRRRRRRRRRRROORRRRRROOROOOORRRROROROROOORORROROROORROORORRRORRRORORRORRRRRRRRRRORRROORRRRORRRORRRRORORRRORRORRRROORORRRRRROROOORRORRORRORORRROOROOOORORROOOOOOORRRRRRRROORRRRORRRROOOOROORRRORRROOOROORORRORORORRRORRRRORORORRRORORROROORORRRORRROOORRORRORRRRRRROOOORORRORROOOOOOROOROROROOROROOROORROOORORORRRROOOOORROORRROROOOOROOOOOOROORORROOOORROOOORROOROORRORROORROOROOROROOOROOOOROOOROOROOROOOOOROROROOOOORROOOOORROOOOOOROOOROORORROROOOOOOOOOOOOROOOORROOOOROOROOOOOOOOOOORROOOORRROROROROOOOOOOOROOOORROOROOOOOOOOROOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOROOOOOOOOOOOOOOROOOOROOROOOOOOOROOOOOOOOOOOROOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOROOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOORROOOOOOORROOOOOOOOOOOOOOOROOROORRROOOOOOOOROOOROROOOROOOOROOOOOROOOOORROOROOOOOOOROOOOOOROORORROOOOOOOROOROOOOROROROOOORROROOOOOOOOROOOROROOROROOROOORORROORRROOROOOROOOROOOOOORROOOOOOROOROORROOROORORROOOOOROOOOOOOOORRROORROOORROROORORORRRORORROOOOOROOOROOOOOROOOOROORRORROOORROOROOOROOOOROORRORRROOORRROOOORROROORROOORRRORORROOROOROORRRRORRRRORRORRORROORRROORORORROORRROORORORRRROOOOROOROOORRRORROORRRROROOOOROOORRRRROOOROOOORORORORROORRRORRRROOOOORRRRRROROOOORRRORROOOORRRRORRORORORRROOOORRROOOROOORRRROORRRRRORRRRRRRROOOOOROORRORRORRRRRORRRRROROORORROROOROROOORRORRRROOORRRRORORORROORRRROOORRRRRRRRRRORORRRRRRRROORORRORRRRRORROORRORROOOOORRRRRROOROORRRORRRRRRRRRORORRORROOROOOOROOOORORRRORRORRROROROROOOOOOOOORRORRRRRROOOOOORRRORORROROROOOOORRROORRRROOOOORROROOROROORRRRRRORRRRORROROOOOOORORORRROOORRORROOOOORRRRROORROOOOROROOORRORORORRRRORROROOROROOOOOROOOOOOOROOOROOROOROROOROORRROROOORRROOOOOROOOOROOOOORROOOOROOORROOOOROROOOROOOOOROOORORORROOOROOORROROORROOORORROOOOROOOROOOOOOOOOROOOOOROOROOOORROOOOOOOOOROOOROOORROROOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOROROOORROOOOOOOOOOOOROROOOOOOOOOROOROOOORRROROOOOOOOROOOOOOOOOOORRRROOOOOROOOOOROROOOOORORRROOROOOROROROOOOORROORRORORRRORORRORORRRORORRROOOOORROOROROOOOOOORROOORROOROOORRORROOROOORORRRROROORRORORRRORORROOOOOORRROOROORRRRRRORRRORRRRRROORRRORORORROROOOORRRORRROROOOORROROOOROOORRRORORROOORRROROOROORRROROROROOOROOOOROORRORORRRRORRROROORRRRRRRRRRORRRRRRORROOROROROROROROROOROOOORRRRRROOOORRROROORRROOOOOORRRRRRRROOOOORRRRRROOOORRORROOORRRRROOORORROOORRORRORRRRRRRORORRRROORORRRRRRORRORORROORORRORROORRORORRRORRORRRRROORORORORRRROROROOORRRRORORRRRRRRROOORROOOROORORRORRRRRRRRRRRRRRRRROOOORRORRRRORRORRORRROORROOOOROORORORRORRRRRROOROROOOORRRRORRORRRROORORRORORROORRRRRRRROROORRROORORORRRRORROOOOOROORROOROOOOOOORROOORORORROOROOROOOOOORRRRRRROROOOROOROOOOOORRRRORRROOOOOOORORORORROORORORRRRORROORROOROOOROOORORROOROORORRROORROOOOROOOOOOROOROOOORRORRORROOOOOOROOORORROOOOOOROOORRORROOOOOOOOOOOOOROOOROOOROOOOOROOROOOOOOOOROOOROOOOOOOOROROROROOOORROOOROOOOOOROOOROROOOOOOOOOROROOOOOOROOOOOOROOROOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOORROOOOROOOOOOOOOOOOOOOOOOOROOOROOOROOROOOOORROOOROOOOOORROOOROOOOOOOORRRORROOOOOROORRORRROOOOOOOORORROOOOOOOOOORORROOOOOOORROORROORROORROOROOOROOROOOORRORORRORROORORRRROOORRRROROROOOOOORROOOORROORRRROORRORORRROROROOOROOORRORROROORORROOOROORROORORROOOOROORRROOROORROOOORORORRRRRRRROOOOROOORRORROOOROOOOOOROOOROOOORRROOORROOOOOROROROORORRRORRRROORORROOORORRRORROORROOORROOROOOOOOORROOOROROORRROOOOOROORRROOROOORORRORRRRRRORRROORRRORRRRRRRRRRRROOOORRRRRORRRRRRRORRROOOORORORRRRRRRRRROOORRRORRROOOROORRROROROORRRORRRRRORRROOROOORROOORRROROOOORRRORORORRRRORRRRRRRRRRRRRRRRORRRRORRRRROOORRORORRORROORRORRORRRRRRROOORRROORRRRRRROORRRORROROOORROORORRRRRRRRROROORRRRRROOOORROOROOOORRRORRROROOORORRORRORORRORORROROORROOROOROOROOOROOROORROROROORRRORROOORRORRROOOROOROROROORRROORORROOROROOROORORORRROROOORRORORROOOOOOOOOOORORROOOROORRORRROROOOROOORROORRRROOOOORRORRROOORORROROOROROORROOOOROROOOOOOOOROOOOOOOORORORRRROROROOORROROOOROROOROOROOROROOOROROOORORORRORRROROOOOORROOOOROOOROOOOOROORROOOROOOOOOOOOOOOOROOORORROROOROOOROROOORROOOOOOOOOROOORROROOOOOROOROOROOOORROOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOORROOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOROROOOOOROROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOORRROOOOOOROOOROOOOROOOOROORRROOROOOROROOOOOORROOOOORRROOOOROOOOOOOOOOOORRROROOROOORROOOOOOROOROROROOOOOORRROOOOOROOROOOROORROOROOROORROROOOOROROROOOORRRRRORROORROORRROOOOORROOOORRROORRORRRORRRROORORROOORRROOOROROROORORRROROORRORRRORRRRROOROOOORROOOORRROOROOOORROOROOORORROORROOORORROORRRRORRRORRORRRRRRORRORROROOOORROOROOOOOORROOROROORRORRRORROOOOORRRRORORORRRRRRRRORORRRRRORROOORRRROORRRROORRRRRRORRRORROOORRRROOOROROOOOOORORRORORROORRRROROROORRRRRRROORRORRORRRORORORRRRROROOORRORRORRORRRRORRRRRORRRRRRRRRORRRRORORRORRRRORRROROORRRRRRORRRRRRRORRORRRROOORRROOROORRRORRRROOOOOOROORORROOOORRORROROORORORROOORORROOROOOORROORORORRRROORROOROROOORRORRORORORROOOOORROOOORROROOOOROROROOOOORRRROROOOOOROROOROROROOORORRRROOOROROORRRORORORROOOOROROROOOROROOOORRRORRORRORRRORROOROOORROOOOOOOROOOROORRROOOROOROOOOOOOOOORROOOOOROOOOOOROOOOOOROOOROOORROOROROOROOOOOOOORRRROOOOOORROROROOOOOOOOOOROOOOOORROOOOROOOOROOOOOROROOROOOOOOOOOOOORROOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOROOOOOOOROOOROOOOOOOROROOOORRROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOROOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROORROORORROROROOOOOOROOOOROOOORORROOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOROROOOORRROOOOORROOROOOOROOROOROOROROOROOROROOOOOROOOOROORROOROROORRRORROORROOOOOROOOOOOOOORORRROROOOOORORROOOROOOOORROOOOOOROOOROOOOOOROOOROROOOORROOOOOOROOROOORORORORRROOORORROOOORRRROOOOROOROORROROORORRRORORRROOOORRORORORRORORORROOOROROOOOROROOORRORORROOORRRRROROOORROOROROOORRRRROROORRORRRORRRORRRRRRROROORORORORORORRRROORRRROOOOOROOROROORRORROORORRRORORRRORRRRRRORORRROORRRRRRRROORROOORRORRRORRRRRRRRRRORORORORORRRORRRROORRRROOORORRROORRRROORORROOOROORRRRRRRORORORRRRROOOOROROORRRORROORRORRRRROORRRRRRRRRROOOOROOORORRORRRRRRRRORRRORROORRORRRRRRROOOOROORRRRRROORRRRROROORROORROOOOOOOORRRORRRRRRROORORORRROOOOROORROROORRRROORROROORRROOROROOORRRORRORROORORRORROOOORRORROROORRORRRORROROORORRROROOORRRROROOORORROOOOOOORROOROROOOROORRORRORRRRRORRORRRRROOOORRRRRRORROORROOOOORROORROOROOOOOOOORROOOOROOORRORORRORROORORRROORORRROOOOOOOOOOOROOROOROROOORRRROOOOOOROOOOROOOOROOOOOROOOROOOOOOROORROOOOOOOOOOROOOOOOOROOOOOROOROORORROOOORROROOOOROOROOOROROOOOOORROOOOOOOOROOOOOOOOROOROOOROOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOORROOOOOOOROOOROOROROROOOOOOOOROOROOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOORROOOOOROORROORROOOROOOOROOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOORROOROROOOOOOOOOROOROROOOOOOOROOOROOOOOOROOOROOOROOROROOORORRRROOOOORRRRRRROORROOOOOROROOORRRROOROORORORROOORRORROORRRRROOROOOOORRRROOROOROORRRROOOROORORRORORORORRROOOOORORRORRRRRRRROOOROOROOROORORORRROROROOOORORORORORORORRORRRORORRRRRORORRRRRORORRRORRROOORROROOORROROOROOOOOROOROOORROORORRORRRRRROROROOOOROORRRRRRROROROOROOORROORORRROOOORORRORRRRROOOOORROOORORRORRORRRORORRRORRORORROOORRRRRORORORRRORRRROORROOROROOORRROOROROORRRRROOORRRRORRRRRORORORRRRORRRRROOORORORORORRORROORRRRRORORORORROOORRORRORRRRRROROORROROOOORRORRORROOOOROROORROORRRRRORRRORORRORORRROOOOORRROORORRRORRORROROROOROOROORROOORRORRROROOOOROORRRRRRROOOOORROORROOOOOOOOORORORRRRRRRROROORROROOROOOROOOROOROOOOOROROOROOOORRRRROOROROOORROROOORROOOOORROOROOOROOROOORORRRRORRRROOOROORROOOORRROROORROOOROOOOOOOOROOOROOOOOOOROOOOOROROROOOOROORROOROOORORROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOROORROOROOOOOOOROROORROOOOOOOOOOOOOOOOOROOORORROOOROOOOOOROOOROOOOOOOOOOROOOOOROORROOOOOORROOORROOOOROOOOROOOORORROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOROOROOOOOROOOROOOOROOOOOOOOOROOROOROOOROOOOOOOORRRRROOOOOOOOOOOOOOOOROOOOORORRORROROOOROOOOROOOOROOROOOOOROOROROOOORRRROOOOROOOORRROOROOROOOOOOOROOROOOOROORROOOOROORORRROOOOROOORRROOOROORORROORORROROOROROROOOOROOROOOROOROOROORROROROOROOORORROOOOOORROOOOOOROOOROROROOORROOOROOROOOOOOORORORORROOORROOOOORROORRRRORORORRROROOOOOROOORROOROORRORRROOOOOOOROORRROOOORRRROROORRRORROOOROORRRROORRRRRORROROOORORRROOROROROROOORRROORRRORRRRROROORRRROOORROOROROOORRRROOOROROORRORORRRRROROROOOROROORRRROROORORRRRRRORORROORRRRRRRROORRRORRRRORROORRRORRRORRRRRRRRROOOROROORRROROOOOOORROORORORROOROORRORRRRRORROROORRRRRRRRRRRORRRROORRORRRRRRORROOROOOROORRRROOORORRRRRRRRROROOROROROORORORRORRROORORORORRRRRROORRROROROOOROOROORRORORRORORRORORRRROROOOROOORRRRRORRRORRRRRRRRRRRROROORRRRORRRRORORRORROOORRORRROROOORORROOORRORROOOOROOROOORRRRRRRROROOORORORRORRORRRORROROOOOROOOOOROOOROROROOOOROORRROOOORORROOOORRROOROROOROROORORRROOOORRROOOROROOOOORRROROROOOOOOOROROOORORROOOOOROOOOOOROOOOOOOOOORRROOOOOOOROOOOORRROROROOOROOOOOOOROOROOOROOOOOOOOOOOOOOROROOOROOOOOOOOROROOOOOOOROOOOROOORROROROOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOORORROOOOOOOROROOOROOOOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOORORROOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOROORROOOOOOROOOOOOROOORROOROROORRRORRROROROOOOOOROOOOORRRRRROOOOOOOOOOROROORRROROORRORROROOOROROROOOOOROROORROOOOOOOOROOOOOOOORRORRRORRRRROROOROROOOOOOROROOOOOOOROOROORORORROROOOROROOORRORROOROROOOOROROOROOOOOOOOORORORROOOOROORORRRRORRRROROOOROOOOROORROOOORORROOROOOROORRRRORORORROROORRRROROOOROOOORROOOOROOOOROOORROORRROORORORORORRORRRRROORROROORRRROORRORORRRORRROOROOROOORRORRRRROOORROOORRRROORRROROOROORRORRRORORRRRRRRRORRORORRROOROORROOROROOORRORRRORRRROROORORRRROROROOOORRORRROORORRRORRRORRRRROORRORORRRRORRORRORRRRROOOOORRROROROORORROOOROORORORRRRROORORRORROOOOOOROOOOOOORROOOOOROOROOORORRRORROROORRRRROORRRRRORRROORRRRORRRRRORORORRRORORORORRORORORROORROOROOROORRRRROOOORROROOORORRRRRRROROROOROOORRROROORROORORRROOORORROORROROORROOROORRRRRRRORROOORRRORRRRROOOROROOROOOORRRROOOORROOORRRRRROOROOOROOOORROORRROOOOOOOOOOROROOROROOROROOOOOOOROOOOORROOROOROOOROOOROROOOOOROOOOORROOOOOROROROOORORRORRROORRRROOROOOOROOOOOOOOOOROOOOROROROORROOOORROOOOROOOOOOROROOOOOORROOOROROOROOOROOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROROOOOROROOOOOOROOOOROOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROOOOORROOOOOOOOOOOOOROOROOOOOROROOOOOOOOOOOOOOOOOOROOROOOOROOOOOOROOOROROOOOOOOROOOOOOOOOOOROOOOOOROOOOROOORORROOOROOROOOROOOOOOOOOROOROORORROOOOOOROOOORROOOOOROOOROOORORROOOOORROOOOROOROROOROOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOORRROOOROROOOOOOOOROOOOOORORORRRROOOROOROOROROOOROOOOOORROOROOOOOOOOORROOROOOROOOOROOOOROOROOOORORROOROORRRRRORROOOOROORORORORROORRROOOOORRRRROOOOORORRRRORRROOORRROOOROORROORORORROOOORORRRRRRRRRORORROORORRROROROOOOORRRRRORRROOOORORORROROOROORRRORORORROOROORORORORRRROROROORRRRRRRRROORRORORORORORORRORRROOOORRRORORRROORRRROROOOROORORROORORROORRROOOORRRORRRORROOORORRORRORORRROORRROORRROOOORROOROORRRRROROOOORRROORRRRRORRRORRRORRRRROOROORORRORRRRRRORORRRRRORRROOROROORORRRRRRROROOORORRRROROORRRORORRROOORRORORROROOROOOOROOOROOORROOOROORORRRORRROOROORROOORRROOOOORRRRORORRRRRORRRORRROOOORROOORORRROOROOROROOROORRRRORRORORRRROOOOOORRORRORORROOROOORROROOORORROROROOOOOOOOORRRRRROROOROROORROOOOORROROORRORORROOROOOOOOORORRROORROORRORORROROOOOROROROOOROOOOOOORROOORRRRROOORROOROOORRRROOOOOOOOOROOOOOOOROOOOOOOORROORRROOOOOROROROOOOOOORRROOROOROROOROOOOOOOOOOOOOOROOOOOROORRROOOROOOOOOOOOOOOOOOROOOOOORROOROOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOROOOOOOOOROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOROOORROOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOORRRROOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOORROOOOOOROOOOOOOOOOOROOROOOOOOOOOOOROOOOROROROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOORORROOOOROOOORROOOOOOOOROROOOOROOOOOROOROROOOROOOROROORROORORRROORROOROOROOORROROOOORORORROOOORROOROOROOORORROROOOOOROOOOROROROOOOOROROORRORROROOOROROOROOOOORRROOOROROOOOROORORORORORROOOORRROOOROOROORROROROOOOOROOOOOOROORORRORRROORROOOOROORRORROOORROOORRORRRRROORRRRRROROOROOOOROORRRRORRRRORRROOROOORRORRRROOOROOORRRROORROOORRRRRRORORROROORRORROROORRRORRORROOOORRRROROOROOOORRRORORRRRRROOOROOORRRORRROOROORRRRRORRRORRRRRRORRORROOOROORRRORRRRRORRRRORRORRRRRRROROOORRRORRRORRRRORORRRRRRRRRORROORRRRORORRRROOOOORRRROOORORRROORORRRRORRROORRRRRORORRRRRRORRRROROROOORRROORRRRORORROOOORORORORRRRRRRRORRRORORROORRRRRROOORRROORRRRORROOOOOROOROROOOORROROOOROOOOORRRROOORRORRROORROROOORRRRROROOROORRRRORRROROOORRROOORROOOROROOORRROORROOOROOOOOOOOOORRROOORROROOOOOOORROOORRORROROROROOOOOOROOOORORROOOROROROOOOOROOOROROOROOROOOOOOOOOOORRORROOOOORROROOOOOOOROROOOOOOOOOOOOROORROROOROOROROOOOOROROOORROOROROOROOOOROOROOOOOOROOROOOROOOOOORROOOOOOOORROOOOOOROORORRROOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOORROOOOOOOOOROOOOOROOOOOOOORROOROOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOROOOOROOOROOOOOOROROOOROOOOOOOORRROOROOOOOOORROOOROOOOORROOROOROOROOOOOOOROOROOOROOOOOROOORRROOOOOOORRRORROORORROOROOROOROOROROROOROORRROROOROOOORRRROOORROOOROROROORROORRORRRRORRROOOROOOOOROOOOOOOORORORROOOOOOOOORORROOOORROORROOOOOOORRROOROOOROORRRRRRRRRRORRRRORORORRRROOOROORRORROOORORORRRRORRORRRRRORRRROROOOOOROOROOROROOOROOROROOROROOORRRROOOORROOROROOORRRRRRROOORORROOROOROOORRRRORRORROROORRORORORRRORROOOORROORORORRORRROORRROORRRRRRRROORRRRRRRROOORRROORRRRORROOROORORRRRRRRORRORRORRRORRRORRROORORRRRRROOOORORRORRRRRRRRORORRORORROORRROOROORRORRORORRRORRRRRRRRRRRRRORRORRRROROOROORROORRROORRRRRRORRRRRROORORROORRRORORRORRORRROOORROOROROROOROOROORRRORRRRORRRRRORRRROORRROROOOOORROORRRROROROOOORRROORRORRORRROOROOOOOOOROOOOOOOOOOORORORROORRROOOROORROOROROROORORORRROOOROOROOROOOROOOOROOOORORROROORRRRRROOROOOOOORRORRROOOOOORROOROOOOORORROOORROOORORRROOOORRRORROOROOOORROOOOOROOOOOOOOOROROOOOOROORRRROOROOOOROOROOOOOOOORROOOORRORROOOROROOOOOOROROOOORROOOOOOOOOOOOOOOOORROOOOOOOOOORORRROOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOROOOROOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOROOOROOOOOOOOROOROOOOOOROOROOOOOOOOOOOOROORROOOOROOOOOROORROOOOOOOROOOOOOOOOOROROOROOROOOOOOOOOROOOOOOOOROORRRROOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOROROROOOROOOOOOOOOROOOORROOOROOOOOOOROOROORRRORORRROOOOOOOOORROOOORROOORROOROOOOOOORRRRRRORRROORORRROOROOORRRROORROROROOOORROORRROOOROOOOOROOOORRRROOOOOROOROOOORROORROOROORROROROROORROORRROOOOOORROOORRRRORRROROOOORRORROOROORRRRRORRRRRROOORRROORRROROOOOROOOOROORROOOOROROORRRRORRORROOORORRORORRRORROORRRRROOORORRRRRORORRRRRRRORRRRORORROORRRRORRORRRRROOORROOORROOORORRORORRORORRORRRRRRRORRRRRROROORROROORRROORRROORRORRORROROORRORRRRRRRRRORRRORRORORROOOOORRORRRRRROORRRRORORRORORRRRROOORROROROROORRORROORRRORRRORORROOOROROORRRRROORRORRRORROORRRRORRRRROORROORRRRROOOROOOROROROROOORROOOOOORROORROOROORORRROROROOROOOOOOROROOROROORORORROORORRORORRROOROOORROOROROOOORORORRROOORROOROOORROOROOROOOORRROOOORROORORROROOORRROOROOOOROOOORRRROOORORRORRROOOORRROROOOORRROOOOROORRROOOOOROORROROORROOOOROROOOOOOOOROROOOOOOOOROOROORRORROROROROOORROOOROOOROOOOROOROOOOOOROOOORROOOOROROORROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOROOOOROROOOOOOOOORROROOOOOOOOOOROOOOOOOOOOOROROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROORORROOOOOOOOOOOOOOOROOOOOROOROOROOOOORROOOOOOORROOROOOOOOOOOOOOOOOOOOOROROROOOROORROOOOOOOORROOOOOOOOOROOOOOOOOROOOROORROOOOOOOROROROOOOROOOROOOROOOOOOOORORRRROOOOROROROOOROOOOROOOOOOOOORORROORRORRRRRROROOOOORROOOROROORRROOROOOORORRRRROOOORRRRORORRORROOOROOORORRROOROORROROROORRROROORROOROORORRROOOOOOROROOROOROORRRRROOOROROOOORRROOOORRRRORORRORRROOOORRROROROOORORROROROORRORORRROROOOOORRRORORRROORRRRRRRORRRRRORRORROOOORROORRRRROROOORORRORRRORRROOOOORRORROORRRRRROROROORORRRRRRRRRROROOROOOOROORORRORORRROROROROORRORRRRRRRRRROORROORRORRRRORRROOOORRORRRRRROORROOORRRROORROOOORORORRRORROORRORROROROROOORORORROROORORRRROROOORRRROORRROORRORRRRRRRRORRRRRROORROOROOORORRRROOOROORORRRRORRRRRORORORRRRORROORRROROOORRRORORRORORRRORORROOOOORROOORRORRRORORRROORRROOORORRORRORORORRROOOORRORRRORROROORROOORROROROOORROROOROOOOROOOROOOOOROORROOORRRRORORROROOORRROORRROOROOOOOOOOORROOOOOROROORORRROORROORORORRROROORROOOOORORRRRROORRORROOOOOOOOOROOOORORROOROOORROROROOORORROOOOOOROOOROROROOOOROROOOOROROOORORORROOOOORROOROOORROOOOOOROOOORORRROOROOROROOOOOOOOOOORROOOOOOORROOOOOOOOOORROOOROROOOOOOOROOOOOROOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOORROOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOORORROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROROOORROOOOOOOOOOOOOOOOOOROOOOOROROOROOOOOOOOOOOROOOOOOOOOOROOOOOOROOORROOOOORROOOOOOOOOOOOOROOOOOOOOROOOROOORROOROROOORORROOOROROORRROOOOROORORORRROOOOOORORRORRORRROROORORORRORORROOOOROORROOOOOOORROOROROOOORORROOOROOORROOORORROROOOOOOOROOROOOROOROOOOORROOOORROOORRROOORORROORROORROOOROROOOORROROOORORRRROORRRRROORRORRRORRORORROROOROORROOOOORORRORRRORRROOOROOROROORRROOOOOORRRRRRRRRORRRRORORRROOOROOORRRROORRROORRRROORORROROOOROORORORROROORORRROORRROOOORORORRORRRROOOORRRROROOROROROOROROOORORRORRRRRRORROOROROOOROORORRORRORORRRORRORRRRRRORROROORRORROROROOOOOORRRROOORROOORRORRORRROORRRRORRRRRRORRRORROROORROORRRRRORRRRORROORORRRRRRORRORROROROOROROORRRORRROOOROOOOROOORRRORROORORRROROOOOORORROORROOROORORORRORRORORROOROROORORROOOOOORRROOROORRRRORROROORROOORRRORRORRORROORRRROROOOORRORROORRRRRROOOOOOROROORROOOOOOOORORRRORROOOOOOOOOROOOOOOORRORROOROOROOOROOOROROORORROORRROOOOOOOROROOOORROORROOOOROOOOORROOOROOOROROROOOOOOORRRROOOOORORORRROOOROOOOOORROOOOORORROOORROOOROROOOROROOOOOROOOROOROOOOOOOOROOROOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROROOOOOOOOOROOROOOOOOOOORROOOOOOOOOOROOOOOOROROOOOOOOOOROOOOOROOOOOOOOOOOROOROOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOORORRROOOOOOOROOOOOOOOOROOOORROORROOROOOOOOORROOOROOOOOOOOOOOROORRROOORROOOOOOOOOOOOOOORORORRRROROOOOOOOOORORROORROOOOOOOOOROOOOOOOOOOORROOOOOOORROOORROOOOROORROOROROOOOOOOROOOOOOROOOOOROORORROROOOOROORRROOORORRROOORROOOOROORORORORRORRROORRROOOOOOORORROROROOOORROROORROOOOROOOROOOORORRROOORRRRRRORORORROOOOOORRRORORORORRROROOOROROOOOORROOOORROORORRRORORRRRRRRORRROROROOROORRRRRRRRRORRRRORORRORRORRRRRROOROROOORRORRRROOOROORRRRRORROROOOOOORRRORRRROOORROROORORRRRORRRRRRROOROOORRORRRRORROOOOORROROROROOORRORROOROORRORRRRRROROOOROROORORORORORRORROORORRRORRROROORRRORRRRRORORROOOOOOROOOORRORRRORORORORORRRORRRRRRRROORORRRROORROOOORORRROOORRRRRRORRRRROORRRRRRRRROROOOOROOOORORRRRRROROORRRRORROOORRORRRRORRRRROROOROOORRORORROORRRORRRRORORRRROORORORRORRORRRRRORROOOROORRRRROORORRRROROOORROROROOORRORRORRRROOOROOOOROROOOOORROORROOROOOROOROORRROROROOORRORORROROOOOOORRORORRRROROROROOORRRORRORORORRROORORROORRRRRORROOROROOOOOROROOOOOOOOORROROOOOOORRRROOROOOOOOOOOOROOORORORROOROROOOOOOORORROROROORRRROOOROOOOORRROOOOOOOOOOROOOOOOOOOOOOOOOOROORROOOOOOOOOORRROOROROOROOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOROOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROORROOOOROOOOROOROOROOOOROOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOROOOOOOOOOOOOROROOROORROOOOROOOOORRROOOOOOOROOORROOOOOROOORROOOOOOORORROORORORROOORROORORROOOROROORROROOOOOOORRROOROORRRROROOORORROROROROOOROOROROROOORRRROROOOORROOROROOOORRROOOROOOOORORRRROOOOOOOOOORROROORRORORRRORRORRROOOROORRROROOOROOORRORRRORRORROORORORORRROORRRORRORORROORORORRORORROORRRRRRROOOOOOORRRRRRORROOOROORRRRRORORROOORRROROOOORRRORRRROORRRRORORRRORORORRRRRRRRORRORROROOROOOOORROORORRROORRORORORRRRORROROOOORRRORRRORORROROOROROORORRORRRRRRRORRORRORORRRRORRORORRRRORRRRRORROOOROORRRORRRRORRRROROROROOORRRRORROORRROOORORORRRRORORRRRROORRRRORROOOOROORRORRRRRROOORRROOOORRRORRRROOOORRORROOORRRRORRORRRRRRRRRRRRRRROROROROROROORRRORORORRRRORROOROROOORROOORROOORRRRORRRRROOOORRORRROROOROORRORRRROOOORORROOORRORRRROOOORORORORROORORRRRRORRROORROROOOOOOOOOOORRRROOORRRRRRRRRORROROORORRRROORORROORRRROOOOOOOOORROORRRRRROROOOOOOOOOROROROROORROORROROOOOROROOROOORORROOOOOOOOOROOOOOOOROROOROROOOOOOOROOORRROROOOOOOOORRROROOOOROOOROOOOOOOOROROOOROOROROOOOOOROOORRROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOROOOOROOOOOOOOOROOOOROOOOOOROOOOOROOROOOOOROOOORROOROOOROOROOOOOOOOOOOOROROOOROROOROROOROOOOOROOOOOROROOOOORRROOOOORROROOOOROROOROOORROOOROOROORORROROOOROORROOROROORORROOROOOORRROROROOROORRRROORROORRRRROOROOROOROORORORRRROOOOROROORORRRROROROOOOOROOOOROOOORROOOOOROROOOOOOORRRRORRRRRROROORORORRROROOORRROOOROORRORROOROOOOROOROOORRRROORRRRROOROOOOOROOOROROOOROROORROROROORRROROORRROORORRORORRRROOORROORORROORRROORRROORRRRRRRRORRRRRRORRRORORRRRRORROOROOORRRRRRRROROOORORROORRRRRRRRRRORRROOOROOOROORRRRRRRORRROROORRORORRRORROROORROROROORRROOOROOORRRRRRRRRRORORRRROOROORRRRORROORORORRROOROROORRRROORORRRRRRRRRROOORRRORRRRRRRRORRRORRORORRRROORRRROOOOORORORRROORROORRORORRRROOOORRORRROROOOOORRORRRRRRROORORRRRROOROORRORRROOOORRORORRROORRRRORROORORORROORROORROOOORRORRRROOOOOORROORRROOOORROOORORORRORRORROOOOOOOOOOOOOROOROROOOROOROROORROORROOOOOORRROOROROROOROROOOOORROORRRROOOORROROOORRRRRORORRORROOORROOOOOOOOOOOORROOOOROOOORORRROOOOORRRROOOOOOOROOOROROOROORROOOOORROOOORORRORROOOOROROOORROOOOOOORRROOOOOOROOOOOOOOOOOOOOOOOOOROOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOROOOROROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOROOROOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOORROOOOROOOOROROROOOOOROOOOOOOOOOOOOOROOOOROOOORROOOOOOORROOOROROOOOOROROOORROROOORORORROOOOOOOOROOROOROOORORRRROOORRORROOOOROOROOORROROOROOOOORRROROOORRROOOOOROROOOOOOOROOORROOORRROOOOOORROROOORRROROOOOOROOOROOOROOOOOORROOOOOOOORRROORROOOORORROROOOOOOROOOROOOOOROORORORRROOOOOROROORRRRROOOOOOORORRRRORROOOORRRORRRRORORRROOROOOOROROROOORRROOROORRROOOORRRRRRROORRORORRRROOOOOORRRROORRROORRRRORRRRROORORROROOORRORORRROOROOOORRRORORROORORRROOROOROORROORORROOROOOORROORORORRRRORORRRROORRRRRRORRORRRRORRROROORROORRRRRRORORRORRORRRRORORRRRRORRROOORRRORROOOORRROOOORORORRRRRRORRRRRORRORRORRRRORRROOORROORRROORRORROORORRORRROORRORRROOOOROORRRORROOROORORRRORRROORORROROOROORORORORROOOOOOOORRORRROORRORROOORRROOORORORRORRRRORORROORRORROROORRORRRRROOROOOOOOORRROROOOORORRRORRRROOROOORRORRRRORROOOOOROROOOORROROOOOOORRROROROOROOORORRRRROOOOORORRRRROOOOOOROOOROOORRROOORROOOOROOOOROOOOOROOOOOOOOROROORORRROROOOOOOOOOROOOOOOOOOOOROORRRROOORROROOOOOOOOORRROOROORRROOOOOROROOROOOOROROOOOOOOOROOOOOOOROOOOOOOROOOORRROOOOOOORROOROROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORRROOOROOOOOROOROOOOROOOOOOOOOROOOOOOOOOOROOROOOOROOORRROORRROOOOOOOOOOOOROOORRROOORROROOOOROOORORROOOOOROOOOOOOOOROORRROOOOOOOOROROOROOOROROORORRROOROROROORROROOOOORRRROORROOROOORROROOOOORRROOROOROOOOROROOROORROORRORRORRRRORORRORROORORORRRRRORORRORORROORROOROROROOORRORORRROROOROOOROROOORRRROORRRRORRROOORRROROOORROORORRROOOORROOORRROORORRRROORROOROROOOOORORROORRORORRRRRRRRRORRRORROROOOOOOORROROORRORRRRRRRROORRRORRRRRROOORRRORRORORRRRROOROOROOOOROOROORRRROOOORRRROOORROORROORROORRORRRRRORRORRRORORRRRRRRRRRORRRRRRORORRORORROOROROORRRRORORROOORRRRRORRRRRRROOOOROROORRRRRRRRRRRORRROROOORRROORRRORRRORROOROORROOORRRORORRRORROROROOORROOORORORRROROOOOORRRRRROOROOROROOORRRRORROORRROROOOORROOOROOOOORRROOROOORROOORRRRORROORROORORRRORROOORRROORRRRORRRROORROROOOOOORORRORRRORORROOOOOOOORROROROORRRRORRORROOOOOOOROOROOROROORRROOROROOOOROORRROOOOROROROOORROOOOOOOROOROROOOOOROOORORROROOROOROOORORROOROOORROOOOOOORROORROOROOOROOROOOORROOROROOOOOOROOROOORRROOROOOOOOROROOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOROOROROORROOOOOORROORORROOROROOOOROOROOOOOROOOOOOOOOROOROOOOORROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOORROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROROOOOOOOOROOOOOOOROOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOROOOOOOROOOOOOOROOOROOORORROOOOOORORORROOOOOROOOOOOOROOOOOOORROOOOOOOOOORROROROOOROORROROROOROROROOOOOROOOOOORROROROROOORROROOOROOOROOOORROOORRORORRRORROOOOOOOORROOORRROROORROROOOORORROOROROORRORROORRORRRRROORRORROOOOORRORROOOOORORRORORORROOOROOOOORRORRRORORORROORRRROOROOROOORRRORROOROOORORROORROOROOORRROOORRRORRRORRORRORORORRRRRRORRRRRORORRROROOOOOORROORORROROOOOORRRROORRRORROORRRRROROROOORRORRORRRRROROORRRRRORORRROORRRRORORRRRRROROORRORORRRORRRRRROOROORORRRRORORRRORRRRRRRRRRORRORRORRORORROORRORRORORRRRRRORORRORROOROORRRROORRORRRRROORRRROOOORRRORRRROOORROOROROROOOOORRORRRRROOORRRORRROORRORORRRRRRRORROOORRORRRORRORROORRROOOROOORRRORORORRROROORORORROORORRRRORRRRROOOOOORRORRROROROROORRORRORORRORRROOROROORROOOORRRROORORRRROOOOORROORRRROROORRRROOOROOORROORRRROORRORORROOOROOOOOOORRROOOROROORRORRRORROOOOOORRRORORRROROOORROOROORORRORRRROOORROOROOOOORROOOROOROROOOOROOROROOOROROOROROROROROOOOOOROOOOROOOOOOOROOOROORROOROOOROOOOOOOOOORORORROOOOROOORROOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOROOOOOOOOROOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOORROROOOOOROOOROOOOOOOOOOOOOOORROROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOROOOROROORROOOOOROOOROOOOORRROOROORORORROOOOOORROOOROROOROROOOOROOOORROOOROOOOOROORROOOORRROOOOOOOOOROROOOORRROOOOOOROOOOOORORRRROOROOROROORORRROOOROROROROROOROOORROROOOORRRRRROOORRRROOORRORRRRRRORRROOORRORRRROORRRRORRRORROORRROROORROOORORROOOORORRROOROORRORORROORRRRRORORRORROORORRROORRORRRROOORROORORORRORORORRRRRORROORORROORRRRRRRORORORORORORRRORRORROORORRRRRRORORRORRRRRORORROOORRORRROROOOROORRRORORRRROOROORORRRORRROOROOOORRROROROOROORORORRORORRRRRORRROROORRORRRRRROOORRORRRROOOORROROROORRRROOROOOORRRRROORRRORRRRRORRORRROROOROOORROROROOORORROOOORRRORRRORRORRORRRRRORROORRRORRORRRROORRRORRORRROROOROOROORORROROORRROORRRRROOOROOOROROORRORORORRRORRROOORRROROOORROORRRRROORORRROORRORORRRROORORORROOOOOOORORROORRRORRROORRRROOORROORROOROOOOOOROORROROROROOROORORRROOROROORROROORROORORROOOROOROORROROOOROOROOOROROOROROOOOROOOOOOOROOOORORROROORROOROROROOOOORORROOOOOOROROOOOROOOOOOOOOOOOROOOORROOOOOOOOOROOOOROROOORORRROOOOOOOROROOOOOOOROOROROOOROOROOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOROROOOOOOOOOOOROOROOOROOOOOOOOOOOOROOOOOOROOOOORORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOORROOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOROROROROOOOOOOOOOOOOOOOOOOOOOROOOORROROOOOOROOROROOOORRRROOOROORRORROOOOROOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOROROROOOOOOOOORROROOROROOROOOOOOOROORRROOOROOOOOOOOOOROOROOOROOOOROOROOOOOROROOROOOOOORRROORROROOOROROOORORORROOOORORORRRRORORORORROOOOROOROOROOOOORRORROROOROORRORROORROOOOOORRRRRORORRROOOOROOROOOORRROOORRROORRRORRORRROOOORRRRORROROOORRROROOORRRORRRRRROORRRRRRORRORRRORORRRRRRRROOOROOORRRRRRRORRRORROORORRORRRRRRRRORRORORROROORORORRRRRRROOOOROROOOROOORRORRRORORROOOOOROOOOOORROOOOOOORRRRORORORRRRRRROOROOOORORORRORRRROORRRROORROORORRRRRRRRORRORORRRRRORRORRRRRROOORROOOROOOROOOOROORRRORROOROORORORRRRORRORROROOROROROOROORORRRORRRORRROOROROOROORRRRRRORRROROOROORRRROOOORORORROOROROORRORRROOROOOOROORRROOORRORROORRRORROOROOOOROORRRRORRRRRROOROORORRRRRROROOOROOOOORORORROOOOOORRRORRORROOORRROOROOOORRRROROORROROORROOROROROOOOROORROORORRORRORORORRRRROOORRROORROROOOOOOROOOOOROOOOOOORRROOORORROROROOOOROOROOOOOOORORROOOOOOORRROROORROOOOOOOROOOOORROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOROROOOOOOOOROOOOOOOOROOOOOORROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOROOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOROOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOROOROOOOOOOOOOOORROOROROROOOOOOOROOOOROROOROOOOOOOOORORROOORORROOOOOROOOORROOOOOOORROORROOOOOOOOOOOORORROROOOOROOOOOOOOOOROROROOORROOROORROOROROOOOROROORROOOORRORORROOOOOROOROOORORRORORORORROROORORRRRORRROOOOOOOROOOOOOROROOORROOROOOROOOOORRRROORROOROOROOOROROOOROORROOOOOROOROOOOORRORROROOOOOROOROROOROORRRROOOORRORRRRRORRRROROORRRORRORRORROORORRROORRORORRRORORORRROOOOOOROOORRORORRRORRRRRRROORRRROROOROORORROROOOOORROROROOROORORORRORRORRROOOORORRRRRROOOORRRROOORORROROORRRRORORRRRRRRRROORRORRRORROORRRORRRRRORRRORRRRROOROOROOORRORRRRRRRRRROOROROROOOORORRRRRRORORRORORORRRROROORORRRORORRROORRORRORRROOORROORRROROROORRRRORROORROOOOORRROROROROOORRRRROORORROORRRORRRRRRORRRRRRRROOOROORROROROROORORORORROORRRROORRORRRROORROROROOORRROOROORRRROOOOOOOORORORORORRROROOROOOROOROROROOROOORROOOORRRROOROORRRRROOROORRRROORRORRRORROORRRRRORROORRORROROOOOOOOROOOROOOOOOORORROORROROOOROORROOROROOOOOROOOOROROOROORROOOOORORROROROOROROOOROOROROOROROOOROORORROROOROOROOOORORROOROOOROOOOOOOOOOOOROOOROOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOORRORROOOOOOOOOOOOOOOOOOOOOOOROOROOOORROOOROOOOOOOROROOOOOOOOOROOOOOROOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOROOOOOOROORROORROORROOOOOROOOOROOROOOORORROOOOOOROOOOROOROOOOOROOOOOROOROOOOROORROROOOOOROOOROROOOOROOORROOROROOOORROOOOOROOOOROROOOOROOOOOOROROOROOOOORRROOOOROOOOROOOOROROORROOROROOOROROOOOOOOOOORROOOOOOROOORROOOROORORRORORRROOROORROOOORROROORRORRROOOOROROOOORORORORRORORRRORROORORRROROOOROROOORRRROOORORORROOORROOROROORROROORORROORORRORORRORRRRORRRRORROROROROOOOORRROROOORRRROORROROOROOROORORORORORRRROOROORORORORRRRRRRROOOROROORORROOOOORRROOORRORRRRRROROORROOROROORRRROORRORROORRRORRRRRRROROORRROORRROROOORRROORORRORORRRROORRRORROORRROOORRRRORRRORRRRRORRORORRRRRROOROROOOOORRRRORROORRRORORORORROOORRRRRRRRRRROOOOOOOOORORRRRRRORRRRORORRRROOROROOROOOOROOOORRORROORRRRRORRRRROROOROOORROORRORRRORROOORRRORORRRRRROOOOROOOORORORRRROOROOROOROOROORRORORORRROROROORROOROOORROOOROOOROROROORORROOOROOORROORORRROOOOOOROOORRRORRRRRRRORRRROOOOROOOROORRROOORRORRRRORROOORROOROROOROOROROOOROOROROROOOROROOOOOOOORROOROOOOOROOOORRRRRROROROOOOROOOROOROROOROORORRRRROORROOOOOOROROROOOOOORRORRORROOOOOOOOOOOORROOOROOOOOOOORROORROOOORRORRROOOROOOROOROORROROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOORROROORRROOOOOROOOROOOOOOOROOOOOOROOOROOOOOOOOROOOOOOOOOOROROOROORORROOOOOOOROOOROROORRRORROOOOOOOOOOOOOOOROOOOOORORROROOORROOOROOOOOROOOOOOORROOOROORRROROOORORROOORROOOORRROROORROORRRROOOORROOOOORRORRROROOORORORRRRROOROOROOROOOOROORRROORORRORRROOROOOORORRROOOROORORRRRROROOORORRRROOROOOOROOOROOOORRORORRROROORORRORORROOORRORROORORRRRRORROOOOORRRRRRORORRORRRRRRRROOOROROOROOROORRRRROORORORRRRRRORRRORRORORORORRRRORRROROOOORRRRRORRRORORRRORORRRRRORRRRORRRROROROROROROOOORORORRRORRORRORRRRORRRORRRRORRRRRRRROROORRRRROOROOORRRRRORROOOROROORRRORRRRROORRRORORRRORROORRRORRORROORROROORRRRORORRORORRRROORRRRRRRRROOROROOORRRORRRRORROROROROOORRRRROOORRRORROORRRRORORRROOOOOOORORORORRRROOOROOROOOOOOORRORRRRRRROOROROOORORROOORRORRRROROOOOOROORROROOOOROOROOOOOORRROROOOROORROROOROOOROORROORRRRORROROOROOOOROORORROOOOOOOOORRROORROROOOROOORRRROROROORORORRROOOORRRORRROORRORROORRRORORRORRORORRRORRORRRORROOOROORORROOOOOOOOOOORORORROOOOOOOOOOOROOOROOORROORRRRRORROOOOROOOOOOROOOORRORORRORROROOOOOROROOOOROOOOOOOOOOOORORORORROOOOROOOOROROOOROOOOOOOOROOROOROOROOROOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOORROOOOROOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROROOOOOOOROROOOROOOOROROOOOOOROOOOORRROOROOOOOOOOOOOROOOOOOOOOOORROORRROORROOROOOOOROORRROOOROROOOOROOOOOOOOOOOOOOOOROOOOOROORORRORRROOORROOORROOOROORROOROROOROOOOROROORROROOOROOOORROOROOOORROOOOROOROOOOOOOOORORROOROOOROOROROOOOOORROROOORRRORRROROOROORRORROOOROOORROOOOOOORROROROORRRORRORRROORRRROOROOROROOORORRROROOOOROOOOOOOROOOROOROROROOOOOOOORRRORRRRRROOOORORRORRRORROORROOORRRRORRORRRRROOOOORRRORROOROORROOORRRORRRORORROROOROORRRRRRROORRRROOROROORRRORROROROROROROOORRRRROOOOORRRRORRRORRRRRRORRRRRORRRRRORROOROORRROORORORRRRROROORRORRRRRRRORORRORRROROORRROOROROORRRORRORRRRORRORRORRROROORRORRRRRRRRORORRRRRRRORORORRRRROROOORROOOROORRRRROROOORRROROROROORRRORORROROOORRORORRRRRROORORRRORRRORORRROORRRORORRROOOOORRRROOORRROROOOOOOOOOROOROOROROOOOROOORORROROOOORORRORRROOOORORRRRORRROOROORROOOOROOROOROOOOROOOROORORROOROROROORRRRRROOOROORROROROORORROOOORROROOOOOROOOROOROORORORROOROROOROORROOOROOOOOROOOROROOOOOOROOOOOOOOOOOORRROOROORORROOOOOROOOROROOROROOROOROOOROOOROOOROOOOOOROROOROOOOOOOOROROOORRROOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOORROOOOOOOOOOOOOROOOOOOOROROOOORROOOOOOORRROOOORRROROROOOOROOOOORROOOOROOROOOOOOOROOROOROOOOOOOOOOOOOOOOOROROOOOOROOROOOROOOROOORROOOOOOOOOOOOOOORROOOOORROROOROOOOOOOOOROOOORORROOOROROOOOOROOOROROOROOOOROOOOOROORROOOOROOOOORROOOOORROROROOROROORROROOOOORROROOOOORORROOORORORROOOROOORRRRROROROOOOOORRRORORRRROORRRROROORRRROROROOORORORRRRRRROOORRRRORORRROROOROORROROOROOOROROOOOROROOROOOOORRRRORRRRRRORRORRRRROORROOROORROOOROOROORRORORROROOOORRROORRRRRORRROOROOOOORRRRRROOORRROORRORRORORRORRRRORRRORRORRORRORRRORRRRORROORORROOOORRRRORRRORRRORRROOOOOOORORORRORORRROOROORRRRRORRRRRRRRRRRRORRRRRRROROORRROROROOORRORRRRRORRORRROORROOOROROROOROOROROROROORORRORRORROROROOOORRRRORORRRORROROROOOORRRROORROORRRRRRROOORORROOOORROROROOOORORRROORROOORROROORRORORORRRORRROOROROROOORORRROORROOROORORRRRROROOOOORROORROORORRORRROORRRRROROROROOORRRORRRORROORRRRORROOOOOROOOORROOOOOROROORRRROOROOROOORROOORORRROORORORROOORRROOROROROOOROOROROOOOOOROOROROOOOOOOOROOOOOOOOROOOOOOROORRROOOOORROROROROOOOOOOOOOROORRRORORORORORRORORROOOROROROOOOROOOOOOOOROORROOOOOOOOOROOROROROROOOOOOOROOROOOOOROOOOOOORROORROROOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOROOOOOROOOOOOOOOOOOOOOOROOROROOOOROOOOROROOOOOOOOOROOOOOOOOOROOORRROORROOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOORROOORROOOROOOOROOOOOROROOOOROOOOOOOOOOOOOOROOOROOOROROOROORORORRROROOOROROOOOROOOOORRRROOOROOOORROOOORROOOORRROOROORORROOOORORORRROOROOOOROOOROOOOROOROROOOOROOORRROROROROOORRROOROOORORRRORRROORORRORRORORROORRRROOROOROROORRRORRROORROROROOOROORRRORORRRRORROROORORRORRORORRRRROROOORORROROROORORRROOROORRORRRROROOROORRRRROORRROOORRRRRRORORRRRROROORROROORRRROORRORROORRRROOORRRORRRROOOOOOROORRRRORRRORROORORRROORORRRRRRRORORRRORROORRRROROROORRRORRRORORRRORRORORRRRROORORRRRORRRRROORRRRRROOOOROORROROROROROOOOOROORROORRORRROORRORRRORRRRRRRRRROOOOOORRRRRRRORROOORRROORRRORRRROROOOROROOROOORRORRRRROOROROROORROOORRROROOORRRRRORRRROOORRRRRRROOROROOOROROOOROORRORRRRRORORRROROOOROROROOROORRRRRORROORRRROORRRROORRRROOORRORORRRRORRROOOORRORRORROROROOORRROROROOROOOROROORROORRRROORROOOOORROOOOOOORROOOOOOOOOROROROOORRORRRROROOOROOOROOORRRRROROROOOOOORRRROROORRRROOORROROROOOOORRORROOROORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORRORRRROOOOOOOOOROOOOROOOOOOROOOOROOOOOOROOOOORROROOOOORROOROOOOOOOROOOORROOROOOOOORROOOOOOOOOOROOROOOROROOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOROOROOOOOOOOOOOORROROOROROOOOOOOOOOOOOOOOROOOOOOROOOOROORROORROOOOOOOOROOOOOOOOOORROOOOOORROOOOROROOOOOROOOOOOOOOOOROOOROOOOOROROOOOOROOOOOOOROOOROROROOOOROORROOOOOOOOOOOOOOOOOOROOROOOROROOOOOOROOORORORORORORROOROROOOROOOORRROOOOROOROOOOOROOORRRRORRROOROOROOOOOORORROROOROORRORRRRRROOROROROOOOOOOOOOOROORROROORORROORROROOORRORROORROROOROOORRORRROOOORRROOORORRRRRRRRROROORRRRRORRORRORRRRRRRRRRRRORRORRRORORORROORROORRRORRRROROOORRROOOOROORROROORORROORRROOROOORRROOOOOORROROORORRRRRRRRRRRRORRRRROROROROOORRRRORROORRORRRORORRRRRRRORORRRRRRRRRRRORRORRRRRORRRORORRRORRROORRRRRRORRRRROROOOOORROOROOOORRRRRORORRRRORRROORRORROOOORROROOOORRRRROORROOROORRRRRRRRROOORROORRRROORRRORROOORRRORRRRRORRRRRORRROORRRRORORRROROROORRRRRRROORROOOOORORORRRROOORRORROROOORORROROOROORRRRROOOOOOORRRRRRRRROOORROOOROORRROOORRORRRRRRORRRORRRRROROROOOOOROOORROROROORRRRORROOOOROOORROROOOOOROOORRORRRROOOOROOOROOOOOORROROOROORORROOOORROOOOORROOOOOROROOOOROROOOOOROOOOORRORRRORROOROROORRROOROOORROOOOOOOOOOOOROROROOOOORRRRROOROOOOOOROOOOOOROROROROROROOROOOOROOOOOOOOOOOOOOOROOROROOOOOOOOROROOOOOROOOOROROROOOOOOOROOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOROOROOOROOOOOORROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOROOOROROOOROOROOOOOOOOOOOROOOOOOOOROOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORRROOOOORROOOOOOORROOOROROOROOOOOOORROOOOOOOOOOROOOOOORROOROROOOOOROOOOROOROROOOROORROOOROORRRROOROROOOOROOOORROOOOOOROOOROROROOROROROROOOOORROOROOOORROORORRORRRRRORRRORRORRROROOOORRRORROOOOORRRORROOORRORROOOROOROORORORRORRORRRORORROOOROROORRRORROORRORRROORRROORROROOOROORRORORORRORRRRRRORRRROOOOROROOOOROROROORORORRRRRORRRRRROOORRORRORRRRRROOROROOROOORORROOOORRRRROROROOOROROOOORRORRRRORROORORORRRORRRRRRRRRORRROORRORRRRRRRRRRORRRRRROOOROORRORRRROOORORROORRRRROOORRORORORRRRROORORROORORROORRROOORRORRRRRORROORRRRRRRORRORROORORORORRROOROOORRROOOROORRRORRROOOOROOORRRRRRROOOROROORRORORORRRRROOOOORRORORORORRRRORROORRROOOOOORRRROOOORRROOOOROORRORRROROOOOROROROROOORRROORROROROOOOOOORROORORROORRORRORRRRRROROORORORORORROOOORROORROOORORROOROOORRRORROOORROOOROOOORROROOROOOOOOOOOROOOOORROOOROROOOOOROORROOROOOROOOOOOORROOORROOOROOOORROORRROOROROROOORRRORRRROROOOOOOOOOOOOROOOOORRRORRRROOROORROOROOOOOOOROOOROORORRROOOOOOOORROROROROOOROOORRORROOOOOOOOOROOROROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOROOOOOOROOOOOOOORROOOOOOROOOROOOOOROOOOOROROOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOROOOOOROOOOOOOROOOOOROROOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOROOORROOOOOOROOROOOROORROOROOOROROOOORROOOOOROOOORRRORROROROROROOOOOOOOOOOOOORORROOOOOOROOORROOOROOOOOOROROOROORRRRROOOOOOOOORORRROOROOOOOROROROOROORRROROORRRRROROOOOOOOOROOOOOOOROOOOROORORROOOORRROOOOROOORRROOOOROORRROOOORRRORORORROROROOOOOORRRRROROROROORRRRRRRRROOOOORROOOOOOOOROORORRRRRRORORRORRRORORRRRRROORRROROOORRROORORRRRRORRRRRRRRRROOORRRRRRORRRORRRRORROOORORORORRROOORROOORRORRRRORORRRRRRORORROORRRRRROROORRRRRROROORRRRORRRRRORRRRORRROORRROORRRRRRRRORORRORRROOROOROORORRRORRRRRRRRROROOROOROORRRORRRORRRRORRORRROORRRORRORROORRRROORRRORORROORROORORRRORROOROOORORROORRORRRRROOROOORORRROOOOOORRRRRROROOORRROOOOORRRRRRRRRRRORORORROORORROORRRRROROROOOOOORRROOROOORORORORRROORROOORORRRRRORRRRORRRRRRRROOOORRRRROROOORROORRROROORORORORORORRRRROORORRORRRRRORRROOOROOOOROOOORROORRORROOROOOOOROOOOOOROOOORROOOOOORORRORORRORORRROOOROOOROROOOROOOOOOOROOORROOROOOOOOROOROOOROOOROOOORROOOOOOOOOOROROROOOOOOOOOOOOOOOOROROOROOOOROOOOORROOOOOOROOOOROOOOOOOROROOOOOOOOROROOOOROOOOOOOROOROROOOOOOOROROORRROOROOOROROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOROOORROOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROORROOOROOOOROOOROROROOOOORRROROOOOROORROOOOOROOOOOROOOOOOOORRROORRRORROROOOOROOOOOOOOROORROROOOOOOOOOOOOOROOROOOORRRROORROOOROOOOOORRROOOOOORROOROOOOOOORRRORRROOOOROOOOROROOORROROOROOROOORROOOROORROOORRRRROROOOOORRRRROORORRRORROOOOROORRRROORROOOOOOOROROOROOOOOOROOORORROROROROOORRRRORRROROROORORROORROROOROROOORRORORRRRROORRORROROOORORROORRRRORORRRORORRORORORRORROROROORRRORRRRRORORRROOOOORROROOROORRRRRRROOORROORRORRORRRORROOORRORORRORRRRRORRRRROOORRRRROOORRRRRRRORRRRORRRROOORRROOOOROORRRORORROROROORROOORORRRRORRRORRORRRRRRRRRRROOROORRRRRRORORRRRORRRRORORRROORROORRORRRRRRORRRRRRRRORRRRROROORROORRRRRROORRORORROROOORRORRROROOORRROOORRRRRRRROORROROROOOROOROOOORRROORRRRORORRROORORROOOOOOROOOORROOORORORORRRRRORRRRROOOORRRRRORORRORROORROROOROORROROOORRRRROORROROOORORRROOROOOOOOOOOOORRRROOOOOOROOROOOOOROOOOROROOROORRRROOOORRRROROOOOROOOOROROOROOOOROOORRRRRRORROROOOOOOOOOOOOROROOOOOOOOOORORRRROOORRROOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOROORROROOOORROOORROROOOOROOROOOROOOROOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOROOOROOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOORROOOOOROOORRROOROROOOOOOOOROOOOROOOOROOOROOROOOOOOOROORORROROOROOOOOOOOOOOOOROOOOOOOOOOORRROORRROROOOOOOOOOOROOOOOOOOOOORORORROOOROORRROOOOOOOROOOOROOOOOOROOOORROOROORROROOOOOOORORORROORROROOROOORROOOORORROOOOOOOOOOOROROOOORRRROOOROROOROOOOROROOORORRROROOORROORROORRORROORRORROOOOORORROORROROOORROORROORROORORRORRRRRRORORRRROROOROOOORRORRRRRORRRRROROROROROOOORRORRRRORRRROOORRRRORRRRRORROORRORRRRROOROROOOORORRRRRRORRORORRORRRROOROOROORRROORRROROROOROOROROOOOOOOORROROORRRRRRRRRROROOOOROOOROOROORRRORRROROOROORORRRROROORRRRRRROOROROOORRORRORRROORORRROORORROOORRRRRRROORRRRROORRRRRRORRORROORORRRRRRRRRRORORROROROOROORRROOROROOORRORRRRORROROROOROORROROORROORRRORRROROROROORRRRROROORRRRORRRORRRORRRRRROROOORRRRORRORROROOORORROROOOOORROORRRROORORORRRORRRRROOORRRRRORROOROROROOOOORRRRROROROOORROOORORORRRRROORRRRROROOOROROOOOOROOROOROORROROOOOOORRROROOROOROOOOOOOOROROROROROROOROROOROROOOOOOROORRROOOOOOROROOOOORRROROORROOROOROOOOROOROOOOOOROOROOROROORROOOOOOROOORROOORROOOOOOROORORORRRROOOORORROOOROOOROOOOORORROOOOOOOOROOOOOOOOOROOOOOOOOOORROOOOROOORROOOROOOOOOOOOOOOROOOOOOROORORROOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOROROOOOOROOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOROORORROOOOOORROOOROORROOROOOOOOROOOOOOOOOOROOOORROOROOROROOOOOOROOOOROROORORRORRROOOOOOOROOOOOOROOORROOOOOROOOROOOROOOOOOOOROOROOOOROORRORROOOROOROOROOOROOOOOOOORORROORROOORORROROOROORRRRROOOOOOORORROOOORRRRRRROROOOOOOOOOORROOROOORORRORRORROROOOOOOROOOORRROOOORRRRRORROOOOROORRRORROROOROROOOOORORRRORRROROROOORROORORRRORRORRRRRRRORORRROOOOROORORRROROOOOOOORRORORRORRORRRORRRORRRROOORRORRRRRRRROROROORRROOROROORRRRORRORRRRRRRORRRRRORRRRRRROORRRRORRROROORRRRORRRORRRRRROOROORRROORRRORRRRRORRRRORRORORORRRRRORRROOOORORRRORRRORRRRRRRROOOORRROORORRORRRORORRRORRRRRORRRRROOOORRORRRROORORROORRRROOORRRRRRORRRRORORROORORORRORROOROORORORRORRRRORRRRRROORROORRORRRRRRRRRRROOROOOROORRRRROORROORRRRORROOOOORRRROOORROORROROOOROOORRROROORROROORROOOOOOOROOOOROOORROORORORRRORRRRRROOOORORRRROOOOROOORRROOROOOOOOOOOORRORRROOROORROOOOORRROROOROOOOORORROROORRRROOOROOROOOROOORROOOOOOOROOOOOOROOROROOROOOROOOOORRROOOOOOOOOROROOOOOOOOOOOOOROOOOORROROROROOOOOOOOOROOOORORROOOOOROOROOOOOOOORROOOOROOOOROOOOOOOOOOOROROOOOOOROOROOORRORRROOOROOOOOROOOOROROOOROROOROOOOOROROROOOROOOOOOOOOOOOOOROOORRROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOROOOROOOOOOOOROOOROOOOROROOROOOOOOOOOOORRROOOOOOOOORROORRROOOOORROOROOOOOROOOOOOOOOORROOROROOOOOOOOOOROOROOOOROROROORROOROOOROOORRROROOOOOORROOOOROOORROORROOOOOOOOOORRRROORRORRRRRRORORORRROORROORRRRROOOOROROOROROORORROOOOORRORRROOOOORORRRROORROOROOROOOROORRRROOORRROOROOOORRROOORROROOOORRRROORORROORORRRROROORROOROOROORORROROORRRORRRROROOOORRORRROORROORRRRORORROOORORORRORRRROOORRRROORORRROROORORROOROROROOROOORROORRORRRRORRRRRRROOORORRROORRRORROROOOROORRRORROORRRORRRORORRORRRRRRRORORROORRRRRRRRROOORORORRROOORORROOOOOOORRRROORRORORRORORRRORRRRRORORROORRRRROOORRRRRRRRRORRRRRORRROORRROORORORRROOORRRRRRRRRRRROORRRORORRRORROROORORRRRRROOOORRRRORRORRROOROOOOORRRRORRRRRROROROROORRROOROOROROOOORORORROORRRRORROORORROROORRORRORORRRRRORROORROORRORRRORRORRORORRORRRROROORORRORRROOORORORROROOOOOOOOORROOROOORORORRORRRROOOORRRRRROORROOORRORROOORROOOORROOOOOOOOOOROOOORRRORRROROOORRRROOOOOOROROOOOOOOOOROOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOROOROOOROOOOORROOOOORROOOOOROOOOROOOOROOOOOOROOOORROOOOOOOORROOROOOOORORROOORROORRROROOOROOROOOROOOOROOROROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOORROROOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOORRROORROOOOOOOOOOOOOOOOOOOOOORRORROORROOOOOROOROOOOROOORRROORORORORRROOOOOOOOOOOOOOOOROOOOROOROOROOROOOOOOROOOOROROORROOOOOROOOOOROROORORRROOOOROOROOOORORROOOOROROOOOROOOOOOROOOOOROOROOOOOROORRROOOOOORROORROOOROOOROOOOROOOOOROOORRRRRRROROROOROOROOOOOOOOROOOROOORROROROOORROORROOOOORRROORRRRRORORRROOORRRRORROORRRORORRRORROORROOOOOROORROROOROOOOORROOOOOORRRROOOOOOORORRROOROROROORROOORRROOORRRRRRRRRORROOOOORORRRRRROORRROOORRRROROORRRRRROROROOORORROOROORRRROORRROOORROOOORROOOOROORRRORORORORORORRROROROROROORROORRROORRRRORRRRORRRORORORORRRRROORROORORORORORRROORRRRORRRRORROORORRRRRRORRORRRRRRRRRRRRORROROORORRRRORRORORORROORROOORROORRORRRROROROORRORORRROOORROORORRRRORORRROORORROOOORRORRRORROOOROORRRROOROOOROROORRRRRORROORORORROOORORROROORROROORORRRORROOOORORRORORORRRRROOROOOORRRRRRROOOOORRRORRROOOOROOOROOOROOROOORORRROROOROROROOOOORORORORROOOOROOOROOORROORORROOOOOORORRRRRROOOOOOROOORRROROOOORRRORRROROORRRRORORROOOOROOOOROOROOOOOORRROOOOROOORROOOOOOOOOOOOOOOOOOOORROOOOOORROOOROROORROOOROOOOROOOOOROORROROOOOOOOOROROOOOOROROROOOOROORROOOOOOOROOOOROOOOOOOROROOOOOOOOOOOORORROOOOOOORROOOOOOOOOOOROOOOOOROROOOOOROOOOOOROOOOOOOOOROOOROROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOROOOROOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOORORROOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOROOOOROOROOORRORORRORROORORORRRROOROOOROOOOOOOROORROOOOOROOROORORROORROOOOOROOORROROOOOOOROROOOOOOORORROROOOORRROROOOOROOOOOOORORRORROOOORORRORROOOOROROOOOROOOOORRROOORORORRRRRRROROORROORROORORROORORRORROROOOOOOORROORRRORRRRORROORRRORRORRRORRRRORRRRRORORORRORORRROOOOORRORORORRRRORRRROORRROROROROROOOORRRORORRRRROROORROOORRROOORRORRRROOOORORRROROOOROORORRROROROORORROROOOOORORRRRRRORORRRRRRRRROROROOROOROOORORRORRRROROOORRRRRRORRORRRRORRRRORRRRRROORRORROORRRORRRRORRRORROROORRROOORORRROOOROROOOORROROROORORRROOORRRORROOORRRRORRORRORROROORRRRRORRRRRORRRRRRROORORORRRORRRROOORROORRORROOOROOOOROOOROOOORRRROORORORRROOOOROROOOORRRRRRRRRORRRORORROROOROOROOORORORRRRORRROOOROORROOORRORRRRRORROROORRROROORORORRORROROROROOOOOORRROOROORRRROROROOOOROOOOOROOOROROOOROOROROOROOOORROOORROOORORRORROROOOROROOORRORROOROOORORORORROOORORORRRORRROORRROOROOOOOOROROOOORORROOROOROROOROORRRROORORROOOROOORROROOROOOOORROOOORROOORRRROOOOOOOOOROOOOOROOOOOOOOOOOROOROOOOOOOOOROOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOORORROOOOOROROOOROOOOOOOROORROOOOOOORROOOOOOROOROOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOROOOOROOOOOOROOOOOOOROOOOOOOOOROOOROOOOROOOOOOROOOOOOROOOOROORROOROOOOOROOOOOOOROOOOOROOOOOOROOROOOOOROOROOORRRORORROROOROOOROOROOOOROOROOOROROOORROROROOOOROOROOOOOOOOROOROORRORRROOROOROROORORRRROOOOOOOOORORRRROROORORROORROROOORORORRRORRROOROOOROORORORORORORROOOOORORROROROOROOOORRROORROOORRRORRROOROORORROOOORORROROORRRROORROROROOORRRRROORROOORORROORRRORROOROOOOORROORRRROOORRORRRRRORORRORRRROROROORRORORRRORRROORRRRORRRROORORRRRRROORRORROORRRORRRORORRRORRROOORRROOORROROORRORROORRROORRRORORROORRRRORRRRRROROORRRRRRRORRRRRRORRRORRORRRRRRRORRRRORORRRRRRORROOOROORRRORRORROORROOROORROOORRORORRRORORRRROROOORRORRRORRRRRRRRRROORRRROROOOROOORRRRROORRRRORROOORRRORRRRRROORRRORRORRRRROROOOOORORRRRRROOROOOOORRRORRRORROORRROROOORRRORRORRROROOORRORRRORRRROORORRRRRROORORROORORROROOOORRRRORORRORRROROORORRRRROOOROROROORRRRROROORORRRRROOROROOOOOOOOOOOOOORORRRROOOOOOOOOROOOROORRROROOROOOOROROOOOROROOOOROOOOORRORORROROOROORROOORROOOOOROOROOROORRROROOOOROOOOOOOOOOOROROROOROOOOOROOOOOOOROOOOROOOOOORROOOOROOOOOOOROROOOOOOOROROOOOOORROOROROOOROOOOOOOOOOROOOOOOOOOOROOROOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOORROROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOROOOOOOROORORROROOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOROORROOOOOOROOOOROOROORROOOOOOOOROOOROOOOOORROOOOOOOOOOOOOOOOOOOOROOROOOOROOOOROOORROOOOOROOOORORRRROOROOOROOROOOOOOOOOOORROROOOOOOOOOOROOOOOOOOOOOOROOOOORROOOOOROROORROOOORROOOOOOOOOOOOOOORORROROOROOOORORRROOOOROOORRROOROROOROOOOORRRRRRORORRROOORROOOROOORRROOOORRORROROOROOROROORROOORROOOOROOOORORRRRORORORORRRORORORROORROOOROOOROOORRROOROORRROORORRORRRRRORORRRRORORRRRRROOOOORROORROOROROOOOROORRRORROOROOORRRROORRRRROORORRORORRRRORORRRRRRRRRROORORRORORRORROOORORORRRRORRRRRRRRRRROORORORRORRORRORORORRRROOROOORRRORRRRRORRRRORORRRROORRRRORRRRRRRORORRORRORRRROOOORRROOORROOROROOROORRRRRORORRRORORRRRROROOROORRRORORORRRRORORRORRRRRORRORRRRRRRRRRRRRRRORORORROROROOOORRRORRORRRORRORRRORORORRRROROORRORORRROOORRORRRROORROOOROOROOROOORORRROOOROORRRROROOROOROROROORRRORRRROOOORRORROORROOOROOOOROROOOROOOOORROROROROOROOROROORRRROORROROROOOOOROROOOOROORROORROOOOOORROOOOOOOOROOOORRRORROOOOORORRORRROOROOOOOROOOOOOOOOOROROROOROROOOROROOOROOOOOOROOOOOOROORRROROOOOOROOOOORRROOOOOROOOOOOOOROOOROOOOOOROOOOOORROOROOROOOOROOOOOROROOOOOROROOOOOOROOOOOROOROOOOOOOOROROORROOOOROOOOOROROORROOOOOOOROORROOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOROOOOOOOROOOOROOOOOOOOOOOOOROOOOROOOROOOOOOROROOOOOOROOOOOOROOOOOOROOOOROOROOOOOOOOOROROOROOOORROOOOOOOOROROOROOOORRROOOOOROOROOOOROROOOOOOOOOOOOOOOOROROOOOROOOOROORORROOORROOOROOROORROROOOOROOOROOROOOOROOOOOROOROORROOOOOOROOOROORORORRRROROROOOOORROORROROROORORRORROOROOOORROOOORROROOORORROORROOROORRROOOOOROROOROROROOROORROOOORORORRRORRROROOORROOOORRRRRRRRRRORROORRORRRRRROORORRRRROOOROORRRORROORRROORORROROORRROROORRRRORRRROORRRRRRRRROORRROOOOROORRROROOROOOROORROORROOOORRORRRRRORRORRROOOROORORRRORRROORORRRRROOOOOOROORORORROOROOOROORRORRRRROOROORRRRRRORROOOROOOOORRRROORRRRRROOORRRROROORORRORORRRORRRRRRRRRROOOORRORRRRROROORRROOORRORRROORRRRRORROOOROROORROORORRRRORRRRRROORRRRRRROOOOORRRRROROORORORORROOORRRRRRRRROOOORORRRRRROOORRRRORRORRROOROOROORORORROROOOOORORRORROORORORRORORRRORRRROROORRRORORROOORRROOROORRORROOROORROOORORRORRROROORRROORROORRROORROOOOORRROOOROOOOOORRROROOROORROORROOOOOOOOOROOROROOOORRORRROOOROOOOOOORRRROOOOOOOOROOOROOROROOOOROORRORROOORROOOOROOOOOOROORORROOOOOROOOOOOOOOOORROOROOOOROOOOOORRORROOOOOOOOOROROOROOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOORROOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROROOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOORROOROOORROOROOOOROOOOOOOOROOOOOOOOORROROROOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOORROOOOOOOOOORORROROOOOORROOROOOOOOOOOORROOORROROROORRRRROORRRRROOOROOOROROOROROOOOOOOROROROOROOOROOOOOOOOOOROORROROOROOROOOORORROORORRROOORORROROROOOOOORORORROORROORORROOOROROROOOOROOORRRRRRROROROOOOORROOORRROROROOROOORROROROROOOORORROOORRORROOOROOOORROROORORRRROOOOOROOOOOOOOOROROOOORRRRORRRORROOOOORORRRRRRROOROROOOORORRRROROOOORRROROORRRRRRORORRORRROORRRRRRRRRRRORRROROORRRROORRRRRROORRRRRROOOORORRROORRROROOORRRRORRRRORORRORORRRRROROOORROROOROOOROOORORRRRROORRRORORRRRRROORROOOOORRRRROORORRRRRORORORRRRRRRRRRORRRRORROORRROROORRROORROORRROROORORRRRORROORRROROORORRRROORORRORRRRORROOROOOORRORORORORRROOOROROORRRORORORROOOORRRRROORRRROOOOROROORRROOOOOORRRORRRROORRORROOOORRRRRORROORRROROOOORORRRRORRROOORRROORROOROOOROOOROROROOOORROOOOOOOOROROOROORRRRORORORRROROROOROROOORRRRRROOROOORROOROORROOOOOORROOOOROORROOOROOROOOOOOOOROOORROOOROROOROOOOOROROROOORROOOROOOOOOOROOOOROOORORROROOOROOOOROOOOOOOROOOOOORROOOROORRROOROOOROOROOOOORROOOROOOORROROOOROROORROROOOOOROROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOROROOOOOOOOOOOOOROOOOROORROOOOOOOROOORRROOOOOOOROOOOOOOOOROOOOROOOOOOOOOROOROOROOORROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROROOOOOOOORRORROOOOROORROOOOORORROROOORRORORROOOORRORRROOOOOOOORROOOORRRROROROOOOOOOOOOOOOROROORRORRORRROROOOORORROOORROORRORRRROROOOOOROOOORRRORORRROOOOOOOOORORORORRORROOORRRORROOORRORRORRRRRRRROOROORORRRROROOORRRROOROORORRRRRROOROORROOORROROORRRRRRRORRROORORRORORROORORRORORRRRORRRROORRRORRORROROORRRRRRROORRRORRRROROORORORROROOORORORORORRRORRORRRORRORRRROOROOORRORORRROOOOROOOOOOROORRRRRRRORRRORRRRRORRROORRORRORORRROORORORORROOOOROOROORRRORRROOOORRRORORORRRROROORORORRRRROORRRROOORROOORORRORROORRROOORRROOORRRRORROOROORRROOORRROOOOORRORRRROORORORROORRRRORRRRROROOOOOOOOROORRORORRORRRORROROOOROORORRRRRROORORRORORROORROOROOORROROROOROORROORRORORROOROROROROOROORROORORRROROOOOOORROOOORROORRORRRORRRROROOROROROOOORRROORRRRRROOOOOOORRORRRROOROROORRRORORROROROOROORRRRRROROOOOORROROOOROOROOROOOOROOORROOOOOOROOOROOOOOOOOORORROOOROOOOOROOOOROOORROOOOOROOOOOROOOOOOOOOOOOOROROOROROOOOROOOROOOOROOOOOROOOOOOROOOOOOOOOOOOOOOORROROROOOOROOOROOROOOOOOOOOOOOOROOROOOROOOOOOOOROOOOOROOOORROOOOROOORROOOOOOOROOOOOROROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOROOROROROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOROOOOOOROOORROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOORROOORRRROOROOOOOOOOROROOOOOORROOOROORRORROOOORRRRORROOOOOROOOOROORRRROOOORORRROROOOORRROOROROOOOORORRROOROROOOOORRROORORRRROOROORRROOORORORORORORRRORRRORRRROORORRROOOOOROOOOOOOOOOROOORRRROORRROOORORROOOOORRORRRRRRORROOOORROOOOOOOORORROOOROOROORORROORRRRRORROOROROROROROOROOORRRORRRORRRRORRORORRRRORRROORRORRORRORORORRORRRRRORRRROORORRRROROORORRRORORRRRORRRRRRORORRRORRORRRRRRORORORRORRORRRORROOOORRRRORRRRRORORRROOROORRORRRRRORRRROORRRRRRORRRRORROOOOOORORRRROORRRROOORORRRORRORORRORRORRRORORRROORRRRRORROORRRROOOROORRORRORROROROORROORROOOROORORORORROOOROORROORRORRROOROROOROORRORRRRRRORORRROORROOROOOROORRORORORRROOORRRRORRRRRRROOROOORRROOROROOROORROOROOOROOROOROROROROOOOOOROROROOOROOOOROORRROOOROROROORROROORRORRROROOOORRORROROORRRORROOOROROOOOOOOOOROOOORROOOROROROROOOOORORROROROOOOOOOOOOOOROROOORROOORRROOROROOOOROROROROOOOOOROORROORROOOOROOROOOROOOOOOOROOOOOOOOROOOOOOOOROOOOOROROOOROORRROOOOOOOORROOOOOOOOOOOOOOROOOOOOOROOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOROOOOOOOOROOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOROOOOROROROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOORROOOROOOOOOOOOOROOOOOOOROOOOROOROOROOORRROOOOOORROOOORROOOOROORORROOORRORRROOOOOOOOROOOOOOORROOOROOOOOOOOOOOORROORROOROORROORRRROOORRRORRROOOOOOOORORORROOORROROORROOOOORRROROOROOROORRORROOOORRRRROROOOROOROROOOOORROORROOOORROORORRRORRROORROROROORORRRRROOORRROOROROOOROROOORORRROOOOOORROOOOOROOOOOOORRRROORORROOOROOORROROROORRRORRRROROOROROROOOOROOOOOORRORORORORRORRRORROORROOOOOOROORRORRORROROROROOORRROORRRORRRRRORORROOORROORRROOORRROOORORROROORRORRROROOROORRORRRORROROROORRRRORROOORORRRRRORRRORROOROORORORRRORRORORORORROROORORROORRROOORRROROORORROORRRORRORORORRRRORRRRORRROORRORRRRORRRRRORRRROOROOROOORRRRRORRORORRRRROROORORRRRRORORROOORROORRRROOORRROROOOOOOOOOOORROROROORRROOOORROOROOOROORROORRRORROOOROOOOOOOOOOORROORROORRORRORRRRROROOORRROOROROOOORRRRRRROOOROOROORORRROROOROOOOROOORROROROROOOOROROOORRROOROROORORROOOOOOOOORRROOOOOOOROROOROOOROOOOOOROOOOOOOOROROOOROOOOROROOOOOROOROOOOOOOROROORRROOORROOOORRORROOOOROROOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOROOOROOOOOORORROOROROROOOOOOOOOROOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROROROROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROROOOOOOOOOROOORROOOOROOROROOOOROOOOOOORROROOOOOOROOOORORROOOOOOOOOOOOOOOOROOOOOOROROOOROROOOOOOROOOOOOOOOOOORORRORRROROOORROOROROORROOOORRRRORROOROOORORROOOOROOOOORORRORROOOOROROOOOOORRRORROOOORORROOOOOOROOOOOOORRRROROORORORROOOOOOOROOOROOOROOROROORRROOROOORRROROOOROORORRROORRRRROROROOORROOORROOOOROORRRRORRRROOORORROOROROOOORRORRROORRRORROORORROROOROORRORORORROORRORORRORORROROORRROROOORORORRORROORORRROOORRRRRORRRROOOROROORRROORORRRORORRRRRORRORORRRRORRORROROORROROROORRRRRRROROOOORRRROORROOOROROROOORORORRRRORROORRROORRRRORRORRORRORRORRRORRORRRRRRROROROROOORRORROORRRRORROORORORORRRORORORORRRRRORRORRRORRRROORRRROROROOORRRRRORRRROORRRORRORORRROOORRRRROOOOOORORROORRORRRRRRORRORORORRRROROOROOOORRORRRRRROROROOOOORRORORRRORRROOROORORORORROOROOOROOOOORRORROROROOOOOORRORROOROROORRROOROOORROORROOORRRROORRRORORROORRRORORRORROOROROROORORORROOORORROOROROROORRRROOOOOOOOROOOOOOROOOOROROOOOROORRROROROOOOORRRRRORROROOOORROOOOROOROOORRROOROOOOOOROOOOOROROORROOROOOOOORROOOOOOROOOOOROROOOOOOROROOORRORROROOOOOOOOOOOROROOOOOOOOOOORRRROOOOROOOOOOOROOOOOROOOOROOROOROOOOOOOOOORROOOOOOOOOOOOROOROOOOOOOOOOOOORROOOORROOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOORRROOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOROOORROOOOOROOOOROOOOOOOROROOOOOOOOOOROROOROOOOOOOOOOOOOROOOOOORRROOOOORROORRRROOOOOOOROOOORRRRRROOOOOOOROOROOOOOOOROROOOROORRROOORRROORROOORORRRRROROOOOROOROROORROOOOROOOOOOORROORORRROOOOROOOROOROORRRROOROOROORRORRROORROOROOOOORROORORRORRROOROORROORROORRORRRORRRORROOOROOOORRRRRRRRORRRRORRROORROORRRROOOOOOORRORRROOOORORROOORRRRORRRRRRRRORROORRROORRRRRRRRROROROROORORRORRRORRRRRRRRRROOORRROROORORRORORRROROORORORORRROROORRORRRRORRORRORRORORRROORORRRRRRROORROOORRRORRORRRORORRRROORROORRORORRROORRRORROOORORRORRRRRRRROORORRRORRRRRORRRROROORROORORRRORRRRORROROORRRRRORRORRRORRORRRRRORORRRRROROROROORRRORRRORRORRRRRRROORORROOOOROROOORRRORRRROORROORRRORRORROOROROROROROORRORORRROOORRORRROROROOOROROORORRRROOORRRRRROOOROOOOROOROORROOORRRROORRORRRRROROOROOORRORRORROROORRRORROORRRORRROORORORRRROROOORRRROOOORORROORRRORORRORROOORORRRRORORRRORROOOOOOOROOOOOROOOOOOOROROOROORRROOOOROOOOOOOOOOOOOOOOROOOOROOOOOROOORORORRRROOOOOOOROROOOOOOROOORROOOOROOOOOORRORORROOOOOOOOROROOOOOOROOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOROROOOOOROOROOOOOOOOOORROOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOROOOOOOOOOROROORROOOOOOOOOROOOOOOROROOOOOOOOOROOOOOOOOROOOOOROROOOOORROOOORROOOOROORROOOOORROOOROROOOROROOOOOROOOOOOOOROOOOROOROOOROOORROORROOORRROROOOOROOOROROOROOOOOOOOOROOROOOROOOROOOOROOOROOOOOROOOORORROOROOOOOORRORORRRROOORORROORROOOOOROOOOOOORRORROROOORRROROORROROROORRROROORORORROORORORRRROOOOORORRORRRRRROROROORRROOOOOOORRORRRROROORORRORRRRRRRROORORORORROORRRRORROROORROORROOOROOOORRORRROOORROORORORORRRRORROORRORRROROOORORRRRRORROOORRRRRRROOORORRRRORRORRRRRRRRRRORRROORORROORRRRRRRRORRRROROOROOORORORRRORRORRRORORRORRROOOORRRRRRORRRORRORORROROORRROOROROOORRRROOOORRRRRRRRRORRRORRRROOROOROROOROOORRRROOOOROROOROROOORROORRORROORORRROOOOROOROROORRORORRRRORORRORRORRORRRRRRORROOOROOOOOOORORORRRROORRRRRROROROOOORORRRRRORROROROROORRROOOOORRRORORORORROROOOROOOORROOOROOROORRROORROORORORRRROOOOORROORRRORRROROOOOROOROOOOORROORRRORRRROROOOOOOROORRROROROOOOOOOOOOROORRRRORRROOOOORROOOOOROORROOOROOOOOOORROORORRORROOOOOOOOOOOORRROOOOOORROROOROORRORRRORRROOOROOROOOOOROORROOOOOOOOORROROOOROOOOOOOOOROOROOORRROOOOOOOOOOOOROOROOROOROOOROOOORROOOROOROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOORROOROOOOOOOOOROOORROOOOOOOOOOROOOOOROOOOOORROOOOOROOOOROROOOOORRROROROOROOROOOROROOOROOROOOROORROOOORROOOOROOROOOOOROOROOOOOOOORRRRRROOOOOROROOOOOROOROOROORRRROOROOROROOOROROOOROOROROROOROOOOROROORROOORRROOORRRRRROROROORORROOROOORRORRORRRRROOORRROOOOOORRROOORRRROOOOOOORRRORRRRROORORRROOOORRRORORORRORRRRRORRRORROOOORRORORRRRORRROOOOROROOOOORRROORRRRROROOROROROROORORRORRRRRORORROROOROOORROORRORORRRRRROOROOOORORROOORORRRROOOORRRRORRRRRRORRORRORROOORRRROORRRRRORRROROORRORRRRRRORRORRRRRRORRRRRROROROORORRORRRRORRRRRRROROORRRRRROOOOOOOORRRRRRRRRORRRRRRORRORROOROOORROORRRRORROOORROORRORROOROORROROORRRROORRORRRROROROOOOOORROORROROOORRRRORROOOROROORORROORROOORROROOORRRORRRRORROOORROORRRORRRORRRRRORROOORORRROORORROROOORRRORRRRRROOORRORORRROOROOORROOOOOORROOORROOOROOOORROORORROOOOOOOROOOOOOORORROROORORORORROOOROOOOOORROROORRRORRRROORRRRRORRROOOROROORORRRRROORROROORRRORROROOORRROOROORORROOOOOOOOOOOOOORROOOOOROORROOOOOOOROROROOOOROOROOROOROOOOOOROROROOOOOOROOROROOOROOOOOROOROOOOROOOOROOOOOOOOROOOOROROOOOORROORORROROOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOROOOOOOOOOOOOOOROOORORROORROOROOOOOOOOOROOOOORORORRRROOROOOOOOROOROOOROOROROOOOOOOOROORROROOOOOOROOOOROOOOOOOOOOOOOOOOOROORRRROROROOROORRROORROORRROOOROROOROROORROOOOOOOOOROROOOROROOOORORROOOOORROORROORORROROOOROOOOOROROOOOORRRRRROOOROOOROOOORRORROOROORRRRRRRRORORROOROOOORRROROORORORRORROOOROORROROOOORRORRROOOOOROORRRORRRROORROORORROROOOORRRROROOOROOROORRROROOORROORRROORRORROORRROOROROOORRORORORRRRORRORRRORRRRRORROOORRRRRORRRRROROOROOORORRRORROORRRORORRRROOORRRRRRRRORRROORRORRROROORRRRRORRROORORRRROROORRRROORRRRRRROORRRRORORRRORRRRRROOORRRRORORRRORRRORRRRRORORORROORORROORORRRORRRRRRROOOORROOORORROOORRORORRRROORORORRRRRORRORRROORRRRRRRROORRRORORORRORRROORRORRORRRRRORORORRRRORRORRRRRROROOROOORRRROORRORRRORROROOROOOORRRRRROORRRRRRORORRORORRRRORRROOOROOOOORRORROOORRROROROROROOOOORORROOOOROOOOOROOROROOOROOORRROORROORORRORORROOROOROOORROORORROORROOOOOORROROORORRROROOOROOORRROROOROOOOOROOOOROOOOOOORROOORRROOOOOOOROOOOOOORROOOOROOOOOROOOORROOORROOOROOOOROROROROOOOROOOOOOROROOOROOOOOOROOORRORROOROROOOORROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOORROROROOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROROROOOOOOOOOROOOROOROOOOOOOOOORORROROROROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOROOOROOROOORRROOOROOROROOOOOROOROOOOOOOOOROOOROOROOROOOOOOOOROOOOOOOOOROOOOOOOORRORORRROOOOOOOOROOOOROROOOROOOOOORRORRROOROROOROOOOOOROOOOROOOOOOOOROOOORROOROROOROORRRORROORROROROORRRROOOOORRORRORRORRRORRROOOORORRORROROORRORRRRROOOORORRRORRORRRORROOOROOOORRRROOROROOORRRORROROROOOOOOOOROROOOORRORRRRROOROOOOOORORRRORORRORORRRRRROOORORORRRROOOOORROOORRORORRORORRROOORRORRRORRRRORRORORROOORROORRRRORRRRORORRRORORRRRROORORRROORRORRRORRORRROOOORORRRRORRRORRORROROORRRRORRORRRRRORROROORORRRROROORRRRRRRRRORORRROORRORORRRORRRRRRROROROORRRRRORRRORROOORRRRRORRORRRRRORRRRROOOORRRORRRRRORROOORRRORRRROOOROOROROOOORRRRROOOOOROORRRROORRRROROROOROORRRRRRROOOOOORRROOOOOOOROORRORRRRROORROROOROORRRRORROORROROOOOOROOOROORORRRORROOROOOOOOORORORROROORRRRORORORROOROROORORRRROOROOORORRRORRRRRROOOOROOROOOORROORRRROOOROOROOOOOOORORROOROOOOROOORROOOORROOROOOORROROOROROOOROOOROOOORROROOOROOOOROROOOOOOOROOOOROOOOOOORRROOOOOOOROOOROOOOOROROOOOOROOOOOOOOOOROOOOOOORRROROOOOOOOOOOROOOOOOOOROORROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOORRRROROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROROOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOROOOOOOROOOROOOOOOOORROROOOOOOOOOOOOOOOOROOROOOROOROOOORROOOOOOOROOOOOROROOOOOOOOOORRROROOOOOOROOOOROOOOOOROOOOROROORORROOOROROOROOORROOROOROROOROOROOOOOOOROOOORRROROROROOOORROROORRROOOOOOROOOOOOOROORRRROORROOROORROOOOORRROROROORROOOOORROOOOOOORROOOROORROROOORROORORROROOOOROOOORRORRRORRORRORROOOOOOROROROOORRRRRROOROROORRROOOROORRROORROOORORRROOOORRROOOROOOOROORROOORRRRRROOROROOORORROOORORRROOORRROOORRORRRORRRRROOOORRROORRRROOOOORRORRROOORRRRRORORORRROOOROOORRRRROOORORRROORORORORRRORORRRRRORRRROROOOROORRRRRROROORRORRRROROORROOORORRRRROORRRORRORRORORRORRRRORRRRRORORRROORRRRRRORRRRRRRRRORRRORRORROROORORRROORRORRORRRROOORRRORRROORORRRRRORRRORROORRRRORRRRRRRRRRRORRROOROORROOORROOOOORORRORRORROORORRROORROORROROOOROOOOROORRRROORRORRORRRRRORORORORORORROOOOOROOORROOORROOOORROROORROORRROROROOORROROOORROOROROOROOORRROOORRORROROROOOOOROROROOOORRORORRROOOOOOROOOOOOOOOOORROOOOOORROOORRROROOOOOOROROOOOOOROOOOROOOOROOROOOOOOOOORROOOOOOOORORROOOOOOORROROOORORROOOOOOOOOROORROOOOOOOORROOOOOOOOOROOOOOOOOROOOOOOOROOOORRROOORROOOOOOOOOORROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROORRROOOOOOOOOOROOOOOOROOOROOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOROOOORROOOROOOROOOOOOOOROOOOOROOOOOOROROOOOOROOOOOROOOOORROOROOOORROROOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOORRROOOOORORROOOROROOROROOROROOOOOOOOORROOROOOOOOOOOROROOROORRRROOROROORRROOOOROOOROROROOOOORRRORROROROROROOROOORROOORORRRRROOROOOROROOOORRRRRROROROORROOROOORROOROOORROORRORROOROROOOOOOOROOOORORROROORRORRRORRRORRRORROROROROORROOOOROORRORORORRORRRRORRRRORRRORRRORRROORRRRORROOOORRROOORRROORORRRRRRRORRRROROORRROORRRRORRRORROOORRORRRROROROORRROROROOORRRRRRRRORRROORROROORRORORRRORRORRRORRRORRRRRRORORROOOROOOOORORRRORRRRRRORORRRRORRRORRRRRRORRROOOORORRRORRORORRORROORROOOORROOOOOROORRRRRRORRORORROORRRORRORROORRROORROOORRRRRROROROROORRRRRRRRORROORROROORRRRROOORRRRROOORROOORORRRRROORORRRRRRROROORRRRORRRRRROOOOOROORRRRORRORRROOOORORROORRROORORRROROOOOROORROROOORRORORRRRROOOORROOROORROORROOOROOROORRORORORRROOOORRORORORROROOROOOOOOOOROOROOOORROOOORROROOOOOORORRRROROOROORRRROOOOROROOOROOOOOOOOROOOOOOOROOROORROOOOROORROOOOOROROOROOOOOOOOOROOOROROOROOROOOOORRRRORROOOOROOOOOOOOOOOOOOOOOOROOOROOOOOROOOORROOOOROOROOOOOOROOOOOORORROOOOOOOOOOOOOOOOOOOOOOORROOROROOOOOROOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOROROOOOOOOOOROOOOORORROOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOROOOOOOORROOOOOOOROOOORROOOOOOOOOROROOOORROOOROOOOOOOOOOOOOOOOROOOOOORROROROOOOOOOOOOOROROOOOOORORORROOOOOOOOOOOOOOOOOOOROROOOORRRROOOOROOOOOORROOOOOOOOROROOOOOOOROOOOROOOOOOORORRROOROOORORROOROROOOOOROORORROOORROOOROOOOOROOOOOROOOOROOOOROROORORORROOOOOOOORROOOOORROOOOOORRRRORRORROOOROROOOOORRROORRROROOOOROOROOOOOORRRROORROROORROORROOROOROORORORROROORORRORORROOORRORRORRRRORROORROROROOROORROOOOOORRRORRROOOOOORRROOORORROOOOOORROOOOOROORRRRRRRRRRRROOOORORRROOROROROOROROORRROROROOORRRRORRORORRRRRRRRROOORRORROOOORRRRRRORRROOOORROROORRRRRRORRRRRORRROORRRROROORORROROORRRROROOOOROROORORRORRORROROORRRORORORROROORRRRRRORRORRRRROOORRRORROOORRRRRORORRRORRORRROROORRRRRRRRRORRROROROOOOOORRRRORRROOOORRRORRRRROOORORRRRRORRRRRROROORRORRORRRRRRRROOOROORRROOOOOOOROOORROORORRRROORRRRRRRRORORORORRORROORROROOOROOOOOOOROORORROOOROOOOOOROROOOORRRROORROOORORROOROOOROORROOOROOOOROOROOOOOOORORROORROROOOORRRROOROOOORRORROROOOOOOOOOROOOOOOROOOOOOOOROORRROOOROOOORROROOOOROROOOORRORRRORRRORORROOOOOROOOORROOOOOOOOROOROOOOROOROOOOOOOOOOOOROOOOOOOOORROROOROOOROOOOOOROOOROOOROOROOOOROOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOORRRROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOROOOOOOROOROOOOOOOOOOROOOOOOOOOOROOOOOOROROROOROOOOOOOOOROOOROOOOOOOOROOROOOROROOOROROORROOOOROOOOOOROOOOOOOOORROOOOROROOROORRORRROROOOOROROOOOROOOROROORRRROOOOROOOORRRORORORROORORROORRRORROOROOROOROOOOOROOORRRORRRORRROOROORROORROOORRRORORRROOROROROROOOROORRORRRRRORRROROOORROOOOROOOORRRROOORROROORROOOOOOORRORORORRRORROORORORRORRRROROOORRRRORRRROOROORORRORRROOORROOOORORRORRORORRRORRRORORORORRRRRRORROOOORRROORROOOOOORROOOORRRORORRRRRRRRROROOOOOORORRRRRROORRROOOROOOORROOOORORRRRORRRROOOOROOOOROORORRRORRROOROORRRROORRORRORRORORORRROOORORORRORRROORRROORRORRORROOOORROROOOOOOROOORRROOROOOROORROORRRRRROORRORRROORRRRORRRRORORRORRROORRORRRRRRRROROORRRRROORRORORRRRROOORRORRRRRORRRRRROOOROORORROROORROORRROORRORRRROORRORRROROOOROOROORROROOROROOOOORRORRORRORRROOROROORORRRRRRRRORROOOOOORORROOROOORRORORROOORORROOROOROROOOOOORROORROORROOOOOOROOOROOOROOOORORROOOROOORROOROOROOOOOOOOOOROOOOROOOOOOOOOOOOORROOORORORRRROROOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOORROOOOOOOROOOOOOOOROOOROOOROROORROORROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROROOOOROOOOOORRROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOORROOOOROOOOOOORROROOOOOOOOROOOOOOROOOOROOROOOOOOOOOOOOOOOOROROOOOOROROOOOOOROOOOOOOOORRRORROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROORROOOOOOOOOOROOOOOOOORROROOOOOROOOOOOORRROOOOOOROOOROOOOROROOOOOOOOORROOOROOOOOOOOOOOOOOOOOOORROORROOORROOOORRRRROOORROOOROOOOOROOROOROORROOOROOOOORORROROOOOROOROOORORROOORROORRRROROOOROROOROOROORROOOOOROROORRRROOORORRRRRRROOOOROOORRROROOOROOOROOOROORRROORRORRRRRORROOORRRRRRORROORRRROORRROROOOROORORROOORRRRRRROORROOORRRROORROORRRORORROOORROOROROOOROROOROOORRRRORRROORRROOROORORRORRRORROROORRRORORROORRORRROROORROORRRORROORRRRORROORRROORRRRRORRORRRRORORORRORRROOORRRRRORRORORORRRRRRRORROORRRRORORROORRRRORROROORROOOOROOOORRORRRORORRRRRROORRRROROORRRRRROORRORRORRRRRRROROROORROORRROORORRRRORROROORRROORRRRRRRORRRORRROROROROOROORRRRORRROROORORRORORROOROORRRORRRRROOROROOORRRROORRORORROROOROORORRRORRROROROORRRRORRROROROOOORRROOOORROOORRORROORRRROROOROORRRROOOORROOOOORRRRRRRRORORROROOROOROOROOOOOOOOROORROOORORROROOOOROOROOOOOORRRROOOROOROOOROOOORORROROORROOOOOOOORRRRROROOOOOOOOOOOOOOROOOOROOROOROOOOOROOOROOOORROOOOOORROOOOOROROOOOROOOROROOORROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOROOOROROOOOOOOOOOOOOROOOOOOOROOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOROOROROOROOOOOOOOOOORROROOOOOOORORRROOOOOROOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOROOOOROOOOOOORROOOOROROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOORRROOROROROOOORRRRROOOOOOOORROOROOOOORORROOOORRORROROORRRORROOORORORROROORRRRROOOROOROOROROROORRRRROOOOROROOOROROOOORRORROORRORORORORRROROOORROOOORRORRROORRORORROORORRROORORRROOORRORROROORRRRRRROOOORRRRRRROROORROOORRROORORORORORORORRRORRORORRRRRRORRRORORRRRRORRRRROOOOOOORRRROROROROOOROROORORRRRRRRRORORRRRRRRRRRRORROOROOOORRRORRORRORRORRRORRRRRRORROORORROORRRRRROORORORRRORORORRRRRRROOROOROOOROOOORRRRRRRRORORORORRRRRROOOORROROORRRRORROROORROROROOOROROOOOORORROOORRRRROOOROORROROOORRORRRRROOORORROROORRRRRRRORRRRROORRROOOORRROORRRRROROORROORRRRORORRORRRROORROROOORROROOOOOOORORRRROROOORRRORORRROOROROOOOOOOOOROROROORRRROROROROROOORORORROOROORORRRROROROOORROROOORRROOOOOOORORORROOROROROROOOROORRORORRRROOORRRROOOOROOOOORROROROOOROOROOOOOOOROOOROOROROROORROOOOOOROOOOOOOOOROROROOOORRROOOORROOOROOOORRROOOOOOROOROOROOORROOOOROOOORORROOOOOOOOOOOROOOROOOROROOOROOROOOOOOROROOOOOORROOOROOOOROOOOOROROOOOOOOOOOOOOOROOROOOOROOOOROOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROORROOOOOOROOOOOOOOOOOOOROOOOOOROOROOOOOOOOROOOOROOOOOROROOOOOOOOOORORORROOOOOOOOOROORROOOOOOOOROROROOROOOOOOOROORROOOORORORROROOOOROROOOOOOOROOOROOOOOROORROROOOOORORRROOROROOROOROROOOOOOROOOORROROORROROORORRORORRRROORROOORROOROOROOOOOOROORROROOROORORRRRRRRROOOOORRRRORROOORRORORORROORORORRRRORRRRROOOORRORORRROOROROOOROOOOOOROROORRRROOOORROOORRROROROROORORORORORRRORRRRRRROROOOORRORRORROORORRRORORRRROROORORRORRRRRRRRROORROROROOORRORRROOORROROORROORORROROROOROORRRRORRRRRRRRORROOOORRROOOORRRRROROROOOORORRORRORRROROORORRRRORORRRORRORRRORORRRRROORRRRRRRRRORRRORRRRORRROROORRRORRRRRRRORRROORRRRRRROOOOORROROORRROOORRRRORRRRROOOORRRRRRORRRRORRROROROOOORORRRORRROORRRRRRRRORRRRROOROOORROOORORORRRRRRORORRRRROORROROORRORRROOOROROROOORROROROOORORRRRRROORRRRORROROORROORORRROOROOORROOOORROOOROOORROOORROOOORORRORRRROORROOOORORRORRROORRROORROOROOROOOOORROOOOOOROOOOROOOOROOOROROROOOORRROROOOROROROORROROOOROOOOOOORORROOROOROROROOROOROOOOROOOROOOOOOOOOOROOOOOROROOOORROROOOROOOROROROOOOOOOROROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOROROOOOOOORROOOOOOOOROOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOORORRROOROOOOOOOOROOOROOOROOROOOOOOOOOOOOOOOORROROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOORRRROOOOOROORROOOOOROROORROOOROOOOORROROOOOOOOOOOOOOORRORROOOOOOROORROORORROOOOOROOROOOROROROORRROOOOROOROOROOROROROOOOOOOOOOOOOOOOOORRORRROOROOOOOROOOOORRRRRROOOOROORROROOROOORRRRROOOOOOOROORORROROOROOORRRRORROOORRRRRRRRORORORROORRROORROROOORRORRORORRROOOORORRRORRROROOORROORRRRROOORRORRRORRRRRRRRRRRROORRORORROOORRORROROORORRRRORORRRRORORRORRORRRRRRRRROORROROROORRRRROOOOOORRROORRRRRRRORROOROOROORROOOROROROORRORORORROROOOORORRROOORRORORORRORORORROROOOORRROOOROORORROOOROOORRROORROORRRRRRROORRRORROORRRORRRRRRRRORRROORRRRRRORRORRRROORRRRRROORRROOOORRRRRRRROORORRORRORORROOOOOROOROORRRORRROOROOORRORROROOROOOORRRRROOROOOOOROOOOROOORROOORORRRROORRRRRRRORRROORROOOORROOORRRROOROORRRRRORRRRRRRORROROORRORRRRRROOORROROROOORRRORROOOROOOORROROORRORROROORRORROOORRRRRROORRROOORROOROOOROROOORROROOOOORRROOORORROOOOOOOOOROROORORRROROROROORROOROROOOROOOOOOOROOOROOOOOOOROOOOROOOROOOROOROOOOROOOROROROROOOOORRROOOOOOROOORRROOOOROOROOROOOOOOORROROOOOOROOOOOOOOOROOROOOOOOOOORROOOROOOOOOOOOORROOOOOOOOOROOOOOOROOOOOROOOOOOOOOORROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOORROROOOOOOOOOROOROOOOOOOOOOOOOOOOOORROORROOOOROOORROOORROOOROOORRORORROOOOOOORROROOOOOOOOORORORRORORROOOOORROOOOOOROOOOOOOOOOOROROOOROOORROOOORROORRROROORORROORRROOROOROOOORRROORROROOOOOROOOOOROORROOORROOOOOROOOOROOOROROOOROOROOORRROOORRRRROOROOOOOOOOOROOOOOROOROROORRORRORROORROROROROROOORRORRORORROOOOOOROROORROROOORROOOROORROOORRRRRRORRROOOORROOORRROOROOORRROOROOORRRRORRORRROROROROOOOORROORRROROORRORRORORRRORORROORRROOOORRRRRRRRROOOROORORORRRORRRORRRORORORORRORRORORRRRROORORROORORORRROROOORORRRROOOOROROROORROROOROORRRORROORROROOOORRRORRRRRRRORRRRRORORRRRRRRRRRORORRORRRRRRROROROOROOORRRORRORRRRORORRROORRRORROOROOOROROROOORORRROOOROORRRRRORROROORORROOOOROOROOROORRRROORRRRRRROROOROOROROROORORROORRORRORRROORORRRRORROOORRORORROORRRORRROROORROROROORRRORRROROOORROOORRROOROROOORRROORROROOOOOOOROOOROROORRORRRRRRORORRRRROOOOOORRORRROOORRORROOOOORORRRRRORORROORROROROROOROOORROORORORRRROOOOROOOOOROOOORORROOOOOOORROOOORORORRRROOOORROOOOOOOOOOOROROROORRROROOOROOROOORROROROOORROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROROROOOOROOOROOROOOOOROOOOOROOROORROOOOROOOOOOORORROOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOORROORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOROOOOOOOOOOROOOOROOOOOOOOOOOORROOOROOOOOOOOOOOOOOROROROOOOOOOROROOOOOOOROOOORROORRRORRROORRRRRROOOOOOOOOOOOOOOOOOOROOROOOOROOROOOOOOOORRRROOOOROROROOOOOOORROROOOOOOOROOROROORROOORROOOORRORROOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOORROROORORORRROOOROOOORRRRRRORROORROROOOOROOOOOOROOORRRRROOOOORRRROROOOOROOORRRRORRORRROROROOORORRROOOROROROORRORRROORROROROROOROORROOORRRORROOOOROORORRRORORRROOORRRROORRRORRRRRROOOORROORROORORRROROORRORRRRROOOORORROOROOROROOORRRROROOORROOOORRORRRRORORRRORORRRRROROORORRORORRROORRRROROOOOORRRROOORRORRRORORRRROORROORRRORROORORRRORRRORRRRRORROORRORRRROOORROOORORROOORRRRRORORORRRRORRRRORRORRRRORROORORRRORRORRRORRRORROROORROROORORRROOROOOORORRRORROROOORROOROOORRRORRRORRROOORORORRRRRORRROOROROOOORRORORRORRRRROOOROOOORROOOORRORRROORROORRRRORROOORROORORROOORRROROORROROROROOORORROOORROORRRRRRROOOROOORORORRRRROORRRORROROROOOOOROROOORRROROOOROOOORORRROROROOOORRORORRROOORRORORORORROOOORORROOORORRRROOOROOROOROOROOOROOOORROOOOOOOOOOOOROOOROOOOOOOOOOOROORRROOOOORROOROOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOORROOOOOOOROROROROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOORRORROOOOORROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOROOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOORROOROROOOOOOORRROOOOORORROOROOROROOOOOOOROOOROOROOOROOROOOOROOOOORROOOOOOOOOOROOOOROOROROOROOOOROROOOOROOOOROOROORORRORRROOOROOROOOOROROOORORRRROOOOOORORORRROOORROOOOROROOROROROOOOOROOOORRROROOOOOORRROOORRROOOOOOORRROORROOOOOOROORRRROOROROOOORROOOOROORRROROOROORRRROROORROOOORRRORROOOOROORRRRORRORRRROOOROOOOOORRRRORROORRRROOOROROOOOORRRORRROROOROORORROOORRRROORRROOOORORORROROROORRORRROOOORROROOOOORRORORORORORRRRRRRRRRROOOORORRRROORORROORORORRRRRROORRRRROOORRROROORRRORRORRORRRRORORROORORROORRORRORRRORRROORRRRRROORRROOROOOORORRRRORRRORRROORROOOORRORRRRRRORRROORRRORRRRRORRRRRRORRRORRROOORRRRROOOORORRORRROROROOORROOROROOORROOROROOROROORROOORRROROROOOOORORRORROORRRORRRROORRORRRRRRRORROOOROOROROOROOROOOROOOOROOOROOORORORRORRROOROOROOORORRORROORORRROOOOOORROOROOOOORORORRROOOORRRORORROROORROOROOORROOOOROORROOROOROOORROROOROROORORRORRROOOOOORORRRORROOOROOROROOOOOOOOOORORROORORRROOOROROOORROOOOOORROOORORROOROROOOOROOROOROOOORORROOOOOOOOOROOOROORROOOROOOOROOROOOOOOORROROROOOROOORROOOOROOROOOOOOOOORRROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOROOOOOOOORROOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOROROOOOOORROOOOOOOOOOOOOOOOOOORROOOROOOOOOOROROROOOORRRROOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOROROORROOOOOOOORROOOOOOOOROOOOROOOROOROROROOROOROOORROROOOOOOOOOOROORROROROOOOOORROOROOROOOOOOROOOOOROROOOOROOOOORROOOOOOOOOOOOOOOOOOORROROROOORRROOOOOOOROOOOOORRRROOOOOOOOOOORORROOOROOOOROOOOOROOORRORORRRORROROOOROROROROOOOOORRRROROOOROORROOROOOROROORRROORORRRRORRRROORRORROROOOOORROOOOROOOORRRRRROROORROORORROROOOORORROOROORORROORRORROORRRORRRROOOOORRORRRRORORORRRRORRRORRORRORRRRORRRRRROORRORRRORRRRRRORORORORRORORRORROOORRRRORRRORRRRRRRRRRRORORRORORROORRRRRRROORRROORROORRRRRRORRRRROORRROORRROROROOORRROORRROORORROROORRORRRORORRORRRRRRRRRROROOOROORRRRRRRRORRRROOOORORRRRORROROOORORRRORROROORRRRRROROROOOORRRRRORRRRRRROOROROORORRRROROOORRRRRROOOOROROORROORROOORORRORROROROROROOROORRRORRRORRRROOOORRRROOORORORORROOROROOOOORRORRRRRORRORRROOORROORROROROORROORRRRRROROROROOOOOOOOORROORRORROORROOOOROOOOORORRORROORRROOROOROROROROOOOOOOORROROROOOORROOOOOROROOOROROOOOOROORROOROOOORROOOORRROOORORROOOOOOOROOOOOOOORORROOROROOROOOOOROOOOOORROOROROOROOOOROOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOROOOROOOOROOOOOOOOOOOOOOOOOOROOOROOROOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOROOOROOOOROOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOROOOOOROROORROROOOROOOOORROROROOOOROOOOOOROOOORROROOOROOOOOOORROORROOOOOOROOOOROOOOOOORORRRORROOOOOOORORRRROOROORRROOORROOOOORROOOOROROOROOROROOOOORRORORRROROOORORRROROROOORROORROORRRORORORORROOOORORROOOORRORROOROOOORROROOOORRRROORRRRORRORORROROORROOOOOROOORRROOOOORRRROOOOOOORROROROROORRROOORROROORORRRRORORRROROORRROORRRROORORORORRRRROROORRRRRRORRRORORRRRRORROOOORRORRROOROORORRRRORRORRORORORROORROROORROORRORRORORRROORRROORRRORRRRRROORORRRORORRORRRORORRRORORROOORRORRRRORORRRRRROOORRRRRRROOROORRROORRRRRRRRRRORRROOORRRORROOORRRROOORRRRROOORROOOORROOROORORRORORRORRROOOORROROORRRORRORRRRORRORROROORRROROORROORRORRRRORRORROORRORROORRORRROOOOOORRRORRORRRRORROORRRRORRRRORRORORRRRORRRORRORORRRORRRROROOORRORORRORRORROOORROROOORORORRRRROOROORRRRRRRROORROOROOORROORORROOOROROORORRORRRORROORORRORROROORRROOOOOOOOORRRORRORRRRORROROOOOORRRRRORROORROOOROOOOOROROROOORRROORORRORROROOORRROOORORROOOOOORORRROOOOOOOOOOOOOOOOOOOOOOOORROOROOOROOOOROOOOOOROROOOOOROROOOROOROOOOOOOORRROORORROOROOOROOOOOOOOOOOORROOROOROOORORROROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOROOOOROOROROOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORROOOROOOOROOOOOOROOOOOOOOOOOOROORORRROOOOOOOOOOORROROOOOOROOOOOOOOOOORRROOOROOOOOOOOOOOOOORROOORRROOROOROOROROROOOOORROORROOOROOOOOORROOOORROOROROOOOROORRORORROOOOROROOOOOROOROOORROORROOROORROOOOOOOROORORROOORRROORROORROOOORORORORORORRORROROOROORRORORORORORRRORRROROORROOORORRRROORRROOOROOOOOOOOROOOORRRORRRROROORRROOOORRRRRRRROROORRORRRRRORRRORORRRROORROOOROORRRRRRRRORORRRROORRROORRRRRRROORRROROROORRROORROORRRRROOOOOROOOROORRORRRRRORRRRRRRRRRRRRRRRRRRRROOOOOORRRROROOROORRRROORRRRROORORRORORORRORORORROORRRRORRRORORRRRRORRORRROROOORORRRORORRRRROOORROROOORRRRRORORRRORORORROROORRRRRRRRRRRRRORORROOROOOORROOORORORORRORRRROOOORRRROROROROROROROOROOORRRORRRROORRORROOOORRROROOORRORRORORORRRRRORROOROORORRORROOOORORRORRORORRRRRORRROORRRRRRRRROROOOORORROOROOOOORROROORORROROOOROROORRROOOOOORROOOORROORROOORRROOROOOORROOORROOOOOOOORORRROORRROROROOOORROOROOORROROOOOOOORROOORRROOOOROOORRRROOOORRORROOOOOOOOROOOOOROOOOROOORROOOROOOORRRROOROORORROROOROOOOORROROOOOROOROOOROOOOOOOOROROOOOOROOOOROOROROOOORROOOOOOOOOOOOOOOOOORRORROOOROOROOOOOOOOOOOOOOOOOROROOROOOOOROORROOOOROOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOROROOROOOOOOOOROOOROOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOORROOOROOROOOOOOORROOOOOROOROOOOOOROOROOROOOORRORRRROOOOOOROOOOROOOOOROOOORRORORROROROOOROOOOOOOOROOOOORROORRORRRORORRROROOOROOROOOOOOOOOROOOROROROORORRROOOROOOOROOOOOROOOOOOOROOOOROOOOOOROROOROROROOROOROOROROROORORRRRRORRROOROROROOOOOOOROROROOOORROORROROORRROOORRORORORORORRORROROOORRRRRORRROOOOOORROOROOOROORRRROOORROORRROOROOOORORRROOOOORRRROOROORORRRRRROOORRROROORROROORRRRRRRRRRRROOOROOOORRRORORORRRRROORROORRROOOORRRRRRRRRRRORRORORRRRRRRRORROOORRRRORORORRRRORRORORRRORRORRORROORRROOORORRORRRRRORRRRRRORORORRRRRORROOOROORRORROORORORORRRRRORORRORRRRRROOOORROROORORORRRRRRORRRROOOORROOROORRRRRRRRORORRRRRRORORRRRRRROROORRORROOOORRRROOORRROORROROORRORRRRORRORROORRORORRRRRORRRRROOOORORRRROORROOORRRRROROROORORROOROORORORRROORRRROROROOOOOROOOROOORROOOOORORROOOORORORROORRRRROORROOROOOORRROOOOOROOOORRRROROOROROORORRRORRORRRROOORRROOROORRRRROOOOOOOORROROORRORORRROOOOOOOORORORROROOOORROORROORORRROOOOROROORRROROOOOOORRRRORORRORROOROORORRORROOOOORROORORRRROOOOOOOOOOOORRORROOOROOOOOROROOOORROOOOOOOROOROORORROOOOOOOOOORORROOORROOROOOOOOOOOOROOOOOOOOOOROOOOROROOOOOOOOOROOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOROOORORROOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOORORRROOOOOORROOOOOOOROROOOOOOOOOOOOOOOOROOOOOROROOOROOOORROORROROOOOOROOOOOROROOOOOOORROOROOROOOOROOROOOOOROOOROOOROORORROOROROOROOROOROOROROROOOOOOOROOROOROOORORRROROOOOOROROROOORRRORROOROOROROROOOROOOORROOORRRROROORROORROROOROORRRROROOOROORRROORORRRRRRRRROROORORRROOOROOOORROROOROOORROROOOOROOOOOROOOOROORRROROORRRRRRRRRRORRRROOOOOOOROROOROOOORORRROORORRORRORRRORRRORORRRRRRROOORRRRROOORRRROOROORROROROORRROOOOORROORORRROROOORRRRROROORORRRRRRRRRRORRRRRRROOORRORORRORRROORRRRROORRRRORRORRORRRRROORRORRORRROOOROROROOROOORRROORORRRRORRRRRROROORRRRROORROROORROROOROORORRRROORRRRRROOOROORORRRRRRRRRORRRRRROORROOROORRRRRRRROORORRORRROOORRROORRRORRROROOOOORRROORORROORORRRRRORRORRRRRROOORRROOOORRRORORORROOORRRRORROOROORRORORORRRRRORRRORORORRRRORRRROOORRROOOORRRORORRORRORORRRRROORRRORORORRRORROOROORRROOOOROROOOOOOROOROORORORRORRRROOOOOOOROOORRROOOOOORROOOROOROROROOOOOOROOOROROOROOOROROOOOOROORORRROROOOROOOOOORRRROROOORROOOROOOROOOOROOOOOOOROOOROOOOOOOOOOOOROOOOOOOROOROROROOROROOORROOOOOROOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOORROOOROOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOROROOOOROOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOORROROOOOROOOOOOOOOOOROOROOOOOROOROROOOROOOOOROOOOROOOROOOROORROOOOOROOOORROROOORROOOOOOROOOOOOROOOOOOOOOOOOROOOOORROORROORROORORRROOOOOOROOOOOOOROOOOORROROROOOOOORROOOOOROORORROOOROORRRROOOORROOORRRORRRORROROOOOROOOOORORROOOOOOOOROROOROORRRRORROORROOORORORRROORORRRROOOROOORRROROOORORRROORROOOOOOOOORORROORORRRRRORORORORRROROOORROORRROORRROORORORRROOROORROOROROOROOORRRROOOOORRROORROOOOROOROORRRORORROOOOOORRRROROOORORROOORRRRORRRORRROORRORRORRRRRROOOOROOOROROOOOORORORRRRRROROROOORRRRRROOORORRRORORRROORRRRROOOORRROROORRRRORROORROOORRRRRROORORRRORRRRORROROROROORORRORRRRRRRRORROORRRRORROORROORRRRRROOORRRRRRRORRRORROROOORROROOORRORRORRRROORROOOOOORORRROOROORORRROORRRORORRRORROOOOROOROROORORORRRRRRRRRROORRRRROOOOROOOORROOOOORROORRROROROOROORROORRRRORORROOOOORRRORORRRRROROROROORROOOOROOORRROROOORORRRROOORORRROOOOOORROROOORRRRRRRORRROOOOROOOORORROOOORROROROOROORRORROOOROOOROOROROROROROROORROOOOOOOOOOOOOOORROORORROROOOORRROOOOOROOROOOOOOOOOOOORORROROORORORROOOOOOORROROROOOOOROOOOOOOOROORRROOOOOOOOROOORRORROROOOOOOOOOORROOOOOOOOOORORROROOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOROOROOOOOOOOOOOOROOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOROOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOORORROOOOOOOROROOOOOOOOOOROOOORORROROOROOOOOOOOOROOOROOOOOROOROORROOOOOOOOROOOOOROOROOOROOORRROOROOOOOOOOROOOOROORORROOOOOOOOOOOROROOOROOOOOOOOOOOOOROOOOORROROOROOOOOROOOORROOOOOOOOOROOOOOOROROROROOOROOROOROROOOOORROOROORRRRROOOOORRRORROOORRRRRORROROOOOOORRROROROROOOROROOOORRORORRRROOOORROORRRROORORRRROOOOORORRORRORRROOOOORROORRRROOROROORRRRRRRRORORRROROROORRORRRRROOORRORORORORORORROORORORROOORORORRRROROOROOOOROORORRORORRRORORRROOOOOORRRROROORRRRORRRRORRRRORROOOOORROOROORROORRRROORORROORRORROOORRORORRROROOORRRRRRORROORORROORRROOORROOROORRROORRRRRROROOOROOORRRORROROOROROOROORROORRRROOORORROORRORRRRROROORRRRRRRRRRRRRORRORRRRRRROOORRRRRROOROOORRROROOOOOORRROOOOORORORRRRRRORRORORRORRORRRRRROOOROOORORRRRRORRRROOROORORRORRORROROOOOOORRROORRROORRORROOORROORROORRORRORROOOROROROROORROROROOOOOORRORRRORORRORROOOOOORROOROROOORORRORROOROOOOOOOOORROROOOOORROOOOOOOORRROORRORORORROORROOOOOROOOORROOOOORRRORRRORROOROOOOOOOROROOOOROOOOORORROOOROOORRROOROOOROOOOOOOOORORRORROROOOOOOOOOOOOOROOOOOOROROOOOOOROOOOROROOOOORROOORORROOOROOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOORROROOOOOOROOOOOROROOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOROROROOOOOOROOOOOROOOROROOOOOOOROOOORROOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOORROOOORRRROOOROOOOOOROOOOROOOROROOORORORROOOOOROORROOOOOOROOOOORROOROOROORRROROOROROROORROOORRRRORORROOOOROORORRROROROOOROOOOOOOORRROROORORRRROOOORROROORRRROROORRRRROORRORRRROOOORROORRRRORROROORROOROOORORRORRRROROOORRRRORRROROROORROOROROORRROOOOOOORRRRROORRORRROOOROORRRRRRRROORRORROOOORRORRORRORORRRROORRRRRORRROOOORRRRRROORRRRORRRRRRORROROORRORRRORRROROROORORRRORRROORRRROOORRRORORRRRRRORRRRRRORROOOOROORRRROORRRRRROOORORRRRRRORROOOROROOOOOOROROORRORRORORRRRRORRRRROROORRORROOORRROORORORORORRRORRORRRORROOOORRRRRORRRRRRORRRRRRRROOORROROORRORRRRRRORORRROORRRORORRROOOORORRROROOOOROOOORRRORRRRRRORRROOROORRRRRROOOOROROOORORRROROORRRRRROOOORROORROOROOROOORRRROOORRROOORRRRRRRRRRROOOROROORRRORRRRROOOOORRRROOOOORRRORROROOOOOOOOORORROOOOORRROOORORRRORROOORRRRORORORORROROORRORROOOOOORORROOROOORRRROOOOOOOROOORRROROROROOOOOROOOOOOOOORROOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOROORRORORROOOOOORROOOROOOROOOOOOOORROOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOROOROOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROROROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOROOOOOORORRROOOOOOOOOOOOOOOROOOOOOOORRORORROOROROOOOOROOOROOOOORRRRORROOROOOOOOROOOROROROORRRORROROOROROORROOROOOOOOOOROOOOOOOOORORROROOOOOOOOORORRROOOOOOOOOOOOOROOROOORRROOOROOOOOOORORRROOROORROOOROORROROOOOROOORROOROROOOOORRRORRROOOOOOOROORORRROROOOOOROOOOROROOOORRROOOOOROORRROOROOORRRORRROOORRRROORORRRRROOROORRRRROROORROROORROORORRROOORRRRROORORORROORRRRRORROOOROROOORROROOORROOORROOOOORORROORRRRRORROOORORORORORORRORRORRRROOROORROOROROORRRROORROOORORRRRROOROOROORRRRRRRRRRRROORRRROORROROROORORORRORORORRORROROORRRRRRRRRROORRRRORROORORRRRORROOORORORRRORRRORROOOROOROOORORRROROOROROORRRRORORRRORRRRORRRRORRRORRRRRRORRRRROOOOOORROORRRRRRORRORORORRRORROORRORRRRRORRRORRRORRRRORORRRRORRRORRRRORROOOOROROROROOROORRRROORROOORROORORRORROOROOROROOORRROROORRROROOORROOOROOOORRRRRORRRRORRROOOOOROROROROORRRRORRRRROOOOORORORRROORRRRROOORROROOOORROOOROOOOOROOROORORROOOOROOOROOOROOOORRRRROOROROOOOORORRROROORROOOOORRORROOOORROOOOOOOROOROROOOOOOROOOROOOOOROOOOOOOROOOROOOOROROORROROORROROOOROOROOOOOORORROOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOROOOOOOOOOOOROOROROOOOOOROOOOROOOOOOORROOOOOOROOOOORROOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOROOOOOOOROOOOOROOOOOOOOOROOOOROOOORRROOOOOOOROROOOOOROOOORROOOOOOOOOORROOOOOOOOOOOROOOOROOROOOOROORRORROORRORROOOOOROOORROROOOOOROOOORRORROOOOOOROROOOROOROOOOOOOROOOOROROOROORORORORRORRROORROOOOROROORROOORORRRROOOOOOOROOOOOOROORORROOOROOOROORRROORORORORORRORORROORORRRORRRRROORORRROOORRRORORROOORROOOOOROROOROROOORORRRROORRORORRROROROOOOOOROORORRORRORROROOOOROOOORROOORRRRRRORRRORROORORORRRROORORORROORRRRORORORRRORRRRORORRRRROOROOROORRROOOORRRORRRORRROOROOOORRRORRRRORRROROORRRRRORORRORRRRRORRRORRRORORORROOOOOORRRRROROOORRORRRORRRRROOORRORRRRROROORRORORRRROROOOORRORRRORRROOROROROOOOORRROORORROOOROOOROORORRROOOORORRROROORRORRRRRRORROOOOORORRROOORROOOORRORRRRRRROOOROOROROOOOOOROORRRRORRRRROORRORRRRRROROOORORRORORRRRROOOROROROOORROOROORRROROORROORRRRRRORRRROOROORRROOORRRRORROOOROOORRORRROROOOORRROOOOROOROOOOROROROORRORORRRRROROOROOOOOOROROOOROOOROORRROOROROROOOORRRROROROROOOOOORROOOOORORRORRROOOOROOOOROROOROOROROROORRROORROOOROORRROROROOOOOOOOOOOOOOOROROOOROOOOOOOROOOOOOOOROOOOOOORROROOOOOOOOOOROOOROOOOOOOOOOOROOROOORORORROORORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOROOOROOOROOOOOOOOROROOOOOOOOOOOOOOROROOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOROOOORROOOOROOOROOOOROOOOOOOOOOORRRORROOOOOOOORROOOORORROROOOOROOROROROOOOOOOOOORRRROROOROOOOOOOOOOOOOOOORROOOROORROOOROOOORRRROOOOROROOOOOROORRORRROROROROOROOOORRROOROOORRROROORROOOORORRROOOOORRRORROOROROOOOOROOOOOOOROROOROORROORORORRRRRORROORROORORRRORRRRRORRORRRORRRRRORROOOOOROOOROOORRRRRROOROROORORRRROOOOROROOROROOORROOOROOORROOOORORRRRORROOORRROROORRORRRORORROOOROORORORORRRRROOORRORORRRROROROORORROORORORRRRROROOORORROOORRRRORRRORRORROORORRRORRROROORRROORROOOOOROROORRROROORRORROOORRRORROROORRROORRORRRROROOORRRRROORRORROOOORROROOOOORRRORRROORRRORRORORRRRRRRROORRRRRORRRRROOORRRRROROOORROROORORORRRROOORRROROOORORRORROORORROOROOORORROORORRORORROOROORROORRRRRRRRRRROROORRRRORORRORROOORORORRRRORORROOOROOOORRRORRRORRRRRRRORORORRORRRRRRRRORRROOROORORORORORORRRRORROOOROROOOROOOOROORORROOOORRROROORROORROOROOOOROOOOROROOROORRROOROORRORRROORORORORROROROOROORROOOROOOOORROOORROOOOROOORROOOOOOROOOOOOROORRORRRROROOOOOOOROROROOOOOROROOROROOOOOOOOROOOROOOOOORRRORRRROOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOROROOROROOOOOOOOROOOOOOOOOOOOOOOOOOROOROROOOOOOOORROROOOOROOOOOROOOROOOOOOOROOOOROORROROOORROOOOOOOOOOOOOOOROOROROOROOOORROROROOOOOOOOOOROROORROOORROROOROOOOOORROOOOROROOOROOROOOOROOOOOOOOOOOOROOROORRROROOORRROOOORRROOOROOROOORORROOROOOOOROOOORRROOORRRORRORRROOOROOOOOORRRORORORORRORORRORRORORROOOROROROOORORRRRORROROROROOOROORORRRORRRROOROORROOOROROORRORRROROOORRRRRRROROROOOOOOOORORRRROOOROOROOORROOROORROORRRRORRORRRRRORORRRORRRROORRROOORRORRORRRORRRRRRRORORRRRRRRORORORROOROOROROOORRRORROORRRORRRRRORORRORORRRRRORRRROORORROORORRRORRRRRORROOROOORROOOOROORORRORORRROORRRORORORORROORRRRROOORRRRRRROORRRRRRRRORRRRRRORRRRRROOROOROORROOORORRRRROORRROOORROORRORORORORRRROOORROOORORRORROOROROOORRRRRROOORRRRROROOOORORRORRORORORROROORRORRRORORORRRRRROOORORORORRROORROOOROROORRORRROOOORROOOORRROOOROORORRORRRROORORORORRROORORROORORROOOROOOOOROROOOROOROOOOOROOORROOOOOORORRORRROORROOOOOORORRORROOROOOOOOORRRROROOOROROOOROOROOOORROOROOORORROROOOOROOOOOOROOOORROOOOOOOOOORROOOOOOOOOOOROOOOOORROOROOOOOOOOOOROOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOROOOROOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOORROOOOOOOOOROOOOROOOOOOOROOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOROOOOROOOOOOROOROOOOROROOOROROOROOOOOORORORROOOOOOOOROORROOROOOOORROOOOOOOOORROOOOOOORROOOORRROROOORROOOOOOOROOOORORROOOOORROORRRORORROOOROOOOOOOOOROORORROOOOROORORRRORORRRRRORORROORROROOROOROOROROOROOOROOOOOROROROOOOROROOOOOOOORRROOOOROOROOOOORRROROROROOROROORROROROROOORRORRORRORRORRROOORRRRORORORRRROOOOORRRRRROOORRROOOROORORROROROROORRRRRORRRRROORRRRRRROROOOROORRRRROROROOOROOORRRRRRORORRRRORORORORRRORRORRRRRORRRORRRRRRORRRRORRRROOOORROORROOROORRROORRRRORRRORRRRRRRRRRORROORRRRRORRRROROOOORRRRROOORRRRRRROROROORRRORRRRORRRORRRRRRRORRROORRRRRRORRRRORROORORORRROOOORORRROROORROOORRRRROOOROOOORROROROOOOOORRRRORORRRRRORRORRROORRRORRROORRRRORRRROROORRRORRRRRRORROROORORRROOOROOOOROROOORRRROOOOOROORROOOOROORRRRORRORORORRRORRORORRRRRROROROOOOORRRORRRROOROOORORORRORORRRORROOROROORROROOROOROOROOOROOROOROOORROOORROOOOOOORRRRRRRRORROOOORROOROOOORROOOROROOOOOOOOOOOORROOOROOORROOOOORROOORROOOORORORROOROOOOROOOOROOOOOOOROROOOORRROOROOOOROOOOOORROOOOOOROORROOOOOROROORROOOOROROOOOOROOORROOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOORROOOOOOOROOORROROOOOOOOROOOOOOOOOOROROOOOROOOOOOOOROOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOORROOOOROOOOOROOROOOOOOOOOOOOOOOOOOROROOOOOOOOORROORROORROOOROROOOOOOOOOOOOOROOOROOOOROROROOROROOOOORRROORROOOOROOOOORRRROROORROOOOROROORRROORROROOOOOOOOORORRORORRRRRORRRRORRORORROOOROORRROORRORRRROOROOROROROORRORORROORRRRRRROROOORRORROOORORORRROROORRRORROOOORROOOORROORRRRORRROORRRRRRORRROOROOOROORORRORRROROROOOORORORRORORORORRORORORRROOORROOROOOORRRRRROORROOROROOOORROOORRRRRRORRRRORORRORRROROORORROORRRORRORORRRRORRRRRORRRROROOOOORORRRORRRRRRROOORORRORRORRORRRORRROROORRRROORORRROOORRORRRRRORORRRORROOROORORORORROORROOORROOORRRORRRRORRRRROORROOORRORRRRRORRROORRROROORRROOORORRRORROROORRRRRRORRORROORROROORRRORRRRORROORRORRROORRRROOOROOOOOORRRRRRRRRRRRRRRRROROOROORRRRRROROORORROOOROROOOOOOOORRRROOROROROOOORRRORORRRRRRRROORROROOOOOORORORRRORRRROROOOOOROOORRORROOOORROOORRORRRROOOROOORORORROROOOOROOOROORRRRRRRRRRRRROOROORORROORORROOOORRRRRROOROOOORORORROROOOROOOOOOOOOOOOORRROOOOOOROOOROROORROOORRROROOOROOOOOORROOROOOOOROOOOOOOOOOOOOOOOOROROOORORROOOOOOOOOOOOROROORRROOOOOOOOOORORROOOOOROROROOOOOROOOORROOOOORRRROOOOOOOOOOOOOROOOOOOOOOOOOORROOOOROOROROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOORRROOOORROOOOOROOOOOOROOOOOOOOOROROOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOROOROOOOROOOORROOOROOOOOOOOOOOOOOOROOOOROROOROOOOOOOOOOORORROOROOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOORROROOOOOOROOOOOORORORORROOOOOOOOROOOROOROOROOOOOOOOOOROROROROROOOORRROOOOOORRROOOORROOORORRROROOOOOROOORORROOOORROOOOOOORROORRORRRROROOORRROOOOORRORROOROROOORROOROORORROOORROROOOOORROOOOOROOOROORORRRORRROORROOORRRRROOOOOOOOORORRROORORORRORRORROOORORORRRRORROORROOROROORORORORORROOROORRRORRROOORORORROROORRORORORROOOORRRROORRROOORROROORROROORRRORRORRRORROOROORORRRROORRRRRRRRROORRROORORRRRORRRRRRRRRRRORORRROOROOOORRRRRRROORORRRRRRROORRORRRRRROOORRRROORRRRRORRORRORRORROOOORRORRORRORRROROORRORRRRORORRORRRRRRORORORRRROOORRRRRRORROOORRRRRRORRRRROORORROORRROROROORORRRROORRRRORRRRROROROROROORORROROOORRORORRRORRORRORRRORORORORORROORROOORORORROOOROORORRRROOORROROROORRORORRORRORRRRRORROORORRROROROOORORORROOORRRRRROOOOOROOOOOOOORORRROROORRRROOROOOORORRRROROOORORROOOROOOROOORROOROOOOOOORRORRORROROOORRRRORRRORROOORORROOOOOORROROORROOOOOOOROOORRROOROOOOOROOROOORROOORROOOOOROOOOROOROROOOOOOROORRROROOOOORROOOORROROOOROOOOOOOOOOROOOOOOOOROOROOOOOOOOROOROROOOOOOROROROOROOOOOROROOROROROOOOOROROOOROOOOOORROOOROOOOORROROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOROOORRROOOORROOROOORROROOROOOROORRRRORORORRROOROROOROORROOOOOOOOOOOROOROOOOORRRROOOOOOORROOOOOROOOORRORORRORROOOROROROOROOOROOOROOOOROOROOOOROOROROOOROROOOROROROOOORRROROORROOOOOOOROOORROOORORRORORRRRORRROOOOORROORRRRRORROOROOOORROROORRORRRORORRROOROORORORROOROORROROROOORROORORROORRRRORRRRORRORRRORORORRROOROROORROOORRROOROROOORROORORORRORROROORRORRRROORRRRRRROROROOOOORRORORRRRORRRRRRRRRROORRORORRRRORORRROROOOROORORRROORROOORRRORORRROOORRORRRORRROOROORROORRORRORROROOORROROORROOORRORORRORRORORROOOOOORRRORRRRRRRORORRORRORRORRRRRRORRRORRRROROOROOORRRRRORRRORROOOORRRRROORRRRORORORORROORORRRROOROOORROORRRROORRRRRROORRORROOROOORORORORRRRRORRRORORROROROOOOROOOROROOOROORORORROOROROORRORROOOORRRRROOOOROROOOOOOOOORRRRRRROROROROORRRRRRRORRRORRROOOROOOOOOORRROORORROOOOOORROROORROOROOORROORORRROORROROROOROORROOOORROORORORRRROOOOOOOORORRRRRORROORORORRRROOOOROROROOORORROOROOROOOOOOOORRROOOORROROROROOROOOOROROOOOOOOOOOORROOOOORRROROROROROOOOOORORROOOOOOROOROOORROOROOROOOROROOROOOOROOOOROOROORORRORRROOOOROOROOOOOOOROOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOROOOOORRRROOOOOOOROOOOOOROOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOROOOOOORROOOOOOOOOOOROOOOOOOOORROOOROOOORROOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROROOROOOROOOOOROOORROOORORROROROOOROOOOOOOORROROOROROOROOOOOOOROOORROORROORORROOOOOROROOOORORORORRROOROOOOORRROOOOOOROOORRROOROORORROOROOOOOOOROOROOOOOROOOOOORRROOROOORROOROROORORROOOOOOROROORRORORRRORRRORRROOORROOOROROOOORRROROOROOROOOORROOORRORORRORROORRRRRRROROOORRRORORRRORRROROOORORRRROOOORROOOORROORROROROOOROOROROOORROOORROROROORRRRORRORORRRRROORORRORORRORROOORRROOORORORRORROORRRORORRORORRRORORORROOOORORRRRRRRRORRRORORRRROROOOOOOOOOORRRRORORRRROORORRRORRRRRRROROOOORORRROROOROORRRRRRORRRRORRRORORROORROORORORORRROROOOOROOROORRRORORRORRRRRORROOORRRORRRRORORRRROROOORRRORORROORORORRROOROOOROOOROOOOOOOROOOROOROORRRRORRRORRORROOROORRROROROORROOOORORRRROROOOOORRORRORRORORORROROOOOROROROOOOOOORRRRROROOOOOORRRRORRORROROOOROOOOOORRROOOOOROORRROOOOOOORROOORROOROOROOOOOOOOROOOROOORRROOOOORROORROROOOORRROOORROOOOORROOOOROROOORRROOOOROOOORRROOOOROOROORROOROORORROOROOOOORROROOROOOOOOROOROOOOROROOOOOOROOOOOOORRROOORRROOOOOOOOOORROORROOOOOOOROOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROROOOOOOROROOOOOOOOOOOOOOOORORROROOOOOROROROOOROOOROOOOOROOOROROOOROORROOOOOOOOOOOOORROROOOROORRROOOOOOORROOROOOOOOOOOROROOOOROOOOOOROORRORROOROOOORRORROOOOOOORRORROOOOOORRRROOROORROOOORROOOROORRRROROROOOOORORRRRROOOOROOOOORROOROORORORROOOOOOROORORRRRRROOROROROORRORRRORRORRROROROOROORRRORROROOORROORROOROORRRROROOROOOOROOOROROORORRRROROORRRROOOORORRRROORRRRRRORORRORRROORRORRRRRORRRRRRRROROOOOORRROORORRRRROOROROOROROROROORRRROORROORRRORORRROORROROORRRRROROORORRORROROOOORRRRRRORORRRRRRORRRRRROOROROROOORRRORRORRRORORRORRROROOOOOORRROOORRRRRRROOORRRROORORRRRRRORORRRRROORROOROORRORROROOORRRRRRRRRRORROOOOROORRRRRROOROORROORRROROORROOORRORORRRROOROORRORRRRROORRRRROROROORORRROROORORRRORRRRRROOROOOORRRRROORORRRRORORROORRRROOOORRRROOOROOOROOORORRORORRRRRORROROOOROORROOORRRORROOROOROROORRROOROOORRROOORRORORORROROOOOROOOOOOROOOOROOOOOOOOOOOROORRROORORORRROOOROROOOOOOROOOOROOOOORRRROROOORORROOROOOOOROOOOROOROOOOORRRROOOOOOOOORROOOROROOOOORORROOROORROROOOOOOOOORORROOOROOOOROROROOOOORROOOOOROORROOOORRRROROOOOOOROOOOOOOROOROOROOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOROOOOOOROOOOOOOOROOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOROROOOROOOOOOOOOOOOOOOOROOROOROOOOOROOOOOOOOOROOOROOROOOOOOOOOOOOOOORROOOOOOOOROOORRORRROOOOOROOOOOOOOOOOOOROOOOOOOOOOOORROOOROROOOROOOROOROOOOOOOOOOROOROOOOOOROOROROOOROOOOOOOROOOOOOOROROOOOOOOOROOOOROOOOOROOOROOOOOROORRRORROOOOOOROOOOROROOROROOROOOROORROOOOOOROOROOOROOOORRORROOOOOROOROROROOOORRROROOOOOOOOROOOOROOORRRRROROROOOORORROORROROROORORRORRRRORRROOORORROORRRRRRROOOROORORRRRORRORRORORROOROORROOOORROORORROORRRRORRROORROROOROOORORORRORRRROOORORORRRRRRRRORRRRRRRROROROROORORRORROOORRORORRRROORRROROOORORORRORRORRRRRRRRRRORRRRRRRRRRRORRORRRROORORRRROROROOOORORRRROOOOORORROOOOORRROOORRORRRRORRROROOOROROOROROORRRRROOORRORORRRRRRRRRORRRROOROROROOROORRRROOOOORRRRROOORROROROOOORORRRROORRRRRORRRORROORRRROORRORRRORORRRROORRRRRORRRROORRRROORRRROOORRRROOOOOORORRRORORRROOROOOOOOOROORRRRORRROOOOORORRROOOOOOORRRROROOOROOOORRRRRORRORRORORORROOOOOOROORRORORORRRROOOOROROOROROOOORRRRROOROOOORROOOORRRROOOOROORROOORORRROORRRRROROOORROROROOOOOOOOOROOOOOROOOROOOOOOORROOOOROOOROOOOORROROOOOROOROOROOOROOOROOROROOOOOROOOORROOROOROOROOORROOOROOOROOOOROOOOOOOROOOOOOOOOOOOOROOOOROROOOOOOOROOROOOOOOOOROROOOOOROOROOOOROOOOOOOROOOROORROOROOOOROROOOOOOOOOOOOOOOOOOOOROORRROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROROROOOOOOOROOOROOOOOOROROOOOOOOOOOROOOROOROOOOOOORROROOOROOORROOOOOOOOOORRROOOOOOORROOORROOOORORROROOOROOOOOROOROORRRRROOOOOOOOORORRROOROOORORROOOOOORRROOOROOOOOROOOOOOOOORORROOOORROROOOOROOOOROOOROOOROROOROORRORROOOROOOOOOORRORORROOOOOORRROOOORORRRRORROOROROOORORORROOROROROOORRRORROORROROROOORORRRRRRRROROROOORORRRRRORRRRRROORROROROOOORRRROOOOORORRRRROORRROORORRROORROOROORRORROOORRRRRORRRORROORORROOORORRRORRRRRRRRROORRRROROORORRORRRRORRRORRRRRORRORRRRRORRROORROOORRRRRRRORRRRRRROORRRRRRRRROORRORRRRRRRRRRRROOOROROORORORROORROORORORRRROROORRRRRORROROROROROORRRROORORRROORRROOROOORORORORRORRRRROORRRRORRRRORRRRRRORRRRRROOORROOROORRORRRRORORRORRRORRRORORRORRORRORRROOOOORORRRRORORROOORRRORROORRRRRORRORORORORRORORRRORORORROROOOROORORRRROOOORROORORROORORORRORRORORROROORROORRRRROOOOOOORROORRORROORRROROROORROROORRRRRORRORRROOOOOROROROOROORROOOOOOOOOORRRROORROOROROOOOROOOOROOROOORORROOOOORORROOORROOORROOOOOOOOOOOOROROOOOOOOROOOORRORORRROORRROOOOROOOROOOOORRROOROORROOOOOOOROOOOOOROOOOOOOOOOOROOOOOOROROORORROOOOOOOOOOOROROOOOOOOROOROOORROOOOOOROROOOOOOOORROOOOOOOOOROOOOOOOOROOOROROROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOROROOOOOOOROROOOOOOOROOOOOROOOOOROOOOOOOROOROOORROORROORROORROOOOOROOOROOOOOOOOOOOROROOOOROOROOORRROOOORROOOOOOOOOOOROROOORRRROORRROOOOOOOORORROOOROROOORRORROOOOORORRROROOROROOOROOOROORORORORROROOOOOROORROOOROOROOORORRRROROOORROOROOOOOROOOOROORRROOORROOORRORRORORRRRRROROROORRORORRORRRRORROOORRRORRORRORRROORRRORROROORRRORRRRROROOORRROORRORORRRORRORROOORRORRRRORRRRORRRORRROROOROROORRORRRRORROOOROOROROORRRRROROOOOROROORRRRRRRROOOORROOORRRORRROOORORRROOORRRRROROROOOROOOROOROOOROROOOOOOOOROROOORRRORROROORRROORRRROROOORRORRRORRRRRROOROOORORROOOOOROOORRRRRORROORROORRROORRRORORRRRORRRRRORRRRORRRORORRORROORORRROROOORRRRRORROOORROOROOROOOORROOOOOOORRROOORRRRORRROORRROROROOOORORRORROROORRRROROOORORRROROORRROOROORRORRROROORRRRRORROOOOOOROOOORRROROOORRROOOOOOOOROOOROORRRORORRRROROOOOOROROROOOOOOOROOROORROORRROOROOORRROORORORRRROOOROOORRORORRORRRRROROOOROOORROOOROROOROOOORROROROOOORRORRRRRRROROOOOOROOOOOOOOOROROOOOROOOOOOOOROOOROOORORORROOOOOOOOOOORRROOOOOROOOROOOOOOOOOOROOORRROROOOOOOOOOOOOROOOROOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOORROOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOROOOROOOOOROROOOOOOOOROOROOOROOOOOROOOOOOROOOOOOOOOROOOOOOOOOORROORORROORORROOOOROORROROROOOROOOROORROOROOOOROROOOOOOOOORORROOOOOROOOOOORROROOOROROROOOOROORROOOOOOROOROOOOOROOOOORRROOORROOOOORORROORRROROROOORROROOOROROROROOORROORORRROROORRRRROOROOORRRORORRROOROOOOOOOROORRRROOORRRRRORRRROOROORROORRRRROROOOOOROOOROOOORRRORROOOOORROOORROORRORRRRORRROORRRRRRRRRRRRRRROROOROOORROOOROORROORROORRORRRRORRROORRRRRRROOOROOORORRORRRORRRRROORRROOOOOOROORORORRORRORORRRRORRRROOOOROROORRRROORORROROOOORORORRORRORRRRRRORORRRRRRROOROOROORORROROROROOOOROROORROOROOOORROORORRROORRORORROORRRRROROORORORORRRROORRRRRROOORORORRORRRORORROOOOROOOOOROROOORRRROOORRRORRROORROORRROROORORRROORRRROROROOORORORORORORROOORRORORORRRROORORROOROOROORORROOOOOORORRRROOORORRROORRROROORRRRORORROOOOOOOOORORRORORROORRRROOOOORRROROOOOROORORROOORRRROOOOOOOOOOORROOOROOOORRRRROROOORRRORORORRRRRORRROOROOROOROOOROOROOROOOOOOOOOOOOOOORRRROOOOROROOOOOOROOOOOOOROROROOROORROORRORRROOOOOORROOOOOOOOOORROROOOOROORORRROOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOROROOOOROOOOORROOOOOOOOOOOOOORROORROOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOROROOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROROOROOOOOOOOOOOOROOOOOOOROOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOORRROOOOOROOOOOOOOOOOOOOROOOOORORRROOROORROROOOORRROOROOOOORRRRRRRORRRORROOOOOOROOROOORORROOOOOOOROORRRROOOORRORROOROROROOOOORRORROOROORROOOOOOROORRORORORROROROOOROOROOOORRRRROOOROOOOROOOORROOOOOROORRROROOOORROORROOOOROOOROROROORRORRRRRRORRRRORORRROORRROORROOROOORRORRRROOORROORORRRRROROOORRRRORRRROROROOORRRRRRORORRRRROORROORRROORORRROROROORORRRRRRRROOROROROORRORRRROORROORORRRRRRORRRRORRRORORORROORRROORORRORRRRRRORROOORRRROORROOOORRRRROORORRROROOORORRRRRRROOOROROROROROOORORRORRRRRRRRORRRRROROORRROROOORORORORRRROROORRRROORORRRRRRRRRROORROROORRRRRRRRRROOORROOORRRRRRRRROOORORROOORORROORRRRORRORRROOOOROOOORROROOOOROOROROOROOORROOROROROROOOOROORROOORRRROROORORRROOORRRRRRROROORROOOOROOROROORROROOROOOOROORORRRRRORROOORORRRROROOOOOROOOROOORORRRROROOOOOORROORRRROOORORRROROOORRRRROOROOROROORRRROOOROOROOOORORRRRROROOORORRRRRRRRORRROROOOOOORORROOORRRORRROOROOOOOOOOOROROOROOOROROOROOOOORORORROOOOROROOOOOORROROROOOOROOOOOOOROOOOROOOOOOOOORRRROOROOOOOORROROOOOOOOOROROOOOOOOROOROOOOOOOOROROOROOOOOOROOROOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOROOOOOORROORROOROOROROOOOOOOROOOOOOOOROOOOOOOROOROOROOOOOROROOOOORROOOOOOROOROROOROROROORORROOOOOOOOOOOOROOROOOOOOOORROROORROOOOOOOOOOROOOOORROOROOROROOOOOOOORROOOOOOOOOROOOOOORRROOOOROORROOORRROOROROOOOROROOOOORROORROOORROROOOOROOOOROROOROOROROROROROOROOOROOORRROORRORORROOOOOROOROORRRRORORRRRRROOORRORRROOROOROOORRROORROOOROORORRORRROROOOORORORROORRRROOOORORORRROROORRORRRRROORRRRRRRRROOORORROORRROOOORRROOOORRRORRRRRORRRRRRROOOROORROROORORROOORORROORRROOOORRRRROROORORRRRRORROOORORORRRORRRORRRORRRRRRROORRROOORRRRRRRRRROROORORRORORRORRORRRORRORORRRROOOROORORRRRRRRROORRRRRRRRRRRRROOORRORRRROOORORRORRROOOROOROOROOOORORORORRROROOORRRROOROORORORROROROOORRORROOOOOOOROOOORRROOORORORROOOROORORORRORROOOROROOROOOOOORROORORRRORORRORRRROORRORRRRRORRROOOORROOOOOORROROORRRORROOROORRORORRRRROOROOROORRRRROOROOOOOOOOROROOROOOORORORROOROROOROOOROORORRRROOOROOOOOROROROOOOOOROOOROOOROOOROOOOOORORRORORROROOOOOORRROOOOOOOOOORORROOOOOOROORROOOROOOROOROROOOOOORRROOOOOOOOOOOOOROROOOOOOOOOORRORROOOOOOROOOROOOOOOOOOOOROOOOOOROOOOROORROOOOROOOOOOROOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOORRROOOOOOOOOOROOOOORRROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOROOOOOORRROROOOROOOOOOOOROOOOOROOOOOORROROOOOOOOOOOOROROOOOOROOOOOOOOOOOOROOOOORROOOOROOOROOOOROROOOOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOORRROROOOOROOOOOOROOOROROOOOOROROOOOROOOOOROOROOOOOROORRROOOROOOOOOOOOOOROOOROOOROORROROORROORROORROOOROOROROOORRRRRRROORRRRROORORORROOROOROROORORRRORORORRROORRRORRORRROORORRORRRROOOORRRROROORROROOORRRRRORORORRRORRORRRORORRRRORROROROOOROOOORRRRRRORROORRRRORRORORRORROORRORROORROOOOOROROORRRRROOORORORROROORRORROOOORORRROOOORROOROORRRRROOROORRRRRRRORRRORRRRRROOOOROROORRRROOORROROOOROOORROROORORRRORORROORROORRORORRORRRORRORORRRORORROOORRRRRRORRRROORRORRRRRORRRRRRRRRRRORRRORORORORORRRRRORORRRRORRROROORROOOOORROOOORRROOROROROOOROORRRRRROOOORRORROOOORRRROORORRRRROORRORRORRRRRRRRRORRRRRORRROOORRROORROOOOOORRRRRRORRRRRORORORRRRRROROROOROORRRORROORROOOOROOOOROOOROORROORROOOOOOOOOROROOOOOOOOORORROROOROOOOORRRROOOOROOOOROROOROOOOOOOOROOOOOOOORROOROOOOOOOOOOOOROROORORORROOROROOROROORROROROROOOOOOOOOOOOOROOROOOORRORRRROROOOORROOOOOOORRROROOOROOROOOOROROOOOOROOOOOOOOOOOOOOOORORRROOOORROROOOOOORROOOOOROOOOOOOOOROROROOOOOROOOOOROOROOOOOOOROOOOROOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOORRROOOROOOOROROOOOOOOOOOOOOROOOOOOOOOORRROROOOOOOOORROOOOOOOOOOROOROOROOOOROOROOOOOOOOROROOOOOOROOOOOROROOOOOORRROOOOOOOROOOROOOOROOOOORROOORROROROROOOROOOOOOOROROORORROROOROOOROOOORROROOOROOOOOOOOOOROOORRORRRORRROOROORORROOOROORORROORROOROOOOOOOORROOOOOOOOROROOROOOORRROOOOROROOOOOROOOORORRROOOOROOROOORROOOOORROOORROROOOORROORROOORROOOOOORROOOORORRRORRRROROORRRORRRRORORRORORRROROORORORORRORRRROOORORRRRRRRRRRORORORORORRRRORORRROROORORRROOROOROOROOOORRROROOORROORROOROORRRRRROOROOOOOOORROROROROORRRORORROROORORORRORRRROROOORRORORRRORRORRROOOORRRORRRRRORROORRORRORRRRORRORRRROORRRRRRRORRRORRRROORRRRRRORORORRROOOROORROOROOOROOOOOOORORRORORROORRORROORROORRROORORRRRORRORRRROOOOORORRORROROORROORROROOORRRRRORORRRRORROROORORORRORRRRRRRORRORORRRRRROOROORRORRRRROOORRORRRORRROROOORORRROOROOOROOORRORRORRRRROORRRRORRROROOOOOORORRRROROORRRROROROORRORRORORRROORORORRRROOROOROOORROOROORORROORORROOOROROORRROOOOOOOROOOROOOROOOOOROOOOROROOOOOOROOORROOOOOOOOROOOOOROOROOOOOOOROOOOOORORORORORROROROOOOOROOOOOOORRROROOOOOROOROOOOOORORRROROOOROOOOOROOROOOOROOOOOOOROOROOOOOOOOOOOOOOOORROROOROROOOOOORORRORROOOORROOOOORROORROOOROOOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOROOOOORROOOOROOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOROROOOOOOOROOOOOROOOOOOOOOOOOOOOOORROOOROROOOOROOOOORROOOOOROOOOOOOOOOOORROOOROOOROOROOOOORORROOROROOOROORORRROORRRRRORRORORROORROOOROROROOROOOOOOROORROROOOOOOOROROOORORROROOOOORRRRROORRROOORROROROOOOROOOROROOROOOOOOOOROORORROROOOOORORRROROOROROROOROOORROOOORROROROROOOOOOROOOROOROROORORROOORRORORROOORRORRORRRRORRORORRORRRRROORORRORORRRRRROORRRRRRROOOROORRORRROORORRORORROOROORORRRRRROROORROOOROROROOOORORRROORRRRROROROOROORORRORRROOORROROORORRRORRRRRRRRROROOOOROOORORRORROROORRROOROORROORRRRRRORROOORRRRORRRORRORRROOROOORRRRROOORRROOOORORORRROORRRRRRRRROORRRROROOOOOOROOORRRRROROOORRROOORRRORRORORRRRORRRRRORROROORRRORRRORROROOOOROORROOROORRORRRRRROORRRORORRRRRROOOOROORRRRRRROORRROOOROROOORROOOOORRRRRRRORORRRROORROOOOORORROORRROORRROOOOOOORRRRORROORRORRORROROOOOOROOORROOOORROROOOOROROOOOROOOORRROROROROROROORRRROOOOORRRROOOOROOROROOROROOOOORROROORORRROROOROOROOOOROOOOOOOOORRRRRROORROOOORORROROOOOROOOOOROOROOOROORROOOOOROOROOOOOOOOOROOOOROORROOOOROOOOOOOOOORROOOOROOOROOOROROROOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOROOROOOOROROOROOOOOOOOOOROOOOOORROOOOOOOROOOOOROOOROOORROOOOROOROROOOOOOOOOOOORORROOOOOOOOOOOOOOOORROORROOOOOOOOOROROOOOROOOROOOOOOOROOOOROROOORORROOOOOOORROOOOOOOOROOOOROOROOROOOOOOROOROOOOOORRRROOOOOOORRRROORRROROROROROROROOOROOOOROOROOOROOORORROROORRROOOOOOROOOOOOORROOOROOORRORORRROORROOOROROOORROROOOOOROOROORRROORROOOOOOOOORORRRROROORRRORRRRRORORRRRORORROORRROORROOOOOOROORORORORROOROOOOROROOOORRRRORRRRORRRRRORORRORRORROROORRORROOORORRRRROOOORRRRRROOROOOOOORRRRRORORRRORORORORORRROORRORRRORROROORRRRORRRROORORRRRORRRORRRRRRORRRRROORRORROOORORRROORRORRRRRORORRRORRRROORRRRROROROOOOOOORRRRRORROOOROROOOROOOORRORRRRORRRORRRORRRRRRRORRRRORRRROORRORROOORORRRROORRRRRRRRRORRRRRRRROORRORROOORORRROORORRROOOORORRRRRROOORORORRRORRROORORROOROORROORRRRORRRRROORROROOROORORORRRROOOOORORORRROOROOOOROORRRROOOOOROORORROORRRRRRRORROOOORRROOOOORROOOOROOOOROOORRORRORROOOOOOROROROORROROORRROOOOORRRRROROOORRORROOOROOORRROOOROOROOOROOROOOROOOORROOORORRROOROROROOOROORROOOOOOOOOOOROOROORORRRORROOOOORRROOOOROOOOOOOOROOROOOROOROOOROOROOROOROOOOOOROOOOOOOOORROOOROORROOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOROROOOOOOOOORROOOOOOOROOOROROROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOORROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOROOOOORROOORROROOOROOOROOOORROOOROROOROOOOOOOOORROOROOOOOROOOORRROOOOORRRROOROROOOOOOORROOOOOROOORRROOORORRORRROOORORROOROROOOOROOROOORRRRRRROOROOOOOOOOOOOOOROOOROROOOOOORROROROOOOROOOORRROROOROORRORROROORROROOOOOOORRROORORORROOOOORRORROROOROOOROOORRRRRORRROOOOORORRRROOROOORROROOORROORROOROROOROROOORRORORRORORRRRRORRORROOROROOOOORORRORRRORORRRRRRORORROROOROORORRRRRROORRRRRROORORORROROORORRRRRROROORRRRORRRRRRRRROOROORRROORORRRRRRRROROOORRRORORRORROORRRRROORRRRORRRORRORRROOORORRRORORORRORROORRRRORRORORRRRRRROOORORRORRRRRRORRORORRRORRROROOORORRRRRRORROOORROROORROOORROORORRRRRRROROORORROROOORORORRRRRRORROROROROORORORROOOOORROOROOOROOOORRRROORROROORRORROORORORRRRRROOORRRRRRROROOOROORORRRORROROROORRORRRRRRROORRRORORRRROROORORORRRRORRRORRORROORRRORRORRORORRRRRORROOROOORROROORROORROOOOROOORROORORRRROROOOROOOOOORORRRRROOOOORRRROOOROOORRROOROROROOROORRRRORROOOOOOROOROOOORROOORROOROOROOOOOOOOOOOOOROROROROOOORROROOOOROROOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOROOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOROOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOORROROOOOOORORROOOOOOOOOOOOOOOOROOOOOROOOROOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOROOOOOOORROOOROOOOOOOOOOOOOOOOROOORRROOOOROOOOOOROOROROOROROOOROROOOOOOOOORROORROORRROOROROOORROOOROOOOORRORORROORORROROOROOROOOOORROROOROOROROOOROOORROOOOOROROORRORROOROOOORORROORROROOOROOOOOOOOROOOORROOROOORRRRRROOORRRORROOROOOOOOOROROORROROOOOOROOORRRRORORROOROROORRROORROORRRORRRRRRROROOOOOROORROROOOOOORORORRROORORORRROROOORORORROROOROORRRRORORRRROOROOORROOORROOORROORORORRORORORRRROROOOOOROROOOORORROORRRROORROROOROORRRRRORROOORRRROORRORRROORRRORRROOORORRROROROORRRRRROORRRRRRRRRRRRRORORRROROORROORRRORROOROROROORROOOORROORRRORROOORRORRRROORROORRORRRRROOORRRRROOOOORROROOOROOOROROOOOORROOORRROORRRRRRRRRRORROORROORRRRROORRRROOORRRRRROROOROOORRROOOOROOOOORRRRRORRROORRORRRRORRORROOORRROOORORORROORRROOOOOORRRRROROOORORORRRROOROORRROORORRORORROORRROORRRRROORROOROORORROOOOOOROROOORORRRROROROROROORORROROORRRROROOROOOROOOOROOORROROOOOOROOOOOOOROOOOOOORORROOOROOOOORRROROROOOORROOOOORRORROORROOOORROOROOOOORROOOOROOOOOORROOOOROOROOOOOOOROOOOOROOOROOOOOOOOOOOROOORORRRRROOOORROOOOORROOOOOOOOOOOOOOOOOROOOOROOOROOROOOOOOOOOOOOOOOOROOOOOROOOOROOROOOORROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOROOOOOOOOOROOOOROOOOOORROOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOORORROOOOOOOOOOROOROOROOOROOOOOOOOROOOOROOOOROORROOROOOOOOROOOOOROOOOOOOROROROORRRROOOROOROOOOROOORRROORROOROOOOROOOROOROOOOOROROORORRORROOOOOOOOOOOOROOROROOOOORRROOROOOROOROOOOORRRROROROOOOROROROORROROORORORROORROROORORROORRROOROOOOROROOORORROOOORORROOOORROORRRROOORROOROOORRROORRORRORROOORRRRRORRRROOOOOORROORORORORROOROORRRRRRORRROOOOORRORROROORORRRRRRRROORRRROOROOROROROORROORRRRRROOOROROORRROOROORROORRRORRRORRRRRORROOORRRORROOOROORRORORRROORORRRRRRRRRRRRRORRRROROOORORORRRRRRRORROOORRROOOOORORORRRRRRORRRRRORRRRRORRRRROOROOORRROOROORRORRRROORRROOOORRRORROROOORRORRORRRROORRROORRRRORRRRRRRRROROOOOORORROORRRRRORORRROORRRRROOROROROOORROOOOROOROROORRRROOORRRROROOOOORRRRROORORRORRRROORORRORRORROROOORRRRORRRROOOORORRRRROOOORORRORORRORRRRROOORRRORRROORORORROOROOROOROORRRRRORROOROOROOOROORROOORORROOOOOOROOROOOOROROROOROOOOOOROROOOOOOOOROOOOORROROOOOROOOOOROOOROROROOOOROOOOOOORROORRORRRROROOOROOROOOROOOOROOOOOROOOOOOOOOOOOROOOORRRROROOOOROOOOOROOROOROOOOOOOOOROOOROOOOOOOOOOOOORORROROOOOOOOOOOOOOOOOOOROOOOROOOORROROOOOOOROOOOORRRORROOOOOOROOOOROOOOORROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOORROOOOOOROOORROOOOOOORROOROROOOOOOOOROOOOOOOROROOOOOOOROOOOORROOOOORRROOROOROOOOOOOOROOROOOOROOOOROOOROOROOOORROOOOOOROOOOOOROOOOOORORORRROOORRROOOOOOROOOOOOORROOROROORROOOOOOROOOOOROOOORRROOOROROOOOOROROROORROOOOOOOOOORRROROOORRROROOOROORORRROOORORROROROOOROROOOOOOORROOORRROOORRRROORRRRORROOOOOOOOOOOROOOOORROORORRORROOOROORRROOOROROROORRORROOROOORRROOOROORROROROOOORRRORRRRRROORRRROOOROROORORRROOORORROOORORRRORRORRRORRROORORROROORROROORRRRRROORORRRROORROOOOORRRRORROOOORORROORORRRRRRRRORORORORRROORRORRROORRORROROORROOORRRRRROORORORORRORRRRORRRRRRRRRRRROORROORRRROOROOORRRRROOOROOORRRRRRRROORRRROOOORRROOOORORRRRRROORORRRRORRORROROOROOOORRRRRRRRROOORRRROORORORRORORRORRRROROOOORRORRRORRRRRRRROOORORRROOOROROOOROROOORRRRORROORRROOOOOOOORORROROORRORRORRROOOORROOOOORRRORROOOROOOORRORROOOOOOOROOORORRRRORRORROOOORRRRROROROOOOORROROROOROROORROOOOROOOOOROROORROOOORRORRROORROROOROORORORORROOOORRORROOOOOOORROOOOOORRROOOORROOROOOROOOROOOOOOOOOOROROROROOROOOROORROORROROOOOOOOOOOOOROOOOOROOOORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOORROOOOOOOOROOOORROOROOOOOOOOROOROOOROROROOROOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOROOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOROROOOOOOOOOOOOOROOROROOROOOOOOOROOOOOOOOROOOORROOROOOOOOOOROOOOORROOOOOOOOORROOOROOOOOOOOOROOOOOOOOOOROOROOROOOOOOOOOORROROOOOOOROOROOOOOROOOOROOOROOROOROORROOOROOOOROOOROOOOOOOOOOORORORROORROOOOROROROOROOOOOROOROOROOOROOROOOROOOORRRROORROROOOORORRROOROOROOOOOROOOORRRORROORROOORRRROROOOORRROROORROROOORRORRRROOOOROOOORRRORROOROORRROOORRROROROOOORRRROORROOORORRROROORORRRRROORORORRROOOROORRRORRRRRROROORRORRRRORORRRORRRROOOROORORRRRRRROORRRROOOORORORRRRRROROOROOOORRORRORROROROROOORRORRRRRRRRROROOORROORRRRRORORROOORRROROORRRORRRRORROORRRRROOOORORORORROORRROOORRRRRRORRRRRROROORRORRRRROROOROOORRORRRORRORRRROROORRRRRROROROOOORORRROOOORRORRRRRRRROOROORRRRRRRORORORROORRRRORRRRORRROORRRORRORRORRRROOORRORRRRORRORROORORORROORROROORRRRRRROOROORRROROOORRRRORRORRRROORRROOOOOORRRRRORORROROROOROOOOOROOOOOOOOOOOORORRORRRRROOOOORRRORRRROOOROOROROOROROOOORROORRRROOOOOROOOOOOROOROOROOOOORRORRROOOOOORROOOOOOROORORORORORROROOORROOOOOOOORRRRORROOOOOOOOOOOORORROOOOOOROORROOOOOOOOROOOOROORROOOOROOOOOOOOOOOROROROROOOOOOOORROOROROOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOROROOROOOOROOOROOOOOOOOOOOOOOOROOROOOOOORROROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOORROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOROOOROOOROOOOOOOROOOOOOOOOOOOOOORROROROOOOOOOOOOOOOOOOOROOROOOOOOOORROROOOOOROOOORROOOOOROROOOOROORORROOOOROOOOORRROOOOOOOOORROOOOOOOOOOOOORROOOOOROROORROOROOOOROORROOOROORROORROOORRORRROROOOORRORRRORORROOOOOOROOROORORRRRRORROOOOROROOOOOROROOOOOOOORRORROROOOROROOORRROOORRROOROOOOOROROROOOOROOOROROOOOOOROORRROOOROROOOOOOOORORROOOROOROROOOROOORORRRRORRROROOOROOORRROOROOROORORRRRROOROROORROOROOROOROORRRORRORRRRROOORRRRORRORRRROORRORORRORRRRORRORRROOOROOROROOORORROORRORORRRROROORROORORRORORROORROORROOORRROORORORORRRRORRRRRRROORORROORORORROOORRORRRRRRRORRRRORORRROORROORRORRROOORORROOORRRRRRRORROORRORORORORRROOORORRRRRRORROOOOORROORRROROROORROOOORRRRRRRRRORRORRROOOOOOORROORORROORRRRROORORRRROROOOOORRRROOOROORORRRORROORRRROROOROROOOORROOROORORRRORROOROORRORRRORRRRRRRRRORROOOORRRROOOORRORORRRROROOROOROROOROOROOROORRROROOOOORRROOROOOOROROOROOOOROOORRROOROOORORRRORRROORROOOOORROOOOORRRRROROORROROOORORROOOROOOORROOOOOOOOORORORRROOOOOOOOROOOOOORROOOOOOOOROROOORROROOOOOROOORORORRROOORRROOOOOOROOOOOOOOROOROOOOOORROOROROOROOOORROOOOOOORRROOOROOOOOOOROOORRORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOROOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROROOROOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROROROOORROOOOOOROOOOOOOOOOROOOOOOOOOROOROOOOROOOOOOOROOORORRROOOOOOOOOOOROOOORROOOOOROOOOROORROOROOOOOOOROROORRORORROOORRROROOOOOOOROOOROROOOOROORORRROROORROROOOOOOOOOOORRROROORORROOOOOOORORRRROROOOROORROOOROORRROOORRRORROOROORRRORORROORORORRRRROORRRRORRROOORORRORORORRRROORROROORRRRROORRRRRROORORROORRORROORROORRROOOOORORRORORRRRROROOORRROORRRROORRORROOROOOROROROORRRRORRORRRRROOORRROORORORORROORRROORROOOROOOOOORROORRRRORROORRRORRORORROROORRRRORRRRRRRRORRRROROOOOORORRORRRORRORRROOORRROORRORRORORRRROOORRRRRROORRROOROORRORRRRRORORRORORRRRORRRRRORORROOORRRROROOORRORRORRORROOOORRRRRORRRORORRROROORROORRROORROROOOROROOOORRRORROORRROOOROOROROOORROORRRRORROOORROOOOORORORRRRORRRORROORRRRROORORROROOOOORROROOOORORRRROORORRRROROORROOOORORRROROORORROOOROOROROROOOROORORROOROOOOROOOOOORRRROOOORRROOROROROOORROORRROORROORRROOOOOOORROORRROOORROOOOOOOOROROROROOOOOOORORROOOROROOORORROORORROROOOOOOOOOORROROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOORROOOOOOORROOROOOOOOOOOROORROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOROROOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOROOOOOORROOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOROROOOROOOOOOOOOOOROOOORROOOROROOROOOOROROOOOOOOOOROOOOOOOOROOOROOOOOOOOOORORROOROOOROORRROOROOOOOOOOOOOORRRROORRRROOOOOOOROOOOOOOOROOOROOORRROOROROROROOOOOROORROOOOOOOOROORROOOOROOOORROORROOROOOROOOORRROOOORORRRORROORROROROORORORORORORROOOOOORORRRRRORORRRROOORRRORROOORRORRRORRRORRRRRRRRORRRRROOOORORRRRRRRORRRORRRRRRORROROOROROOORRROORORORORRORORORORRORORORRORROROOOORROOORRRROORRRRROROOOOROORRORORRORORRRORROOORRRORORRRORRRRRRRRRROOOORRRROOOOROOOORRRRRORROORRRRRRRRRRRRRRRRRRRRORRROROROOORRORRORRROORRORRROOROROOOROORROROORRROOOORRORORORRRRROORROORRRORRRRORRRRROOORRROORRORROOOOOORRRRORRROORRRROOOROROORRORRRRORRROORRROOOOORRORRRORROORORRRRROOORRROOOOOORRRRRRRRORRRROOROOOORORRRROOORORRROORROOOORORORRORRROOROOOOOROROOOROOOORORRRORORRRRROROOROORROORRRRROOROOOROOOROOOOOOOOROOOORRROOROORRRRORORRRRRORROOOOOOROOOOORORORROOROOROOOOROOOOORROOORRRORROOORRORROORORRRORORRROOOOOORORROOOOROOROOOOOOROOOOOROROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOROOOROROOOOORRROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOROOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOROROROORRRROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROROOOROOROOOOOOOOOORROOROOROOOORORROROOOOOOOROROOOOOOOOOOOROROOOOORRROOORROOROOOOOOOOOOORROROOOOROROOOROOOROORROOOOORORRORROOOOOOORRROOORROOOORROOOOORRRRROORROOOORRRRRRROOORROOROROORROOOORRRRRORRORRROORRORROOROOOROORROROORORROROORRORROOOROORROROORRROOOOOOORORRRRROOORRRRORROORRRRROROROORRORRROROORRORRORRRRRRROOORRRORRORRRRROOOOOORRROROORROOOOOROOROROROOOROORORROORRRRRRRRRORRROORRROORRRRRRORRRRRORRRRRRRROOORORRRORRRRRROROROORORORRROOORRRORORRORORORORORRORRROOORROORRRRORRRORRORRROORRROORRRRRROORORORRRORROORRORRRRRORRRRRRRRRRRORRRRORORRRRRRRROORRORORORRRRORRROORRORRORRRROORROORRRRRROROROROROROORRROOORORORRRROOORRRRORRRORRORORORRRRORORROOOORRORORRORROOOORROOORRRORORROORRRORROROORRROOOOROORRORROORRORROROOORRRORORRRRROOOORRRRRORROORROORORRRROORRRROORROROOOOOORRORORROOOROOROOROROOORRRROOOOOOOORORORROOROOORROOORRRRRRRORORRORRROOROOOOROROOORORORROROOOROOOROOOORORRRROOOOOOOOROOOORRROOORRRROOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOORROORORROOOOOROOOOROROOOOOROROORRROROOOOOROOOOROROOOOOOROROOOOOROOROOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROROOROOOOROOOROOOOOOOOORROOOOROOROROROOROROOROOOOOROOOOOOOOOOOOOROOOOROORROOOORORROOOOOROOROROOOOROOOORORROROOOORORRROOOOOOOOROOOOROOOROORORROORROOOOORORROOROOOOOOOROOOOOOOOOROROORROORORROOOOOOOROOOOOOOROORORORROOORROOROROOOOOROROORRROROORROOROOROOOROORROOOOORRRROOROOORROORROOORRRORROOROOOOOORRRRRRRROROORRROOOORRRRORRROORRROOROROROORORROOROOOOROOROROORRORORRRRRROROOOROOROORORORROORROOOOORORRORORROROORORROORROROOORORRORROOROROOROOOROOOOROORRRRORRRRORRORORRRRORRRORRROORRORRRRRRRRRROORORRROORRRRRRROOORORORRORRROOORRROROORRORRORRORRRRRORROOOOORORORRRRORRRRORORRRRRRRROORROORRORROORRRRRRORRORROROROROORRRRROROORORRRORRRORRRRRORRRROROORRRRRRRORRORRRROROORRORRRRROORRROORRRORRRORRROOOOOROORROOROOOROORRRRRRORRRRRRRRRRRRRRRRROOOORORRRROROROOOROOOOORROROOORRORROOROROORORRRORRRORRRRROOOROROOOOOOOOORRROROROOOOOOOROROORORROORROOROROROOOOORORRRORRORRROROOROOOORROOROOOORRRROOOOOOOROOOOROROROROOOOOOORORORORRRRRRROOOOOOOOROOOOORROOOOROOOOOOOORROOOOOORRORROOOROORROROOOOOOOOOOOOOOOORRORRROOOOOOOROOOROOOROOROROOOOOROORROROOOOOOROROORROOOOOOOOOROOOOOOOROOOORRROOOOOOOOROOOROOROOOOOOOOROOROOOROOOOROROOOROOOORROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOORROOOOROROOOOOOOROOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOORRROOOORROOOOOOOOROORRORORROOOOOROROOOOOROROROROROOROOROOOROORRORRRORRROOOOOROOROORORORRROOOOOOOOOOOOOROROOOOROROROOOOOORROOOROOOROOROOROOORROROOORROOROROOOOOOOORRROORROROOOOORROROOORORRORORRORRORRRORRRRROORROOORRRRRROORROORRROORROORRORORRROROOROROOOOROOROORORRRRRORRRROOOROOROORRORRRRORRROROROORORRRORRRRORORRRRRROORROOORRRRRRORRRRRRRROORRORRRORRRROORRRRRRRRRRRORROORORROROROORRROORROORRORRORRRORROORRRRRORROORORRORRRRORROORORRRRORORRORORRRRRRORRORRORRRRRRRRORRROORORRORRRRRORROORRRRRRRROORORRRRORRORORRROROOORRRORRORRRORRROOROROOROROOOOOOOROROROORORRROORRROOROROOORRRRRRRRRRORORRRRRORORROORRROOORRROOORRRRORRORRROORROOROOROORORORROOROORORROOROORRRROROOROROOOROOROOORROOORRROORRORORRROOORORORROOOORRROORRORROROROORROROOORRORROOOOOROOOOROOOROORORRRROOORROROOORROOORROROORRROROROOROOROOROOOOORRROOOOOOOROROOOROOOOOOOOOOOOOOOOOOOROROORROROORROOROOOOROOOOROOOOOROROOOOOOOROROOOOOORRROOROOOOROOOOOOOORRROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOROOOROOOROOOROOOOOOROOOROROOOOOOOOOOROOROOROOOOOROOROOORROOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOROOOOOOOOORROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOORROOROOOOROOOOORRORROROROOOROROOORROOOOROOOOOOOOOOOROROROORRROOOOORORROOOROROROOROOOORROORORROOOROOOOROOORORROOORRRORROROOROROOORROROOOROOROOOROOROOOROROOROOOROORROOOOOOOORROOORRRORRRORROOOOOOROOOORORORROOOORRRORRORORORRORROROROOORRRRRRRRRRROOROOORORRRRRORORRRRRORORRRRRRRRROROORRROOOROROORRORRRRRRROORRRRRRROOOORRROORROOOOROORRRRRRORRRROOROROROROOORRROROOROROOROORROORROOOOOORORROOOORRRRRORRORORRORRRORRRROOOOOOORROORROOOROOORRRROOORORRRORROORRRRORROORROROORRORRORRRRROOOOROOOOOOROORORRORORRRRORROROOOORRRRORROOROROROROOOORROROOOORRRROORORORRORROORRRRRRRRRRROORRROROOORROORORORORORRRROORORRRRRRRORORRORROORORRORRROROROOOORRRORORRROROORORORORRRRRRROORRROROROOOORRRORROOOORORRRRRORRORORORORRRRRORRORORROORRORORROROOORRRRORORORROROOOOORRORORROOOOROOOOOORROOOROOOOOOROOORROOORROORRROOORRORROROOOORROROOOORROOOROOOOOOORORRORRORORRRRROOOOOROOOOOROOOROOROROOROORRORROOOOORROOOROOOOORROOOOOOOROOROOOOOOOOOORORROOOROOROOOROOOOOORRROOOOROOOROOOOOOOOOOOOROOOOOOOOROROROOOOOOROOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOROROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOROOOOORRROORROORROROROOOOOOOOOOOROOOORROOOOOOROOOOOOROOOROOOOROOROOOOORORROORROOOOOROROOOOROOOOOOOROOOROOOOOOROOOOOOOOROORRRROORORORORORORRRROORRROOOOOOROORROOORROOROROORRRORRRRRORRRORROOROOOOROORRRRORORRORORORROOOOOOROROORORORROORRRRORORRRRRORRROORORRORRRRROOROORRRRRROROOORRRRRRRRROOROOOOOORRROOOORRRRRRRRRROOORRROOROOORRROORORRROOOOORRRRRRRRRRRROOOOORROOORRRROORROROROOROOORROROOROOOROROOORRORRRROOOROOROOORRRRRRRROOORORORRORORORRRROROOORRROROOORRRORORRRRROORRRRRORROROORORRRORRRRRROORRRRRORRRORRRRRRRORRRRRROOOOOOORRRROOORRRRRORORROROOORRRORRORROORRRRRRRRORRRRRRRORRRRRRRROOROORORRORRROORRRORRRRRRROOOOOOORRRRRRORRRRRRORROOROOORRRORROOOORRROORRRRORROROOROOOOOORRORRORORORORRROORROOOOROORRRORORRORRRRRRRRORRRRRORRROOOOORRROORROORRORRORORORRROOROORORORORORORORROOORORORORORORROOOOOROOROOOOORROROOOOOOOOOOOOROROORORORRORORRROROOROORROOOORRROOOOOOOOROORRORRRROROOROOOOORROOORRORORROOOOOOOOOORRRORROOOOOOOORRRROROROOOOOOOOORROOROROOOOOOOOOOOOOOOOOOOROOOOOOORROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOROOOOOROOOROOOOROROROOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROORROOOOOOORORROOORROOOOOOOOROOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOORROOOOOOORROOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOROOROOROOROOROOOOOOOROROOOOROOOOOOOORORRROOROOOOOROOOOOOOROOOOROOROOROOROOROOOORROROOOOOOROOORRORORROOOOOOOOOOROOOOOOOOOOOOOOOROROOORROOOROROOOOROOOORROOOOROOOOOOOORROOORORROOROOOROOOOOROOOOOOOOOOORRRORROOROROOOOORRROOORRROOOORROORROOOOOROROROOORRROORROROOOROOOOOORRRORRROORORROROOOROORRORORRROOORORRORRRRRRRROROROOOOOOOROROOORORORROROROOOORRORORRRROROOROROROROORRRROOORRRRROOOORRORORRRRRRORROOROORROOOROOOOOOOORRROOORORRRRORORRORRRRRRRRROORRRRORROROORRROOOOOORRRRRORORRRRROOROORROORORRRORRORORORORORRRRRRORRRRRRRRRRRORORRRORORRRRROROOORROOORRROROROROORROOORRRRORORORORROROORRRROOROOROOROORORRRRROORRRRRORORRORRROOROORRROROORORRRORRRORRRORROOOOORRRORORRRROOORROOOOORRROORORRRORRRRRORRRORROORRRRRRRRRRROORRRROROORRROORRRRROORORORORRORORRRRRORRRORRRORORRRORRROROORORRORORORRORRRRORORRRORRORRORRROROOORORORORRRORRRRROOOROORRROOROOORRROOOOOOOORRRRROROROOORRRRROOORORROOOOOOROORRROORRRROOROOROROOOROOOOORRRRORRORORRORORRROOOROROOOOROROOOOOOOOOOOOROROOOORROORORRROOOOOOOOROOOOOOOOOOROOOOOROROOROOOORROROOOROOOROOOROOORRROROOOOOOOOOOOOOROOOOROOOOOOOOOOOOROROOOOOOOORROOOROROOOOOOOROOOOOOOOOOOOOROOOOROOROROOOROOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOORROOOOOOOOOROOOOOOOOOORORORROROOROOOOOROOOOROOOOOOOROOOOOOOOOOOOROROOROOOOOOOOOOOOOROROOOOROROROOROOOOOROOOROOOOOOOROOOOROORROORRROROOORROROOOOOOOOOOOOOOOOOOROOOROOOROROOOROOOORROOOOROROOOOROORORRORRORROOOOOOOOOROOROOOROOOOORROORRORRROOOOOROORORRROOORRORRORROORROOOOORROROOROROROROROOOOROORROORRRRORORRORRRRORRRROOORRRORRRROOROORROOROOORROOOOORROROOROOOOORROROOORROROOORRRRRROOORORRORRROORORRROROOROROROORRRROOROOORRRROROORRRORROOORRROROROOOROOOROORORRRRORROROOROOOORRRRORRROROOOORORRRORRORROOORROOORRRRORROOROOOOOOOOORORRRORORROORRRRRROORROOORORRRRRRRORRORRRORRRROROOROOOOORRRRRORRROOOORRORRRRORROOROORORRROORRROOOOROORROROOROROOOOROROROORRRROORORORORRORROOROORRROORRRORROORROROORRRORROORRRORORRORORRROOORRORRRORRRRORROOOOROOORRRRRORRRRORROORRROOOOROOOROOROROROOOOORRRROROORROROORORRRRORRORRROOROORRRORROOROORROOROOOORORRORROOOOOOOORRORRROOROROORRRRROOROOOOORROROOOOOOOOOOOOOROOORRRORROOORROOOOORRRROOOOROROOORORRORROOOOROOOROORROOROOOROROOROORROOOOROOOOOOOOOOOORROOROOOOORRROOOROOORROOOOROOOOOOROOROOOOOOOROOOOOOROOOOOROROOOROOROROOOOOOOOORRROROOORROOROOOOORORROOOOOOOOROOROOOOOOROOOOOOROOOOOOOOROOOOOROOOOOOOOOROOOROOOOOOOORROOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOOOOOOOROROORROOOOOOOOROOOOOOOOROOOROOROOOOORROROROOOORROOOOOOOORROOOOOROOOOOOOROOOROOOROROOOOOOOOOORROOOOORRRROOOORORRRROOOOOORROOROOORRORRORORROOROORRORROOOROROROOOOOROOORRROOOOOORORRORORROOROOOOORRORROROORRRORRRROOOROOROROROOORORRRROOOORORRRROORRRRRRORROORORRORRROOOORORROORROROORRRRRRRRRROROOROOORRRORRRRROOROORRRORRROOOOROOROOROOORRRRRRROOORORORROROOORRRRRRORRORROOOOOROOROORRRORRRORORORORRORRORRRRRRORRRRRORROOOORORRROOROORORRRRORROOORRROORROOOOROOORRORRROORRRORRORORRROOOORRRRRRROORRRRRRRRRRRROROOOOOROOOORRROROORROORRRRORROROROORORRRORORRRRRRORROOROROROORRRRROORORRORORORRRROROOOOOOORRRORRRRRROOOORRORRRROOORRRRRORORRROOORRROROORRRRORORRROOORROROOOROOROOROOORRROOORRROOOOROOOROORORROROOOOOORRROOOROROOOOORORORROOROORORROOOORRRORRRROOOOROORORRROOORROROOORRROROOROOROROROOOROROROOOORROOORRROOOOOROOOOOOROOOORROROORROROOROOROOOOOORROORRRROOROOOROOOOORORROOOOROOOORRRRORROOOOOOOOOOOOOOROOOROOOROOOOROOOOOROOROROOOOROOOOOOROOOOOOOOOOROOROOOOORROOROROOOOOOOOOOOOROOROOOOOOROOROOOOORRROOROOOOORROOROOOOOROOOORROOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOORROROOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROROOOOOOROOOOOOOORRORROOOOOORROOROOOOOOOROOOROROOOROOORRRRORROOOOOOROROROROOROOOROOOROORRRRROROOOROORROOOOOOOROOOOORORROROOOOORROOOORROOOOOROROOORRRRROOORRROOOORROOORRROOROOROOROOORROORROROROROROORRRRORROORRORORROROROOROOORRRORRROOOOROORORROOOORRORRROROORROORORRORRROORRRORORRRRRRRRRRROROOOOORRRRORROOROORRRROORRRORRROROROOORRROORORORRROOROORORORRRORRRRRRRRROROROOROORORORRRORRORRRRROOROROORRRORRORRORRROROROORRRRRRORROOORRRRRORRROOORORRORORRRRORROROORRROROORRRRRRRORRORRRROORROROORROROROOORRORRRRROOOORROOOORORRRORRRRRRRRROORROOOOROOORRRRORORRRRORORROORRROORORORROOORRRRORRRORRORROORRRORROOOORORROORRORROOORRRRORRRORORROROORORROOOORRRRRORRROROORRRROOROOOROORRORRORRROROOROROOOROOROORRORORORROOOROROOOORROROROOROROROOROOOOOOOOORRRROOOROORROORORROOOOROOROROOOOORROOOOOOOOOOOOOOROOOOROOOOROORROROOOOROOOOOOOROOOROOOOOOOOOORRRORROOROOROROROORORRROOOOOOOOORROROOROOOOOORORROOROOOOROOORROROOOOOOORROOOOROOORROOOOOROORROOOOOOORROROOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOROROORRROROOOOOOOOOOOROOOROOORROOROOOORROOOOOOROOOOOORROOOORORORROROOROROOOOORROOOROOORRRORORRRRORORRRRROROOOORROOOOOOORORRORRRRROROOROOOORRROOORRRORORRORRRRRRORRRROOORROOORORRRRRORRORORROOOROOROOROOROROORRROROROORORRRROORRORRRRRROOOORROOOORRORRRRRORRRORROOORORRROOORRRORROORRRORORRROOROORRORRRRRORRROROORRORRRRRORRRORRORRRORROORRRRROOROOOOOORRRROORROOROORRRRRORRROROOORRRROOOROOORRORRROORRRORRORORORORRRRRORORORRORORRRRRROOOROROOORROORRORORRORORORORRRRORRROORROOOOROORRRRRRRRRRRROORRORORRRROROOORRRRROORRRRRORRROOORRROOOOORORORORRRRRRRRRRRROORORORRRORRORRRORRROORORORROROORORRORORROORORRORRORRORROOOORORRORORORORORROORRRORRRROOOROROROOORRRRORROORORRORRRORRRROOOROORRORORRORRORRRRORRRRROROOROORROROROOOORRRORORROROORROOOOORRRORRRORORORRRROOROROOROOROOORORRRROOOOOROOOOORRROOOOROORRORROORROOOORROOOOROOOOOOOROROOROOROROORROOROOROROOORROOOOOOOOOORROOOOOORORORROOOOOOROROOOOOOOOOOOROOOOOROOOOOOROOOOROOOORRROOOOOROOOOOROOOOOROROROOOOOOOOOOOOROOOOOROOOOOOORRROOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOROROOOOROOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOORORROOOOOOROOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOROOOOOOROOOOOOOROOOOOOOROOOOOOROOOOROOROOOROOOOOOROOOROORORORROOORROORORRORROOOOOROOROROORROOOOOOOROOORRORROOOOOORORROOOOOOOOROROOROORROROORORROOOOOOROOOOOORORROROROROOROORROROOOROOOROOOOOROOOOOOROOROOOROORROROOROROROROROROOOORRORRRRROROROORROROROROORRRRROORRRORROORORRROOOROROORROOOORROORORRROOOOORORORORRORRRRORRRRRRROOROROORORRRRRORRRORRROORORORROORRRORROOOROORORROROORROORRORRRROOOROORRRRRRRRROORROOOOOOORRRORRRRRROOORRRORRRRRORORRORRRRROROOROROORRRROOOOOORRRRORORRRROOROOOORORRRROORRORROORORORRROOOORORRRRRORRROROROORORORRRROROORRROORRROORORRRRROOOORRROORRRORRRRRRORRRRRRORROORORRRORORRRORROORRORRRRORRRORRRRORROROOOROROORRRRROOORRRRRROROORORROOORRROOROROROROOORRORROOROORORROOOORROOROORORRROOROROORRRRORROOOOORRRORROOOORROROORORRRRRORRRRROORORRROOROOOOROOORORRORORORRROROORRROROOOROOOROORROOOROOOORRRRRRORRRRRORROORORORRROOORRRROROORORORRRRRROOOOOOROROOOORRROOOOOROOOOROOOOOOOORORROOOOOROOOOOOROROROROOOOOOOOOROROOOOOOOOORROOOOROOOORORROOOOOOOOOOROOOOOOROROROOOOOOOOORROOOOROOOORORROOROROOOOOOOROROOROOOOOOOOOOOOOOORRROROROOOOOOOORROROOOOOOOOOOOROOOOOOOOOOORROOROOOOOOOOOROOORROOOOOORROOOOOROOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOROOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOROOORROOORROOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOROROOOOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOROOOOOOOOOOOROOOOROROOROOOROOOOOROROOOROROOORRROROOOOOOOROOOORROOOOOOOOOORRORRROOOOOOROOOOOROOOORRROOOOOOOOOOOROORRRROROOOOROOOOOOROOOOORROOOOOROOROOROROOOROROROORORROORRROOOOORORORRRROOORRROROOOROROROOORROORORROROROOOOOOOOORROROROROROROROOOROOOORRRRROORRRRORROORORORRROOOORROOOROOROOROOOOROOOORROORRRRORRRORRRRRROOORRRRROOROROOORORRORORRORRORORRRORROORORROOORORORRRORRROORRRRRRROORRROORROROOOROOORRROOOOORRROROOORORRROORRRORROOOOOROOROOOORROROORRRROORRRRROORRORROORRRRRORRRRRRORRRROORRRRRRORROOORRRRORRRRORORRRORROOROOORORRRORORRRRRRRRRROOORRRRRORRORRRROOORORRRROROOORORRRORORRORROROOROOORRRROROOOORORROOORRORRRROOORROOOORRORRRROROOOOORRORORROROORRORRRRRROOROOOOOOOOORRROOROORRRRRROOOROOORRORRROOROOOOORRRRRORROORRORRRROOOORRORROROOORORROOOOOOROORRRRORRRRRROOOOORROORRORROOROOOOORRROROOORRRROOOROOOOROOOOOROOORROOOROOOOOOOOORRROROOROROOOROOOORRRROOOROOOORORRORORROOROROOOOROROROOOOROORORRROOROOOOOOORRROROROOOOOOROOOOROOOROOOROOOOOOOOROOOOROOOOOROOOOOROOROOOROOOOOOOROOOOOROORRROOROOROOOOOOOOROOROOOOOOOOOROOOROOOOOOOROOORROOOROOOOOROOORRROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOROOROROOROOOOOOOOOOOOOROORROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROROORRRROROOOOOROOROOOOOOOROOROOOOOOOOOOOORRRROROOORROROOOOOOOOORORROOOROROOOORROOOOOOOOOROOOOROOOORRORROOROOROROOROOOOOOOORORRRORRROORORORROORROOORRROROOROOROORRRROORRORRRROOORROORROROOOOROROOROOOORORRRRRORRROROROOROROOORRORRORRRRRROOORORORRROOOORRRRRROROOORROORRROROORRRROORORROOORRRRRRRORRRROORORRRRRROORRRRRRORORORRRRRRRORRRRORROORRRRORRRROOROOOROORRRRRRRRROORRRORROROOOOOROROORRRROROROROOROROORRRRRRRORRRRRROORRRRROOORORROOORRRORRROORRRROORRORRRRROOOROOOOROROOROORRRROORORRRRROORRRRRRRRRORRORRORROOROOOORRRRROORRORROOOOROORROORRRRRRRORORORORRRROOROORRORROORORORRORRRRORRRROOORORRRRRROOOROOOORRROOOORORORRORRRROOOOOORORROOOORRRRRROROOOOROROROORRROOROROORRROOROORRROOORRROOORORORROROORORROOORROOORROOOORROOOOORROOOROOROROOORROOORRRORROOROOOOORROROOOOORRORORROOOROOROROROOOOORORROOROORRROOROROOOOROROOORORROROOOOOOORROOOOOORRORROROOOORRROOOOOOOROORORRROOOOOOOROOROROORRROOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOORROOOROOOROROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOROOROOORROOOOOORROOROOORROOROOOOOOOOOOOROOOOROOROROOOOOOOOROOOOOOROOOROOOOOOOROROROROOROORORROOOOOOOROROOOROROOOOOOOOOOROOROOOOROOROOOOROOOOOOOROOOORROOOOOROOOROOOOROORRROOROOORORROORORROOORRROOOORRRROOOOOOROORROOROROORROROOORROROROROROOROROOOOOOOOROOROROORROOOORROOROOOOORORRRROOOOROOOORRROOROOOOOORORRORRROORROORRRRRRRORROROOOORRRORROOORROOOOORRRROROOROORRRRRRORORORORROORROORRRORRROORRRORORROOROORRROOORORRORRRRORRROROROORRRORROROORRORRRRORRRRORRRRRRRRORORORRRORRRORORORRROOORRRRROROORRROROORORROORORORRRRRORORORORROOORRRRRRROORRROOORRORRRRROORRRORORRRRORRORRRRRROROOOOOOROORRORROROROOOORRRORRORRRORRORRRROORORORRRROOORORORRORRORRRORRRRRRORRROORORROOROORRRRRROORRROOORROOORRROOOOORRRRRRROOORROOOOOORRROOOORRORRRORRORRRROORRORRRRORRRRORRRRORRRRRROORRORRRROOOROROOOOOOORROORROOOOOROORROOOOROROOROROOROORORORRROOROROOROOORORORROORRRRROOOOOOROOOOORORRORROOOOOOOROOORRRORRROROOROROOOOROROOOOOOROOOOOOOROOOOOOOOOOOOOOOOORORRRRROOROROROOOOROOORROOOOOROOOOOOROOOOOROOOOROOOOOORRROOOOROORROROOOOOOOROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOROOOOOOOOOOOOORORROOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOROOOOOOOOROOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOROOOROROOOOOOOOOOROOOOOOOOOOOOROOOROOROOOOOOOOOOOROOOOROOOOOOORORROOOOOOROOOOROOROOOOOORROORROOOOOROORORROOOOOOORRROOROOOOOOROOOOOORRORRORROOOOOOROORORORRRROOOROOOOOOROOROROOOOROOORRRRRROROROOOOOOOORRORORRRORROOOOOOOORROOOROROOOOROORROROORORORRRROROROROOOOROOROOOOOOOORROROORRRRROROROOROOOROORRROORORORROROORRRRRRRRORORRRRORORROOOOROOOOORROORROORROOORROORORRROROOOOROROORRRRROROORRORRORROORORORROOORRORORROOOORRRRRRROOROOORORROOROROROOOOOORRORORROOOROROORROOROOROOROOORRRORORRORRRROORORRORROORRORRRROOOROROORORRRORRORRRROORRRORORRROROORROORORRRRRRROROORRROOOROROORRRROROROORROORROORORORRRORRRRROROORORRORRRRRROORROOOOOROROOOROORROROOORRORRRORORRRROROOROOROROOORORROROOORROOOOORRORORORRORORRROROROROOROOOOROROORROORRROOORRORRORRRRORRRROROOOORROORROORORRRORROORRRORROOROOOROORORROOORROOOROOOROROORORRROROORORRRRRORROOROOORRROORORRRORRRORORORROOOORRRORORRROORORROOOOORROOOOOOORROOROOROOROORRROORROOOOOOOROROOOOOORRORRROOROROOROORROORROOROOORROOOOOOOOROOOOROOOOOOROOOOROOOOOROOOOOROOOOORROOORROORRROROROROROOOOROOOOOOOORROROOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOORORROOOROOOOOROOOOOOOOOOROOORORORROOOROOOOOOOOOOOOOORORROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOORORRROOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROROROOOOOOOOOOROOROROOOOOOORROROROOORROOOROROOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOROORROOOORORROOOORROORRROROROOOORRROOOROROOROOOROROORROORRRRRORRRROORORROOORROROORROROOOROOROOOORROROOROOOOORROOROOOOOROOORROOROOOOORROOORORRRROORROORORROOROOROROORRRRRRRRORRRRROORRORRROORROOOORRORROOORROOORRRRRROOORORRRRROORROOOROROORRORORRRRRORROOORORROORRROOROORRROROOOOROOORRRRORRORORRROROOROOROROROROORRROORRRORRORORRRROROORRORROORRROOOORRORRROORRORRORRROORRRRORROOROORRROOORROORRRROOOORROORRORRORRROORRRRRRRRRRRRRRROORRRORRORRRROROOOROORORORRORRORRRRORRRRRRRRRRORRRRRRORRRROOROORRRRRORROOOOOROOROORRORRROROORRRRORRROOORRORRORORROORROOORROROOROROORROOOOORRRROOORORROOROOROOROOROOORORROOROOROOOOOORORRRRRROOOOROROROOOOROOORRRORRRRRRORRORORRRRROOROOOROOOOORORRRRRROOOROOOOORROOOOOOOROOROOROORRRROOOROROROROOOROOOOOOROROORORROROORRORORRROOOOOOORROORROORRORRROORROOOOOOOROOOOROOROOROORROOOOOOROOOOORORRROOOOORROOROOOORORORROOOOOOORROOOROOORRRRROOOOOOOOOOOROOOOOOOOOORROOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOROROOOOORROORROOOOOOOOOOOOROOORRRROOROOROOOOROOOOOORRROOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOORRRROOOOOROROOOROOOOROOOROOOORRORORORROOROOROOOOOROOROOROOOORROROOROOOROOROROOOROOOOOROOROOROOORROOOROOORROOOORROOOOROORORORRROOORROROOOOOOOROOROOOOOOORRRRRROORROOROOOORRRRORRROROOOOOROORROOROORRRRRORRRRRRORROROORROOROROOOOORORROORROORRRORRROORRRRRRRORRRRRRRRORORRRRRORRORRROROOORRROROOOOORORRORRRROOORRROOOOORORROORRRRROOROORROOROROOROORRRRRRORRRROROOORROOOORRRRORROOORRRROOOORRORRRRROOROROOOOOORORRORRRROORRRORRRRRRROOOROORORRRRRRORRORRORROOROROOORORORRORORROOORRRRORRRORRROROORRROROOROORRORRRRRRRROOROORORRRROOORRORROOORRRRORORORORRRRRROROOROORROORORROOOROORORROOORORRROORRRRORRROOORRRORRROROORRROORORRROOOOOOROOORORRRROROOOROROOOOROROOOORROROOOOORORORROORORRROORROROOOROOOORROROOROORROROOOORROOROOOOROOOORRRRORORORROORRROOOOROOROORORRRRROOROOORORORRRROOOORROROOOOOOOOOROROROOOOOORROORRRROROOOROOOOROOOOROOROOOROROORRROOORRRRROOOOOROOROORRRRROROORROOOOOOOOOOOOROOOOOOOOOOOORROOOOROOOOROOORRRROOOOROOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOROOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOROOOOOORROOOOOOOOOOOROROOOOOOOOOORROOOOOROOOOOOORROROOOOOOOOOOROOROOOROOOOOORROORROOOOOROOOOOOOOOOOOOROOOORORRORROOOORORORRROROOOORROOOOOOROOROOORROROOOORROROOOOOOOROOORROORROOOOOOROOOOORORROOROOROOOOOOORROOOORROOORROOOOOOROOROOROOOOROOOOOROROORRROOORORORRORROOOOROOOOROOOOOOOOOROOORRRRORRORRRRROROORORRRRRRRRRORRORRRROOOOORRORROORROOORRORRRORROOOROROORRORRORRROOROORORRRRRRORRRRRRRORORORORRRORRRORRRORORORRROORRROOORRORRRRROOOORORROOROROORROROORRRRRROOOROOOOOROORORRROORRORROROORRRORRROROOORROORRRRRRROOOORRRRRORROOROORROROORORORRORORROOORRROOOORRRRRORRRRORRRROOORRRRRRRRORRROOORRROOORRRRROOROOORRORRROOROROOROOROOORORORRROORRORRRRRRRRRORORRRRORRORORRORORRRRORORROOOOOORROROORRORRROORORROORRORORRORROOROORRRRORRORRROOROOORRRROROORRRORRORRRROOROOROOOOROOOOORRORORORRORORRRRORROOOROOORRRRRORROOORRORROOOOOORRRRRORORRRORRROOOORROROROROORORROORROROORROOORROOROORRRRORROOROROROORROROOORROOORROOOOOOROOORRRRROORRROOORORRORROOOROOROROOOOOOORORROOOOOORORROOROOORROROROOOOOROOOOOOORRORROOOROOOOROROOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROORROORROORROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOORROOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOORORROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOROOOOOOOROOOROROOOOOOOOOOROOOOROORROOOOROOORROOOOROROOOROROOOOOOOROOOROOOOOOROROOORROOOOOOOOOOOOOROOROOOOORROROOORROOORRORORROOROROOOOROOROOOROROORRORRRRRROOOOOOROOOOOOOROROOOROOROOROOOORROOOORORORROOORORRRROORROOOOOOOOOOOOOOOOOROROOROOORRORRROROOORORROOOROROOOORORRRORORORRRROOORRRRRORROOOROOOROROORRORRRRRRRROORRORROOORRROROORRRORROOOROOROOORORRORRORRRROOORORRRRROOROOROORORORRORROORRROROORORRRORRORORRRRRORORRORROROOOROORORROOORROOROOORRRORRROOORORRRRRRORROORRRRRRRRORROORRORRRRORRROOROOOOROROROOOORRRROOORORRRRORRRRRRRRORORORRRROROORRORRRRRRRORORRROOOOORRROORRRRRRRRORRROOOORRROOOROORRRRRROOROROROOORROOORRROORRRORRRRORROOOOROOOOOOOROOOOORRROORRRRRRROORORRORORROROROORORRORRRRRROROORORORRRROROORROORRORRROOOOORRRORRROROORRRRRRROORROOORRROROORROROROOOOROOROOROOOOOROOOOROORORROORORRRROROOORROORRRORORRORORROOOROORORROROORROOOORROOORROOOOOOOORROROOOOOOORROOOOOOOOOROOOROROROOOOOOOOORROOROORORORRROOOORROROORRRROOOOOOOOOOOORORROOOOOROOORRORROOOOORORORRORRORROOROOROOOOORRORRROOOOOOOOROROOROOOOOOOOOOORORROOROOOOROOROOOOORROROOOOROOROOOOOORROOROOOOOROROROOOROOOOOOROOOOOOOOROROROORROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOROOOOOOOOOROOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOROOOROOOOOOOOROOOOROOOOOOROOOOROOOOOOOOOROROOOOOROROOOOOOOOOOOOROOOOOOORROOOORROOOOORRRROOOROOORRROROORORORROORROOOOOOOOROOORRORROROROOOROOOOOROOOOROOOORORROROOOORORORROORRROROROOOOOROROOOOROOOOOORORORROOOOROOROROOOOROOOOOOORROOOOOROROORORROOROOOROOORROORROOOORROROOOOORRRRROORROORRRROROORROOOOORRORORRROOORORROOROORRRRROOOOROORRRROORRRRORROOOROORORROORORRRROOORRRROORROOROORRROORRORRRORORRROOOROOORRORRROORROROORRORRRRROOORRORRRORROOROOORRRORRRRORRORRRRORORRROORORORRRROORROORRRORRRORRORRRORORRROOORRORORORRRRRROORRRROOORROORRRRRRRRRRRRRORORRORRRROOORRROROROORORRRRORORRRORRRRRRORRRRRRRRRRROORROOORRRORRRRRRROOORRRORROOORRORRRRRRRORORROOORROOOORRRRRORROOORROOORRRRRRORRROORRRRORORRROORRRRRORORRROORORRROOOROOOOROOOOOROROOOORROOROORRROORROROORRROORROOOORRORROOROORRORRORROOOORRORROOROROOOORRORRRRRROROROROOOOOOROOORROOOORRRROOOOOROORROOROOORRRRORRORRRRROOORRRROOOOROORROOROROOOOROOOROROORROOOOROOOORORORRROOOOOORRORRROORORORROOOROORORRROOOOOOOOOOROOOROOROOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOORROORROOOROORROOOOOOOOOROOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROROORROOOOROOOOORRROOORRROOOOOOOOROORROOOOROROOOOROOORROOOOOOOOOORROROORROOOOOOROORROOOOROOOROROORORROORRRORROOOROROROROOOROORROOOOOORORRORRRORRRROORRRORRROORRRROORRORRROORRORORRRRRROROORORROOROORROORRRRROOOROORRRROOOOORROOORRORRORROOOOOROORRORRORRRORORRRORROROROORROOOOROORRRORRRROORORRRROORRRRRROOOORORRRRRRORRRRRRRRROOORRRORRORRRRROORROOORRRRRRRRORRORROROROROORORRRRRORRRRRROOOOROROROORRRROROOORORRROORRRORRRORRROOROORRORRROROROROOORRRRRRORORORRORRRRRRROORRRRRORRRORORORORRRRRRROROORRORORRRORORORRROROOORRORORRRRROROORRRRORRORORRRORRORRORORRORRRRRRRROORRORRROORRRRRORRORROROROOORRROOOORORRRORRORRRROROOROOOORRRROORROORROOOOOORRROOOROORRRROORRRROORRORRRRRRRRORRROORORORROOOORROOOOORRRRRROOOOORORROOROROOOOORROOORORRRROOROOROOORRRRRROORRORRROROORROOOORRRRROOROOOROOORORRRORRROOROOOOORROROOOOROOROOOOOOOROOROOOOOROROOROOOOOORRROOOOORROORRROORROOOROOROROOOOOROOOOROOOOOOOOORORRROOOOOOORORROROOOOROOOOOOOOOOOROOOOOORROOOOOOOOORROOOOOOOROOROROOOROOROOOOOOROOOORROROOOOROOOOOOOROOOOOOOOOROOOOROOOOOROROROOROOROOOOOOROOROOOROOOOOOOROOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOROOOROOOOOOOOOROOOOOOOOROOOOOOROOOOOOOROROOOOOROOOROOOROOOOOOOOOOORRROROOOOOOOOROORORROOOOOOOROOORRROROOOOOROOOOROOOOOROORROOOROOOOROORORORORORORROOOOOOROOOOROROOOOROORROOOROOOOOROOORORRROROOORROOOROOROOOOROOORRROROOROROOORRROOOROORRROORORROROROOROOROOROORROROROORORRROROROROOROROROROOOOOORROORRORRRROORORRORORRRRROOROOOORRORROOOOORORORROORRORORRRRRROOORORORORRORRRRORORORROORRRRRRRRROORRRRRRROOROROOORORRRRRORRRRRRRRRRROOOORROROROOOOOORRRRRORORRRROROROORRRRROORORRORORRORRORRROORRORRRORROORORRRRORRORORROROOOOOORROORRRROOOROOROROOOORRRRRRROROROOOOORROOOORORRORORORORRORRROROORRROOOORORORRRRRRORRRROROROOOOROROOOORRRRRORRRROOROROOOORRRORORRORRROROROORROOOOROROOOOORRRRROOORORRRRRRRRROORRORROORRRROOROORROROORRORRROOORROROORRRRROROROROORORRORRRRORRRORROOOORROORORRRRORRROROORRORRORORORORRRRRRROOROOROOOROOROROOOOORRORORROROOOROOOROOOOROROOOOOORORROOROOORORRROOOROOROOROOROOOOOROROOOORORORORROOOOOOOOROOOOOROOOOOOOOROOOOOOOOOORRROOORORROOORRRORORROOOOROOOOROROOOOOOROOOOOOOOOOROOOOOOROOROORORROOOOOOOOOOROROOROOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOROOROOOOOOROOOROOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOORORROOOOROOOROOOOOOOOOROOOOOORROOROOOOOOOROOOROOOOORROOOOOOOORRRROROOOOOOOROOOOROOROOOORORORROOOOOORORRROROOROROOROOROROOORRROOOROOORRORROOOOORRRORORRRRORRROOOOOOROOOOROORROOROOOORORROOROROORRORORRRROOOOROROOOOORORORROORROOOOROOORORORROOOORRRRRORROOORRROOOOOOROORRORRRRORROORROORORROOOOOORRORORROORROROOORRRROORRRROROROROOROOOORROORROOORRRRRORRORRORRORRRROOORORROOROORRRRRRROOORORRRRRRRRRRROOOROORORRORROOOORORRRROORROORRRRROOOOROORRRRORRRRORRORORRORRRRRRRRRRRROORRRRRORRRROROORROORORRRRRRRRRROORRORORRRORRRRRORORROORRRRRRRORORRORROOORRRRORORRRROORROORRORROOORRRRRORRRRRRRRRRRROORRRRORRORRORRORRORRORORRRORORRROOOORRORROOOROORRRORROROROROOORORRRORRRORRRRORRRRRROOOOORRORORRRRROORRROROOORRRRRORRRRRORRRRRRRRORRRRRRORRORROOROOROROOROROOOORORRROORROOOORORRRRRRRRROOOROOROROOROOOORRORROORROOORORROORRROOOROOOROOOROORORORROOOOOOROOOOORORRRRRRROROOOOOOOOROOOORORRRROOOOORORROROOORORORROOOROOROOORORROORRRORRROOROOOOORORORROROROOROORORROOROROOOOORROOORROOROROOOOOORROOOOROOOROROOOORROOROOROOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOROOOOOOOOROOOOROOOROORROOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOROROOORROOROOOOROOOOROROROOROROOOOOOOOOOOOROOOOOOORRORRROOROOOOOOORROORORROROROOOOOOOOOOOOOOOOORRORROROOORORRROROOOROROOOORROOROOOOROOOROOOOOOORRRROOORROOOOROOORRRRORRROOORROROOORROOOOORORRRROORORROROOORROROOOOOORORRORRORRROOOOOORORRRRORORROROOORORRRRRRRROOROORORROOORRRORROOOOOROORROROORORRORRROORRRRORORORRRORRORORRORORRORORRRRORORRROROOOROORRORRRORRRROORRROORRRORRORORRORORORORRRORRORROOROROOOOOOOORRORRRROROORRRRRORORRRORRRRRRORRRROORORRRRORRRRRRRROOOORRORROORRRRORRROORROOOORRORORRORRRRORORRORRRRRROOOROORROROORRROOORRROROORRROOOROORORRRRRRRORRORRORROORORRRRROORRROORRRORROOROOOORRRRRRORRRRORRRRRRRRRRORRROORRORORORRORROORRROROOOROOORRRRRROOOROOORRRORORRROORRRRRRRORRROOORORRRRORRRRRROORROOORROROROOOOORRROORROORRRORROOORRRRRRRRRROOOROROORORRRROOOORROROOOOROOROOOOOOOORRRROOORRRROOROROOORRRRRRROROOOROROOOROOORRRRRRROOROROOOOOOOROORORORRORORORROOOOOORORRRROOORROOOORROROOROROOOORROROORORROORRROOOOOOOOORROOOROORRROROOROOOOOOOOOOOOOOOOROROOOOOOROOOOOOROOOOOORROOOORROOROOOOOOOROOOOOOROOOOOOOOROROOOOOOOOOOOROOOROOOORROOOOOROOOORROOOOORROOOOROOOOOOOOORROOOROOOOOOOOOOORROOOOOOOOOROOROOOOOOOOOROROOOOOROOOOORROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOROROOOOOROOOOOORROOOOOOORRROROOOOROORORROOOROOOOORROOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOROOOOOOROOOOROOOOROOOOOOOOROOOROOOOOORROOOOOOROOOROROROROOOORROOOOOOROOOOOOOOOROOOOOOOROORROOOORORROROOORRRROOOORRRROOORORRROORROORRROOROROOORRRRORRRROOROOROROROORORRROOOOOROOOROOROORRROROOORORORRRRRORORROOOROOROROORRORRRROORROROROORRROROROORRORORROROROOOOOORRRRRRRRRRRRROOOROORRROOOOROORROOROOORRRORRROROROORORROORRORRRORROORROROOOOOOOOORROOORORORRRROROORROOORORRORRROROORRRORORROORRRRROORRRRROORORRROOORROROROOORORRRRRROOROOROORRRRRRRRORRRROOROROORRROOORORRROORRORORRORRORRROROOORRRRRRORRORRRRRRRRRRRRORRRRRRRORRRRRROOOOORRRRRRRORRRROOOOOORRORORORRRROORRRRORROORORORROROOOORRROOROOROORORRRROROROROOROOOROOROROOROORORRRRORRRRROOROORORORROOORORROROORORRRRRROROOROROOORRRRROOROROOROROOROROOROORROORRROOROROORRROORORRRRRRORROORROOOORROOOROOOOORRORRORRRRORORORORORROOROOOROOOOOOOOOOROOOOOOOOOOOORORRORRROOROOOORRROOROOOOROORROROOOOOOORROOOOOOOOOROOOORROOROOOOORROOOOOOOOOROROOOOOOOOOOOOROROOOROOOROOOOROOOOOOROROOORORROOROOROOOOOOROOOOOOOOOOOOOOORROOOOORROORROOROOOOOOOOOROOOOOOOOOOOOROROOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOORROOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOROOOORROOOOROOORROOOROOOOOOOROOROOOOOOOOROOORORROOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOROROOOOOROROOORORRORROROOROROOOOOOOROOORROOOROROOOOOOOOROOOOOORROROOOROOROROOOOOOOROOOOOOOOROOOOOOROOOROOORROOOOOORROOOROORRRORRRROROOOOOROOORROOOOOOOOROOOROOROOOOOROROOOOOOOROROORROORRORORORROOOROOOOROOOORROORORORROROROROORORRROOOROOROOOOOOROOORROOORORROORORROOORRORRROORRROOORORRRROROROOOROROOOORORRORRRRROOROOOOROOOOROORRROORRORROROOOORRRRROROORORORROROOROOROOORROORRRROORROORORORROORRRORRRRROROOORRROOOOOROROORRRRRORROOOOORRORRORORRRRORRROORRRORRRRROROOOROOOROROORRRRRRORRRROROROOORROOORRRRRORRORRRRRRRRROORRORROROORORORRRRRRRROROORRORROOOOROOOORRROROORORROORORROORRORRRORRRRROOOOORORROOOOOORRORRORRRORRROORORRRRORRRROROOORRRRRRRORRORROOORRRORROOROOROOROOORRROOOOOORORORORORROOOORRORROOORROOROOOROOOOORRORRORRRORROOORRRRRORRORROORRORRROOORRROORRRROORRRRORROOOOOOOROOOOROOOORRORORRRORORRORORRRRORORRROROROROOOROORROOROROORORORRRROROOOOOOORORORRROROORROOOOOOOOOOROOORRORROOROOOOORROROOORORROROORROROOOOROOOOORROOROROROROOOOOOOOOOROOOOROROROOOORRORROOORRROOOOROOOOOROOOOOOOROOROOOOROOROOOOOOORROOOROOOOOROOOOOORROOROOOROROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOORROOOROOOROOOOROROOOOOOOOOOOOROOROOOOOROOOOOOOORROOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOORORROOOOROROROROOOROOOOOOOOORRRROOOOORROOROOROROOROOOORORORROOOOOOOOOOOOOOOOORROROOROOOOOOOOORRRROORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOROORRRRRROORRRROOOOORRROOOORRROOROOROOOOORRORRORROOOOOOOOOOORROROROORRROOOROOOOORORRRROOOROROOOOORRROORRRRRORROOORROROORRORORRRROOORROORRORRORRRRRRRORORORORRROORROROOORRORROORROOOOOROORORRRORRRRORORRORORRRRRRRRORROOOORRORRRRROORRRRROROOORRORORRORRRRRRRRROORRRRRRORRORRORRORRRORRRROROROROOOORRRROROOOOROORRRRRORORORRORROORRRRRROROROORRRRRRORROROROORRRRRROOOOROORORRRORORRORORRRRRRRROOOROORRRORRRRRRRRORRRRRRRRROOOROORRRRRORRRORRRRRRORRORRRROOOORRRROORROOROORRRORRRRRRRORROOOROROROROORORORRROROORORRORROOROORORRRORROOROROOOORORROROOOOROOROROROORROOOROOROOOROORROOOORORORORRRROOORORRRROORRORROOROOOROOOROROROOOORORORORRRRROOROOOORORORRORROOOOOOORROOROOORORROROOOORRORROOOOOOOROOOOROROORROORRRROOROORROORROOOORROROORROROROOOOOOOROOOOOOROROOOOOOOROOOOOORORORRRRRROOROOOORRROROOROROOOOOORROROROOOROOORRROROOOROOOOOOOROOROOOOOROROOOOOROOOOOOOOOOOROORROOOOOOOOORROOOOOROROOOOOOOOOOROOORROOOOOOOOOROOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOORROOROOOOROOOOOOOROOOOOOOOOOOOOROOOOORORROOORORROOOOOOOOOROOOOOOOROORRROORROOOROOOOOOOOROOOOOOOOOOOOROOOROOOOOORORRROOROOOORORORRORROOOOROOOOOOOOOOOOORROROROROOOOORROORORROOROOROOOOOOORRRORORRRRRROOOROOROOOROOOROOOOOOORRRORRORORROOROROROROROOROOORROORORRROOOROOOOROOROOOROORRRROROROOOOOROORRRRRRRORRRROOORRRROORRRRORROOOROOOOORRRROOOOOOOORORRORORRORORRORRRRRORROORRRRRORORORRROOROOORROOROORRROOORRORRRRRROORRRORORORROORROROORRRRRORROORRRROOORRRRROORORRRRROORRRRORORRRORRRORORORORROOOROOORRRRRORRORRRRRORORRRORORRORRRORRROORRORRRRORROOORRRROROOOORROROOORRRRRRRRRRROOORRRRORRORORORRRRRORRROROORORRRORORORROROORRROOROROORORRRROOORRRROROROOOORROORROOORRRORRRRORRRRRRRORRORRROOROOORORORORRRORRORORRRROOORORORRORORRRRORRRRROORRRRORRORROOORROROORRRRRROOORRRROOOORRRRORRRRROOROOOOROOOOORORROOOROOORROROROROOROROOROOOROOROROOOOORRROOORRRORRROOOOOOOORROROOOOOOOOOOOOOOOOOOOROOORROOOOOOORORRRROROOOOOROOROOORORORORROROOOORROOOOOOOORROOOOROOOOOOOOOOOOOROORORORRROOROOOOROOOROOOOOOOOORORRROOOOROROOOROOOOOORROOOROOOOOOROOOROROROORORRROOOROOOOOOOOOROOOOOOOOOROOROORORORRROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOOOOOOROOOOOOOORROOORROOOOOOOOOOROOROOOOOROOOOOOOOOORROOOOOOOOROROOOOOOOORRROOOOOOOOROOOOOOORROOOOOROOOOOROOOOOOOOROOOROORORRROOOOOOROROOOOORRROORRORRROROORORROORROOOOOROROORROORROOORORRORRROOROORRROOORRROROOOOOOROOROORROOROOOOROOOROORROORRRORROOOOROOOOOOOROORRORRRORRRROOROROROROOORROOROROORRRROOOORRROROORRRRORROOOOOORROROROROOOOORRRRRRROORORORROOOOROROORRROORORORRRRRORRRRRORRRROOOORORORRRRORRORRRORRRRORRRRRORRORORRRORORRROROOROROORORRROROOROORRROOOOOORRORRRORRORROORRORRRORRRRROOOOOORRROOORRRRRROROOOOOOORORRRRRRORRRRORRRRORRORORRORRRRRRORRORROOORRORRRORRRRRRORRRRROOORORRROORORORRRRRRRORRRRRRROORRORROROORORRRORORRRRROOROROROORRRORRRRRORRRORRROOORRRORRORROROOOORRROROOORORRRRRORRRRORRROOOROORRRRORRORRROORORRRRRORROOROOOOROOROOORRRRORRRRRROOORORRORROOOROOOOROOOOOOROROROROROORRRRRRRRROOOORRRRRRORRORROROORROROROOOOOOOOROOOOOOOROOROROOOOOOORRORRROOOOOORROORRROORORORROORORORROORROORROOOOOOOROOOOOORROROOOOORORROOROOOORRROROOOOOOROOROOOOOOOOROROOOOOOORORRROROOROOOOORRRROOROOOROOORRRORROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOROOOOOOROOOROROOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOROROOOOROOOOOOOOOROOOROOROOOOROOROOOOOOOOORRROOOORRORROOOOOROOOOOROOOOOROOROOOROOROORROOOOOOROOOOOOORROOROOORROORORORRROOOOOOORRROOROROOOOOROOOOOOROOROORORORROROOOOOROOOOORROOOORROROOOORROROOROOOROORRRROROOOROROOROROOOROORROORRROROORRROOORRROORRROOORORROROORORORRRRRRORRORROORRROORROORRROORORRRRORROOOOOOOROOOORRRRORROOOOORRRROROORORORORRROROORROORRORRRRROORROORRROORROORORORORORORROOOOROROOOORROOROROORRORRRRRROOOOOORROORORRORORORRRORRRORROROORRRROOORROORROROOOORRRRROOOOROORRRRORRRRRRORRRRORORORRRRRORRROOOOROORRRRROOORORRORRRORRRORORORRORORROORRROOOORROOROORRRRROORRORRORROROOOOOOORORRRRRRRROOROOROOORRRROROOROROORROROOORROORRORROROROOORORRRORROORRORROROORRROOORRORRORRROOOROORRRORRRRRRRORRORRORORORRROORRORRORORORRRROROOORRORRRRRRRRRORROORRORRRRRORORRROOROORRORROORRROORRROROOORROOROROOOOROOORRROOOOOOOORRORROROROOOORRROROOORRRROOOOOOOORRROOORRROROROROROROROOROROROOOROOOROOOOOOROORORRROOOOORORROOROOROOOOROROOOOROOOOOOOOOOOROROORROOOOOOOOOOOOOOOROORROOOROOOOROOOOOROOROOOOOOOROOOOOROOOOOOROOOOOOOOROOOOOOOOOROOOOROOORRRROOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOROOOOOOOROROOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOROOROOOOOORROOROOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOORRROROOOOOOOOOOORORROROOOOOOOOROOROROOOOROROOOOROOROOOOROORORRORROROOOOOOOROOOOOOOROOOOOOOOOOOOOOOORRROOOOROOOOOOOOOOOOROOOORROOOOOOORORROROOOROOROOOOOOROOROOOOROOOOROOOOOROORROOOORRORRROROOOROOOOOOORORORRORRRROORROORRORRORORROOOOORRRROOOORORORROOOOOORROORRROORRRRROORRRROOORORORORORROORRROORRROROORROORORRRROOROORRRRRRRRROROOORRROROOORORROOOORROORROORRRORRORRORROOROORRROOOORRRRORRRORROROROORRRRRRORRROROORRROROORRRRROOORORRRORRRRORRRRRRORRRRORROOOOROORORRRORRRROORRORRRRRRRROROORRRRORROORRORRROOOOROROORRRRRRORORRRRORROORRRORRRRRRRORRRRRRRRRORRRORORRROOOOOORORRORORROOOROORRRRRORRRORROOOOROOOOORORROORRORORRORRRRRROORRORRRRRRRROOOORRROROOOORRRRORROORRRRRRRRRORRRRRORRRRRRRRORRORRRRRORRRRRROROOOROOOORRRROORRORRRRORRORORORORRROOROOROROOOROORROOOORORRRORORORORROROORRRRORRRRRRRRORROROOORRRRORORRRORORRORORRORORROOOOOOOOOOOOOROOOROROOOROOORROOROROOORORROROOOOORROOOOROOOOOOROROORRORROOROOROOOOOOOROROOOORRROOOOOORROOOROOOOOORORROOOOOROOOOOROOOOOROOOROOOOOOOROOOOOOORORORRROOOORROOOORROROOROOOOOOOOOOOOOOROOROOROOOOOROOOROROROOOOOOOOOOOOOOOOOROORORRROROOOOOOROOROOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOROOOOOOOOOOOOOOOOOORROOOROORROOROOOOROOOOROOOROOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOORROOOOOROOOOOOOOOOROOOOOOROOOOROOOOOOOOROROOROROORROOOOOROOORROOOORROOROOOOOOORRROOORORRRRORROOOOOOOORROROOOOOOOROOOOOOORROROORORORORRORRROOOOOORRRRRRORROORROOOOROORRRRRRROOOOORROOROOOOROOOOOOORRRRROROORRORROOOROORORRRRRROOORROOORORRRROORORRROORRROOROOROOOORRRORRRROOROORRRRRROROROORROOORROORRRRORROORORRORRORRRORRRORORROROROOOORRORROOOORRROORROROORRRROOROOORRRORRORRRROOOROOROOOORRRROROOORORRRRORRRORORRORRRRRRORRRROORORRORRORORRRRROORRRRORROORORROOROOOROOROROORRORRRRORRORRRRORRROORRRRRROROOOOOORRROOORORORRRRORRRRRRORRRRROROORRRROOOORRRRORRORRRRORRRRRRRORRRRRORRRRRORROOROROROORORORRROORRROOORRROROORORRORRORRRRORORRROOOROOORRRORROORROOOROOOROROORROORROROORROOORORORORROROOORRORORRRORROROROROROOORORRRRROROROORRRRRRROOOOROOROOROORROOROOOROORORRRORORROOROOOOROROOORROORORRRROROROOOOROOROOORROOROOOOOOOROOOOOROOORRORRROOOROOOOOOORRROORORORRROOROOOOOROOOOOROROOOROOOOOOOROOOOOOOROOOROOOOROOOOOOOOOOOROOOOOROOROOOOOOORROORROOOROOOROOOORROOOOOOOOOOOOROOROOOOOOOOOOOROORROOOOOOOROOROOOOOOOOROROOORORROOORROOOROROOOROOROOORROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOROOOOOORROOOOOROOOROOOOOOOOOOOOORROOOOOOROOOOOOROOORROOOOROROOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROROROORROORROOORRROROOOOORROOOOOOORORROOOOOOROORROROOOOOOOROROORROOROROOOOOOROOOOOOOOOROOOORRORROOROOOORROOOOOOOOORORORROOROOROROROORROROOOOROROOORORROOOOOROOROOOROORRROROOOROROOOORORORRORORROOOORORORRRRRROROORROOOOROOROOOORROOOORRRRRRORRROOOORRRRRRORORRROOORROORRORORORRROOORRRORORORRRROORRROOOORROOOOROOORROOROORRORROROOOORRRRORRORORRRRRRROROORORORRRRRROOORRRRRRRROOORROOOOORRROOORRORORROORRROOORRRRORRROOORRRROORRRRORRORRROROROROORRRRROORRRORORRORRRRORROOORORRRRRRORROROOROORROOROORRRRRRRORORRRORRROROORRRORRRRORORRORORRORRRRRRORRORRROORROROOORORRRRORORORRRORORRRRORROORRROROOORORORRORRRRRORRRORRROORORRORRRRRORRRROROROORRROROORRORRORORROOOORORRORRORRRORORORORRRRORORROOOOOOORRROROOROROOORRORRRRRRROROOOOROORRRRRRRORRRROROOORROROROOOOROOORORROROOOROOOROOOOOORROOOORROOROORROOORRORRORORROOOORROROOROORROORROOOOOOORRORRRROOOOROORORORROOOOROROROOOORORROOOOOROOOOOOOOOOOOOOOOORROROROORROOOOOORORORROOOOORROOOOROROOOORRROOOROORORROOOOOOOOOOOOOOROOOOOORROOROOOOOOROOROOOOROROROOORROOOROOROOOROOROOOROROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOROOROOOOOOOOOOOOROOOOROOROOOOOOOOOROOROOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOROROOOOOOOOOOOOROOOOOOROOOOOROORROOOROOOORORORROOOROROOOROROOOOOOROOORROOOOOOORRRROOOOROOOOOORROOOROORROOOOOOOOOOOROOROROOOOOOOROOOOOOROROOOOOOOOOOROOOOOOOROOROOROORRROORROOOROORORORORROROOOOOOOOOOOROROOOROOOOROORROOOOOOOORROOROOROOOOOOORRROOOORRROORORROOROOORRRROROOOROOOOOOOOOOORROROORRRORRROORRRRRRROOORRRROOROOOOROOROROROOROOOROOROROOOOORRRRORROOOOORORORROOOOOORORRORRRRORROOORROROROOROORRROROOORRORRRROOOROORRRRRORROORRRRRRRROORRRRROROROOOOORRRRRRRORRROOOORROOORORRORRRRRRRORRRRRRRORRORRRRRORROORRRRORRRORRRRRORRORRRRORORRORORRRRORRRRORORRROOOOORRRROORRROOORRRRRRRRRRORRRROOOORRRROORORRORRRRORRRRRRROOOOOOORRRRROROOOOOORORRRRROOORRRRROORRORRRRRORROOORRRRORRRROOOROROOORORRRRORROORROOOORRROOOROORRORORRRRRRRRRRRRORORORRROROROOOORROORORORRRRRRORRORROORORRRRORORROOORROORORRROROOOOOORROROOROOORROROOROROORROROROORRROROROOROOOOOROORROOOOROORROORROORORORRRORROROORRRRROROOROOOROOOOOOOOROORRORRRRRRROROROOROORRORORRRRRROOOOOOORORORROOROOORROOROOOOOOOORRROORROROOOROOORROROOOROOOOOOROOOOOOOOOOOOOOOOOOOOORROORROOOROOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOROOOOOOOOROOOROOOOOROOOOROOOROOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOROROOOOOOOROOOOOOROOOOOOOOOORROROOOOOOOROOOROOOOROOOOOOROOOORROOOOOOROOOOROROOOOOOOROOROOOOOOOOOROOROROOROOOROOOROOROOOROOOOOOROOOROOOROROORROOROOORORRROROOOORORRROORRROOOOORROOOOOOROORROORRRRRRORROOROORORRRROROORROROROOOROORORROOORROOOOROORROOOORRROOOROORROORORROORRRROOORRRORROOROORRROORROORROOOROOROORRROOOORRRRROOROOROOOORRRRRRRROOOROROROOOORORRRROROROROROROROOOROORRRRROROOORRRORORRRRROORRRORROORRORORRRRRRRRRRRRORORRRRRORORRRROOORRRROROROOOORRRORORRRORRRORRRRROORROOOORORROOOORORRROORRRRROORROOORRRRORRRRRRORORROORRRORRORRRRORRRORRROOROORRORORRRORRROOOORORRRORRRRRORRORRRORROROORRORORROOROORRRRORORORRRORROORORRRRROOOOOORRROORORROOORORRRRORRRRORRRRORRRRRRRRROOORROROROORRRROOOOROOOORRRRRORORRRORRORRORROOORROORORROORROOOORRORRROROROOROOORORRRORORORRORORRORROROROORORRRROOOOOROROOOOOROROOROOOROROROOORROOROOOOOORROOOOOOOROOORRROORROOROOOORRROOOOROOOROROOOOOOROOORRORORORORRROOORORRRROOOOOOROOOROOROOOROOROOOROROROORRORORROOROOOOOOOOOOOROROOROOOOROORRROOOOOOROROROORRROOOOOORROROOOROOOOROORRROOOOOOOOOROOOORROOOOOROOOOOOOOOOOROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOORROOOROOROROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOORRROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOROOOOOOOOOOOOOOROOOOOOOROOOOOOROORROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOROOROORROORORROROROOROROROOOOOROROOOOORRORORRRRORRRROOROROOORORROORRORROOOOOORORROROOOOORRRORROOOOOORRROROOOORRRRRROOORRRRORRRORROOORORRORRORRRRORORORRRRORORRORROORORRRROROORRRORORROROOOROORRORRRORRRORRROOOOROROORRRROORORRRRRROOOROOOROROROROORROORORRROOORRRORRRRRORORRRRRROOOOROROROOROORROOROOOOOORRRRRORRROORROORRRRRRRORROOOROORORORRORRORROOORRORRRORROOROROOROORRRRRROOORORORRROORORRRRRRRORRORROROROORRRRROOOROORRRORRRORRRORRROOOORORRRRRRRRRRORRRORROROORROOROOOROORRRRORRRRORORRROROOORORRRRROOORRROORORRRORRRRRORRRRRRORRRRRORORORRORRRORRORORRRROROROROOROOORRRORRROOOORRROOROOORRROOOOROOORORROORRRORRRRRRORORRROOOOORRRROOOOORRRORRRRORRRRROOORRORROORORRRRRORROROOOORROOOORRRORRORORROOORORORORROOOORROOOOROOORROOOOOOROROOOROOOORORRRORRRRORRROOOOOROOORROROOROOOOOROROORROORORRROROROOROORRROORROOOOOOOROROROORROOOOOOROROOOROOORORRRRROROOORRROOOROOOOOOORORROROOROOOOOOOOOOOOOOOOOOOORROORORROOOOROROOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOROOOROOOOOROROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOORROOOOORROOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOROOOOOOOOROOOOORRRROOOORRRROOOOORROOOOOOORROOOOOOOROROORROOOOOOOOROROROOROOOORROOORORORRORROOOOOOOROOORROROROROROOROOOROOROOOROOROOOROROORORROOORORRRROOORORORROOOORROOROOOOOROOOOORRROOORRRRRORORRRRROOORORRORORRROROOOOORRRORRRRORRRRRRROOOORRRRRRRORRORRRRRROORRRROOOORRORORRRRORRROOROOORRORRORORRRRROROOROORORROORRORRRRORROORROOOROOORROROOORRRRRRROROOORRRRORROOROOROOORRRORORRORORRRORRROROOORRRRRRORORRROOROOOORORRRRRORROROORRRORRORRRORRORRRRRRRRORORRORRROOROORRRORORRORRROOORRRROORRROOORRRRORRORROOORRRROOOORRORRRRRRRROOOROORRRRORRRROORROOOOOORORORRRORORORORRRRRORRROORRRRRRORRRROOOOOROROORRROORRRROROOROROORROOROORORRORORRRROROOROORRRRRRRRRRORORRROORRRROROROORRROROOORROROOROOROORRORRRRRRRROOORROROOROORRRORROOROORROOOROORROOOROROROORROROROOORRORROOOOOOOOORRRRROROOROROOORRORRROORORROROROOOORROORROROOOROOOROOROOOOOORORRRRRORROROOROOOOOOOOOOOOOORRORORROOOOORRORRROOOOOROOROROROORORROOOOOROOOOOOROROROOOOOOOROOROOOOOOORROOOOOOOOOOOROOOORROOOOOROOOOOOOOOROROROOOROROOOOOOOOOOOOOROROOOROOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOORROOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOROROOOOOROOORROOOOROOROOOOOOOOOOOOROORROOOOOOROOOOOOOROOOOROOOROOROOROOOOOOOOROOROOOOROOROOOOOOOORROOOOOROOOOOOOOOOOOOORROORROOOOOOOOOROROOROOOOOOROOOOOROOROOOOROOOROORORRORRRORROOROOROOROOROROOROOORORORROOROOOOOOOOROROORROROOROORROORROORORORROOOOORORRROOROOOROOROORRROOOOOORROOOOOOOOORROROOORRORRROROROORRRORRROOROOOOROOROORRRROOOORORROOROOROOORRRROOOOOOOOOROOORRORRRRRROORRRORORRROORORRORORRORORORRROORRORORRORRRRORROORRRROORROORROOROOORRORRRROOORROROOROOOOROORROORRRRRRRRROOROOORRRRRRRRORRORRROOORRRRRRRRRRRRRRRROOOORORRRRROROORORRRROORRORORORROOOORRROOROORORRRORRORORORORROROORORRRRRORRORRRRRROORRORORROROORORRRRROROORRRROROOORRORRRORORORRRRORORRORRRRORRRORORORROORORRROOORORORRROOROORRROOORORROORRRRORORRRRRORRORORROOOOORRORRRRRRORROORRRORROOORRORROORORORORORRRRORRRORROOOORRRROOOROOORORRRROOOOOORRRRROORRROOORORORORORORROOROOROORORROOOORROROORRROROOROOOOORRRRROOORRRRROOOOROOOOOOOROOOOORORORRROOROOORRRORROOOROOOORORROOROOOOOOOROOOOOROOOOOOROROROOOROOORRROROOOOORRROOOROOOOOROOORRROOROOOOORORRORROOOORRROORROOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOORROOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOROOORORROOOOOOOOOOOOOROOOOROOOROOROOOROOOOOOOORRROROROOOOORROOOOOOOOOROOOOORRROOROOROOORRRRROOOOOROROOOOROOOOOOORROOROOROROOROOORROORROOOOOORORORORRROOOROOROOOROOOOOOROORORROOROOOROOOOOOOOOROORROOOOOOOROOROROOOOROOORRROROOROOOOORROOOOOOROOROORORRROORRRORROOORORROOOOROROOORROOORRRRRRRRROORRORRROROROROORRRROORROOOROROOROOORRRORRRORROORORROROROROORRRORRRRRORRORRRRRRROROOORROOORRROORORRRRRRROROORRRRRORRRROORRORROOORRORRRORORORRROOOOORROOROOORORORRORORRROROROROOOORRRRORRORRRRROORRORROROOROORROOROOROROOROROROORRRRRRORROROOOROORORRROORORRRORROOORRRRRRORRRRRROORRRROORRRRORRORRROOOORRORORRORRRRRRRROORRRRRRROORRRROOOORRRROORRROOORRRRRRROOORRRORRRRRORRRRRROOROOORORRRRRRRRRORORRORRROROROROOORRRROOOROORRRRROROROOORRRRORRRROOOOORRORRRRRRROOORROROOROOOORRRRORORORROOORROROORROOOOOORROROORROROOOORRORRORRROORROOORORORORORROOOROROROOORORORRROOROOOOOOOROROORROROOOOORROOORROOROOOORROROOROOOROOOROOOROROOROROOOROOOOROOOOOOOOOORROOOOOOROOOOOROOOOOOOOROOROOOROOOOOROOOOOOOOOROOROROROOOORROROOOOOOOORROOORORROROOOOOOOOOOOOOOROOOOOOOROOROOROOOOOOROOOROOOOOOOOOOORROOOOOROOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOROOOOOROOOOROOOOOOROOROOROOOOOOROOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOROROOOOOOOOOOOOOOOOOOOOOROROROORROOOOOOOOOOOORROORROOOOROOOOROORROOORROOOROOOOROOOOOROOORORRROORORROOOOOOOOOOROOOOROOROOOROOOROROROOOOROORROROOORROOROROOOOOORORORRROOROORROOORRRROROOOOOORROOORROOOROROOROOROOROOOOROROOOOOOOROROORROOORROORROROROROROOOOORROORRRRRRRRROOORRORROOROROOORORORROORROORRRROORRRRRRRRRRRRROORRRROOOROOROOOOROOORRRRROOOROROROROOOOORRRROOOROOROOORRRRRRRRRRRRRRROOORROORORORRORRRRRRRORORRROOROROORRRRRRORRRORRRORRORRORORRRRRRROORRRRRORORRORROOORORRRRROROOOOORRRORRRROROOORRRORROOOOROROORRROORRROORORRORRRORRRRRORRORRROOOORRRORORRRROORRRRORORRORRRORRRROOOOOOOOORRORRRORRROROROOORROROORRRORRRROOOORRRRROORRRRROOOORRRROOOORROOOOORORRRRRORRRORRRORORRRRRRRRRRRORROOOROORRRRRROOROROROOORRRROOOROOOOORROOOROOORROOORROOOROORRRRRRORRRRROOROOROOOROROOOROOOOOORRORRORORROROOOORRRRRROROOOOOOOOOOOROROOOOOORRROOROROORORRROOROOOOOROOOROOOORORORROOORORROOOROOOOOROOROROOOORROOROOOOOOROOROOOOORROOOOORROROOOOOOOOOOOOROORRRROORORORROROOOOOOOOOOOOROROROOOOOOOORROOOOROOOOOOROOROOOOOOOOOOOOOROOOOOOORROOOOOOOOROOOOOOROOOOOOOOOOOROOROOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOROOOOOOOOOOOROROOORROOROOROROOOOOOOORROOOOROOROOROROOROROORROOOROOROOOOOROOOOOOOOORRRRROOOOOROOOOOOROOOOROROOROOOOOROOOOOROROOOORROOOOOROROORROROROOOOROOOOOOOROORROOROOOROOOOOORROOROOROROOOOOOROOOORORRROOOOOOOOOORROOROOOROORORRRROROORROOOOOOOOOOOOORROROROROOOOROROOROORRROOORRRORRRRROOORRROOOORROORRORRRRORRRRORROORROORRORORRRRRRRORRORRROROOOORORORRRROOORRORRORORORRRRROROOORRRRRRROOORRORROROORRORORRRRRORRROORRRRRROROORORROOROORRRRORRROOOORRORROOROOOOROROROORRRROROORRORRROORRRRRRRORRRRRRRRRRRRROROROOOOORRRORRRORROOOROORROORRRRRORRRROORRORROORROOORORRORRRRORROORRRRRRROROOROORRORRRORRRRROROOORORRRORRRROOROOORRRORRORORROROOOOORORORORORRORRRRROOOOOOROOORRRRRORORRORRROOOROROOOOROOORRRRORRROORROOORRRROOOROORRRORORRRRRROOROOROOOOOROOROOORRROROROROROROROOOORROORROORROROOORROOOOOOROOORRRRRORROROOOOOROORROOORORORROOOORORORROOOOOORORORRRRROORRORROOOOOOOROOOORRRORORORROROOOROORRORROOROOOORROOORROORRORRROOOOORROOOOOOROOOOOOOOOOOROOROOOROORROOOROROOORROORROROORROOOOORRORROOOOOROROROOOOOOOOOROOOOROORROOOOROOOOOROROOOOOOOOOOROROOOOROOOOROOOROOOOOOOOOROORROOOOOOOOROROOOOOOROOOOROROOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROROOOOROOOOOOOOOOROOORRROROOOOOOORROORRROOOOORROOOOOOOOOOOOOROOOROOOOOOOROROORROOOOOOOROOOROOOOOOORROOOOOOOORROOROOOOOROORROOOORORORORORRORRORROOOORROOROOOOOORROOROROOROOOOROOOOROOOROORROOOROROOOROORRRROROROORORRRROROOOROROORROOORRRRRORROOORROOROOORRRROROORRORROOORRORRRRRROROOOOOROOOOOORORORRROROROOOORRORORRRRRRRROOORORORRRROORRORRRRRRRORRRORRORRRRORRRORRRRORRORRRORROOROROOOOORROOROROOOOROORRRORRROROORRRRRRORRRRRORRORRORRRROOROOOORRRORRRRROROORRORRRRRRRORORRRROOROOORRORORRROORRRRRRORRRRRRORRRORRRRRRORRRRRRORRRRORRROOORRRRROORRRORROOORRORRROROROOOORRROOROOOORRRRRROORORRORORRORRRRROORRRRORRROROOROROORRORRRRRRRRRRRRRORRRRRRORROOROOORORRORORORROOORORRROOROOOROORRORRORROOROOOROOORRRROOOOORRORRRRRROOROOOROOORORROORORRRRRRRRORRROROROORRROORORRROORROROROOOOOROOROORROOROOOROOOOOOROROORRRORROOOOOOOORRROOOOOOOORORROOOORRRROOOROORROROORROROROOOOROOOROORRORROOOOROROOOOROOOROOROOOOOOORORORROOROOOOOOORRROROOROORROOOOORROROOROOOOOOROOOOOOROOOORROOOOOOOROROOROROROOOORRRORROOROOROORRRRROOOOOOOORRRROOROOOOOOOROOOOROOROOOOOOOROOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROROROOOOROROOOROOOOOOOOOROOOOROOOOOOROOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROROOROOOOOOROOORROOOOOOOOOROOOOOOOOROOOROORORROOORROOROOOORROOOOOROOOOORROORROOOOOOOORRORROORROORRROOOOOOOROOOOOORRRRROORRROOOOOOOOOOROROOROROROOROOROROOROOROROOOOOOROROOORROORROOROROROOOOOROROROOROORROROOROOOORROOOROOOOORRRROROROOOOOOOORROORROROOOROOORORRORRRRORRROORORRORRROORRRRROROROORORORROOORRORRRORRRRROROOROOROOOROROOORORORROOORORRROOROOOORORRRRRORRROROROORRROORRORRRRRRRROORRRORRROORRROROORRRORRRORRRRROOROORRRRRRRRRRRRRORORRRRROORORRROORRORRRORRROOORROORRRRRRROROOROOOOORRORRORRORRRRRRRROOORRORRROOROOORRORRRRRRORRROOOORRRORRRORROROORRRROORORORRROROOORRORROOORORRORRROROOOOOOROOROOROOORRORRORROORRORROROORORROOOOORROOOROORORRRORRRRRRRORRROROROOORROOORORRRROOOOORRRORORRROROROOORROROOOOOOOOOOOROOOOORRRORRRROOOROORRRROROORRRRORROORRRORROORORROROOOOORROROOOOOOOOOOOOOOOOOOORRROROOROOOROOORROOORRROROOOOROOOOROOORROROROOOOORRROOROROROROROOOOOROROOORRROORORRROOOORRORROOOROOOOOOOOOOORORROOOROOOROROOOOOOORROROOORROROOOOROOROOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOORROOOOOROOOOOOOOROOOOOOOOOROOOROOOOROOOROOOOOROOOOROOOOOOOROORROOORROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROROOOORRROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOORROOOOOOOOOOOOOOORROOOROROOROOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOROOOOOOOOOOOOROOOOROOOOROROOOOOOROORROOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOROOOORROOORROOROOOOROORORROORRROOORRRORRRRRROOORROOOROOROROORORROOOOROORORROOOOORROOOROORROOOOOOOROOOROOORRRROOORRROROOOOROORROOORRRRROOROOOOOROORORORROROORORORRROORORRRROROOOORROROOOORORRRRORRRRROROROOOOORROOOOROORORORRROOROOOOROROROROROORRRRRROOROOOORRRRRRRRRORRRRROORORRRRRRRORROOORRRRORRORRRORRRRRRROORRRRRRRORRROROROOOOROOORROOOOROROOORRROORRROOORRORRORRRROORORORRORRRRROORRORORROORRRRRORRRRRORROROOOROOROORORORRRORRRRRRRRORORORRORRRRORORROROORORRRROORRORRRRRRRROORRRRORRORORRRRORRROORRORRRORRRRRRRROORRRRRRRRRORRORRROORRROOOOORROOORRRROOOOOORROOOROROOORROROOROORROROOOOOORRORORRROORORROOROORRRRRRROROOOROORRROOROORRROOOROOOORRRROOOOORRROOORRORRORROROROOOOOOOOOOORROOORRROOROORROOROOOOOOORRRROROROROOORORRROOOOROROORRROOORORROORORRROOOOORROORRROORROOORROOOOOOOROOORROROOOOOOOOOORROOOORRRRROOROOOOOOOOOROOOROROOROOOROOOOORORORROOOOOOORRROORROOOORORRROOROROOROOOROOOROOOOROOORROOROOOOROOOOOORROOOROOOOOROOOROROOOOOOROOOROORROOOROOROORROOROOROOOOOOOOOORORROROOOOOROOOOOOROOOOOOOOORROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOROOOOORROOOOOOOOOROOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOORORROOOROOOROOROOOOOOOOOOOOOROOOOOOOOOOOORROOROORROOROROOOROOOROOOROOOORRORROOORRROROROOOROROOOOOOORORORROROOOROORROROROROROOROORROOROORRRROOOOOOOROOOOOOROORRRRROROORRORROOOROOROROROOORORRORRRROOOOORORORORORROOROOOOORRORORROOOORORRORRORRROOOOOROORRORRRRRRRROORROORROROOORORRRRRRRORRROOOORORRORROOOOROOORRRRRRORRROROOROOORRRORRRRROORORROOORORROROOOORROOORRRRORRRRRROOROORRORRRRRORRRORRORRRRRORORORROOOOROROOROORRRRORRRRRROROROOORRRRROROORROOORRRORRRORRRRROROROROOOORORRRRRRRRRROORRROOOORRORORRORRROORORORRRROORORRRORRRRRORORROORRROROORROOOORORORRRORORRRORRRRRORRRROOROORRROORRORORRRRROROROORROOROOOROROORRRRRORRORRRRORRROOOORROOOOROORRRORRRORRROOROOOROROROORORRRROOORROROOOROOORRRROORRRRORORROORRRRORORRORROOORROOORORROOOOROOROROOOOOORRRORORRROROROORROROOOOORORORROOROOOOOOORROOORORROOOOORORROOROROOORROOROROOOORRRROOOOROOOOROOOOOROOOOOOOOROOROORROROOORRRORROOORRROOROROOOOOROOROROOOOOOOROROOOOOROOOOOROOOOROOOOOOOOOROOOOORROOOOOOOROOOOOOOOOOOOORROOOOOOOOROOROOOOOROROOOOOOOOOOOORROOOORROOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOROOOROOOROOOOOOOOOROOOOOOOOOOROOOOOOOROOOROOOROOOOOOROOOOOOROOOOOOOROOROOORROOOOOOOOOOOOOOROOOORRORORROROOROORRROOROOOOROOOROOROROOROOORROOOOOORROROOOOOOROOORROOOOOORROOORRROOOOOORROOOOORRRROOROOOOORORROORROROOOORROORORROOOOOORORORRORORROROROOORRRROROOROOROOORRRRRRROOOOROOOROOOROROROROOROROOROROOOROOORRRORRRRRRRROOOROOORORRORRRRORORRROROROORORRRROROOORRRORRRRORROORORROOOROOORRRRORRORROROROOOOOORRORRORROROORRROOOORROOOORRRRORRRRORRRRORROORROOORRORORORORROOOOOOROROORRRRRRORORRORORRROORRRRRRRORRROOOOORRORRROOROOOORRRRRORRORRRORRRROORORRORRROOOORRORROOORRROORORRORRRROROOROORRRORORROROOORRORORRROORORROORRRROOORROROOORRRRORORRORORRRROROOOROORRORRRRORRRRROROORRRRORRORROORRORRORROOORRROORROOROROOOOROROOORRORORRORRORROOOROORORRRRRROORRRORRRORRROOROORRRRRROORROROOORORRRROOOOOOORRROOOOOOOOOROORROOORORORRRRROOORRORORRRROOOROORORRORORROOROOORRRORORRROORRROOOOROORROOOOOORORORROOOOOROOROOROOORROOROOOOOROOOOORRRORROROOOOROROORRROORRRROOOROROOROOOOROOOOROORRORORRROOOROOOOOROOOOOOROOOOOROOOOROROOORORROOOOOOOROORROROOOOOOOOOOOROOOOOORROOOOOOROOOOOOOOOROOOORROOOROOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOROROROOOOOOOOOOOOOOROOOOOOOORRROOROOOOOOOOOORROOOROROOOOOOROORRRROOOOORROOOOROROOOORRRRORROOOOROROOOROOOOOOOOORROOOORORROORORRORROOROROOROROOOOOOROOOOOROOROOOOOOORROROOOROROOROOOOOOROOOOOOOOORRRRORROORRROOROROROROOROROORORROROOOORROOOOROORORROOOOROROORRRROOORRRORORROORORRRRROOORRRROORORRRRRROORORORROOROOOROROORORORRRRRROORRROOORORRRROORRORRRRORRRROROORORRROROROOROORRRRRORORRROORRRORRROOORRRORORORORRRORRRRROORORRRORRRRROORROOROORORORRORRORORRROOORRRRRRORORRRRRRRRORORORRORRROORORRRRRRRRRRRROOOOORORORROROOROOROROORORRROOORORRORRRRROOROORRRORORRRORORROORRROROROROORORORORORRRRRRORROORRRRRORRRRROOORORRRORROOOOOORRORRORRROOORRORRRORRROOOOORORROOROORRRORRRORRORROROOROROROOORRRORROROROOORRRROOOOORRROROOOOORRORORORORRORROROORORRRORROORRORORRROORROROROROORROROOROROORRRROORRRRRROOORORRRROOOROOROOOOOOOORROORROROOOOOROROOOOOOORRROOROROOORRRORRROOROOORORRROORORROOROROOROOORRRROOOOORRRRROROOROOOOROOROOROORROOOOOOOOOROORROOORROOROORROROROORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOROOOOOOOROOOOOROOOOORROROOOOOOOOOOOOROOROOORROOROROOOROOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOORRROOOOOOOOOROOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOROOOOORORROOOOOROOOOOOOOOOOOROORORROOOROOOOORROOORORROOOROOROOOOROOOROOOROOOOORROOORROOROROORORROOOOROOORROROOROOOOOROOOORORROROOROOORROORRRRROORRRROORRRORROORROORORROOOOOORORROROORRRORROOORRORRORRRRORRRRROOORROORRRRRORRRRRRROOOROORORRROORRRROOROROORROORORRRRRROROOROOROOOORRRRROOOOOOOROROOROOROORRRRRRRRORROOROOORROOROORROOORROOORRRROOORORRORRRRORROROOORORORROOOORROORRRORRORORRRRORRROOORRRRRRRRRORRROORRRORORORRRROORORORRORRROROOROROROOOORORRORORORORORROOOROORRROOOOOROORORORORRRRRRRORRRRRRORORRRRORRRROORROORRRRRRRROOROOOORRRROORRRRORORORORRRRORROORRORRRORRORROOOORRROORORRRRROOROROORROORRRORROORROROORRORRRRORORRORRRROOOOOORRORRRRRRROORROROORORORRROOOROOOROOOOROOROROOOOORRROROOROOROOOOOROROOOOROOOROOORRRORROOOOOORORRROOROOOORRROOROOROOROOOOOOROORROROROROROROOROORORORRORORROROROORROOOOOOROORRRRROROOOOORORRORORRORRRORROORRRRRROROORROROROROROOOOOROOOOOOOOOOOOOOROOOROROOOORROOOOROROROOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOORROOOORRRROOOOOOOOOOOOOOOOOORRORROOOOOOROOOOOROROOOOOROORORROOOOROORRRROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOORRROOROOOROOROOOOOOROOOOOROROOORROROOOOORRORROOOROOOOOOROOOROROOOOOOORROROOOORRORROOORROOOROOOOORRROORRORORORRORORRORROOOOOOOOOOOOORRORROROOOOOOOROOROOROROROOROOOOOOORRRROOOOOROOORRROORRRRROOORORROOROORORORROOOORRROROROOORRRRORRROOOOROOORRRRRRRORRRORRROROORROOOOOORROOORROROOORRRRRRORRROROOROOORORROORRORRRROOOORRRRROOROORRROORRRRRROOORRRORRRROORRORRROOORRROORROOOOOORRORRRRRRRRORRRRROROROORRRORRORROORRRORRRROOORRRRRORRRRORRORRRORORRORRROOOORRRRRORORORROOOROOROORROOOOROORRORRORORRRORRRRORRORRRRORRRORRRROROORRRRRRRROORORROROROOOROORORRRORRRORRORORRRRRRROOOROROORRORORRRRROROOORRRRRROOROROORRRROROORROORROROOROOORRORRROOOORRRRRROORROOOORRRRRORORORRRRRRRRRRROORORROOORORRROROORORRRRORROOORORROROORORROROORROORORROOORRROOOOORORROOROOOOOOOOORROORROROROORRORRROOOOOOOOOROROORROROOROROORROORORROORROOOOOOOOOOORRROROOOOOROOOROOROROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOROOOROOOOOOOOROOOOOROOOOOOOOROOOROOOOORROOOOOOOOROOOOOROOOORROOROOOOOOROROROOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOROROOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOORRROOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOROOOOOOOOOOROROOOOOOROOOOOOOOOOOORROOOOOOOOROOOOROOROOOOOOOROOOROOOOROROROOOOROORROORROOOOROROOOOOOOROROOORORORROOOOOROROOOOROROOOOOOOOOOROOOOORORORORROOROROOOROROOOOOROOOOOROROOOROOOOOROOOROROOORRRRRRROOROROROOOROROROORRRROORORORRORROOROORROORORROOOOROROOOOORORRRROOROROOORRRRORRROORRROOOOOOOOOROORRRORORRROOORRROROORROORRRRRROOOROORORRRORORRRORORORRROOOORROROORORROORRORRRRROROROOORORROROOROROORRRRORORRRRRORRRRROOROORRORROROORRRROOORRRRORORROORRORRROORRORRRORORRRRROORRRRORRROORRRORRROORRROORORRRORROOORRORRROROORRORRRROOROORRRORRRRRRORORRRORRRROORRRROROORORORRRROROORRRROOOORRRRORORORRORROORROOOOORORORORRROOORRRRRRROOOOROOROOOOOROROOORORORORORRRRRRROOROORRORRROOOOROOOOROOOORRRRROORROOORRORORRORROORRRRRRRRROOOOOOORORORROROROORROOORRRRROORRRORRRORORRRRRORROOROOROOROOOORRROORRRRROORORORROOOROOOROOROORROOOOORROOOOOOORRRRORORRORRROOROROOROROORRORRRROORRORRRORRORRRROROOORROROORRROOOOOOOOOOROORROOORRROOOOOROOROROROROOROOROOOOROOOROOORORRROROOOOOOROOOOROOOOOOROOOOOOROOROROOOOROOOOOOOOROOOOOOROOOORORRROOOROOOOOORROOROOOOOOOOOOROROOOOOOOOOOOROOROROOOROOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOORRROOOOOOOOROOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOROOROOROROROOOROOOOORRRROOOOOOOOROOOOOOOOROOOOOROOOOOOOOROROOOOOOOROORORROOOOOOOOOOROROOOOROROORROOOOOROOOOOOOOOOOOROROOOOOROOROOOORROOROROROOOOOROOROORORRRROOOOOOOOOOOORORROOOOOOORROOROOROOOOOORROROOROOROORRROOROOOORORORROOOOOOOORROOOOOOROROROROROOOOOOROROOOOOOROOOORRORRORORRROOORORRRRRORROOROOORRRRRRORROORORRORRROOORORRORROROOROROOOROROROOROROROROORROORRRORORORRRRORROROROOOROROOROORORROOORRRRROOOOROORROROORROORRORRRRRRRRRROROORRROOOORORRRORORRRORRRRRRORRRRORRRRRRORRRRRROOROORROROROORRORRROORORRORORRORRRRRORORRROORROORORORROORRRORRRRORRRORRRRROORROORROORRROOROORORRRORRRRRORROOOORRRRORORRRRRROROORRRROROOORROORRORROOORRORRRRRORORORRRRORRROOOOORORORRRROOOORRROOOROOROORRRRRRRRORRRORORORRRORRRRRROORORRRRRRROROORROROOORRROROORROOORRRRROOOROOORROOROROOOROORRRORORROOOROOOORRROROOORROROORRORRRORRORRROOORRORRROOORROORRORRORROOOOOOORORRRRRRRRROOROROOOOOOROOORRRROOOOOOORRRORROOORRROOORROOOOOOROROROOROOOOOOOOOOORROOOOORROROOOROORRRRROOROOOOOROOOOROOOROOROOOOOOROORORROROOOORROOROOOOROOOOOORROOOOORORROOOOOOOOOOOROROOOORROOOOROORROROROROOORROOOROOOOOOOORROOOOOOROORROOOOOOROOOOOORROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOROORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOORRROOROOOOOOOOOOROROROOOROOOORRORRROROROOOOOOROOOOORRORROOOOOORROROOOOOOOOOOOOROROOOOOOROROOOOORRROOOOOROROOOORROOOOOOOOOOOOROORRROOOOROORORROROOOORORROOOOOOROOOOOOOOOROOOROOROROOOOORRROROROROOORRRROROROOOOROROORROORROOOORROOORROOOORRROOOOORRRROOORROOOOROOOOOOORROROOORRORROORORROOOOOORROROROOOORRROOROOOROOROROORRRROOOORRRROORRRRORRORRRRORRRRROORRRRRORRRORORRROORORORRRRROOOOROROORRROOORRRROOROOROORRROOORORROORRRRORROORRRRORRRROORRRRROORRORROOORORRRROOORROORORROOOOORRORORRRORRRORRORRRRROROROOOROORRRROOROORRORRROOROOOORRORROOORROORRORRRRRRRORORRORORORROROOORORRROORRRROOORRRRRRRRORRORROORRORRRRRRRORROORORRROORRRORRRRROROORROOORRORRRORORORRRORORRRORORRORRROOORROOOOROOORROORRROORRRRRROOORRROOROOOORORROORRROOROOORROOORRRORROOORRROOROOOOROORROORORROORORROOOORRORRRROOOROORORRROORORROOOROOOORORRORRORRROOOORROOOROOOOORRROOROROORORRRROOROOROOOROOORRORRORORRROOOOOROOORROOOOROROOOOOOOROOOROROROORORRORROROOROOOOOROOROOOOOOOOOROOOROOOOORRRRROOOROROOROOOOOORROOOOROOOROOOORROORORORROOOOOOOOOORROOOOOOOOOOOORROOOOOOROOOOOOOOOOORROOROOOROOOOOOOROOROOOOOROOOROOOROOORROOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOORROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOROOOROOOOROOOOOOOOOOOOORROOOOOOOORROOOROOROOOOOOROOOROOROROOOOOROOOOROOOOOOOOOOORORROOOOOOOOOOOORRRRROORROOOOORRRROOOOOOOROOOROOROOOOOOOOOROORORRRORROOOORRRRROOROROOOROOROOOOOOOOOORROOOOOOOOROORROOOOOOOOOORORRRRROOROROORRRRRROOROROORROOOROOROROOROOOORRORROORRORORRROROOROROOOOOOROROROOROOROROORORORORROORRRORRRROOROORRRORRRRORRRRRROOOOORRRRRRRRROOOROORRROOOORRORORORROORRRORRRRORROOROOROROROORRRROORRRORRRORRORRROOROORROROOORRROOORRRORORRORRRRROOROROOOORROROOROORRROOOROOOORRORROORRROROOOORRRRROOROORROORRRORRORORRRRRRORRORORROOORRRRRRRRRRORRRROORRORRRRRROROORROROORRROROOORRORORRRROOROROORRRROROOORORORRROORRORORRROROOORORROORORRRRRORRRROORRORROROOOROOOROORRRROORRROOROOOORORRRORROROORRRRORORRRORROORRROORRRRRROOOORRROOORRRRRRRRORRRRROOORROOOORRRRRRORRRRRRROORORROORRRRORRRROOROOOORORROOOROROOROOOROOORROROOORRRRROOOOROOOOOORROORROOROOOROROORRRROROROROOOOORROOOORORROOOOOOROORROORORRRRROROOORRROOROROROOROOOOORROROROOOOROOROORROOOOOOOOOOROOROOOROOOOORROROORROOOOOOOOOOOOOORROOOOOROOOOORROORROOROROOOORROOOOORRROROOOROROOROOOOOOOOROOOOOOOOOROOROOOORORRROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROROOROOOOOOOOROOOOOOOOOOOORROOOOORROOOOOOOORROOOOOOORROROROOOORRORROROOOOOOOOOORROOOOOORORORROOROOORORORROOOOOOORRROOOOOROORRRORORRRRRRROROOOORRRROORORRROOOOROOOOORRRRRRROROORRRROOORORROORROOOOROOOROOOROORROORORROROOOROORROOOOOROORRRRRORORORROORRORORRRROROOORROOOORORRROROORRRORRROROOROOOORRRORRRROORRORRROROOORRRORRRORRRROOORRORORRRRORRRROORROORRRRRORROROORROOORRRORRORRORRORORORRORORORRROORRRRROROOOOORRRORRRRORORRRORRRRRRRORRRRRRRRORRRROROORRROORRRROORRORRRORRRORRROOROORRROORRRRRRRROOROOORRORORRRRORRRRRORRRROROROROOROOORORRROORRRROOORORORRRRROORORRRRRRROROORROOROOORRRRRRRORRORROOOROROROROOROORROORROORRRRRRROOOROOROORROROROOORRRRROORRORRRROROORROROROOOOOOOORORRRRRRROOOOOOOROORORROOROOOROROORRROOOOROROOOROOROORROOOORROROOOROOORROROORROOORROOOOOORROROOOROOORROROROOOOOOORORORRRORROOOOROOOOOORORROOOOROOOOOROOORRROOORRORRROROORROROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOROROROROROOOORRROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOROOOOOOOOORRROOOOOROOOOOROOOOOOOOORROOROOROOORORROOOOOOOOROROROROOOOOOROOOOROOOOROOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROROOOROOOOOOROOOOOOOOOOOORRROOROOOOOOOROOROOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOROOROOOOOOOOROOOORROOROOROOOOOOOROOOOOOOOOROOOROROOOOOOOROOOOOOOOOOROOORORORROORROOOROOOROOOOOROOOORROOOOOOOOROOOOROROOOORRROROOOROOORRRROOOOOOOOOOORORORORROOOROROOOROOOOROOOOROOORORROORORORROORRRROOROOORRRRRRROOROOOROOROROOROORORRRORRROOOOOROOOROOOOOORORRORORRRRRRORRROOOOOOOROOOOOOORROOROROOOORRRROORROOROORROORORROORRROORRRRRRRORORRROORORORRRRORRRRORROORRROORRRRRORRORRORRRRRRRRORORRROORRRROOORRRRRRORORRROOOORRRORORRROROORRROOORRORRRRROROROOORROOROORRRRRRRORORORROOROORRORRROOORRRRORRRRROOROORRRRORORRROROORRRORRRRRRORRRRRROOOOORRRRROOORRRRORRRROOROROROOOORORRRRRRROROORROORRRORRORROROORRRRRROROROOOOROORROROOOORORROOORRRROORRORRRROROORORRROROORROROOOORROOORORRRRRRRRORRRROOOOORRORRRORRRROROORRRRRRRRORRRRRRRROOOORRROOOROORRORROOORORRORORORROOOORROOOORROROROOOOOOORRROOOOORROROOOROOOOOROOROOORROOORRROOORROOORRROOROROOROOOOOOOOOOOORROOORROROORRORORROOOOOOOOROROOORRRORRROOOOOOROOROOOROOOOOORRRORROOOROOOOOOOOROOOOOOORROOOOOOOOOOOROOOROOOOOOOOROOOOROOOROROOROOOOROOOROOOOORROOROOROOOROOROOOOOOOOOOOOOOOOOROORRORROOOOOOOOOOOROOROOOOOOROOOROROOOROOROOOOOROOROOOROOOOOOOOOOORORRROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOROOOROOOROOOROOOOOOOOOOOOOOROROOOROOOROOOOOOOOROOOOOOOROOOOOOOOOOROOOOOROOOOROOOOOOROOOROOOOROOOOOROOOOOROOROROOOOOROORROROOOROROROOOOOOOOORROOOOOOOOORROOOOOOOOOOORRROOROOROOOOOROOROROROROROOORRORROORRROOOROOROOOOORRROORROOROORRROOOROORRRORRROOORROOOROORROORORROOOOROOORRORRORROOOOOROROROOORROORORORRROOOOOOROROORRROOORRROROROROOOOOOOORRRRRORRRROOORRRROORROOORORRRORORRROOOOOORROOORRROORORORRRORROROOORRRRRROORORROORRROORRRROOORRROOORRRORROOOROORRRRRRRRRORORROOROOOORRRRRORRORRRRRRROORRORORROROOROOORRORORROORORORROOOOROORRRRRRRRRRORRRRRRROOOORRROORORRRRRRRRRORRROORRRRORRROORRRRRRORRORORROOORRRROOORROOORRRORRRRROORORRRRROORRRORORRORRRORROORROOORORROORORORORROORROORRRRROOROOOORRRRORORRORORORORRROORROROOOROOOOOOORORROOROORROOORROOOROOORROOROOROOORRROORRROOOROOROOOROOORORRORORORORRORROROOORRRRROROORRORRORROROOOORROROROOOROOROROORRROROOOORROOOOROOOROROOROOOROROORRORORRROORRORORROOOOROOOOORROOOOOOOOOOOOOOROOOOORROOORROROOORROOOOOOORORROROOOOOROROROOOORRRROORROOOOORROROORRORROROROOROORORROOOOROROOOOOROOOOOOOOOROOOOROOOOROROROOROOOOOOOROOOOROOROOOOROOROOORROROOOOROOROOOOROOOOOOOOROOROOROROOOROOOOROOOOOOOOROOOOOROOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOROOOROOOOOOOOOOOOROORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOROROOOOOOOOOOOOROOOOOOOOOOOORRROORROOOOOOOROOORRORROOOROOOOROOOOOOORROOOOOOOOOOOOOROORROOOORORROOOOORROOOOOORROOROROOROOOROOOOOROOOOOROORRRRRORORROOOOOROROROORRRRROOORORORORROOOOOORORROOROOORORRRORROROOORORORRRRRRROOROOOOOOOORROOOROROORRORROOOOOROOORRORRROROOOROROOROOORORORRRRRRROOOOOROROOROOORROROORORORRRORRRRRROORRROORORRROOROOROORRORORORRORROOROORRRRRRORORORRRORRRROORROOROOOORROORRROORRORRRRRORRRROOROOORRRORROOORROROROROROORRRORROOOORRRROOOROORRRORORROOORRRORRORRRRROOROORRORRORRORRORRRRRROORORORRRRRRROOOROORRORRORRROOROORRORRRORRRRRORROROORORRRORRRORRRORROROROOORORRRORRRRRRORRRORRRRRRRORROORRROORRROORRRRRORRRROOOORRRRRRRRORRROORROOORROOORROOOOROOORRORORRROORRRORROROOROOOOROORRRRORRROOOROORRORROORRRRORRROOORROOORRRRORROORRRORRRRRORROROOORROOORROORROORRROOROROROOORROORORRROROOROROOROOOOROOROROROOOOOOOOORRRORROROROORROOOOOROOOOOOORORROOOOOOORROOOOROORORRRROOOORRROROROORRRRROOOORORROOOOOROOOOOOROORROROORORRROOOROOOROOROROOOOOROOOOROROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOROOOROOOOOOOOOROOOOROOROOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORRRROOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOROROOOOOOOROOOROOOOOORROOOOROROORORROOOROOOOOOOOOOROOROOOOOROOOOROOOORROOOOOROROROROOOORRROOORROOOOOROROROORROORROROOOOORROORROROOOOROOROROORRORROOOOOOOOOORORROOOOOOOOROOORORRRRROOROOOOROORRROORROOROORROOORROOOOOROROORRORROROROROOOOOOOORORORRRROOOOOOORRROOOORRRROROROOORRRRRRRORRORORRRORORRORRORRORROROOORRRORROROOOORROORORORORRORROOOOOOOOROOOORRRORROOOOORRRRRRRRRRORRROORORORORRROOROORORRROROOOROOOROROROORRROOORORRORRRORRORROOOOROOOROROOORRRORRORRRRRRRRRRRRRORRORRRRORORORORROORRRRORRRRORORROROOROOORORRRORRRORORROORRROROOOORORRROORROORRRORRRRORRORRORORRORRRRORRRRRRRORRRORORRRRORORRRRORRRORRRORRORRORROORORRRRROORRORORROOROOORROORROROOOORRRROORRORRROORROORRROOOOOOOOROOOORROROOOOOROOOOOOOORRRRROROROROOORROROOROORROORRROOORRORROOOOOOOROORORORROOOROOOROROORORORROOOOORRROROORRROROOORRRORRRRRORROOOROOOOOROOROOOOOROORRROORORORORORRROOOOOOORORORORROOOORORORROOOOORROROROOOORROORRROOOOROOORORROOOOOORROOOROOOOOOOOOOOOOOOOOROOOROOOOORORROOROOROOORROOOOROOROOOOOOOOROOROOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOROOOOROROROOOOOOROOOOROOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOROOOOOOROOOOROOROOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOROOOOOROOOOOROOOORORROOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOORROORROORROOOORROOOROORRRRROOORROROROROOOOROORRROOOROOOOOOOOOOORROOOOORRORRRRRROOORRROROROROOORORORRRRROOROOROORROROORROROOOOORRRRRROROROROOORRRRROOOROORRROOROOOOORRRROOROOOOOOOOOOORORROORROOROROOORRRRRORORRORORRRRRORRORORORORRRROROOOORRRORORROROOROROORORRORRRRRRRRRRORRRRORRRROOROOORRRRROORRRORRRORRRRROORRORORORRROROORRRRORRRRRRRRRORRRRRRRRRRRORORRORRROORRRRORORROROORROORRRROOOOORRORRRRROOORRRRRRORROORRORRORRRRORRRROROORRRORORROORROORRRRORORROORROORORRORORRRRRRRRRRORRRRRORRRORROROOORROOOOORRROOORRRORRRROOOORRRRRROORRORRROROROOROORRRRRORRRORRROORRROROORORRORROORRRRRRRRRRORRORRORRRROROROROOROOROORORRORRROOROROROOOORRROORORORROROROOOOORRRROORRRROOORRROROOROOOOORROOROORROOROOOORROOOORRROROROOROOOOOOROROROOORROROOOROROOOORRRRROOOOOOOOOORORRROROOROOOROOROOROOROORRROORROROOOOOOOOOORROOOOOOROOOROOOOOORROOOOOOOOROOOOOOOOROOOOORRROOROROOROROOOOROROOOOOOORROOOOOROOROROOOOROOOOROOOOROOOOROOOROOOOOOOOORROOOROOOROROOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOROOOOOOOOORROOOOOOOOOOOOOROOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOROROROOOOOOOOOOOOOROOROOROOOOROOROOROOOOOOOOOROOOOOROROROOOROOOOOOOOOOOOOOOOOROOOROORROOOOOOROORRROROROOOROOORRORORRORORORRROOROOOOOOOROROOOOOOOOOOOOOOOOORRORRORROOOOOOOOOOOROROOOOROOOOORRRRRRRORROOROOORROOOOOOOOORORROORROOOROOROROROOOROOOOOROOORROROOROROOOORROOOOOOOROOOORRROOOROOORRORRORRORRROORORRRROOORRRORRRROOOOOORRRRROORORROOROROORRROROOOROORROROOOROOROORRROOORRROORROROOOOROOOORRRROROOOOORORROORRRRROORRRRROOORRROROOOOOROOORORROOOOORROROOROOROOOOOORRRRRRRORROROOORRROORRRRRRRRRORORROORROORRRRRORRRRROROOORORRORRROOORRRRRRRORRRORRROOROOROROROOORORRORRRROOORRRRRORROORRRROROOORRRRRROROOORROOORORORRORORROORRRROORRROOROROORRRORORROOROROORRORRRORORRRROOOOROOOORRRRORRORRRRRROOOORROROOOOROOOROROORRRORRORRRRRROROORRRRRROORROORROROOORORRRRORRRRORRROOOOOROROOOORROOROROOOOROORRROROROORRRRRRRRRROOORRORORRRRRRROOROOOOOOROOROOOOOROORORRROOOOOROOOORORRORROOOROOOOOOOROOOOROROOORRRORRROROORRRROOORROROOOOOOROOOOORROOOOOROOOOOOOOROOOOOOOOOOOROROOOROOOOOOOOROROROOOROOOOROOOOOOOOOOOOOORROORORROOOOOOOROOOOROOOOOOOROOOOROOOOROOOOOORROOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOORROOOOOOOOROROOOOOOOOOOOOOOOOOROOROROORROOOOOOOROOOOOOOOOOOOOOROOOROOROOOOROOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORORROROOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOROOOOOOROOOOOOOOORROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOROOROOOOOOORROOOOROOOORROOOORROROOOOROOOROORROOOOOOOROOOOORRROOOOOOOOOROOOOOROOOOORROOOOOOOOROROOOROOROORRORORROOROOOOROOOOOOOROOROOROORORORROOOOOOROORROOOOROOOOOORRRROROOORRRORORRORROOOOOOOOOROORORRROOORRORRRRROOOOROORRRORRROOROOROOOROROROOORORROOORRORRROROOOOOORORROORRROOROROOORORRROORRRRRROOOROOOORRRRRRRROORORROOOORROORORROOOOORORRRORRORRROORROOOOOOROOROORROORRRRORRROOORROROOOORRRRROORRRRORROOORRRROOOROORROOORORORRRORRRRRROROORRRROOOOORRRRORROORORORROOROORRRRORRRROROROORRROROORRORRRRRRROORRRORORRRORRORRRRRROORRRORRROROROORORORORRRROOOROROORRROOOOOOORORRROROOORRRRRRROROOOROORRRORRROORROOROROOROOROOOORRRRRROOROORORORRROOORORRRORRROOOORORRRROROOOORORRORRRROORORORRRRRRRROORROROROOOOOOROROORRROORRROOOROROORROOOORRRRRRRRROOROOOOOOOROROOROOOROOOOOORRRROROOORRORORROOROOROOORRRRRROROOOOOOORORROOOOROROOOROOROROROOOOOORRRORROROOOOOROROOOOROROOOORRROOOROOOOOROOOOOOOOROORROOOOROOROOOOOORROORROOROROOOOOOOOOOOOOOROORRROOOOOORROOOOOROOORROOROOOOOOOOORROOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOROOOOORRORROROOOROOOROROOOOOOROOOROROOROORROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOORROOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOORROOOROROOOOOOOOOOOOOOOROOOOOOOORROOOOOROORROOOOOOROOOOOOROROOROOOOOROOORRROOOROOROOROROOROOOOOOOROOOOOOOOOOORORROOORROORRROOOOROOOORORORROORROOOOOOOOOROOOOOORRRORRORROOOOOOOROOOOORROROORORROOROOOROROORROORRRRROORROORORRRRORROOOORRRROORRRRRRROOOOOOOROORORORRRORRRRRRORROOORRORORRORRROORRRRRRRORORORRRRRRRROOROOORORRORRRORRRRORRROOOROORRRRRRRROROORRRRORRRRRRRORRRROOORROORRRRRORRORORORORRRORROOROROOOORRORORROOORRROORORRRRRRRRRORRORORORORRRRROOORRRRORORRRROORROORRRROORRROOROORROORRORORRRRROORORRORRROOROOOORRORROROROROORRRORRRRRORRRORROORORORRRROORORORROORROOORRRRROORROORRRRRRRRORRROOOOOORORORRRORROORROORRORRORROORORORRRRORRORORRORRROORRRORRROORRRRORORRRORRROROORRRROORORRRROOORORRRRRORRORRRROOORORRORRRRRRRORORORORROOOROROROROOOOOOOOROOOOROROOOROOOORROOOOOORRROROOOORROOOOROOOOOROOOOROROOORRROOOOOROROOOROOOOOOOOROOOOROOOORRORORROROORRROOOOROOOROOOOROOROOOOOORROROORROOOOROOOORROOOOROOORROOOOOOROOOOOROOOOOOOOOROOOOOORROOOROOOOOOROOOOOROROOROOOROROORROOROOOOOOROROROROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOROROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOROOOOORROOOOOOOOROROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROROOOROOOOOOOROOROOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOORROROOOOOROOROOOOOOOOOOOOOOOOROOOROOOOOOROOROOOOORORRROROOROOOROOOOOOOOOOOOOOROOROORROOOOOROOROROROOOORROOOOOOOOOROOOOOOORROOOOOOROROROOOROOOOOROOOOOOROORRROORORROORRROOOOROOORROORROORRORRROOOOOROROOORRROROOOROOOOROOROORROOOOOORRROORRRROOORRROOOROORRRORORROORRORORRRRRORRRORRRRORORRRRRRORROORORRORRRROROROOROOOROOOROOORROORRRRROOROROOORRRRRORORORRRORORROORRROROORORRROROOOOORROOOORORRRRRORRORORORRRRROOROOORRRORORRORRROOROOROROROOORRRRRORRRROROORORROORRORRRROROROROORORRRRORRORROOOOORORRRRORRRORRRROOROOORRRRRRRRRROROORRRRRROORROORRORORRRORORRRRRRRORRRRRRROOOOORRRRORRRRORRRRROORORRRRRORRRRRRRRORORRROORRRORRROORORROORORROORRRROORRRRORRORORRROOROORROORROORRORORORRORORRRRRORRROOOORORORRRRRROROORRROORRRORRORROOORRRROROOOOOORORORROORORRORORRORRRRROOOORRROOOOOROOORRRORORROORORORORRRROORRRRRORORORRRROOORRORORORROOOOOORROOOROOOOROORRROOOOOORRROOOOOOOOOOOOROROOOROOOROOOOOOOOOROOOOOOOOROOORRROOOOORROOOOOOOROORROROROOROORROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOROOOOROROROROROOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOROOROORROOOOOROOOOOOOROOROOOOOOROOOOOOOOOOROROOROOOOOOROOOOOOOOROOORROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROROOOOOORROOOOOOOOOROOROOORROOOROROOOOOOOORORORRORRROOOOORROOOOOOOORRRROORROOROORROOOOOROOOOROOOORROORRROROOOOOOOOOORROOOORROOROOROROORORRRORRORORORRRORRRROOROORROOOROOOROOOROOROORORROOROOORRORROOROORRROOROROROOORROOORRROROOOOROORROROROROROROOORRROOOORROOORROOROORRRROORRRROORRROROROOORRROOROROROOOROOOOORROOORORORRROROOROORORRRORRRRORORORORRRORRRRRORROOOROOORRROROORRORORRRRRRRRORRRRRRROORRRROOROORORRORRORORRROORRORRORORORORRORORRRRRRRRRORROOOOORRRORRRORORRRRORRROOOORRRORRORORRRROROOOORRORRORRORROOROROOROORRRRRRROOOORRRRRORRRROROORORORROOORRRRRRORRRRROROORROOORROOORROORRRRRRRRRROROOORORRRORORORROOOOORORORRRROOOROOOROOOORROOOOOOOORROOOOROROORRROOORORROORORORROROOORRORROOOORROOORORRRORORRRRROOOORRRRORRRRROOROOOORROORROOOOROOOORROOORROOOOOROOROORROOORROOROOOOOOROOOORRRROOOROROOOROROOOORRROROROOOOROOROOOOROROOOORRRROROOOOOROOOROOOORROORORROOOOOOORRRRRORROOOOORROORRROOOOROROOOOOOOOOORRORORORROOOOOOORROOOOORRRRORRROROOOOOOOOOROOOOORROOOOOROOOOOROROOOOOOOORORROOROOROOOOOOOOOOOOOROOORROOOOOOOOOOOOOORRROOOOOOOROOOOOOOOOROOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOORROOOOROROOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOROOOOOROOOROOROROOOOOOROROOROOOOOROOOROOOROOROROOOOROOOROOROROOOROROORORROROOROOOROOOOOROOROOROOOOOOOOOROOOOOORRRROROORROOORORRRROORRRROOOROOOOOOORORROOOOOROORORROORRRROROOOOOOOORORORORRORRROOROOOOROOROORRROOROORORRORRORROOORORROROROOORORRRROOOOOOROOOROOOORRRROROOOROROROORROOORROROOOROOOROROORRRRRORROROOORORORRROOORORRRORROROROORRRROORRRRROORROOORRROOROOOOOORRRRRRRROOOOROOOROOORORRRRORRORRRRORRRORRRORRORRORROOORRRRROOORRRRRRRRORRRRRRRRRORORRROORRRROORRORRRORORORORRORRRRORRRRROOROORORRROOOOORORRRRRORRROORROROROOOORORRRRRROOORRRORRRRROOROORRORRRRORRRROOOROROOOORRRORRRRORRRRRRORRROROORRORRRRROROOOROOOORRROORRORRRRORORORRROROOORORROROROROOOOROORORRRRORRRRROOOORRROOORROORRROROOOROOORRRORORROORRROOORRRROORORORROOOOROROOOOOOOOROROOOROROOOOORRRRRRRROOOOOORORRROOOROOOOORRROOOOOOOOOOORORRROORRRROROOOORROOOORORRROOOOOOROROOOOOOROORRRRROOOROOOOORROORORORORROOROORRRORROOOOOOORROOOROOOROOROOOOOOOOOROOOOOROOOOROOROROOOOOOROOOROROOORROROROOOOOROROOORROORRROROOOOOOOOOROROOOOOORROORROOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOOROOOOOOROOROROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROROROOORROOOOOOOOOROOOROOOOOOOOOOOROOOOOOOROROOOOOOOOOOROORORROOOOROOOOROOOOOORROOORRROOOOOOOROOOOOOROOOOROOOROOOROOROOOOOOOROOOOOOOOOORROOOROROOOOORRORRROROORRROOOROOROOOOOOROOOORORRRRORRRRRROOOOORROROOOOOOROROOOOOOOOOORRROROOOROORORRROOOOORRROOROORRORRORRRORRRRORORRROORRROROOOOOOORRRRRORROOOORROROORROROORORORRORRROROROOOORORRRRORRROROOORORROORORROOORROOROORRRORRRORRRRROOORRRRRROROORRRORRRORRRRROORROROROROOOORORROOROROOOORRRRORORORORRROOOOROROOORORORROORRRRRRRRRRRRRRRRORROROORRRRRRRORRRORROOORORORROOORORRRRRROROORROROROORRRRROROOROOOOORRROROOOROOOORROOORORORRRRORROROROORORRRRRRRRRRRRRRORROOORRRRRRRROORROROORRROORRRRRROOOORORORRROROOOOROOORROOOOORROROORRRRRORRRORRORRRORRROROORRORROORORRRROROORRRROOROROROOROOOOROOROOOOROOOORRROOORRROOORORRORRROOOORRRRRROORRROOORRROOOOROOOROOOOORRORRORORRRORORRORROORORRORORORRROOOOORORORRROOROOORROORROOOOOOOOORROOOORROOOOORROOOOROROOOOOOORROROOORORROOOOOOOROORRRROOOOOROOOROROOOROOOOROOOOOOOOOOROOOROOORORROOOOROOOOOOOOORROOOOOOOOOOOOROOOOOOORRROOROOOOOOOOOOOORRRRORROROOOOOOOROOOOOOOOOOROOOOROORROROOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOORRROROOROOOOROROOOORROOOOOOOOOOOOOROOROOOORORROOOOOOOOOROOOOOOOOOOROOOOOROOOROROOOROOOOROOOORORRRRROOOOROROOOOORORROOOOOOORRRRROORROOOOOOROOOOOROOROOROOOOOORORORORROOOORRROROROORROORRRROORORROORORRROROOOOORORROOORROROOROOROOORROOORRORORROROORRORRORRROOOROROORRORORRORRROOOORRRRORRRRROORORROOOOROORORRRORRORORRRORRRORRORRRORRRORRORORRORORRRRRROOROOORRRORRRRORORRRORORROROROORRRORORRORRRRORRRRROROORRROOOROROOOORRRRRRORRORRRRRROOORRROROORRRRRORRRROROOORRORRRRRRRRRROROOORRORRRROORORRRORRRRORRRORRRRRROOOOORRRROOORRRRRRRORORRORORRRORRRROORRORRRORORRROROORRRRROORORRRRRROROROROOOORRRRORRROOROOORORORROROORORORROORRRROORRRRORORORRRRRRRRRRRRORRRORROORRRORROROORRORRRORROOORROOOOROORORORORORRRRORORORRORROROOOOOOOORRRROORRORRORROROROOOORRRROOOOOOOORRORRRRORORROOROOOROROOROOORROOOOORROORRRRRRROORORROOOOROOOOROOORORORRRORROOOOOROOROOOOROOROOOOOOOOOOORRROOOORRROROOROOORORROORRROOOORRRROOOROOOOOROOOOOOORORROROOROOOOOROORROOORROOOOOOOOOOOROOOROOOROOOROOOOOOORROROOOOOROOOOOOOROOOOROOOROOOOOOROOROOOOOOROOROOOORROOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOORRROOOROROOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORORROOOOOOOOOOOOORROOOORROORROOROORROORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOROOORROROOOOOOOROOOOOROROOOOROROOROORRROROOOOOOOROOROROOOOOROOOROORROOOOORRROOORORORRORROOOROOOOOOORROOOOROOOOOOORRRROOORRROROOOOROOOORROOOROOROOOOOOOOROOOOROROORROORORROROROROOROOOROROORRRRORORORORROOOROROOROORROOOOOORRRRROROOOOOOOOOOORRRRORROROOORORRORRROOROOORRRORORROROROOORORROORRRROOROOORRRORRROORORRRRORROOROORRORRRORRORRRRORROORRRROROORRORRORORORRRRRRRRROORORRRRORROORRRRRRORRRRRROROROORORROORORRRRRORRROOROOROOORORRRRROROOROORRORRRORRRRRRRRRROORORRORRORROOOOORRRRORROROROORROORRORRRRRRORRORORROOOROROROORRRRRRROOROROORRRRORORRRORRORRRORORORROORROORRRROOORRRRRROOORROOROORRROROORORRRORRORORRRRRROOORORRRORRORORORRROROOORRRRRORRORORRORRRRORRRRRRRROROORRROOORORRROOOROOOORROROROOROOOROORRORROOROORROROORRROOOROOOOORROROROORRROOROOROROOOOORROORRORORRRROROORRORROORORRRRORRORROOROOORRRRORORROOOROROOOOOOOROOOOROOOOOOROROORRRROOOOOOOOROOOOOOORROROROOOOROROOOOOOROROOROOOROOOOOOOROOOORROOOOOOORROOROOROOORROOORROOOROOOOROOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOROOOOOOORRROOOOOOOOOROROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOROOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROROOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOROROOOOOOOOOORROOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOROOOORRORROOROOOOOOROOOOOOOOOOROOOOORRORROOROOROOOOOOOORRROOROOOOOOOOOOROROOROOOOROOORORROOOROOROOOOOOOOOORRRRORRRORROROOORROOROROOROOOOORORRRROOROOOORROOROORORORROROOOORRROROORROOORORORRRRORRROORRRRRORRROOOROOOOOOOROOOOORROOORORRROOOORROORRRORROOOORORORRROROOORRRORORORRRORROOROROOORORROORORRROOROOOOROORRORRRORRORRORRRROORORROOROORORORRRORROOOORORRRROORORROROORRRRRRRRRRROORRRRORRRRRRRRROORRORORRROORRRRORORORROROROOORORRRRRROORORRORRRRROORROROOOOOORRRRROORRRORRROOROOORRORRRROROORRORRROOORRRRRORRROOORRRRRRRRRRORORRROORORRRRRRRRRRRROORRROROORRORRRRORRROROOORRORORRRORORORRRRRRORRRORORORRORRRRRRROROOORRRRRROROROOORRRORROOOOOROORORORRORORRRRROORROOROOOORRORRRRRORRROOORORRROORRORROORRROOORRRROROORROOROOOOOROORRRRORRORRORRRROOROOOORORORRORORRORRROOOORORORORROROROOOROORROROOOOORRROORRRROOROOROROROOROROOOOOOROOOOOOOOOROROOOOOROORRRRRROOOOOROOORRROOOOORRROROOOOORROOORROROOOROOORROORRROOOROORROOOOROROOOOOOOOOOROOROOOOORRORRROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOORROOOOROOOOROROROOOORROOOOOOOOOOROOOOOROOOOORRROOOOOOOOOOOOOOOROROOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORORROROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOORROOROROOROOOOOOOOROROOOOOROOOOOOOOOORORROROOOOROOORRRORROOOOOOOOOORRRRROROOOROOOOORORROROROORROROOROOROORORRROOORORRORROOROORROROOORROORORROOROORORROORROOOOOORRRRROORORROOORROORROROOROORROORRROOORORROROOORORROOROOOOOORROOROROORRRRRRRRRRORORRROROOOORRRORRRROROOOORRRROORROOOOORRRRORRROOOORROROOORORORRRRRORORRRRRROORRRRORORRRORRRRRRROORORRRRORORRRRRRROOORROOROOORRRORRRORRROROORRRROORRROROOOROOORRRROROROOOOORROOOORRROROOORRRRRRROOOOOORRRROORRRORRRROOORRRRRRRORROORRRORRRORORRRORRRRORRORRRRRRRRROOORORROORORRORRRRRROOORRROOOORRRRORRRRRRRROOORORRRRRORORRRORORRRORORRRORROORROROOOROROORRORRORRORRRRRORROROOOROOOORRORRROORORORRRORRORORRRRRRORRORROOOORORRORORRRRRRORRRROROORRROOROOORRRRRRRROROOOROORROORRRROROOOROOOORRRROOOROROORROOROROROOOOORROORORRRORRRORRROROOROOOOOOOOROROOROOOROORROOROROOOOROOOOROOOROOORRROOOOOOROOORORRROROOORROORRROROOOOOOOOOOOOOROORORROOROOOROROOOOOOOOORROOOOOOORROOROOOOOROOOOROOOORORORRROROOROOOOOROOOOOROOOOROOORRORRORROOOROOOOROOOOROOOOOOOOROROOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOROOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOROOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROROOOROOOOOOOOOOOROOOOOOOOORROROOOOOOORROOROOOOROOOOOOOORRORRORRROOOROOOOOOOOOOOOOOOROOOOROOOOOOOROROOOOOOOROROROROOOORROOOOOOROOOROROOOOOOOOROORRROOOROOROOOOOOOOOOOOOROROOOROORROROOROOOOORRROOOROOOORROOOOOOOORRROROOORROOOORROOOOOOORROOOROROOOOORROOOORORRROROORRORRRROOOORORROOORRRORROOROOORRORRRROOORROROROROORRRORRROORORRRRORORRROORORRRORRROOOROROORRROORRRRORRROORRROOORORORRRRRRORRRRROROROROOORROOOORORORRROORORROORORORROORRORRORROOROROOOORROORRORORROROOOORRORRORORRRRRRRORRRORRROORRORORORRRRORRROORRRRRRRROORRROORRRRRORROORRRRRRORRORRRRRRROOORRROORRRORROORROROROOORROROOROOORROOORRRORRRRRRRRROROOOORROORROROROORRRRRRROOROROORORORORRORORROORRRRRROOORORRORRROORRRRORORRRRRORRROOOORROOROOROOROROROORRRORRROOROROOOOORRRRORRORRRROROROROOOORROORORRRORRRRORRORRRROOORRRRRRORORROOROOOROOOOOORRORRRRRORROORRORORRRROOOROORORRROOOROOORROORROOOOOROOOOOOROORRRROOROOOOOOOROROOOOOOROOOOOOORRORROROOROOOOOOOOOOROORORRROOOORORROROOOOOOOOROROROOOOOOOOOOOOOOOOOROOOOROOOROOOOROOOROOORROOOROOOORORROOROOOOOOOROORRRROOOROOOOORROROROOROROOOOOOROROOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOROOOOOOOOOROOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOORROROOOOOOOOOOOOROOOOROOROOOOROROOOROROROOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOROOORROROOOOOOROOOOROOOOOOROOOOOOOROOROOROOOOOOOROOOORROOOORROOOROOOOOOOOROOORROROROOOOOOROROROOOROORROOOOOOOOROROOOORROOOOOOOOOOROOOOROOORORORROOROROOOROOORRRRRROOOOOOOOOORRRRRRRROROOOOOROOROROROOORRORRROROORRRORROOORRRRRORRRRORRRRORRRRROORORROORRRRRRORROOROOOOOROROROROORRORRRRRRORRROOOORRORROROORRORORRORROORROORORRORRROOOOORRRORROROOOOOORRORRORORORRROOROROOROROROORORRRRORORORORRRORRRRROOORRORRRROROOOORRROORRRROOROOOOOORRRRRRORRRRORRRRRRRROORORRRROROORRROOROORRORRRORORRORRRRRRRRRRRORRORRRROORROORROORORRRRRROROROOORORRROROROOOROORRRRRORRRRORORROROROOORORORORRORRRROOOORRRRRORRRRRRRRRORRRRRORRORORRORRRRROROOROROROOORORRRRROROROOROOORRRORRRRORROOROOORORORRORORRORRROOROROORORORORRRORROOOROOORROROORORRRRRROROROORRRORORROORORRRROROOORROROORRRROORROROROOOORORRROOROROOOOOOOROROROORRRRRORRORROORROROORRROOROOROOORORRRROROOOROOOROOORROOOOOOOOROORRRRROOOROOOOOROOOOOOOROROOOROOOOOOOOOOROOROORRRROORROOROOOROROOOOOOOROROORROROROOROOROOOOOROOROOOORORROOROOOROOOOROOROOOROOOORROOROOOROOOOOROOOOOOROROOROOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOROOOOORROROOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOROOORROOOOOROOOOOOORRROOROROOOOOOOOOOOOOROOOOOOOROOROROOOOORROOOROOOROOOOOOOOOROOOOOOOORROOORRRROOOOORRROOOOOROOOOOOOOOOOROOOOOOOOOROOOROROOOORRRROOOOOROOORORRROOROOOROOORRORORROOROORRROOOOOOROORROROOOOOOROOOOROROOOOORRROOOROORRORORROOROROOROROROOOOOROOOOROOOORROROROORRRROORRROOROOOORRORROORORRRRORORROOORORRORROROORORRROORROOOOORORROOOORORRRRROROORRRRORROORRRROROORRRRRORROROORORRORROOOORORROORRRROOOROORRORRRROOOOOOORORORRRRRRRRROOOROORRRRORRRORRRRRRRORRROORROOORRRRRRRRRROORORRRRRRRRRRROORORORORROORRRORORORRROROOOORRORRRRRRRRRRRRROORORRORRRORRRROROOORROORROOORORORROORRRRORRRRORROORRORORORROROOORRRRORRORORORRORRRRORRRRORRRROORRRRROOOOOOORRRRROOORRROROOROORRRRORRORRRRORRRRRRRRORRRRRRRROORROROROOORRROROOORORORORROROORRRRRROORORROORROOROOROOOOROORRRORROOOOOORROORRORROOORRORORROORRRRROROOOORRORROOOORRROORRRROOROOOROOOROOROOORRRRRROORRORORRRORORRROROOROOOOOROOROROROOOROOROOOORROOOROOOOROOOOOOOOOORROOOOOOOOOOOOOOORRRROOOROOOORRORORROOOROOOOROOROOOOOROOOOOROOOROOOOORROROOOOOOOOOOROOOOOOROOOOOOOOOROOROOOOROOOOOOOOORRROORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROROOOOOOOOROOROOROOOOOOOOOROOOOOOOOOROOOOOOOROOROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOROOOOOOROOOROOOOOOROOOOOOROORROOOROOOOOOROOROOOROOOOOOROOOOOOOOOOOORROOOROOOOORROOOOROOOOOOOOORRORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOROOOROROROOOOROROOOOROOOROORRRORRROROOOOOROROROROOOOOORROOROOOOOOOROOORRROROOOORROORRRROOOOOROORROOOOROOOOROOROOOOOROOOORRROOOOOROROOORROROROORROORRORRRORORORRRORORRORRRROOOOOORRORROROROOROORRROROOOOOOROOORRRRRRORRRRRROORORROORORRORRRRROOORROORRRORRORRRRORRORROOORRRORRRRRRROORORORRROROROORRORRRRROROOOORROORRORRRRRORRROORRRRROORRRRRRRRRRORRRRRRRORORRORROROORORRORRRORRROOROOOOOROORRRORRRRRRRRRRRORRRROORRORRRRRROORRROORRRRRORRRRROORROORORRRROORRRRRRORORORRRRROORRRRRRRRRROORRRROROOORROOOOOROOOOROOOORORRORORORRORRROOROORRROOROORRROROORRRRRRRRRORRORORRROOOROOORRRRRRRROORORRROORRRRORRORRRORORRRRRRROROROOOOORRRRORORRRORRRRRRROOOORORRORROROORRORORROROORORORORROROOOORRRROROOOROROOROOOROROOROROORORROROORORROROOOOROOOROROROORORROROOROROOOORROOROOOROOROOROROOROROOROOROOOOOROOOROOOOROOOROROOOOORRORROORORORORRRRRROORROOOOOROOOOOORORRRROOROOOOOOOOOOOOOROOOOOOOOOOROOOOROROOROOOOOOOROOOROOOROOOOOOOOOOOOOROOOOOOOOORROOOOOOOROOOROOOOOOROOOOOOOOOROOOOOROROOOOOOOOOOOOOOOROOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOORROOOROOOOROOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOORROOROOOOOOOROOOROOOOOOOROOOOOOOOROOOOOOOROOOOROROOORORROORROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOORRRORRRORROOOOORROOOROOORROOOOOOOOOOOOROOOROOOOOOOOOORROOROOOOOOOORRROROORRROOROOORRORROROOOOROROOORROOOOOOOOOORRRROROOORRRROOROOOOOROROOOROOROORROOORORRRROOORRRORROROORROOOOOORRRRRORORORRROOROORRORROROOOOROORORROROOORROROOORRRRORRRROOOROORROORROOROROROOORRROOROOROORORROOROORROOROORORRRORORRRRRORRRRORRROOORRRROORORROOORRROORROORRORROROROROOROROORRORRRRRRROORORORRRORORRORRRRORORRROOROOOOOORORORRORRRROORRRROROORRORRRRRROORRORRRROOORRROROROORORRROORORRORRRRROOOORRROROOORRRROORRRRRORROORRORRORORRORRORRRORORRRROOOROROROORROOOROORORRRROORRRRORRRROORRORORORORRROROORRORRROROORRRORRROROOROORRRRRROORRROOORRORRORRRRROORROROOOOROORRRRRORRRROOOOROOORORRRRRRROORORROOOOORROOOOORRORORROOORROOOROORRRRRRORRRRRRRROROOOOOROORORRRROOORROORRRORROOOROOOORROOORROOROOOOOOOROOORRROROOOOROOOOROOROORRROROOROOOROOOOOOOOOROROOOORORRRORROORROORRORORORROOOOOOOOOOOROROOOROOOOROOROROOROOOOOOROOOOOOOOORROROOROOROOOORROROOOORROOOOROOOOROOOOOOOOOORROROOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOROOROROOORROOOROOOROORORROOOOOOOOROOOOOOROOOOOROOOOOOOOOROOOOROOOOOOOROOOOOOROOOOROROOOOOOOOOOOOORROROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOROOOOORROROROROOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOORRROOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOORROOOROOROOOROOOOROOOORROORRROOROOOOOROOORROROOOOOORROROOOOOOOOOOOOROOOOOOOORROOORROROOOORROORRRRRROOORRROROOROROOROROROOOOROOROOOORROOOOORROOOROOOOROORRRRRROOOROROROROOORRROOOOOORORRRORROORRROROOOOORROOOOORRRRRRROROORROOOORRRRRROOOORROROOROROOOOOORRRORRRRORRRROORROORROOOOROOROROOOOORORRRRRRROOROROROOOORORRRORROORORROOORROOORORROOORORRRRROOOOROOOOOOROOROOOROROORRRRORORRRRROOOOORRRRROORORRRRRRORRRRRORROORORROOORORRRROOOOOORRRROROOOROOOORORORRRORRRROORORRROORROORROOOROOORRRRORROORORORRRORRORRRROOOROROROORORORRORRORRORORRRRRRRRRRORRRRORORRRRROOORRORRORRRORROROOOOORORROOOROROORROORORROOORRRROROORRRRRORROORRRRROOOOROROROOROOORRRROORORORRRRORRRRORRRRRRROOORROOORRRRRROORROORRRROOOOOOOROOOROORRRRROROOOOROROORRROOROOOROOORROROORRRROORRRRORROOROOOORROOORROROROOOOOROOOOROROROOOROROOROOORRROORORORROOOORRORORRORRORORORORROOOOOOOOROOROOOOOROROOOOOROOOOOOROOROROROORROROROOOOOOOOOOOROROOOROOOOOOOOOROOOOROROROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOROOOOOOROROOOOOOOOOOROOOOROOOOOOOOOORRROOOOOROOROOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOORROROOOOROOOOROOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOROROOORROOOROOOOROROOOROROOOROOOOOOOOOOORROORROROROOOOOOOOOOOOOOROOORRRROOOOROOOOOROOOOOROROOOOORROOOOOOOROOOOOOOROOORRRORRRROROOOORRRROOOROOROOOORRROOOOOOOORROOROOOOORROORRRRORROROROOOOOOOORRROROOOOOOROROROOROOROOOOORORROORORORRROOOOOROOORRORRORRRROOORROOOROOOOORROORRRROROOOOOORROOORRROOORRRROOOROROROOOROOROOORRRROORROOORORORROROOROORRROORRROOORROOORROROORROOROORRRRORRRROORRRRORRRORRROOOOORRORORRORORRROROROOROOOORRORROORRORROOOROORROROOOOOOROOOROORRORRRORRORRRRORROROOOORRORRORRRRROROORRRORRRRORRRRRROOOORRRRROOORORRRRRROORROORRRORRRRORRRORORRRRRROROROOOROROORRROORRRRRRORORRROOOOOOORRORRRROORRROOORRRRROROOOOOORRRORORRRROROROOOOOOORRRRRRROOORROROOROROOROORROORORROOOOROOOOOROROOROORRRRROOORRRORRORROROOOOOOOORROROOOORRROORROORRRROORRRRRROOOROOROOOORRROORROORRRRORRRRRRRROOOOOROOOORRORORRROROOOOORRROORORRRROOROORORORROOOORRORRRRROOOORORRRRROOORRROOORROROOROOOOROOROOOOOORRROROOOOOOROOORRROOORROROOOOROORROOOROOOOOOOOOOOOOOOOROROROOOROROROOROOOOOOOOROOOORROOOROOOOROOOOOOOOOOOORROROOOROOOOROOROORROOOOOORROOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOORROOORROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOROOOOOOOORROROOOOOOOOROOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROORORROOOOOOOOOOOROOOOROORROOOOORRRRROROOOOROOOROOOOOOOROOOOOOOOOOOROOOOROOROORRROOOROOOOOORORROOOOOORORORRROROOORRRROROROOOOOOROOROOOOOOOOOOOROOROORORROOOROOOROOORRROROOOORROOOROOOOOOROOOORORRRROORORRORROORROOOORORORRRROORORORORORRROORRORRORROOORRORRRROOOOOOOOORRROOOOOOROROOORORORORRROORRORROOOORRRRRRRRROOOORROORRRROOOOOORORROORORORRROORRRRROORORRROORORRRROOOOOOORRORRRROROOOOORROOORROROOROORORRORRRRROOROOOROORORRRROOROOOORRRRRRROOROOORRRRROOOROROOROROOOROOORRRORRRROOOORRORRRRRROORRRRORRRRRORRRORROROROORRROORRRRRRRORORORRRRRROROORRORRRRROOORRORROOROORORRRRRORRRRORRROOOOORORORROROROOORROROOORRROOOORROROORRRORORRRRRORRRROORRRRORRROORRROORRORORRRORROOOOORORRRROORROROORRORROOOORRROORRRRROORORROOORRROOROORRORRORRRROOOORRRROROORROOOOOOROOORROROOOROOROOROOOORORRROOOORORROOOROOROOOOOORORORRRRRRRROORORROOOORRORROOOROOROOOOROOORRRRROOOOROOOOOOROORORRRROOOOROOOROOOORROOOROOOOOOROOOOORRRROROOROROROROOOOOOOORROOORROOOOOOOOORROOOOROROOOOROOOOOROOOOROOOROOOOOOOOOOOROOOOOOROOOORROROOROOOORRROOOROOOOROOOOOROOOOOOOOOOOROOROROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOORRROOOOOOOOROOOOOOOOOOOOOOOROOOOROROOORROOROOOOOOORRROOOROOOOOOOOOOOOOOOOORRORROOROROOOOOROROOOOOROOORROOOOOOOORORROOOOOROOOOORROOORROOORROOOOOORORROOOORROROOOROROORRRROOOROOOOROOORROORROOOOOORROROORORRROOOOOOROORORROORROOROROOORROOROOOROROROORRROROOROORROOOORORORORORRORRORRRRORROROROOROOOOORROORRORRROORORRORROOROORORROOOOROOORRRROOROOROOORRROROORROOROORORROORRRRRORROOORRRORRRORRRRRROOORORROOOOOORRRROORRROOORRRRRORRRROOOORRORROOORRRORORRORRRRROROROOORRRRRRRRRORRROORRROORRROOROORROOOOOORRRRORORROOOOROROOORRRRRORROROORROOOORRRRROORRORROORRRRRRRORROORRRRROORROROROOOOORRRORRROROROROROROORROROOROORRROORRROORORROORROORORRRRRRORRRORORORRRRRRORRORRRRRRORORRRORROROORORORORRRROROROROROOORRROORORRORORROORRRORRRRRORROROORORRRRRRROORROOROROORRRRORORORRRROOROOOROORORRRRRROOORRROOORROOOORROOOOOROOORROOROOOORROORORRROORORROORROOOROROROORROOOOOOOORROOROROORORROOROROOOOROOROOROOROOOROORRROOOOOOOROOROROOROOOOOOOROORORROROROOORROORRROOOROOROOORROROOOOOROOOROOOOOOOORROOOROOROOOOROOOOOOOOOOOOOOORRORORRROOROROOOOROOOOROOOOOOROOROOROORRROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOROROROOOOOOOOOOOORROOOOROOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOROOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROROOOOOOOOROOOROOOORORROOOOROOOOOOROROOOOOOROOORROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROROROOOOOROOOOROOOROROROROOOOOOROOOOOOOOROOOROOORRROOOOOOORROROOOOOROOROOORORRRRRROOOROORROORRROOOROOROOOOOOOOOOOOOOOOOOOROOOOORROOOOROOORROOROOOROOOOROROOOOROOOOOOORROROOROROOOORRROORROOOOOORRRORORROOOOOROROOOORRORRRRROOOOOROOORROOOOORRRORORROOORRORORRORRRRORRRRRORROROOORRRRORROOOROORRROROOOOORRORROROOORORORRRRRROOOORORORROORORRRORRRORRRRRORRRRRRORRRROROOOORRRROROOOORRORORORRORRRROORROORORRORRRRRRRRORRRRRROOORRRRRRORRRRRROROOROROORRORORRRRORROORRORRRRRRRRRRRRROORRROOOROOORRRRRRRRORRRROROOOORRRROROOOORRRORRORRRRRORORORRRROOORORRROORRRORROOORRROORROORRRRORRORRRORRRRROOROORROOOORRRORORRORROORORRROOORORRORRORORORORROOOROORRRORORRROOROOOROROOORRORRORORRRROOORRRROOOOOOOROOORRRRORRRRRRROOOOOROROOROROORORRROROROOORRORRRRORRORRROOROOORRRRORRRROORRROROOROROROOOOROROORORORRRORORRROOOOOORRROOROOORORROOOROOROORROOOOOROOROOROOOROOOOOOOROORORRORROOOOROOOOOROOOOOOOOOOROROROOROOORROROOOOORORORROOOROROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOORROOOOOOOOOOOROORRROOOOROROOOROOOOOORROROOOROROOROOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOORROOOOOROOOROOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOROOOOOOROOOOOOOROROROROOROOOOOOOOOOOOOOOOOORROROOORROOOOOROOOOROROOROROOROOROOROOROOOOOORROOOOROOOOOROORROROOOROOOOOOOOORROOORORORROOOROOROOOOORORROOOOORRORRORRRORORRROOOORORORROORORROROOOOROOORRROOORORORRROOORORRORORRROORRROORORRROOOROOOROOOORRRORRRRORRROROOOORRROOOORRROORRRROOORORRRORRRROORROOOOROROOOOOROOOROOORORRRRRORRROROOOOOROORRROROROORORRROOOORRORROOROOORROORRORORRORORRRROOOROORRRORRRORRROORRRRRROOORRRROORORRRRRRRORRORRRROOOOROOROOROORORRRORORRRRORORRRORROOORORRRRROROORROOORRRRRRRRRRROORRRRROORORRRROOROORROOOOOORRROORRROORRROOORRORRRRROOOROOOOOROORRRRRRRRRRRRROORRRRRORRRORRORRROORROOORORORRRRROROOROROORRRORRORRORROORORRROOORRORORRRROOORRORRROOOORORORRRRRROORRROOORRROOROROOROROOORRROORORRROROORRRORORRROORORORRRORRRRRORRROROOORROORORRORRRRORORRORORRRORRRRRRROORROROOOORORROOOOOOOORRRROOOOORORROROROOOOROROOOORROROOOORRRRRORORROORRROROOOOOOOROROOORORROOORRROOOOROOOOOORROOROOORORROORRRRRROROOROOORORROOOOOOOOOORROROROOOROOOOROOROOOOORRRRORORROOOOROOOROROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOROOOROOOROOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOROOROOOOOORROOOROOOOOOOOOOOOOOOOROOOOOROOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOROOROROROORORORORROOOOROOOOOOOOOOOOROOOOROOROOOOOROOOOORRROOOOROOOOROOOOROOOOOOOOROOOROOOOOROOOOOOOOOOROOOOORRORROOOOOROORROROROOROOOOROOOOOOOOROOOOOOORROORROOOOOOOOORORORRRORROOOOOOOOOOROROROOORRROORRROOOOOOOROORROOOOROOROROOROOOROROROROOORRRRROORROROOOOOOORRORROOOOOOROOROOORROROOOOORRROOORROOORROOOROOORROORORRRRORORORORRORROROOORROOORRRORROROOOROORROOOOOOROORORRRORROORROOORRRORORRRRRRROORORRROOROORROOOORRRROOROOORORORRROOOOROORROROORRRRROORORROROROOOORRORRRRRRRRRRRRORRRROORRRRORRRRRROORRRRRRROORORROOROORORRORRRRORRROORORORRORORRORORRORRORRORRROOOOROROOOORROOROORROOORROORRORROROORROORRROROROOROOOORROORROORRORROORRRROROORRORRRROORRRRORRROORRORORRROOOOORRROORORRROOORRORRROOORRRRROROOOOOROORRRRRRRRRROORRRROOORORORRRRROOORRRRRORORRROOORRRROOORRROOROORRORORRRROOORROOORROORRRRRORORROORROROROROOOROOOOOOOOROROOORRORROROOORORORROOOOROROROOORRRROROOOROOROOOROORRROOOROROROOORRRROORORRROOORRRRRRRORROROOROROOROOROOROORRRRORROOROOOOOOOROOOOORRORORRRROOROOOOROOOROOOROOOOROOOOOROOOOOOROOOOOOOOOOROOOOOROOOOROROROOOOOOOOOOOOOORORROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOORROOOOOOROOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOROROOOOROOROOOORORROOOOOOOOOOROOOOOOOOOROOOOOOOOOOORROOOOOOOOROROOOOOROOOOROOOOROROOOROOOOOROOOROOOOOOOOROOOOOROOOOROOOOOOOOOOROORROOOROROOORROROORROROROOROORORROORRORRRROORROOOOOOOROOROROROOOROORROROORROROOROROOOOOOROOOROOROROROOOOORRRRORORROOOROROORROROOOOOROOOOORORRORROOOOOROORRROROROOORROOOORRORRORROROORRRRRROROORRORORRROROOOOROORORRROORORRRRRRRRORRORRORRROOROORORROORRROORRROROOORRRRRROOOORRRRRRRRORORROORROORRORRRROORROOOORRRROOORRRRRROOOORORORRROOOOOOORRORRORRRRORRRRRRRRRRRORRORRROOROOOOORRRORRRROORRRORROOORRRRROOOOOORRRROORROOORRRROOOOROORRORRORRORRRORRRORRORRORRRRORROROORROROOORROORORRORRRRRRRORRROROORRORORRRROOORRRRORRORRRRRORRRRRRROORRORORROOORRRRRRROORROROOROROOOOROORRRRRORRRRRRORORRRRORRORORRRORROROORRROROOROORORORORROOORRROROOOOORORORROOOOOOOOOOROROORORRRROOOOOOROORRRRORORROOROOOOROORRRROROOOROOROOOOROORROROORRORRORORROOROOORROOOOROOROOOOROOOROOROOOROOOOOOOROOROROOOROORORROROOOROOORRROOOOROOOOOOOORROOOOROROROROROOOROOOOROOOROOROOOOOOOOROOOOOOROOROROORORROOOROOOOROOROOROROOOOROOOOROOOOOROOOOOOOOROOOROOOOROOOROORROOOOOOROROOOOROROOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOROOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROROOORORROOORROOOOOOOROOOOOOOOOOORROOROOOOROOOOOOROOROROOOOOROOOOOOROOOOROOOORRROOOORORROOOOOROROROOORROROOOOORROOORRRROROOOOROOOORROROROOOOORRRORROROOORRRROROOORRORROROORRORORRRROOOROOORROOROOORROOOOOORRROROORRRRORRRRORRRRROOOORRRRRRRRROOORRRROORRRRORROORRROOOOOORRRROORORROORRRRROOOORORORRRRRRRRROORORRRRROORRRRORORRRRRRRORRRRORRORRRRRRROORRORROOROORRRRRORRRORRORRRRRRROOROROOORRRROOOORRROOOOROOORRRRRORORRROORRROROORRRRORORRORRORROROORORRORRRRRRRORRRORORRORRROORRRRRRORRRRRRRRRRROOROOORRROORRRRROORRRRRROORRROROROOOOORRORRROORROOORRROROORRROOOOOROOOOROROORROOROOOOOOORROOROORRROORORROROORROORORORRRORROOORORRORRORRRORRROROOOROORROORRRRORRRRROOORROROOOOOROOROORROROROROOOORRORRROORRRROOOOOROOORROROROOOOOOOOROROOOOOOOOROOOROOORRORRROOOOROOOOOOROROROROOORROOROROORRRROOOORRROOOROOOOORROOOROOORROROOROOOROOROORROOORROOOOOOROORROOOOOOOOROOOOROORROOOOROOOOORORRORROOOOOOOOOOOOOOOROOOROOOOOOROROOROOOOOOOOOOORROOOOOOOOOOOOOOROOOORROOOROOOROOOOROOOOOOOOOOOOROROOROROOOOOOOOROROOOOOOOOOOOROOROOOOOOROOOROOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOORROOOOOROOOOROOOROOOOOROOOROOROOROORORROOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOROOROOOOROOOOOROOOROORORROROOOOOROOOOROROOOOOROOOOOOOOOOROROOROROOOOOOOROOOOOROOOOOOORRROROOROOOOOOOROOOOOOOOROOOOOOOROORRROORROORROOOORRROOOOOORROOROOORORROROOROROORROROOOOOOORROORORRORROORRROOORORROROOOORROROOOOOORRROORRORROOOOOOORROOOOOOORRRORORRROOROOORRORRORRROROORORRRRRRORORROORROOOORRRRORRRROROOOORRRORRROORRROOROORRRORRORORRROORORRRROROOROORRRORROROORRRROOORRRROOORORRRRORRROOOOROORRRRORRRROORRRRRRORRRRROROOORRRROOOROOOROORRRRRROROROOROOORORORRRORROROROROORORRROOOOOORORRRRRRRRORROOOORRROROROOOOROROOROORRRRROROORRRROORROORROOORRRRORORORRROROOORORROORORRRRROORROROORRORRORRRORRRRROOORROOOORRRRRRORRRORRRRROOOOROORORRRRRRRRRRRRROOOOOORRROOOOOOORRRRRRORORORORRORORRORRORRORRRRROROORRRRRORORORROORRROROOORORRRRRORORRRRRRROOOOROROROORORROOOOOOOOOOROORRROOROROOOROORROORRROOOROOOOOOROROOROORROROOORRROORROROROOOROOOOOOOORROROOORROROOOOOORRROOOROROOOOOOROROOOOOOOOOROOOOOOOOORROOOROORROROOOOOROOROOOOOOOOROOOOOROOOOOOOOROOOOOORROOOOOOOOOOOOOOOROOOOOROOROOOOOOOOROOROROOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROROROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOROOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOROOOROOROOOOOORROOROOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOROROROOOOOOOOOOORORRRRROOROROOOORROROOORORORROORORORROOOORRORRRRRROOORORRORORROORRROOOOORORROOOOOOORRORRROOROORRRROORROOOORRROROOORORRRROROOOOOORROOORRRRROROORRORROOROORORRRROOOOORRRORRRORRRRRRRRROROOOROOOOROOROOOROOOOOOORRRORRRRRRROOOOORRRORRROORRORRRRRRROORRRRRRRRORRORRRROORRRRRRROROOOOROROORRRORROOOOROOROOOROROOOROOOOOROOROOORORRORORROROOOOOOORORORRRRROOORROORRRRORRORRROORORRRRRRRRRORRRRRRORRRRORORORRROOOOOORROOOORRRRORRRORRRORORRORRRORROROOOORRRRROOORRRRRRRORORRRORRROORROROORRRRRRROORORORRORROOORROOORRORRRORRRROORRORRROORRORORORRROOROOROROOORRRORRRRRRORRRRRORRRRORRORORRROOROORROORORRORRRRRRRRRRRRORROOROORRORROOORROOOOOORRRRROOROORROORORORRORROOORRORROROROROORRRORRORRROOOOOOROOORRROOOORRORRORORORROOOROOOROOROORORORRRROROOOROOOOORORRROOROOORRRROOOOOORROOOOOROOOOOOROOROOOOORROOOROOOORRRRORRROOOROOOOOOOOOORROOOOOOOOROOOROROOOOOOOOORROOROROOOOROROOROOROOROROOOOOOOOOOOROOOOOOOOOOORROOOOOOOROROOOOOOOOORROROOOOOOOOOOROOOOOOOROOROOOOOOOOOROOOOOOOROOOOOOROOROOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOORORROOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOORORROOOOORRROOORROOOOROOOOOOOROOROOOOOOOOOORORROOOOROROOOOOOOROOROROOROOOOOOOOOOROOOOOOOOORORROOORRORORROOOORROROOROOOOOOOOOOORORRRRRRROOOOOORROOOOORRROOROORRRROOROROOORRORORRROOOOOOOOOOROOOORORROROOROOOROOOROROROORORRRORRROOROOORROOORROORROROOOOROROOROOROOOROORRRRORORORRROOORROOORROORRRRORRRRROROROOOOORORORRRORROOORRORROOORRORORORROORRORRRRRORRRORRRRROROORROORRROOROORRORROORROOOORRRRRRRRORRRROOOORRORORRRORROORORRRROOROROORRORRRRROROOOORRRRRRROOROOROOOORROOORRROOOOORROORRRORORORRORORRRRRORROROOORRRRORRORRORRORRRRRORRRRORRORROORORRRORRROORORROOROROOORROROORRRRORRRRORROORORRRROOOORRRROORORRRROORRROORRRRORORRRROORRRRROORRRRROOORRRRORRROOROROOROOOROROROOROOORORORORRRORORORORROORORRRORRROROORRORRRRRORRRORORRROORORRRORROROORROOOROROROROROOORORRORROORRORROOOORROOOORORORORROORROOOROROORORRROROORRROROORRROOROROOROOOROOOOOORROOOROOORROROOOOOROOOOOORORRRROORROROOOOOOOOROROOOOOOOOROROOROOORROOOORORRROOOOOOOOOOOOOOOOOOOROROORRROOOROOOOOORORORROOOOOOOOROOROOOOOOOOOOOROOOOOOOORROOOOOROORROOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOROROOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOORROOOOOORROOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOORROROOOOOOOOOOOOORROOOOOOOROOOROOOOROOROROOOOOOORORRRROOOORRRROORROROROOOROORROROOROOOOOROORROOROOOORRROOOOOOROORROROOOOROOOROOOORRROOOORROROOROOOOOROOOOOOOROOROORRROROROOOOOOOORROOOROOROROROORORROOOROOOROROROOORRRORRRRRRRRROOOOROROROROROOOOOOOORRORRRORRORORRRRRORRROOOOOORRROOROROORRROORRRRRRRORROORRRORORROORRORRORROORORORRRRRORRRRRORORRORRRRRRORORRRRORRRORROORRRRRORRROOORROOORROOOOROORRROORROORORRRRORRRORORRRRRRORRRRRORORRORORRRRRRRRROROROROORRORORROOROROORROOORRORORRRORORRRROOOOORRORRRORRRRROROOROOOROROROROORORORROOORRRRORRRORRORRORROROORRORORRRRRRROORROOORROROROORRRRRORORRRORORRORRORRORRRRRORORRROORRRRROROOOORRRRRRRROROOROOORRORROOORORRRRRORRRROROORRRORROOROROROROROROORROOOROOOORRRROROOOROROOOORROOORROOOOOOORORROOOOORRRRRRRORRORROOROOOOROOOOROOORORROORRORROORROORORRROOOROROOOORRORORRRROROOROORRRRRORRORROORORROOOOOOOROOROORROOORROROORRORROOOROOOOOROOROROOOOROOOROOROOORRORROOROORRROOROOROOROOROOOOOOOOOOROORROOOOOROOOOROOOOOOORROOROOROOOOOROOOROOOOOOOROOOOORORROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOROOOROOOOOOOOOROOOROOOOOOOOOOROOOOROOOROOOROOROROOOOOROOOOOROOORROOOOOOOROOOROOOOOOOOOOROOROROOOOOOOOOOOOOOOROOOROOOOOOOOOROOOROOROOOOOOROOROROOOROOROOOOOOOROOOOROORORRROOOORRRORROOOROOOOOOROOOOOORROOORROOROOROOOOORROOOOORRRORORROOROOOROOROOOORRORORROOOOROOOORRORRRORORROOOOOORRROROOOROORRROOOOOOOROOROORRRROORROOOORRROOORRRORRORRROOROROORRRROROORROOORRROOOOROOORORRRORROROOROROORRORRRRROOOROOOOOROORRROOOORRRRROOOROOORROORRROROROOORRRRROROOOORRRRRORORROOOORRRRRORORORRROOORRRRRRRORORRROOOROOROROROORROOORRRORRORRORRRRRORRORORRRRRRROROORORORRRORORROOOROOROOOROORORROROOOORRORRRORRRRRRROROORRRORORRRROOOROORRRORRROROOOROOORROOORRORRORROORORRRORRORROOORORRRRRRRRORROROOOORORORROORORRRROORRRORRRORRRRROORORRORRORRRORRROROORRROOORRRRRROORRROOROORROROOOROROROOOOORRORRRRORRORORRRROOROROORROOROORRRRROORRRORORORRORRROROORORRRROROOOOOOOOOOOOORRRRORORRRROOOOOOOROOORORRROROORROROOOOORROORRRORROOORRROOROOORORORRROOORORROROROOROOOOORORORORRROROOROOOOOORRROOOROROORRROOOOOOORROOORROOROOOOOOOROOROOOORROOOROROROOOOOOOOOOROOOOOOOOOROOOROOOOOROOOOOOOOROROOOOOOOOOOROORORROOROOOOOROOOOORROOORROOOOOOOOOROROROROOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOROOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROROOOROOOOOOOOOROOOOOOOOOROOOOOROOOROROROOOOOOOROOOOOOOOOOROOOOOROOORROOOROOOOOOOOOOROORRROROOOOOOOOROOOOOOOOOOOOOOOROORRROOROOROOOOOOROOOROOORORROOROOROOOOOOROROOOROOOOOROOROOORRROOOORROOOOOOORORROOORROORROOROOROROOOOROOOOOROOOROROOOROOOROOROROOOOORORROOORROOOROOORORROOOROROROROOROROROROROORRROOOROOOOORORRRRORROROROROROOOOOOROOORRROOOORRRRORORROORORORRORORORORORROROORRORROROORRRRROROOROOOOORRORROOOOOORRORORRRRROORORRRORRRRORRORRROOOROORORRRORRRORROROOOOOOROORROROOROOORROORROOOROOROROORRRRORRRRORRRORRORORRRORRORORROOOORRRRRRRORORORRRRRRRROORRORORRRRROOORORRROOORRRRORORORRRROOROROROORRRROORRRROOROOROORROOORRORRRRROORRRRRRORORORRORORRRRROORRRORRRRORRROOORRRRRRRORORRRORRORRROOOOORRORRRRORROORRORORRRORRROOOOORRROORORORORRRROROROROROOORORRRORRORORRRORRROOORORROOORORORRORRROOOORRORRRRRRRROOOORRORROROOORRORORROROROROOOROROROOOORORRRORROORROORORRROOOOOOOOOOOOOROOORRROORROOOOROORORRRROOOROROOOOOROOROOROOOOORROOOOOOOOOOROOROOOOOORRRROOOOOROOROORRROORROOOOOROOOOROOOOORRROORORROOROOOROOOORROOOOOOOOOOROOOORRROORROOROOOOOOOOOROROOOOOROOOOOROROOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOORRRROOOOOOROOORORORORROOOOOOOOOOOOOOOOOOOOROORROOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOROOOROOOROOOOOOOROROOOROOROOOOROOOOOROOROOROOOOOORROOROORORORRROOROROOOOOOOOOOROOROOOOOORRRRRORROOOOOOORROOROORROOORROOROOROROOOOROOOOORRRROOROOOROOOROROROOOOOOOOROROOROOOORRROOOOROOOORROOORROOOROROORRORRORRORROOOROOOROOROROOROORRRROROOOOROOROOORORRROORRRROORORRRROORROOOOORRROOROORROOORROOOOROROOROROOOORROORROROORRRORRRRORRRROORRRRRRRRROORRORROROROOORORRRRROORRORROORORORRROOOORORRORRRRORROORRORROOROOROORORORRROOORRRRRRORRRRRRORRROOROORRRORRRRRORROOOORRORRRORRRRROOORORRROORRRRRRRRORRROOORRRORRORORRRRRORRORRRRRRRROOORRRORRRORRRRROORRRORRORORORRRRRROOORORRRROORROOOOOORORORRROORROROOROORORROORROROORRRROORROROOROORRRRORRRRRRROOROORRRROORRORRROORRRROOOOOORRORRROORRRROOOOOORRORORRRORRROOOOOROOOROORORROROOOORROOOROOORRRRRROORROROORORROOOROROOORRRROOOORRORROORRROOORROROORORROROROROROROOOOOOOROROROROROOOROORRRROOOORRROOOOOOOOOOOOROOOOOOOOROOROROOOOOORRRROROROOOOROOORROOOOOROOROOOROOOOOOOOROROROOOOOORRROOROOORRROOOOOROROORROOOOOOOOORORRROORRRROORROORRROOORROOOOOOORROROOOOROOOOROOOOOOOOOOOOOORRORROOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROROOOORRRROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROROOOOOOOOOROOROOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOROROROOOOOOOOROROOOOORROOOOROOOOOOROOOOOOOROOROROOOOOOROOOOROROOROOOOOROOOOOOOOROROOROOOOOOOOROOOORRROROOOROOOOROROORROOOROOOROROOOOROOOOORROOROOOOOORORROROROROROOOORRRRORORORRROROOORORROROORROOOROORORROOOROROOORRORORROOROROROORRORORORROOROORORRRORRORRORROOOROORRRRORROOOROOOOORRRRRRORRROROOOORROORROROROOOORRORROOORORRROOORRRRRROOROORRROOORRORORRORRORROORORORORORROROORRRRORORORORRRROOOOOROROROORROOROROORRRRRRRRRRRRROOORRRORRROORROROOORRRRRRROROORROORRRRRRRRRORRRRRRRRRORORRORORORRORRRRORRRRRORROROOOORRRRRRRROOROROORORRRRROORORROORRRRORROORORORRRROORRRRROOOORORRORRRORROORRRRROOROORORORORRORORORRRRROROORROROOOORRRORORRRRORRRROOOOROORROOOOOORRROORRROORROOOROORORRRROORROOROORROROORORROORROOOROOORRRRORRRORRROOROOROROORRRROORORRROORORRORORRRORROOROOOOROOOOORROOROORROOOORRRRRROROOOOOORRROROOROOOOOOOOROOOOOOOROORROORORRROORRRRROOOORRROORORRORROORROROOOROOROOROOOOOOROOOOROROOOOOROROROOOOROOORORORRORORROOOORROOOROOOOOOOOOOOROOOOROOOOOOOOROOOROOOOOOOOOOOOOOORROOORROOORROOOROOOOOOOOOROROOOOOOOOOOOOOROOOOOOOROROOOOOOROOOOOROOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOROOORORROOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORORRROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOORROOOORRRROROOOOOOOROOROOOROOOOOOOORROROOOOOOOOOORORROOOOOOOOOOROORORRROOOOOOORROOOOOROOROOOOROOOOORROOOROOOOORRRROOOOOORROORROROOROOOOOOROROOOOORRROOROOOOOOROOROROORRRROOOOORRRROOOOORROOOOOORORORRRORROOOOROORROOOOOOROORORRRORORRRRRRRORROROOORORROOOROOORRRRORRROORROORROOORROORRRRORORRORROOOOOORORORRRRROROORROOORORROORRRRRRORORROROOOORORRRRRRRORRROOORRRRRORRROOOORRORORRORRORRRORROORORORROOROROROORRORRRORORRRRORRRRORORORRROROORORRRRRORROORROOORRORRORRRORRRRRRRRRRRROROORRORRORRRRRROOORORRORRRRRORRRROROORRRROROOORORORRORORRRRORRRRRRRRORORRRRRROORRRRRROOOORRROORRRRRORRRRRRRRORRRRRROORRORORRRRORORRORROORRRRRRROOORORORORRROROROOOROOROROROROORROOORRROROOOORRRRRORRRORRRROOROOOOOORRORORROOOROOROOROROORRRRRRROROROOROOORORRROOROOOOROOORROOROORROOORORORRROROOROOOOROOOOOOROOOORRROORRROROROOROOOOOORROORORRROROROORROROOROORRRROROOOOOOORROROOROROORORROOORORORORROOOOOOOOOORROROOOOOORROOOOORRRRRRRRORROOORRROOOOOOOORRROROROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOROROOOOOOOOOOROOROOOOROROOROOOROROOOOOOOROOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOORROOOORROOOOOROOOOROOROOOOOOROOORRROOROOOOOOOOORROROOOOOOOOOOOOOOOROOOOOROROOOOOROOOOORRORROOOOOOOORROOORROOOOROROOOOOOROOROROOROOROORRROROROOROOOROOOOROOOORROROROOOROOOORRRROOOOOOOOOROORORROORORORROOOOOOOROOORROOOORORRORRORRRRRROOORRRRROOROROOOOROOROOORROOROOORRRRORRRROROOORROROROOORRROOOOROOOOROROROOORRRORRORROOROORRROORORRRRRORRRROORRRRRROORRRRRORRROROORORRRRORROROOOORORROORROOORROORRORORRRORRRROROOOROORROROORRORRRRRORORRRRRRRRRORRROOOOOORRORRRRRRRRRRRROROOORRRORRRORRRRRROORORRORRROOOROORORRRROOOORRROOOORORROORORROOOROOORROOOORRROROORORRRRRORORRRRORORRORROOOOOORORROROORRORROROORRRRORRORROORRRRORORRORROORRRORRROOORRORRRRROROOOOOOORORRRORRROROOORRRRROOOOROOORORORRRROROOROOROORRROOROOROROROOOOOROOOOORRRRRORRROROOOROOROORROOROOOOOOROOROOOROROOOOOORRRRRORROOOOOORORRRRROROOROOORORORRRRRRORROORORRRRORROROROOOROOOOROOOROOOROOROROROORORRORROROOROOROOORRROOROOROOORRROOOOOOOOOOROOORORROOROOOOROOOOOROOORROOROOOOOOOORORRROROROOOORORRORRROROROROOOOOORRORROOOORORRRROOOROOOOOOOOOORORROROOORROOROOOOOOOOROOOOOOOOROOROOOOOOOOOROOOOOORROOOOOROROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORORROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOROOOOOOOORROOOOOOROOOOROOOORROOOROOOOROOOOOOOOOOOOROOOOOOROOOROOOOOOOOOROROROROOOOOORROOOROOROOOOROORROOOROROOORROOORROOROOOORRORRROROROROOOROOOOROOROORROOOOOOROOOROOOOOROOORRORROOOROOOROOOOROROORRRROOOOOOORRROOOOROOROORROROROOOROOORRRRORROROOROORRROOOROROOORROOOROOROROOORRORROOROROOOROOORORORROROROROROROORORORRORROOOOORROORRRRRORROOROOOROOORRORRORROORRRRORORRRROOOOROORROOORRRRRRROROROROROROORROORROROROROOORRRORRRRRRROOOROOORROORRRRRRRROORORRRORROORRRRRRROOORORORROOROOOORRROORORRROOROORROORORORRORRRRRRORRROOORRROORORRROORRRRORORRRROOORRRRRRRORRRRRROORRRORRORRRRRRROROROOORORRRORORRRROOOOORRRRROORRRRORRRRORROORRRROOROOOOORRROORRRORORRORRROROORRORRRORRORRORRROOOORRRRROOORRORRROOOOOORRRRORORROROOOOOOORORRRRRORORROOOORRRORORRRRRROOORROOOROROOOOOOOORRRRROOORORROORRRROROORRRRRRROORRORROOROORRRRRRRROROROROROOOOROOOOORORRRRRRRROOORROORRRROOORROORROOROOROOORROOOROOOOOOROOOOOOROOOROOOROOOOOOOOOORROOOOROOOROOOOOROOROOOROOOROOOOORROOORROORRROROOOOOOOOROOOOORORRRROOROOOOROOORROOOOOOOOOOROOOOROOOOROOOOOOROOOOORORROOOROOROOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOORROOOOOOROORROOOOOOOOOORORRROOOOOOOOOOROROOROOROOOOOOOOOOOOORORORRROOROOOOOOOOOOORRROOOOOOROOOROORROROOROOOOROROOOOOROOOOOOOROROORROOOOOOOOOOOOOOOROOOOOOORRRROOOOOOOOORRROOOORROROOROORORROROROROOOROOROOOOOOOOROOROOOOOOORROOORORRORORORRRRROROOOOOOORRRROOROROROOROOORORRORROOOOROROROROOROOOORRORRORRRRRROORRRORORRRROOOROROROOROOOOOOOOOOROOORROROOROORROROORORROROOROROOOOROORRORRROORORRRROOOOORRRRRRRROOOOORRRROORRRRRRORROOORORROROORRORRRORORRORORRRRRRORROORROOOORROOOOORRRORORRRROORRORROORRRRROOOROORRRROROOORRRRROOORORRROOOROORRRRRRRRORRROROORRORORRRRRRORORRRORRRORORRRRRROOORRRRORRRRORRRROORORRRORRRRRRROOORORORROORRRRRRRORRRRORRRRRRRRORROROROOROORORORORROORRRRRRRRRRROOORRRRRRRORRORORRORRRRRRROOORRROORRRRRORROORORRORORROOORORROROOROOOORRRORRRRROOORRORRRRROROOROROORORORRORROORORRROORRORORRORRRROROOOOROROROORORROOOROROOOOROOORORRORORRROROOROROOROROORROOORRRROOOOOORROOOOOOOORROOOROOOOOROORRROORORRROOOROOOOORORORRROOORROOROORROOOORROOOROOOOOORRROOOROROOORROOOOROOOOORRRORRORRORORROROROOOOOOOROOROOOORROROORROOORROOOROOOOOOOOROORROROOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOROROOOOROOOOOOOROOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROORROOOROOROOOOOOOOOOOOOOOROROOOOOOROOROOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROROOOOOOOOOOOOOOORROORROOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOROROOOORORROOOOOOROROOOOOOORORORROOOROOOOOOOORORRORROOOROOOORROROOORRROOOOROOOOOOOOOOORROOOOOOOORROROORORROOORORRORORRROOOOOOOROOORRRRORRORRROORROORRROOOOOORORRROOOOOORRRROOOORROORORROROROROOORORRRRRORRRRRORRROORRRORRROOOORRRORRRORORRORORRRORRRORROOROOOROROROROOOOOOROOORORROOORORRRRRRRORRRRRRRRRORORORRORRORRROOORRORRRRROOOORRORORRORRRROOOROOORRORROOORORRORORRRRRROOOOOORORORROROORRROORRRROORRRRRROORORRROROORRRRORRORRRORORRRRORRORRORRORRROOORORRRRRRRRRRORROOORRORORORRORROROOORROORRRRRRRORORRORRROROOROROOROOOOOOOORRRRRORRRRRRORRRRRRRROORORRRRRRORRRRRRRRRORRRRRROOORROOORORRORRROOROOORRORRRORRROROOOROOORRORRORRRORRRRROORROROORROROROROORORROOROOOROOROORORRROOOORROOOROOOOORROOOOOROOORRROOOROOROROOOOORRROOOORORROOROROOOROOOORROROROROOOROORROOOOOOOOROOOROOOOOOOORORROROOORRROOROOOOOROORROOOROOOOOOROOOOOOOOOOROROOOOROOOOOOOORRRROROROOOROOOROOOORROOOORRROOORROOOROROOROROOOORROOOOOOOOOOOROOOOROOROOOOOROOOOOOOOOOOOOOROOROOOOOROOOOOOROROOOOOOOOOOOOROOOOOROOROOOOOOOOOOOROOROOOOOOOOROOOOOOROOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROROOOOOROOOOOOOOOROOROOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOORRROOOOROOOROOOORRROORRROOOOOOOOROOOOOROOOOOOOOORROOROOOROROOOROOROROOOOOROOOROORROOOOROOROOROROOOROOORROOROOOOROROROOOORRRROROOROOOOOOORORROOORRORORRRRORROORROROROORROOORROROORORORRROORORRROOORRRRORRROOOOROROOORROOOROOOORRRRROORROROOROOOOROOOORORORRROORRROROORORRROORORRRRRROOOROORRROOOOORORROROOROROROORORRROORRRORRROOORRRRRRROORRROROOOORROORRROOOOOORORORROORRRRRRROOORROOORRRORRRRRRRRRRRRRRRORRORRORRORORRROOORORORRROORRRRRROOORORRRORRRORRROROORROORRRROROOOOOORRRORRRRRROOOOOOROOROOROOORORRROROOORRRRRRRRORROOORRORROROROORRRORRORRROORRRRRRRROOOORRROROORRRORROOOORRRORROORORRORRRRRRRORORRRROORORORRRRROORRRORRROROORROORORRORORRRROORRORROROROOORORRROOOROOOOORRROROROROORROOOOROOOOOROOORROORORROOROOORRRRRROOOORRRRORROOOOOORROORROOOROOOORROOOOROORRROOROORORROROOOROOOOORROOOOORROOOOOOROOOOROORORORORORROOROOOOOROOOROOOROOROOOOOROOOOROOROOOOOOOOOOROOORROORROOOROOOOOOOOOOORROOOROROROOOROOOOROOOOROROROROOROROOOROROOOOROOOORROOOROROROOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOROOOROOROROOOOOOOOOROROOOOOOOOOOOOORROROROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOORROOOOOOOOOOOOROOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOROOOROOOOOOOOOOOOOROOROOOOOOOOOOOORROROROOROOOROOOOOOROOROOOROOOOOOOOOOOOORROOROOOOROROOOOOORROOOOOOOOROROOOOOROOROOOOOROOOOOOOORROROOOORORORRROOOORRRRORROOOROORROORORROORROOOOROOOOOROOOORROROORROOOROROOORRRROOOOROOROORROROOOOORROORRRRRRRORROOOROORRORRROOOOROORRRORROOOOOORORRROOROORRORORORROORRRRROROOOORRRRROOOORORRORRROROORRROORORRRRROOOROOROORRRORRRORRROROROROOORRRRORORRORRRRROOORRRROORRRORRORORORROORROOORRRRRRRRORRORROOORRRRRRRORORORORORRRRORRORRROOROORRRRRORROORRORROORRORRROORORRORRROORRRORORRRORROROROROOOOOROOORORRROORORRRROORRRRORRRRRRROROROOORORRORORROORRRRRRROOORRORORRORRRORROOORRRRRORORORRROOOROROROOROOOROROOORRRORORRORROORRORRORRRRRORRRRRORRORRRRRRRRRRRROOROROOROROOORORROROROOORRORORORORROOORORRRRRROOOORRORRORRROROROROOROOOROORRROORORRRROROOOORORROOOOROROOROOROORRROOORRRRORORRORRROOORROOOROROROORROOROORRORRROOOROOOOORORROROOROOORRORROOOOORRRORORROROOOOORRORROROROOOROOROOROOOOOOOOOOORRORRROOOOROROOOOOROOROOOROOOOROORRRROOOOOROROROOOROOOROOOROOOOROOROROROOOROOOROOOOOOOOORROOOOOOROOROOOROOOOOOORROOROOOOOORROOOOOOROOOORORROOOOOOOOOOOOOROOOOOOOROOOOROOROOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOROOOOORROOOOOOROOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROROROORROROOOOOOOOROOOOOOOROOOOOOROOOOOORRRORORORORORORRROOROOOOOOOOOOOOOOOROOOOORRROOROROROOROOOOORROORORROOOOOOOROOROOOOOROOOOOOOOOOOOOOROOOOOOOROOOROOOOOOROROOOORRROOROROOORORRROROOROOOROOROOOOOOROOOROOOOROOOORRRRORROROROOORRRORROROROROORROROOOOOOOROOORRRRRORRRRRORORROOORROOOORRORRORROOORRRORROOROROOORRRROORROORROORROORORRRRORRRROORORRORORROORRORRRRRROROORRORRORORORRORRRORRRORRRRRROORORRRROROOOROORRRRRRRORRRRRRRRROOROROORRRRRRRRORROOROORRORORRORRORRRORRRRRORRROORRORRORRRORROOORRRRORRRORORORORORRORRRRRROOOOORORROOOORROOOROROORORRORORRRORRROROOOORRORRROOOOORRRORORRRORRORROROOORROORRORORRRORORRRRROOOORROORROOOROORRRROORRRRORRROROORRRORRROROROOOOROROROROORRORRORRRORROOROOROOOROOOOROOORROROROROOOROOOORORORRRORRORRRROORORORORRRORORRRORRRRORROOORROOORRROOOROOORORRORORROORROOOOOORORRRORORROOROOOOOROOOOOROOROOROORROROOROROOOORRORORROROROOOOOOORROROOORRROOORROOOOOOOROOOOROOOOOROOOROROOOOOROOROOOOOOOOOOOROORROORORROORORORROOOROOOOOOOOOOOOOOROROROOROOOOOOOROOOOOOOOOOOOOOORROOROOOOOOOOOOROOOROOROOOOOOROOROOOOROOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOROOOOROOOOOROOOROOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOORROOOOOOROOOROOROOORROROOOOOOOOROROOOOOOOOOOOROOOROOOOOOOOROROOROROROOOOORORRROOROORROOOOOOORRROROOROOOOOROOOROOOOORRROOOOOOOOOOOOOOOOOOOOROOOOOOROORORRRRROOOROROORROOOOOOROOOROOORORRORRRROROROORRROOOOROORORRRORORROROOOROROOOORROOOORORRRRROROOROROROROOOROROORROROOORORRROOOOROOOOOROROORROOORRORRORROORORORRRRRRORRRRORROROOOOOOROOROOROOORROOOOROORORORRROOROROORORRRRROORORRRRORRRRROOOORORORRRRORROORORRORORRROORORROORRRRORORRROOORORRROROOROOOOOOROROORRRRORRRRRORORORRRROROROORRORORORORRROOORROORRROORRRRORRORRRROROOROORRORORORORROORRRRRORRORORRROORORRORRRRRRRRROORRRRORORORORROROORRRROORROOORROROORRRROORROORROOROROORRORRORORRRRRORRRROORORRROORRRRROORORRROOORRRRORRRRORRORRROOOORRORRRORRRRRORRROROROOROROOROORORORRRRORRRRRRORRRRRORORRORORROOROOOROORROOORORROROORROOORRRRROORORRORORROORRORRROORROORORROORRORORROORORRROROORRROOOOOOORRRRORORRORORRRRROOOROROOOOROOOORRROOORORROOOOOOOROOROOOROOOOOOOROOOROOOOROOOOROOORROORROROROORROOOROOOROOOOROOROROOOORROOROOOOOOOORROOOOROROOROOOOOOOOOOOOOROORROORROOOOOROOOROOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROROOOOOOROOOOOROOOOOOROOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOROOOROOOOOOOROOOOOOOOROOROOOOROOOOOOOOORRORROOOOOOOOOOOORROOOOOOOOOORRROOROROOOOROOOOORROOOOROOOOOOOOOROOOROOOOOROROROOOROOOORROOOROOROOOORROOOOOOOOROOOROOORROOROOOOOOOROOOORRRROOROROOROOOORROOORRROOROROOOROORROOOROOORRRROOORORROOOOROROOORRRROORRORORROOOROORRORROROOROOROOOOOOROROORRRRRRROOROOORRORRRORRRORRROROROOORRRRRRROORRRORRRRRORROORROROOOOORRRRROROOOROROORRRORROOOOORRORRRRRROROOORORORRRRRROROOORRRRRORRROROORROORRROOOROORRROORRRORORRORORRROORRROORRRORRORROOROORRROROOORRRORORRRRRORORRRRORRRRRORRRROORRRRRRRRROORORROOOOORRORORRRORORRRROROROOORRRORORRORRRORORROORORRROOROOOOORRROROOORRRRRROOORROOOORRORRRRROROOROORRORRRORRORRRRRROORROOROOOORRRRRROROROOOORRRRRORRRROOOOOORRRORORROORORRRORROOROORRORROOOROOORORRROROROROOOOOOOOOOROOROOROORORROORROROOOOOORRRRRRROROOOOROROROOOOOOOOOOOROORORRRORRRORROOROOOROORRROORRRORROOOOOORRORRORRRRROOOORROROOROROROROORROOROOOROOOROROOOROOORRROOOOOORORROROORROOOOORRRRRRORORORROOORRORRROOOROROOOOOROOOOROOOOOOOOOOOOOOORRRORORROROOOOOROOOOOOORROOOOOOOOOOOOROOROORROROOOOOOOOOOOOOOOOOROROOOOOOOROOROORROOROOOOOOOROOOOOOOOOOOOORRROOOOROOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOROOOOOOOOOOOOOOOORORROORROROROROOOOORROOOOOOOOOROOOOOOROOROOOOROOOOOOROROROROOOOROOOOORROOOOOOOOOOOROOOOOOORROOROOOOOOOOOORROOOOOORROOOORORRRRROOOROOOOOROOOROOOOOOOOOOOOOOROROOORRROOOOROORROROROOROOOOOOOROOROOROOOOOOOOROOROOOOOOOORROOOROOOOOORRROROORRRROOROOORRROOROROORRROORRRROORROOOOORROOOORRROOROOROOOOOOOOOROROOORROOOROOOOORORRROORRORRRORROORRRROORRROORORORRROORRROOORRROORRROROORRORRORROOOORRROOOOOORROROOROOOOOORRRRRRORRRRRRORRRRROROROOROORORROORRRRRRORRRRRROORRORROORRRRRORRRORRRORRRORRRRRROOROOOORRORROORROOROOROOORRRRRRRROROROOOORRROORRORRRRRRORRRORORORRRRRROORRRRROOROROOORORRROORRRORROORRROORRRORROOOORROOROOROORORRRORORROROORRORROROOORRRRORRORRORRRRRRORRORRROORORRRRRORRRRORROOORRRRRRROOORRRRRRRRRORROOOORROORORRRROOORRRORRRROOROOOOOOOORRORROOROOROROORORROROROOROORRRRRROOOORORRROOROORRORRORRROORORORRRORORRRROOROOROOORRORRORORORORRRRORRORORROOROOROORROOROROORRRORORRORORRRRRRROROOORORROOOOOOOORROORRRROROOROOORRRROROOOROORORRROORROOOORROOOOOROOOOOOOOORORRROROORORORROROOOOORROROROOOOROORROOOOROOOOROROOOOROROOOROOOOOOROORRROOOOOOOOOOROOORROOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOROROOOROOOOORROROOROOROROOOOOOOOROOOOOOOOOOOOOORROROOOOOOOOOORROOOOOOOOOOROOOROOOOOROOOOOROOOOOOOROOOORROOOOOOORRROROOOOROROROOROOOOOOOROOOROOROOOOOOOOOOOOOOOROROOOOOOROOROROOOROOOORRORROOOOOOOROROROORORRRORRROOROOORRROOOROORROROROOOROROOOORRORRRRROOROROROROOORORROOROOORRRRRRROORROOOORRORRORROOROROOORORRROOOROROOOOORRROOORORRRRRORRORRORRRRORROROOORORRRRROORORRRROOOOOORROORROROOOOORORRRRORROOOORRORROORRRRRRRRRRRRRROOORRRROORRROOROROROROROOROOOOROORRORROORRORRROORRRRORRROOROORORRORRRRRRRROOORRORORRRRRRRORROOOROROORRRORORRRRROOORROORRRORRORORRRRRORRRRRORRRRRORROROORRRORRRROORROOOROORRRRORRRROROORRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRROORRORORRROORRRRROORORRRORRORORRRORRORRRRRRRROORRRORROORRRRRORORRRRRROOOOORROORORRRORRORROORRRORORORORROORROROOROOOOOORRROOORRRORORRORROORROOOOOOOOOROORRORRORROOORORRROORORRRROOORORRRRORORORRRRROROORRROORROORRROORROOOOORRRORORORRORROOOOOOOOOOROOROOOOORORROROOOOOOROOOOROOOROOROROOOOOOORROOOROOOOOORROOOROROORROOROOOORORROOOROROOOOROOOOOOOOOOOOROOOOOOOOROROOOOOOOOOROOOOOROOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOROROROOOOOOOOOOOORROROOOROOOOOOOROOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOROOROOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOROOOROROROOROOOOOOROROOOOOOOOROOOOOOOOOOORRROOORROROOOOOOROOOROOOROOORRRRRRROOOROOROOROROOOOOROORROOOROOORORRRROOORROORROOROOOORROOOOORROROORROOOOOOOROROROOROORROORORORRRRRRRRROOOOOOOOOOOORORORROORORROOOROOOOORRORROOORORORORRROROROOOORRROROORROOOORROROOORORRRRRROOOORRRRORORRRROOOORORROROOOOOROOOORRRORROROROOORRRRORORORRORRRRRORRRRROOOROOORRRORRRRRRORORRRROROORORORRRROROROROORRROORRRROROORORRRROROOOOORRRORORRRRRORROORORRRRRRORRORRRRRORORRROROOROORRRRRRORROORRORRROORORORRROROORRORRRRRORORRRRRORROOOROOOORRORROROROOORROORROOOROORROORRORRRRORORORRRORRRORRORORORROORRORORORROORRROOOOROROROOROORROOORRROROROORORROROOOROROORRROOORRRROOOORRRRROROORORROORRRRRORRRROOROROOORROORRROROROOROOOROOOOOOORROORRORROOOOOOOOOROROROOOOOORRORROOOROOOORORRROORROROOOORORRRRORORORROOOOOOOORROOROOROOROROORROROOROORROOORRROOOOOORORRROOOORROOOROOROROOOORRORRROROOOOORRROORRROOOOOORRRORRRROOOOROOOOOOOOOROOORROOOOOOOOROROOOOOOOOROOOORRROOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOROOROOOOOOOROOOOOOOOOROROOOOOOROOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOROOOROOOROOORROROROOOOOOOORROOOROOOOOROOORORROROORROOOOOOROOOOOORROORORROOROOOOOOOOOOOOOORROOOOORROROOROOOROOOORRROORROROOOOOROORROOOROOOOORRROOORROROOORROOOOOOORORRRROOOOORROOOOOOOROOOOOOOROORROROOOROOROROOORROOORORORROOOROROOOOORRRRRRORORRRRROORRROROOOROROOOOORRRRRRORROORRRORRORORORRORRORRRRROOOOROORRRROROOORRROROOORRRROOOOORRRORORRRRRRORRROROOROORORRROORRRRRRORORORROOROROOROORRRRRRRRRRRRRORROROOORORRRORRRORRRRORORRRORRORRRRORORRORRORRRRRRRRRORORRRRRROOORRRORRORRROORORORRRRRRRORORORORRRRROORRRROOOROOORRRRRRRORRORRRRRORRRRRRORROORROROOOOROORROOROORORORORORRORRROOORORRRRRRORRRORRRRRORRROORROROORROOROOOROOROORRRORORRRORROORRORORORROORROORRRRROORORRORRRRRRRROOROORORORORROOOORRRROROOOOOOORRRRRRRORRRRROOORORORRRRRROOOOORRRRRRORORRORRORRRRRROOOOOOOORROOROOOORROORROORRRORRROROROROOOROORRRROORROOROOROOOOOOOOOOROOOROROROOORORROOOROROOROOOOOOROOOOOORRORRRROROROOOOOOOOOOORROOROOROORRRORRROOROOROOOROROOOOOORORRORRRROOROOORORORRROOOROOROOROOROOOOORROOOOROOOOOOOOOROOROOROOOOOOOOOOOORROOOOROOOOROOOROOOOOOOORRROOOOOORROOOROROORORROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOROOOOOOOOOROOOOOOORRROOOOOOOOROOOOOOOOOROOOROOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOROOORROOROROOOROOOROOOROROOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROOOROORROOROROROOROROOOOOORORROOOROOOROOOOOOOOORROOROOOOOOROOOOOOOROOOOOOOOROOROROORORORRROOROROORRRRROOOROOORRRORRRORROOROOOOOROOROOROORRRRRORROORORRRORORRROOROOROROOROORRRORRORROORRRROROOROROORORORRROOOORRRRRORORRRROOOOORORROOORRRORRRRRROOROROROOOROOOOORRRRORORROROORRRRORORRRRROORROOOOROOORRRRROROORRROOORRRROROROOOOOOOOROOOOOOORROOORORROORRRROOROORRORRORRROOOROORRRRORORRRRRORROOORRORRRRORROOOORRROOOOROROOORRRORRORRORROORORRORRORRRRORRRRRRORRRRROOORORRORRORORROOOORRROORRROORORRORRRORRRORRRRROROROROORRORORRROOORORROOOROROOOROOOOORRRRRRRRRRRRRRRRRRRRRRORRROROOORORRRRRORRORRRRORRRROOROORORRRRORRRORRRORRRORROROOORORRROROROOOROOOOORORRORRROOROORORORRRORRRRRORRORRRORROOROOOOROROORORORRROOROOOOORROORROOROOOOORRRROROORRRROOROROROORROROROOOORROROROOROOOOOOOOROORRRRROOROROOOORROROROOOOOOORORROROROROOROOOORRORRORROOOOOORRORROORRROOROROROROOOROOOOOOROOOROOOOROOOOOOOOOOORRROOOROROOOOOROOOOOOOROROROROOROOOORORRRRRROROOOOROROOROROOOOOROOOOOOROOROORROROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOROOROOOOOROOOOROOOROOOOOOROOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOROOOORROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROROORORROOOOROOOOORRORROOOOOOOOOORORORROOOOOOOOOOOROOROOOOOOOOROOROROOOROORRROOROROORROOOOOOOOOOOOORROOOOOOOOOOOORRORROROOOOOOOORORRROOOOOROROOOOOOROOOOORROOROOOOOOOOOOROORORORRRORROOROOROORRRORROROORRRROORROOOORORROORROOOOOOORORRROROOOOOOORROOOROORORRRRRRORRROOROROORROOORROORRRORRROOROOORORORRRORROOROOORORRORORRROORRRRRORRRORRORRROOOORORROOORROORRRROOORORRRRORRRRRROROROOROOOORRORRORROORORORORRORRORRORRORRRRRRRRROOOROOOOORORRRRRRRROOOOOROROROOROOOORRROORRRRRRRRRORRRRRRRRRROOORROOOOOOROORORRRRROROORRRRORRRROORRORRRRRRORRRROORRRORORRRRROORRRORRORRROORORRROOORRRROORRRRRRORRORRRRRRRROOORRORRROROROROORRROOROOORROOOOOORRRORRORRRORROORROROORORRORROOORORRRROOOORRORRROOORRRROOOOORROOROORRRRRRORROOOROROROOOROROROROROROROOROROORROOOROROOOORROORORROOROROROROORORROROOOROOOORRRORROOOOOROOOOOOOORRROROROOOOOOORRRROOOOROOORROOOORRORROROROOOORORROORORRROORRRRORRROROOOOOOOROORORRRORROOOOOOROROOOORROOOOOOOOROOROROOOOOOOOOROOOOOOOOOROROROOOOROOOORROOOOROOOOOOOOORROROROOOROROOOOOORROOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOORRROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOORROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOROOOOOOOROOOOOOROOOOOROOORROOOOOOROOORROOOROOOOOOOROOOOROOORROOOOOROOOOOROOOOOOOOOOOROOOOOOROORRRROOOOOOOOROROOOOOOOOROOOROROORORROOORROORROROROOOORROOOOOOROOROOOOROROOOOOOOOOORROROOORROOOROOOROROROOOORORORROORRRORROOOOOOOOOOOOOOOOROOOOROOOOOOORROORRROORRRRROOOOROOOOORORRRRORRORRORORRRRRRRROORRRRROOOOOROOORROOORRRROOOOORORRRRORRRRROORRRROOORRRRRORROORRROROOOOOROROOORRROOORORRORORRRRRROROORORRROROORRORRORORORRORORORRRRRRORRORRORRRORROORRRRRRRRORRRRRRRROOOROORRORORORRROOORRROORRRORORRRRRRORROORROROOROORROOORORRRORORRRRROOROOORRORRROROORORROROOOORRRRORRRORORRORRRRRORORRORRORRRRRRRRRORRORRRORRRROOROROORRRRRRRRORORRRRORRORORRRRROORRRRROOORRRRRRRRRORORRRORRROOORRROROORROROROOORROROOOOORROOOORRRROROORORRRORORRRRORRRRRORRORRRROORROORORRORRORORORRROOROOOORORRORORRORRRORORROORRROOOOROORRORRRROOOOOOROORRROOOOORROROOOOOORROORRROROROOROOOOOORORROOOOOORROROOOOOOOORRORROOORRRRRRRRRROOROOOROOOOROORRROOOORROOOOOOOORROOOOOOROROOROOORORRORORORORROOOROROOORORORRRROOOOOOROOOORROOOOOOOORROOOOROOOOOOROOORORRORROOOROOOOROOORRROOOOOOROOOOOOOOOOOOOOROROOROOOOOOOOOOROOOROOOOOOOORROOOOOOROOOOROOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOORROOOROOOOOOOOOOORRROORROOOROOORROROOOOOOOOROOOOOOOOOOOOOROOOOROOROOOROOOROROOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOROOROOOOOROOOOOOOOORROOOOORRORROOORORORRRROOOOOORROROORROOOROORORRROROOROROROROOROOOORRROOORROOORRRROOORRROOORRORROOROROROORROOROOOROROORRROOOOOOROROOOOROROOORROROOROOOORRRORRORROROORRRRRORORROROOOORROOORRRRRROORROROROORRRORRROORRRORORRRRORRRRRROOROOORORROOROOROOOORRRORRRROROORRROOOROORORRRORRRRROROOORRRRRRRRRRORRRRRRRROOORRRRRRRRRRROOROORRORRROROORRORROORRRORRORRROORRRRRRORRRORROORORRROOOROORRRRROORRRORROOOOOOOROROOORORRORRRROORRRROORORRORRROORRORRORRROOORROORRORORRROOORRRRRROORORRRRROOORRRRRRRORRORRRROROOROOORROORRROORORRRRROOROOORROOROOOOOORROOROOROOORRROOOOOROROORORORROOOROOROOOOROOOOOROOROORROROOOORROORRRRRROOOOROORORRROOOOORORRROOORRRRRROOROOOROOORORRRROROOOOOROOOOOOROORORROROROROOROROORRROOROORRORRRROROORRROROROOORROROOOOOOORROORROOOROORORROOOROROOORORORORROOOOROOROROROOOOOOOOOOROOOOOROOOOROORROOOOOOROOOROROROOOOROOOOOROOOROOOROOOOOOROROOOORORROOOOOROROOOOOOROOOOOOOOOROOROOOOOROROROOOROOOROOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROROOOOOOROOOOROOOOOOOROOOOOOOROOOOOROOOOOOOOROOOOORROROOOOOOOROOOOOOOROORROROOOROOOOOROOOROOROOROOOOOOOOOOOOOROROOORROOOOROOOOOOOOOOROOOROROROROOOOOOORROOOROOOOOOOOROOROORROROORORORROOROOOOOORRROOROOROORROOOROOOOOORORROOOOOORRRROORRORROOOOOOOROORORROOOOOOROOROOROOORRROROROOORRRRRORROOOOOORROROROOOROOROROORROOROOROORRRROROORROROOOROOROROOORRRRROOORROOROOOORORRRROROORORORRRRORRRRRRROOORRRORRROORORRRORROOOOORRRRRRRRRORROOROORRRROOORROROROORRROROORRRRRRRRORRRORRORRORORROOROOORROOORROORRRRORRORRRRRORORRRROORRORRRRORRRRORRRRRRROORRRORORRRRRRRRRRRRROOROORRRORORROORRRRROOOORRRRORRRORRRORRRORORRORRROORROOORORRRROORRRROORRRRORORRRORRRRRRRRRRRRRROORORRRORRORRORRORORRRRORRRROOORRORORRORORORROOORRORRRRORORRROROOROOORRRRRRRORRRORRRRORORROORRRRORRRORROROORROROOORROROROORRORRRORORORORROORORROROOORRRORRROORRROOOOOROOOOROOOROROORRORRORROORROROORORRORROOOOORRROOROOOROORROOOROOROORRROORROOOOOROOOOOORRRRROROROOROOOOROROROOROROOOORROOROROOOROOROROOOOOOOOOROOOOOOORROROROOOOOOROROORROOROORRROORROOOROROOOOROOOROROOOOROOROOOOOOROORRRROOOOOOOOROOROOROOOOOROOOOOOROOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROORROOOOOOROROOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROROOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOROOOOOOROOROOROOROOOROROOROOORROOOOOOROOORROROOROORORROOOOOOOOOOORORROOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOORRROOROOOOOOROOOOOROOOROOOOORROOROOROROOOOROROORRROOOOOOORORRROOOROOOOOROOOOOOOOOOROOOOORRORRROROORROOROOROROROOROROOOROOOOOROROORORRRRORORORORRRROOORRORROROORORRORROROORROOOOROOROOROORRRRORRROOOROOORRORRRRRROOROOORRROORROROOOOOORRORRRORORRROORRRRRRRRRRORROOORROROORRRORRRRRROOOROROORROROORRROROROROORROORRRRORORRORROORROORRRRRRROOORORRROORRRRRRROORRRRRRRRRORRRRRROOROOORRRRRRORROORROROORRRRORRRRRORRRRRORORORROORRRRORORRORORROORRRORRROROORORRRORRRRRROOOORROORORRRROOOORROROOOORRRRORRRRRRORRORROOROOORRRRROORRORRROROORRORROOORRORRRRRORRORRORROOORRORROOORORORRRROROOORRORRORRORRRRORRRORRRRROROOORRRRORORRROOOOORORRRROROOORRRRORRROROROOORORROROORORRROOORROROROROOOROOOOORRRRRROOROROOOROOROROOROORRORRORRRORRRROROOROOORORORROOOROORRORROOORROOOROOORRRROOOOOROOROOROOOOOROOOROROORRRRROOOOOROORROOOOROORORRROOROOROOOOOROOROOOOOROROOOOOOOOOOORORROOOROOOROOOOROOOROOOOOOOOOOROOOORROOOOOOROOOOOOOOOOOOROOROROOOOOOOOOOROOOOOOROOOROOROOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOROOROOOOOOOOOOORROOOOROOROORROORROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOROOOORROOORROROOOOROROOOOROORROOORRRROOOOOOOORROORORRROOORROROOOOROOORROOOROOOOOOOOOROROORROORORRROOROROOOOOORRRORRROOOOORROROORORRRRRROOOROOOROOROOOOOROROORORROORROROORORORRORORORROOOROORRRRROORORRRRROROROOORRORRORRRRRRROROROROOOOORRROORRORRRRORRROOROOORRROOROOOROROORROROOOORRORRRORORRRRRRRORRORRRRRRORROORRROORRORORRRRRRRRROORRROROOROOROROORRRROROOOROOOROOOOORRRRORRORRRORRRRRRORORRORRROORRRORORRRRRRORORRORRORRRRORORROORRRRROORRROORRRRRORORROORRORROOORRRRRROROORORRORRRRRRRRRRORRRRRRRRRORRRROROOROORORORRORROOORRROORRORRORORRRROROOOROORRRORRRRRRRRRORRORROORRROORRRRRRRORRROROOOORRORRRRRORRRORORROOOOORROOOOORRRORORRRRRRROROROROORORRORRRORORROROOROORRRRROROORROOOROOOROOOOOOOORROOOOROROOROOOOOROORROOROROROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOORRROOROOOROROROOORRROORORORROOOORORRROOOOROORROOORROOROORROOROOOOROOOOROOROROOOROOOOROOROROROOOOOOOROROOROOOOOOOOOROOOROOOOOOOOROOOROOROOROROOOOOOOOROROORRROOOOOOOOORRRROROOOOOOOOOORRORRROROOOOOOOOROOOOOOORROOOROOROOOOOOOOOOOORROOOORROOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOROORROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOORRROOOROROOOOROORROOOROORROOOOOOROOOOOOOROOOOROOOORROROOROOOOROOOOOOOOROOROOROROROOOOROOROOOOOOROOOROOORROOROROOOOOOOOOOROOOROROOOOOOORORRRRRRROOOORORROOOOOROOOOROOOORRORRORRORRRRORROROOOROORROOOOOROOOROORROORRROOROOOOORROOROOOROOORORORROOOORRRRROOOORRRORORRRORORRRORRORRRRROROORRRROORROOROOOOOOORRRRRRORRRORRRRRRRRORORORRRRORORROROOORRRORORORRRRRROORROOORORRRRORRORORRRORROORROORORRRORROOORRORORRORORORROOROORORRRRRORRRRROOROORRRORROROORORROORRROORORRRRROORORROORRORRORRRORROORRROOOOOORRORRRORRROOROORORRRRRORRRRRRORORORRRRRRRRRRRORRROORRROROROROOROORRORORORROORROROOOOROROORROORRROORRORORRROORORROOROROORRROORRRRRORROORRRROORRRROOORRORRORRRRORORRORRROOOOOROORRRROOROROROORORRROOOORRORRROOROROROORORRRORROROOOOOOOOOROOOOOOROORRROROOROROOOOOORORRRROOOOOROOROOOOOROROROOROOOOROOOROORROORROOOOOOOROORORORROOOOORRROROROOROORRROOOOROOOROOROROORROORORORROORORRROOORRRROOROORORROOOROROROROOOOROROORORRROORORROORROROROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOROOOROROOOROROROOOOOOORROOOOOOOOOOOOOOOOOOOOROOORORROOOORROOORROOOROROOROOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROORROOOROOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOROROOROOOROOOOROROORRROOOOOOOOOOROOROOOOOORORRROOOOOORROROOOOOOOOOOOOOOOOOOOORROOOROORRORROOORORRRRORRROOOOOOORORRROOOOOOORRORROOOOOOOORROOROOOORROOOOORRORORROOOROOORORROROOROOROOORRORRORRRRRRRRORRRROORRRRRROOOROOOROOORROORROORORORROORROOOORRROROOORRORORORRRRROOOOORRRORRORRORRRRRRRORRRRRROORRRRRRROROOOORRRROOORORRROROROORRRORORROOOOORRRRROORRROOOOROORRRRRRRRORRROORROORRRRRORORRRRORRROORRORROORORRRRORORRRROOOROORRORORROOOOORORRRRRRRRRORRRORROOORROOOOORRRORRRROROROROORROOOROOROROORRROOOORRRRORRRRRRORRRRRRRRROROOORRRRRORROORORORORORRRRRRRRORRORRRRRRROORRROOOOORRRRORORORRROORROOORROORRRRRROORROORRORRRRRORORRRRRROOOOOOOOOORROROORORRRROOOOOROOOOOOOORRROROROROORORRRRRORROORRRORRRORORROORORRORORRRROOOOOROOOROOOORRORROOROOROORROORORORORROORRROOOROOROROOOORORRORROOOOROROOOROOOROORRROOOOROOOOOOOOROOOOOORORROROROROROOOROROORRROROROOOOOOOOOROROOOOOOOOOOROOROOOOOOOOOOOOROROOOOOOOOORORORROOOOROOORRROROOOROROOOOOOROOOOOROOROROOOOOOOROROOOORROOOOOOOROOOOOOOOROOOOOROOOROOROROROOROOOOOROOOOOOOOOOROOORROOOOROOOOROOOROOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOROROOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROORORROOOOROOOOOOOOOOOOOOOOROOROOOOOOOROOOOOROROOORROOOOOOOOOOROOOORROORROORROOOOOOOOOOOROROOOROOOOOOOOOROOROOOOOOOOOOOROROOOOROOOOOORROOOOOOOOOOOOOROOOOOROROOORRROOROORROOOORRROOROOOORROROOOOOROOROOOOORROROOROOOOOOOORROORORRORROOOOOOOORRRROOOORROOOOOOOOROORROOOROOOROROOOROROOORROORRRRRROROOROOORROOORRROOOOROOORRROOROORROROORROOOORORRRROOOOOROOOROORROOOORORRROOOORORRRRRRORORRROROORRROORROOROROOORRRRRRRORRRRRRORRRORRRRROROOROOOOORROROOORRRRORRRRORRROORROORRRROORORRROOROORRRORRRORORORROORRRROORRRRROOOORRROORRRORRRRRRRORRRRORROOROORROOROROOOROOORRORRRRRRRRORRROOORRRORORROOOOOROORRORORROROOOOOROROORORRRRRRORRRRRRRRRORRRORRRROOROROOORORROOORORORROORRRROROOROOOROOOOOORRORRORROOOORRROOROORRRRRRRRROROROOORRRRRORRRRRRROOORRRRROOROORRORORRRRORRRRRRROROORRRORRROORRRORROORROROORRRRRRROOORROOOORROORROOOOROOORROOOOOOOORROROORRRRORORRORRROROORRRORROOORORORORRROOOROROOORRRRRRORRRROOROROORRRRROROROORRROROORROOROOROOOOOOORROORRROROOOOOROROROOROROOOOROOROROOOROOOROOROOORRORROOROOOOROOOOOORORROOOOOROROOOOROOROOROROOORROOROOOOROROOOOOOOOORROOROROOOOOROOOOOROOOOOOROOORROROOOOOOOOOOOOOROOOOROOOROOOOOOROOOOOOOOOROOOOROROOOOOOOOOOROOOOOROOOROROOOOOROOOROOOOROOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROROOOOOOOOOOOROROOOROOOOROOOOOOOOOOOROOOROOROOROOOOOOOOOROOOOORROOOOROOROOROOOOROOOOOROOOOOOROOORORROOOOROOOOROOOROROOOOOROOOOOOOOOOOROOOOROROOOROROORRRRORRROOOOOORRROORORRORRRRROOROOOROOOOORROOOOOROROOROORORRROORRRRROOOORROOOOOOOOOOROORROOORROORRORROOOROOORRORRRORRRORORRRRRORROOOORROOOORORRROOOORRRRRRRORRROROROOROOORRORRRRRRORROROROOORORRRORROOROOROROOROORORRRRRRORRROOORORRRRRROORRRRORRORRRRORRROOOORORRROORRROROROORROOOORORRORRRRORRRORROROOORRRRRRRRRORRROOORRRORRROORORRROORROOOOORORRRRRRRORRORRORORRROROROORROOOORRRROOOORRORORROOOORRRRORRRRRROORORROROORORRRRRORORRRORORROORROORRRRRROOORROORRRRRRORRORORRROORRORORORRRORRROOROROORRROROOOOORROOORRRRORORORORRRRRORRRORROORORRRRROORRORORROOOOOORRRORRROROOROOOROROROOORRRORROROOROOOROORRROROROOOROORRROROOOOOROORRORROROOOROOROOROORORROOORORRROOOOOORROOOOROROROOROOOOOOOROOROORRORROOOORRORROROORROOOROOROROROOOORORROOROORRROROOORROOROOROOORROROOOOROOOOOOOOOOOOOOOOROROROORRROOORRROOROOOORROOORROORORROROORROOROOOOROOOOOOOOOROROOOORROOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOROROOOOOOOOOOOROOROOROOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOORROOOOROROOOROROOORROOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOROOORRRROOROOORRROOOOOOOOOOOROOOOROORROOOOORROROOROOROROOROOOROOROOOROOOOOOOOOROOROOROOOROOOOROORRRRROOOOROOOOOOROORROOOORROOOROROORROOOOROOOROOORROORROROROROOROORORROOROORRRROOROROROOOROOORROORORRROOROOROORRROOOOOOROROOOORRRRRORRRRRROOOORRRRORORRORRRORORROORRORORRRRRRRRRRRORRROORROROOORRRORRRRORRROOORROOORORORRRORROOOORRRORRRRROOROROOOOOROOORORRROORRROROORORRRRROROOROOOROORORORRROROOOORORRRORRRRORORRRRROORORROROOROORRROORRORRRRRORORORRRRORRRRRRROOORORRORORRRRRRROROORRRORRROORROOORRRRRRORRRRROROOROOORRRRRROORORRROOOOROOORRRORRORORRRORRRORROROORRROOROORRRRORRORRRRRRORRORRRRROOORRORRRRROOROORRROOOORROORROOORRRRROROOORORRRORRRRRRRROROORRROOOOORRORORORRROOROOORRROROOORORROORRRORRRRRRROOOOORORRROROROOROOROOROORORRRRRROOORRRROOOOORORRRRROOOOROOOOOORORROORRROOOOOOOOORORROROOOROOOOOROROORROORROOROROROOOOROOOORROOOOROORORRROOOOOORRROROROOOOOOROOROROOROORROOOOOROOROOROROROORORRROOOOOOORROOOORRRRRROORROROOOOROOROROROOOOOOOORRORROOOOOOROOROOOOOOROOOOOOROOOOOOOOROOORROOROOOOROOROOOROOOOORRROOOOOOOOROORROOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORRROROOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOORRROOOOOOOOOOROROOOOROROOOOOOOROOOROOOROROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOORORORROOOOOOOOORRROOOOROOOOORROROORROOOOROOORROROOOROROROROOOOOOOOORRORORRRRROOOOOOROORRROOOOORROOROOOROOOROROOORORORRORROOOROROROOROORORRROROOORORORROROORRRROOOOOOOOROROOOORRORRRRORRROORORRROORORRRRROOOORORRROROOORRROROOOROORROOORRRRROORORROORORRROOOORRRROORRRROORORRRRRRRRRORORRROOORROORROORORORRORRRORORRRRRRRRRRRRRRRRRRROORROORRRRROOOOORRRRRRORRORORROORROOORORRROOOOOOORRORORROROROOOOOOOORRORORROROROOOORORRORRORRRRORORORRRROOOOORORRRRRROORRRRRROORORRRRORRRRRROROROORRORRORROOOORRROORRRORRRRRRRORRRROROROORRORRRRROROORRRORORORRRRRRORRRROOOOROOORRRRROOORRORORRRRROOOROOOOORRORORORRRRORRORROORRORRORRRROROROORORORRORORORRORRRROOOORRRRRORRROOORRRORORRRROOORORROROORORRORROROORROOOOORROOORORRROOOOORRRORRORORROOROROOOORORORORRRROORRRORORRROOOORROORORRORORROOOORORRRRROORORROOOOOOROROOORROOOROROROORRROOOOORRRORRORRROROOOOOORROOOROROOOROROOOOOOOROORRRRROOORORROOOOOROROOOOOOOOOOROORRRRROROOOOOOROOOOROROROOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOROOOROROOOORROOORROOROOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOROOROOOOOOORROOOOOOOOOOOROROOOOOROOOOOOOOROOOROOOROOOROOOOOOOOOOOROOOOOORROOOOOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOORROOROOOOOOOOROROOOOOROORROOOOOOROOROORROORROOOORROROOOOROROROORROOOOORORRORORORROROOOOOROROOOOOORRROOOOORROROOORROOOORROOORRROOROORROROOROOORORROORORROOOORRROOROOOROOOOROORRRORRORROOROORRROORORROROROORORROOOORORRORORRORROOOOOOORRORRRRORRRRRORRRORRRROOOROORRRORRRRORRORRRORORRROOOOORORORRRORRRROOORORRORRRROOROROROOOROOOORRORORRORRRROORRRRRROOORRRORRRRRRRORORROOOORRRRRORRRRROORORORRROORRRROROOORRRRRROORRORORORORORRRRROOROOROOORRRRRORRRORRROROOOORRROOORRRRRORRORRORRRORORRRRRORRRROORRROOOORROORRORRRRRORRRORROROORRRRRORRORRRRRROROOROROORRRORRROORRRRORORRRRORRRRORRRRORRRRORORRRORORROOORROORROROOOOORRROROOOOOOOORRRORRRROOROOOOOORRROOORROORROORRORRRROOOOOOOROOROORROROROOROOROOOOOOROORROORROOOROROOOOOORRROOOROOORRORRORROOOOROOROORRRROOORROOOOOOORROORORROORROOOOORORORRRRRROROROORROOOOROOOOROOOOOOOOROOOOOOOORORRRROOOOOROOOOOOROORRORORORROOOOORORRROOOOORROOOOROOOOROOROROOOROOORROOOOOOOOROOROOOOOOOORROOROOOOOROOOOOOOOROOOOOOOOROOOOOROOROOOOOOROOROOROOOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROROROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROROOOROOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOORORRROOOOORROOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOROOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOROOOROOOROROOOOOOOROOROORROOOOOOROORROOROOOOOROROOOORORROROROROOROOORROOOOROROOOORROORORROROOORRROOORORROROOOROOROOOOOROROORROROOOROORRRRORROOOROOORORRROORORORORROOOORORRORRORORRORROROROOORORORRROOOOROOROROOOOROORROOORROROOOOOROROORORROOOORRRRRRORRROORRRORRROOOROOORRROROOROROOOOORORRRORRORRORRRRRORRORRRRRRRRRRRORORORROROROOOORORROORROORRORRRRRORROOORRRORROOORRRORROROORORRRRRRRRRRROORROOOORRROOROORRRRRRROORROOORRRRRRRRORRORRRORRRRROOOORRRROORRRORRRRRRRRRORROOORROOORRROROORRRRORROORRROORRORROROORRORRROOROORRRORRRRRRRORRORRRRORRORRROROORRRORORRRORORRORRRRORRROROORRORRRORROORORRRORROOORROOORRRRORRRRRRRROROORORRORRRRROORRRROORROOOOORRORRRORRORROORRORRRROORRROOROORRORROROROOROROOOORRRROORRRRRRROOOOROOORORORORRORROOOORORORRRRROOOOROROOORRROROOOOORRORRRROORORROOOORRRORROOOOOORROOOOORRROROOOROOOOORRRRROOROORORORRROROROROOOOOROORROOROOROOORROOROORROOOOOORORRRORRROOOOOOOOOOOROOOOOROOOROROORRRRROOROOOROOROOORROOOROROOROOROORRORROOOROOROOOROOOROORROOOOOOOOOOORROOROOOORROOOOOORROOOOOOOROOOROOOOOOOOORROOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOORROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOORROOOOOOOOOROOOROOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOROOOOOOOOROORROORRRRROROROOOOROOOOOORRROROOROOOROOROOROOORROOOOROROOROROOROOOROROOOOOOOOOOORROOOORRRROOOOROORRROOOORRROROOOORORORORROOOROORORRROOORROROOOOROOOOOROOOOORROROORRORROOOOOOROOORORROORROOORROROORRORRRRRRORRORRROOORORRROROROROOOORRROROOOORORROORRRRROOOROROORROORROOORRRRROORRORORROOROOORORORORRRRROORROROROOROOORORRROORORROOOORORORROORORROROORROOOORORORRORRORORORRROOOOOROORRORORROORROORRORORRORRRRRRRRORRRORRRROOOROOROROOORORORORRRORROROORORROORORRORRRORRROROOORORRRORRRRRORRRRRRORRRRORRRORRORRROROOORRRRRORRRRRROORRROOOORORROOOOOOORRRORORRORORRRORORROOOORRORRRORRRRRRRROOORRORORRRRRRRORORROORRRRROROOOROROOORORORRORRROOROORRRROOOROOORRRROOOROOOOROOROORRRRORORRRROOORRORROROOOROOOOROOOORORRORRRRROOOOOOROROOOROORRORRRROOOOROOOROROOORROOOOORRRROOOORRRROORRROOOROORROOOOOROOOORROOOOOOROROORROOROORRROOOOOOROROROOOOORROOOOOOROOORROOROOOORROOORRROORORROOROORROROOROROOOOOOOROOROROOOOOROOROROOOOOOOOOOOORROROOOROOOOOOOOOOOOOOROORROOOOOOROOOOOOOOOOOOROOOOOROROOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOROOOOROOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOORRROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOROOROROROOOROROOORORROOOOOOOROOROROOOOORRRROROOOOOOOROOOROOROOORROOOOROOOOROOOOROOROOROOOORROOROROROOORROOOOROOOROOROOOROORROROOOOOOROORRRORORORORRORROOROOOROORROOOOROOOROOROORROORROOROOOOROORROOOORRROROOORORRORRRROOOROOOOROROORROOORRORORROROROOORORROOOOORRORORORROORRRORORRRORRORORROOROROOOROROORORRRROOOORORRRRRROOOROOROOOOROOROROROROOORROORORRORRROORROOORROORRORRORRROOOOORRRRRRORRROOOORROOOORRRRROOROORORORROORRRRRORRRORRORRROOROROROOOOORORROROORORRORROROROORRRRRROOORORORRRROORRROROOROOROORORROORORRRRRRRORROROORORORRRRRRRROROOOROORRRORRRRORRROORROOORRORROROOOOOOROROROORORRROOROROORRRRRRRROROROOORRRRRRROORROOORORRROORROOOORROOORRORORRRRORROOORROOOOROOOOORROORROORRRRRROROOROROOOOOORORROORORROORORORROOROOOOOOORRRORORORRORORRRORRROOOOORORORRRORRRORROROROOOROOROOOOOOORROORRORRORROROOROOOOOOOOOORRRRORRRRRRORRORROOOROORRROOOROOOOOORRRORORROOOOOOORRORROORRROROOROORRRROOOOOROOOROOOORROROOOOOOORROROOOOROOROOORROOOOROOOOORORORROOORROOOOOOOOOOORRROROOOOROOOOOROROOOOOOOOORROOROOOOOOOROOORROOOOOOROOOORRRROOOOROROROOOROOOOOORORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOORORRROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROROOOROOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOORORORRROOROOOOOROOOORORRORORORROOOOOOOOROOORROOOROOROORROROOOOOROOOOROOOOOOOOROOOOOORROOOOOOOOROORROOORRORROOOORROOROOROROORROOORROOOOOROOORROOOOROORRRRORORRRORORORRRRRORORORORROOOOROOOROOORRROORORRROOORROOORORORORORORROOROORRRROORRRRROROOORRRROROOOORRRRORRROOROORRRORROROROROOORROOOOOORORRORORRRORORRROROOROOORRRRRRORRROORORROORRROOORRORRRRRORRROROOORRRORRORORRRORORROROOOORRORRROOORRRRORORRRRRROOOORRRRRRORRORRORROOOOOORRRROORRROORRORRRROROOOOROROOROORORORRRORROORRRORORRRRRRRORORRRRRORORORORRRRORRRRROORORRRROOORRORORORRROOORRRRORRRRORRROORORORRROORROOORRROORORORROOORORRRORORRRRRORROOROORRROROOORORRRRRRORRRRORROORRROROOORRRRROORROORORORRROOROORRORRRRRRROOOOROOROROOORRROROOOOOORRROOOORROORROOOOROORRORRRRRRROOOORROOROORROOOOOOORROROOROROOORRORRRROROORROORROOOOROROOOOOOOOOOOORORRRRROOOOOROROOOROOOOROOORRROROROOROOOOROOROOROOOOROOORRORROOOOROROROROOOOOROROOOOOOOOOROOOOOOOOORROOOOROOOOORRROOOORROOOOOOOOOROOOOOOOOOORRROOROOOROOOOOOOOROOROOOOOOOOOOROOORRROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROROOOOOOOROOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOROOOOORROOROOOROROOOOORROOROOOOOORRRROROROROOROOOORROOOOROROOOORRORROOOOOOOOOOROOOOOOORORROORORRRROOOROROOOOROOOOOOOOOOOOROROOOROOOOOOOOROOROORRROOOOOOOOOOOOOOROOOORROOOOOROOOOOROROOOROOOROOORRROOROORROROOOOOOORROOORROORRROORRORRORROOROOOOOOROROOOORRRRROOOROORORRROORRRROORORORORRROOORRRROOROROOORORRORRORRRRROORRROOOOOOOOROOOOOORRRRRROOOROROOORRRORRORROOOOORRORORORRRORRROORRRRROOOOORORROORRRRORRRORRORROORRRRROORORORRROORRRROORRORRRRRRRRRORRROOOORRRRRRRRRRRRRROROROOORRRRORROOOORRORRROOROROROROOOOOORRRORORRRRROORORRRRROORRRRROOROORROROORROORORRORORORRRORRRRROORORORROOOOORRRRRRRRRRRRROOOOORORRROOROORRORROORROORRROOOROORROROORRRRROORROOOOOROROORRORROORRRORRROOORROROOROORRRRRROROOROROOORRROORRRROROOORRROROORRORORRRRROORORROORROROOORRROROOOOORORORRROROROOOROOROROOORRORRRORRORRORROOROOOOOOORRORRORORROOOOOOROOORRROOOROOORORROOORRROROORORROOOOOOROOORRROROOOOORROORRRROROROOOOOOROOOOOROROORROROOOOOORORROORROOOROOOOOORORROOROROROOOOOOOOORROOROOROOOOOOROOORORROOOOOOORORRROOOOOOOOOOOOOOOROOROOOROOROOROROOROROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROROOOOROROOOOOOOORRROOOOOOOROOORROOOOOOOOOOOOOOOOOOROROOOORROOOOORRRROOORRROOOOROOOROOROORROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOROROOORRROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOROORROOOROOORORRROOOROORROOORRRROROROOOOORRRORRROROOORRROOOOOROORROOOROOOORROORROORORROOOOOOOORRRRORORORORRORORROROORORRRRORRRRRRRROOROORRROORROOOOROORORRRRROOORRROORORROORRORROORROOROORRRRRRRRRORORRRRRROOORORRRRRRORORRRRRROORRRORRRROORRRRORRORROORRRROOROROORRRORRRRRRRROROOORORRRROORROORROORRROOOROROOROOOORRROORRORRRORRRRRRORRRRRROROOROROOORORRRRRRRRRROOROOROROOOORRRORRORRRROOOOORRRORRRRRRROOROROROOOROROROROORORROROROORRORRRROORORORRROROORROORRRRRROOROORRORORRRROOORRORRORRROOOROOOORRRRROROORORORORRROOORRROORRRRROORRRORORRROROOOORROORORROORROROROORRORRRRROROROROROORROOORRROOOROROOORROROOOROROROORRORORORORRRRORORRRRROORROROORORRRORRRRROROOROORROROORROOROOOROROOROORRROOOOOOOOROOORORROOOOOOORROROOOROROROROOOORROOOROOROROOORRORROROOROROROOORROOORRRRROOORRORROOOROOOROOROOROOOOOOOOOOOOOORRRROOOOOROORORROOOOROOOOOOOOOOROORROOOROOOOOOOOOOOOOOOOROOOOOROOOOROOOOOROOOOOOOROROROROOOROROOOROOOOOOOOROROOOROOOOORRORORROOOROOROOOROOOOOOOOOOOOOOORROORROOROOOOOOOOOOOOOOOOOOOROOROROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOROOOROROROOOOOOOROOROOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOORROOOOORROOOROOOOOOROOOOOOOOOOOOOROOOROOOROOORROROOOOROOROORROOOOOROOOOOOROOOOOORORROOROOOOOROOOOOORORRRRORORORRRRRORORORRRROOOOROOOOOOOOROOOORRROORORORRRROORROORRRRRROROOROOORRORRORRRRRROOOOROROOROOOORROOOORRRRRORROOOORROOOORORRORRORROROORROOORROOORROROOORORORRRRRROOOORROOOOOROROOROROOOORRORROORORRORRRRRRORORRRRRORRROROORROOOORRROOOOORORORORROROOOOOORORRORRRRROORRORRRRROOOORRRORROORRRRRRRROORRRRROROORRROORRORRRRRRROROOOOORORRROROOORRORROOORRROOORRORRRRRORORRRRORRROOROORRRRRRROOORRORROORRORROROORRRRRRRRRORRRRRORRRORORRRRRRRROROOOORRRROORRRRRRORRRORRRRORRRRORORROORRORORRRROORROOORRORRROROORRORRROORROOROORRRRRRORRRORORRRRRRORRRRRORRRRRORRRRROOROROOOORRRROORRRORRRRRRRROROROOOOORORRRORRRROOROORRRRRRORRORRRORRRRORRROROORROROORRRRRROORORORRRRROORROOOOORRORROROOOOORROROOOORROOROOROORRROROOOORROROOOOOOOROOOORORRORROOROORROOOOORORRROOOROROOOROOOOOROOROOOROOOORROOOOOOOOOROOOROROOOOOOOOORROOOOOOROOOOROOOOROROOOROOOOOOOROOOROOROOOOOOOOROOOOOROOOOOOOROOOROOOOORORROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOROOOOOORRORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOROOOOOOOOOOOORROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOROROROOOOOOOROOOROOOOOROROOOROOROOOOOOROOOOOOOOOOOOOROOOROORORROOOOROOOOOOOOOROROOOOOOOROOROOOOOOOOROOROROOOOOOORRRROORROOOOOROOOORRRRRROOOOOOOROOOROORRROOOOOOOROOOOROOOROOOROROORROOOOROOROROOOOOOOOOOOOOOOOOOOROROROOORORROOROOORROORROOORRROOROOORORRRROROOROOOOROOORRRROOOROORROOORROOROOORRORORORRRORRRRRROOOOOROOROROROOOROOOOOOOORORRRRRORORRORRRRRORRROORROOROORROOORORROOORRRRRROORRRRROORORRROOOOOORORRORROORRORRROORROORROORRRORRRRRROORRORRROORROOORORROOORRRRRROORROOORRROORRRRROROORROORORORORRRORROORRRROORRORRRROOORROORROORROORRRRORROOOORRRORRORORORRORRRRORRRORRORRROORRRORRORRORROROOOOOORRORRRORRORRORRRRORRRRORRRRRRRRRROORRROORROROOROORRROOORRRRRRORORRROORRRRRRRRRRRORRRRRORRRROORORRORRROOORORRRRROOOROOOORORROOOORORRROOOOOORORORORRRRRRORORORROROORRORORROOOORRROORORRRRRRRRRORROORRRRORORRROORROOOORRRROORRROORRORORROOORORRRROORORRRRROORRRORROOOOOOOROOROOOOOOOORORRROOROOOOROOROROORORRRORROOOORROOOOOROOOROORROOOROROOOOOOOORROROOOOOOROOOROOOOORROOOOOOOOOROOOOROOOOOROORORRRORROORRROROOOOROOROOOOOROORROORROOOOORRROOOOOOROOOOOOOORROROROOOOOOOOOORROOOROOOOOOOOOOOROOOROOOOOOOOOOOROROOOROROOOOROROOOOORORROOOOROOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOROROOROORRROOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOROROOOOOOROOOOROOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOROOOORROROOOROOOOOOROOOOOOOOROOOROROOOOOOOOOOROORROOOOOOROOROOOOOOORROROOOOOOOOROROOOOOOOOORROROROOROOROORROROOOOROROROOOOOOOOOORROROROROROOORORRROROOOROOROOOORORRRORROROROOORRROROOOOOORORORRROORROOROOOORRRRRROOOROOOOROROROROOOROORORRRRROORRORRROOROOROOOOROROROORRRORRRROROORORRORORORROOORRRRRRRROROOOORRROROOORRRROROORRORRRRRRRORRRORRRROROORRORRRROROOOOORORRRROORRRRRRROOORRRROORRRRRRORORRROOROOOROOOORRROOOOORRORRRROOROROORORRRRORRRRRRRRRRRRRRORROROOROROROROROORRROROOROROOORORRORORORRRORORRORRROROOORRORORRRRRRROORORRRRRROOROOOOOORORORORRRRRRRRRROORORROROROORORRRRROORROOORRROROROOORRORROORRROORORRROROORRRRROORORRRRRRORRRRRROOOOOOOORRORRRRRRRRORRRRRROOOOOROOROROROORORRRROROORROOOROROORRORRRRROOROORROOROROROOOROOOOROROOORROOROOOROOOORROOOROROROOOROORRORRROORROOOOORRRORRRROOOORRROOOOOOOROOORORRRORORROORORRROROROROOROOOOOORORORRROOOROOOOOORRRROROOOORRRROORRROROOOOOOROROOORORROOOOORRROOROROOOOOROROOROROOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOORRROOOOOOOOOOOROOOOOOROOOOOORORROOOOOOOOOOROOOOOOROOROOOOOROOROOOOOOOOOOROOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOROOOROOOOOOROOOOOOOOROROOORRROORRRROOOOOROROOOOROROOOOROOROOOROOROOOOOOOOOROOOROOOROOOOOOOROOOOOOOOOROROOROOOOOROOOOROOOOOOOOROOOOOOOOOORROOOOOOOOOOOOROOOROOOOROOOROOROOORROROOOOOOROROROROORROOROROOOOORRRROROROOORORRROOOOROORRRORORORORRRRRROOOORROOOOOOOROOROROOOOORORROROROOOROOOORRRORROOROOOOROOOOOOOOOOROOOROROROOORRORRRROROOROOOORORRRRROROORORRRROROOROORROOOOROROROROORORORRORRROORRROROORRRRRORORRORORRRRRROROOROOROOROOORRROORRROORORORRRRRORROOOORRRRRRORRORORRRRROROORRRRRORROOOORRORRRROOORORROORROOORRRORRRRORROROOOOOROORORROOOOOROORRROORRRRRORRRRROOROOROORORRRORORRRROROROOORRRROOOOOROROROOROORRRORRRRRORRORRRRRRORROORRROORORRROORRROORRORORORRRRORRRROOOOOOOOOOOROOOROROOORORORROORRRRROORORORROROORORRRRRRRRORORRRORRORRRRROORROOORROORRRORORRRORORORROOOOORRRORORROOOOOOROOROROORRORROROORRRRRROOOOROOORROOROROROOOOOOORRORROOORROOROORRRORRROROROOOORROOORORROOOROOOOOORORRORROROOOOROOOOOOOORRROOOOROOOOROORRROROORROROOOOOROOROOOORROOROOOROROOOORROOROROOOROOOOROOOROOOROOOOOOOOOOROOOOROOROOOOOROORRRROOORORROOOOOOOOROOOOOOOOROOROOOOOOOOOOROOOOOOROOOOROOOOOOOOOROOOOOOOOROOROOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOORROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOROOOROOOOOROROOROOOOOROOOOOOOOOOOOOOOOOOROOROORRORORRROOOOOOOROOOOOROROOOROOOOORRROROOOOORORRRROROOOOOOOOROORRORROOOOOORORRROROOOOROOOOOOORRROROOOOOOOOOORORROOROOROOOOROOROROROOROROOORORROOOROORROOOROOROOOOOOORRROOORORROORRRRRRROOOOOROOOOROOOORROOROOOOROORRROOOOOOOORORORORRRROOOROROORORRRORORRRROROOROORROROOORRRRORRRORROORORRORRROORORORORRRORROOROROORRRRRROORRRRRRRORRROOORRROORRROOORORRRORRRRROOROROROROOORROOOOORORRRORRROOORORRROROROORRRRRROOOORRORRROROOOORRORRRRRRRROORRRROROORRRRROROOORRRRRRRORRRRORORRORRORRROORROOOOORRRRRRROROOORRORROORROORORROOORRORORRORRRROOROROOOOROOOOOOROORRORORROORRORRORRORRRRRRROROROORORROOROOORRRRRRORORRRRORRORRRRORRORRRRORRRRROORROROOORRORRROROROORRRORROOOROOOORRRRRORORRROOORORORRROOORRRRROORRRRRRRRRORRORROOOOROOOOORRRRRRORROOORORROORROOOOOOORORROORROROOOOROORORRRRRRROOOROROOROROOOOROOOROORORRRROOORROOOOROROROOROOOOOROOROOOORROOROROOORRRROOOOROOROORROOOOOOORORROROOROOORROOORROOOOOOOOOOROOOOOROOORRROOOOOOROOOOOORROOORROOOOOOOOOROOOORORROOOORRROOOROROORROOOOOOOOOOOROROOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOROOROORROOOOOOOOOORRROROROOOOOOOROOORROROOOOOOOOOOROORRORROOOOOOOOOOOOOOOOORRRROOROOOOROROROOOOOOROROOROOOOROOROOORROROOROORROOOORROORRORORORRORROROROORRRRROOROOOROOOOOROOOROORROOROROOOORRROORORROOOOOORROOOOOROROROOORRROOOOOOORROOOROOOOOOROOROROOOORROOORROROROOOROORROOROOOROOROORORRORORORRRRRRORROORRRRROROROROOROOORRRORROOORRRRRRRORRORRORRRRRRORRRRROOOROROORRRRORRORORROOORROOROROROROROORRRRRRROORRRRRRROROROORRRROORRORROOOOOORORRRRRORROORRRRROOROROROOOOROROORRRORORRORRRRRRRROROORORRRORORORRRRORROORROOORRRRROOOOORROROORORRORORRRORRROOORORRROOROORRORROROOORORORRRRRRORRRORORRORRORROORRROOROOORORORRRRRROROOORRRRORROORROORROORRORRRRRRRRRORRORROOORRRORORROROORORRRRRRORROORRROOOOROOOORROROOROORORRRORROORORROORROORRORRROOOOROROOORROROROOROORRRRROORORRROOORRROOOOOOOROOOROORORORRORRROOOROROOORROORORORORRRORORROORORORROOOROROROOORRRRORRROOOORRROROOOOOOOOORROOOORROOOROOOOOOOOOROOOROOROROOOROOOOOOROOROROOOOORORRRROROOOOROOOOOOROOOOOOOROOOOOOROOOROROOOOORRROROROOOORROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOROROROROOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOROORRROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOORRROOOOOOOOOOROOOOOOROROOOOOORORROOOROOOOOOROROROOOOOOOOORORRROOOOOOOOOOORROROOOOOOOOOOOOROORROOOOOOOOOOOOOOOROOOOOOORRROROOOOORRROOOOOOOOROROROROOOOOROOOOOROOROOORRROROOOROORORROOOOOOOOROORROOOOOOROORROOOOOOROROOOROOORRORORRROOOOOOORORROORRRRRRROOOOROROORROOOROOOORROORRRRRROOOROROROOROORORRRORORROOOROORRROOOORROOORRRROOOOOOOOROOOOOOOOOOROOROROOORROORROORRORROOORROORORRROOORORROORRRORRROORORROOROROORRRROOORROROOROROORRRROOROOOROORRRROORRRRRORORRRRROROOOROOOOOOOOOROOOORORROOORRRRRRORROOROROORORORRRRORRORRORRORRRRROOROOOORROOORRRRRRRROROOOORRRROORRRRORRORROROROOOORRRORORRRRROROOOOORRORRRORORRRRROORORORRRORRRRRROORRRORORORORORRRRRRORRROOOROOROOORORROORRRRRROROOOOOROOOORORORRRORORORROOOORRRRRRRORROROOORRROOOOOOORRORORORRRRRRRRRRORRRORRRRRRORORRRRROOOORRRRROOORRORORORRRRRRORROOOOOROOROOORORROROOROOOOOORRRRRROROROORRORORORROROOORROOROROROOROORRROOOORRRRROOORRRORRROOORROROOROOOOOROORRROORRRORRORROORROROROOORRORROOOOORRORORORROROOROOOOOOOOOOOORORRRORROORRROOOOOOOOOOOROOOROOOOROROORROOOOOORROOOOOOOOROOOROOOOROROOOROOROOOOOROOOOOOROROOORORROROOOOOROROROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOORORROOOOOOOOOROOOOOOOOOROOOOOOROORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOROOORROOOOOOROOROOOOORROORRROOOOOROOOOOOOOOOOROOOOROOROROORRROROOOOROOORRRRORROOOOORRRROOOOOROORROROOOROOROROOOOOOROOOORRRORRORRRORRRROROOROOROOOROOOROOROORRROOOOORRRRORROORROOOROROROOOOROOOROOOOOROOORRROOOORROROROOOOOORRRRRROOROOOOORRRRORRORROROOORORORROROOOORRRROOROORRRORRRORORRRRRRORROOOORRORRROOORROROORROOROORRRORRORRRORRORRRRROORROOORRORRRORRROOROORORORRRRRRROOOORRRRORRRORORRRRRRRRORORRRRRRRRRRORRORORRRORROORRROROOROOORRORRORRRORRRRRROROOOROORRRRRRORORORRROOROORORRORRRRRRRROOOORORRRRROROROORRORRROOORRROOORROORRRRRRRORRROOROROROORRRROOORROROORRROROOOROOOROOOOOOROOROOORRROORRORRORRROROROOROROORROROORRORRRROROORRORROORROOOROOOOOORROOORRRROOORRORRRRRORRROORRRRRORROOROORRORROOORORRRROOOROROOOORORRORRROORROROOORRRRRRRROORORORORRORROORRORRORRROOROOOOORRORROOROOOROOOROOOOOOORRROOOOOOOORRORROOROOOOORROOOOOROOOORRORRORROROOOORRROOOOOOOROOOOROOOROOOOOOOOOOROROOORROOOOOOOOROROROOOOOOOOOOROOOOOOOORRRORORROOOOORROOOORROROOOOOOOOOROORRROOOROOROOORROOOOOOOROROOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOROOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOORORROROOOOORROOROOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOORROORROOOOROROOOOOOOOOROOOOOOOOOORROROOOOOOOOOOORROOOOOOROOOOOOOROORRROOOOOOROOROOOROOOOOROOROOROOROROOOOOOOOROOOOOOOOOOOOOOOOROOROOROOOORORROOOROOROROORROOROOOOOOROROROOOOROORRRROROOORROROOROOOOROROROOOORRORORRORORROOOOOORRROOOROROOROOOOROOOOOROOORROOOOOOOROORRROROOORROOORROOROORROROORROOORRRRRRRORROROORORORRORORRRRRRRRRRRRRRRROOROROROOOROOROOORRORRORRROORRRROROROOOOORORRRRRRROOROROROROOOOOROORROORORRRORRRORRORRRRORROORRRORRROORRRORRROOOROOROROORRRRRRRORRORROROORROOROOOORORORRORORRRORORRRRRRRROOOOOOORORRORRORRORRRORORORRRRRRRROORRRORRORRORRRRORRROORRROROOROOROROORRORRRROOROORRORRORRRRRORORRORRRRORRRRRRRROORORORORORRRROOROORORRRORORRORRORORRRORRORORRRRRROROORRRRORROORRRRRRRORRRRRROORROROORRORORROOORROOROROOOORRORROOORORORROOOOORORRROOOOOORRORRRORRRORORRORRROORROOOOOROROOOOROORRRRRROOOOOORRRORORORORRORRORORORRRRROORROOORRRROOOORROOROROOOROOORRRRRORRRRROOOROOROOROOOOROOROOOOOORRORRRROORORORRRRROOOOOOROROOOOOOROOORORROOOOOOOOROROROOOOOROOORRRROROOORRROOOROOOOOOOOROOOOOORRRROOOROOOOOOOOOOROOOROROOOOOROOOOOORROOOOOOOOOOOROOROOORROOOROOOOOOOOOORORROOOOOOOOOOOORROOOOOOOOOROOOOOOOOROOOOOOOOOOOROROOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROORROOOROOOOORRORORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROORORRRROOOOOOROOOOOORROOROOOOOOOOOOROOOOORROROOORORORROROOROROOOOOOOOOROOORORROOORORROROOOROROOOOOOOOOOROORROROOROORROORORROOOROOORRROORROOROROOORORROROORROROROROOORROOOROOORRRORROROOOOOOOROOROROOORROOOROROROOOOORROOORROROOORORROOORORROOOORRROROOORORROROROOOORROOOOORRRRRORROROOROORORROOOOOROROROOOORORORORRRRORORORROORROOROORRRRRORRRRORORRRORRRRRRRRRORORORORRROORRRRRROORRORORRORORROOORROOOORRRRORRORRRRRROROORRROORRRRRROOORROORROOOROOROORORROOROROOROOROROROROOOROORROORRRORRROROORORORORROOORORROORROOOORRRRORROOORRRROROORRRORRRRRRRRRRRRORRRRRROOROOORRROOROORRROROORROORRRRRRRRORORORORRORORRROOROOOROOOORRROROORROOROOOOORRORRROORROROORRORORRROOOOOROOOROORORROROORRROOORRRRRRORRRRORRRORROROOORRROOORRROOROOROOOROOOOOOROROROOOOOROROOORRORROROOOOOOROOOORRORRORRORROOOOROROROOOOORORROROOROOOORORORORRRRRRRRROOORRRROROOOOROOOROOOOROOROOOOOOROOOORRROOOOOORROORORRROOOOROOOORROOOOOOOOOORROROROOOOOOOROOOOROOOOROOOORROOROOOOROOOOOOOOOORRROOOOOOOOORROOOROOOOOOOROOOOOOOROOOROOROOOOOOOOROOOORROROOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOORROROOOOOROOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOROOOROOOOOOROOROOOROROOOOOORROOROOROOOORROOOOOOORRROOROROOOOOOOOOOOOOOOOROORROOOOOOOOOOORRROOOOOOROROOOROOROROOORRROOROOROOOOOOOROORORRROOOOOROROOOROOOOOOOOOOROROOOROOOROORORROOOOOOOORRROOOOROOOOOOOOOROOOOROOOOROROOROROOROOOOOORORROORRORORRROORRROROROORORORORORORROOOORORRROOOORORROOORROORORRRORRRROROOORORORRROOOORROROOORRROORROROORROOOOROOOOORRORRRRRORORRRORRRORRORORRORROOOROORROOORRROROOOORRRRRROOROOROORRRRRRRRORORRRORRRROORRRRRRRROORRROORORRRORORROOOOOORORRRROORRRROORRORRRRROORRRRRRROORRROROORORROOROROORORRROOORORROORORRRRRRORORRRRORROORRORORORRROORRRORRORRORORROORRRROROORROROORRROORROORRROORORORORRORORRORRRRRRORRRROORRRROROOOORORROORRRORRRORROOROROOORORORRRRRROOORRRRORORRORROOORORORORRRRRRRRRRRORRRRROOOORORORRROORRORORRORORORRROORRRROOORRRRORROOORROORRROOOOORRROORORROOORRRRROORROROORRORROOOORRROOOOOOORORROROOOOOORROORRROROROORORORROOORROOOOOORROROROOOORROORROORROOOOOROOOOROORORRROORROOOOOOOOOROROROOOOROOOOOORROOROOOOOOOOROOOOOORRORRRROROOOORRRORROOOROOOROOOROOORROROOOOROOOROORROOOROROOOOOOOROOOOOOOOOOROOOROROOOOOOOOOORROOOOROOOOOOOOOOOOOORORROOOOOOROOOOOOOOOROOOOOOOOOOOOOOORORRORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROROROOROOORROOOOOOOOOORROOROOOOOOOOOROOOOOOOOOOOOOROROOOROORROOOROOROOOOROOOROOORORROOOORRRROROOOOOOOROOORORROOROOORORROROOOOOROROOOOOOOORORROROOOOROOORROOOOOOROOORRORROOROORRRROROOROOOOROOOOORORRROOOROOOOOOOORORROOOORROOOORRROROORRORORRORRORORORRRRORRRRROOORRORRRRROROOOORRROORROOORRRROOOOOOORORRRORRORRORRROORRRRRROROROOROOOORRRRRRROOOORRROOOROOOROROOROORRORORRRORORORORRRORROORORRRRORRROORORRRRRORORROORRRRORROORRROOORRRRRROOOORRRRRRORRROORORORORROORORORRORRORRRRORRRRRORROROOROORRORROROORORRROORRORORORRRORRRRROOOOORRORRORROOOOORRRRRORRROORRRORRORORRRRORORRORRRRRORORRROORROORRRROORRROROOORRRORORRROOORRRROOORROORORRORRORRRRORRRRRORORRROROOORORRORRRRRRORORRRORRRRRRORRRRROOORROOOORORORORORRRROOORORRROORORRRROORRORRRROOOORRROOROROOOROOOOORORRRRORRROROORRRRORORRORORORRROROOROORRRRRROOROORROOOROOORROOOROOROOOOROOOOOOORROOORORRROORORRORORORROROROORRORORRROOOOROOORROROOOOOOOOOORROOROORROOOOOOOROOOOROOROOOROOOOORORORROOOOOROOOROOOROOOROOOOOROOOOOROOOOOOOOOOOROOOOOROOROOOOOOOOROROOOOOOROOOOOOOROOOOOOROOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROROOOOOOORROOROOROOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOROOOOOOROOOOOOROOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOROORROOOOOROOOOOOOROROOOOOOOROOOOOOOOOROOROOOOOORROOROOROOOOOOOROROOOOOOROOOOOOROOOOOROROOOOROROOOOROROROOORORRRROOOOOOOOOROORORRRORRRROOROORROOOORROOOORORORRRROOROOOROOORORORORROORORORRROOOOOROROROOOOOOOROROOROROROOROROROOROORRROOOORROOOROORORRROOORRRROOOROOOROOOOOOOROROROOROOOORRORORRROORROOORROOOROROORORROORRRRRORRRROORRRRORRRRRROOOOOOOORORRROOORRRORRROORRRORROOROORRRRRRORRORRRRRRRRRRORRORORRRRORRROOORRORRRROROROROOORRRRORRORRROORRRORRROORRRROORORROROORRRRRRRROORRROOOROOOROOORRRRORRORRROOORORRROORORRRRRROROORRRORRRORRRRRRORRRRRRRRORRRRRRRORRROROROOOOORRROORRROOORRRORRORRRORORORROROOOOOORRORROORRRRRROOORRROOORRRORRORRRRRROROORRRRORRROROOROOORORRRRORROOOORRROORORROOOOOORORORORORORROROOORORRORRRRRRORORORORRRRROROOOORROOOROOROROROOORRRROORORRROOORORROOOROOROORORROOOORRRORRORROOROROOORRORRROOOORRRRRRORORROROOOOOORRORROOROROROOROROOOOOORRROOOOROOOROOORROOROOOORRROOORROOOOOOOOROOROORROROROROROOORORROORRROROOROOOROOOOROOROOOROOOOOROROOOOORORROOORROOROOOORRRROOOROROOOROOOOOOOOOOORROORRRROROORROROOOOOOOROOOROOOROOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOROOORROROOOOOOORROOOROROOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOORROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROROOOOOOROROOOOOOROOOOORRROOOOOROROOOOOOOOROOROROOOOOROOOOROROOOOOOOOOROROOOOOOOOOOORRROOORRRROROOOROOOOROOOROOOOOOOROOOORORRORRRROOOROROOOOORRRROORROOOOOOOOROORROROOOROROOORROOOOOOOOROORRRROROOORRRROOROROOOROORRROROOOROORRROOROOOOROROROROROORROORRRROOOORRORROROORRRRROOROOOORRORRRRROOROOORRRRRRRORRRROROROOORRRORRRROROORRORRROORRRORRORROROORRORROROOROORRRRRROORROORRROROORRRRORORRRRRRORRRROORRRRORRORRRRROORRORRORRRRORROROROROORRROORRRRRRORRRORORRRORRRRRRORORRRRORROOOROOROOROOORRRRRROOOORRORROOOOORORRRRORRRORORORRRRRRRRROROOORORRRROORRRORRORRRRRORORRORRRRRRORORRORRORRORRROORRRORROOORRORROORROORORRRRORROOOOROROOORORRORRRORRRRROOROOORRORRRRROORROROOOORRRROOORRRRROOROROORRRRROORRRRRORORRROOOOOROORROROORRRROOORROOORROOOORORRORRRROOROORORROOROOROROOROROROOROORROOROORROOROOOORORRRROROORORROORROOORORRRRORROOOOOOORRORORROOOOOOOOOROOORORROOOOOOROROOORRRORROOORRROOOORORROOOROOOOOOROOOOOOROOROORRRORROOOOOOOOOROROOOOOOORRRROOOOOROOOOOOROROOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOORRROOOROOOOOOOOOOOROOOOORROOOOOOOOOOOOOROOOORROOOROOOOOOOORROOOOOOORORROOOROOROOOOOOOOOOOOOROOOROOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOORROOOOROOOOOOROOOOOROOOOOOOOOOOOOORORRROOOOOOOOOOROOROROOROROOOOOOOOOOOOOOOROOOOOOOOROROROOORRROOOORROOOROOOROOOOROOROOROOOOOROOOOOOROOOOOROOORROOOOOROROOOROOOOOOROOOROOORROOOROOOOROOOROROOORROORRORRROORROOOOOORORROOOORRRORORROOOOORROOROROROOOORRROOROORORRRROORROOORORRRRORRRROROROOROROOOORROORRROROOROOORRRORROROROROOORRORORRROROOOOROOROROORORROROORRORROROORRRRRROOOORRRRRROOOROOROOORRRORRORRRORORRRROOOOROOORRRROORROOROOOROROOOORRRORRRORORRORROOORORRROORRRRRRROOOOOOOOORRRRORRROORRRROOORRORRRRRRORRORRROOOOOOOOROORRORORRROOORRRORRRORORRORRRRRRROORRORRRORORRRROORRRRORRRRORORRORROORRRRROORRORRRRRRROORRROOOROOORRROROORORORORORORROROROORRRORORORORROOORORORRRORRORRORROOROOROOROOOROROROOROORRRROOORROOOROORRRORRRORORROOORRRORRORRRRROOOOORROROORROORORRRORRRROOOROORRRRRORORRORROORRRORRORRRRORROOOOROROROORORRRROROROOOORRRRROORROROORRORRORROOORROOROORROROOOOOORORROROOOORORROOROOROOOOORROOOOROOOROOROOOOROOORRRRORORROROOORRRROOOOOORORRROORRROOROORRORROOROOOOOORORORROOROOROOOOROROOOOOOROROORORRRROOROOROOORRROOOOOORROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOROROOOOROOOOOOROOROROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOROOOOOOOROOOOOOOOROOOOORRORORROOOROOOOOOOOOOOOOOOOOROOROORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOORRROOOOOOOOOOROOOOOROOOOOOOOOOROOROORROORROOOOROOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOORROROOOOROROROOOOOOOOOORRROOOROOORROOROOOROOOOOOOOROORROOOORORROROOOOOOROROOOOROOOOOOORROROOROROOOROROOOOOOOOORRROOORRORRROROOOOOORROORRROOORRRROORORRRRRORROOORORRRROORRRRRRRORROOROOROOORRORRRRORRRORRROOOOROROORRRORRRRROROOORROOORRRROOOOROOORRROORRRRRROORRRRRRORROROROOROOOOOOROOOROROORRORRRRRRORRRRRORORORORRORRRRRRRRROORORORRORORROORORRRROROROOOOROOORROOORORRORRROROOOROROROOROORRORORRRORRROORROORORRROOORORRRRORRROOOOORRRRRORROORRRRRROORORRORORRRRRRRROOOROORORRRRRRRRORORORROROOORRRORORRROOORORORRRORORRORORRORRRRRRRRRORRRRRORRRRRRRORRRRORRRORRORRRRRRRORRRROOORROOORORORROOOROROORRORORORROORORROORROOOROOOORRORROOOOOOORROOROOOOORORRORORRROOOOORORRRRORRRRROROOORRRRRRORORRRROOORORROROOOOOROROROROORRROOROORRRRROOOOROOROOOROROOOOOOOORRRORORORORRORORROORORROOOOOOOROOOORROOROOORRROORROOROOROROOOROROROORRROROOORRRROOROOORROOOROOOOORROOOOOROOROOORRORORROOOOROOORROOORROROOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOROOOOROORORROOORRORORROOROOROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOORROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOORROOOOROROROOOOOOOOOOOOOOOOOOOOOOORORRRROROORRROOOOOOOOOOOROOORROROOOOOOOOOOOOROOROOOOOOOROOOOOOOORRROOORROOOOROOOROOOROROOOOOOROORROROORORRRRORROOOOROOOOOROOOOOOOROROROORRRRRORRROROORORROROROOOROROOOOOORRRORRORROOROROORORRRRRORRRRRRRRRRORROOORRORRROOOROOROROOOOROOROORRROOOOOROROOORRRRRRORRROROOORROOORRRRRROOROORORORRRRRROOORRROOROROORRROORORORRRROORROROOORRRRRRROORORRORORRRRORROORRORRROROOOORROORORORROORROOORRRORORROORORRORRRORRORRORORRRROORRORORRROORRORRRROOORRROROORORRRRROOORRROOORRRORRROROROORORRRRRRRRRRROOROOROROORRORORRRRRRROROROROOORORRRROROORORRORRROOOOROOOROORRRRORRORROROORORRRROORORRRRRRROORRROORRORRRORORRRROROROOORRRRRROOOORRROROROOROORRORRRORROORRRORORORRRROORRRORROORRRROROORRROORORROORRRROORROOOORRORRRROORRRRROROOROOROOOROOROOROROOOOORROOOROROOROORORRROROROROROROOORROROOOOORROOOROOOOOROOOOOROORORRORRORRRORORORRRROROOOORORROOOOOOOOOOOROOROOOROOOROOOOOOROOOOORRRRRRRRORROOOOOROOORROOOOOORRROOOOOOOOOOOOROOOORORRRORROOOOOOOROOOROOOOOOOOORROOORRORROOOOOOOOOOOOOOOROROOOOOOORROORRROROOOOOROOOOOOOOOOOOOORROOOROROOROOROOOOOOOOOOOOOOORROOOOROOOOOOROOOOOROOOOOOOOOOORRROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOROOOOOORROORROOOOROOOOOOOROOOROOROOOROOOOOOOOOOOOOROOROORROOROOROROOROOOOROOOOOOOOROOOOROOOOOOOOOOOOORROROROOOOROOOOROOOOOOOOOORRRRRROOOORROOOOOROROOOORORROOORRRORRORORROOROOOORRRROOROORRORORROROOOROOOOORROOOOOOOOOOORROROOOOORRRRRROOORRROOOORROORROOORRROROORROORORRORRORRRROOROOOOOROOROOOROOORRORRRROROROROOROOOROROORROORRRRORROROOORORROOOORROROOORRROOOOORORRROOORRRORORORRORRORRRROORORROOOORRORORRRRROROORORRRRORROOORRRORORRRRRRRRORORORRROOORROROOORRORRRRRROOORRORROROOORRRRRORRRORRORRRORRORORROROORRORRRORORORRRRROOOORORRRORRRRRROOOORORORRRRROOORRRORRRROOROORRORRRROORRORORRRORRRRRRRRRRORRROOOORRORROOOOORRORRROORRRRRRORRRRRROROOROOOROOOORRRRORRRRORORRROROOOOOORRORROORRROOORRRROORRORORROROROROORRORRRROORRORRORROOOORROROOROROROOOOOOOORORORRORRORROROOROORRORORRROORRROOOORRRRROOORRORRRRROOORRRORRRRRROORRRORORROOOROROOOOOOOOOOOROROOOORROOOOOOOORROORORORORRORORROORORRRORRROOOORROROOOOOORRROOROROROOOOOOROOOOOOOOOOOOROOOOROROROOOROOOOOROROOOOOOOROOOOROOOORORROROOOOROOROOOOROOOROROOOOOOROOROOOOROORROOOOOOOORROROOOOOROOOOOOOROOOOOOOOOOROORORROOORROOOOOOOOOORROOOOROORROROOOOOOOORROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOROOOOOROOOROOOOOROROROOOOORROOOROOOOOOROOROOOOROOROOOOORRORROOROOOOOOOROOORRRROOROROOOOOOORORROOROROOOOOOOOOORRROOOOOOORROOROROOROOOROROROOROOOORRROOOOOROOOOOOOOOOOOOORROORROOOOOROROOOOOORRROOOOROOOORRORORORRRROOROOOOROOOORROOOORORORROORROORRORROOOROROORROOROROOORROOROROOOOROOORORROROORROOROROORRROOORORROROOROOOORRRRORORRRROOORROOORRRRROOOOORRRORROORROOROROOOOOOOOORROOORORROROORRRRRORORROOOROOROORRORRROORORROORRRRORRRORRROORROOOORRRORRRORRROOOOROORRORRORORROROORRRRRORORORRRRRROOOORRRRROROORRRROOROORRRORRORROOOOORRRRRRRRORRORRRRROROROORROROORRRROORRROORRORRRRRORRROOOOOROORROORORRRRRORORRRORRORRORROOOORRRRRRRRRORORROOROORORRRRRRRRORORRRRROOORRRORRROOOOORRRRRRRORORROOORRRROROROORRORRRRROROOORRRORRRRRORORORORRROROROORRORRRRRORROORRORRORROROORORROOOOOORRROOOOORRROOROOORRORRRRORRRRORROORORROOROOOOOROORRROOOROOOOOOROROOOORROOOOORRORROROOORROORROROROOOOOOORRRORROROROOORROOOROOOOORROOOROOOOOORRROOOOROOOROROOOOROOOORRRROROOOROROROOOOOOROOOROOOOOORROOOORROOOORROOOROOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOROORROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOROOORROOOOOROROROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROORROOOOOOOROOOOOOOROOOOORORROROOOOOOOOOOOOOORROOOOOOOROOOOOOROROROOOOOROOOOOOORROROROOOOOOOOOOOOOOOOOOOOOOORROROOOROROOOOROROORROROOOORROORRORROORORROOOROOOOOROROROOOOOOOOROOROOOOROROOOOOORRRROOOOOOROROOROOOOOOOORROOOOROOROOOOORRRORORORROOORRRRROOORRRORRROORRORRRRRORRRORRROORROOOOOORORRORROOROOOORRORRRROORRROOROOROOORROOORROROORORRORRROROORROOORRRRRORRRRORROOORRRRROROOROOOORORRRRRROOOORRRRORRROORRRORRORRRRRRROROOOORRROROORRORRRORRRRRRRROOROOOROOROORRORRROOOORRRRROOORRRRRRRROROOROOOORROOORRRORRORRRORRROORORRRRRRRORRRRRRRORRRORRORORRORRRORRRRRRRROORRORRORRRRORROOROROROORORORRORRRORRROORRRRRRROORRRRRRORORRRROROROROORRRRORORRORRRROOROOORRRRORRROROORRRRRRRRRRRORORRRROORROORRRORROORRRORRROORRRRORORRRRRRRRRORROOORRORORRRROOROOOROOORRROROROOROROORORORORROOOOOROOROORORRROOORRRROORRRRORRORORORORRROOOORRROORROOORRRORROOORRROOOORROOOORROOROOROOOOROROORROOOORRORROROOROOOOOORORROROOOOOOORRROOROROOOOROROOOORRROOOORRROROOROOOOOOOOOROOOOOOOOROOOROOROROOROOOOOOOORRROROOOOORROOROOOROOOROOORROORORRORROROOROOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOROOOOROOOOOOOOOOOOOROOOOOOORROOOOROOROOOOROOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOROOOOOOROROOOOOOOOROOOOOOOOOOROOOROOOORORROOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOROORROOOOOOOOROROOOROOOROOOOROOROOOROOOROOOOOOORROROOORRRRROOOOOOOOOOROOOOOOROORROROOROOOORRROOROROROROROOOORROOORROROROOROOOROROOOOORRROOOROOOOOORROOOOOOOOOORRROROOROOOOROROROOROOOOOOROOORORRRRORRORORRRROOROOROORRORRROROOORORRRORRROROOOOROROORORRORRRRRORRRORORRROOOROORRORORRORORORROOOROOROOORROOORRRRRRRRRRORRROORRORRRORROROOROOROROROOOORRROORRRROOOOOORRORRRRORRRORRRROORRROORORROORRRRRROORORORORORRROOORRROROOROORRROORRRORRRRRORRRRRRORORORRORRRRRRROORRRRORROROOROORRRORRRRRRROOORRORROOORRRRRRRRRROOROORRROOROORRRRRRRRORRRORROOROORRROOORRORRRORRROROOROROROOROROROROORRRRRRRRORRRRORRRROORROROORORORRORRRORRROROORROOOOOORRORROOROROOROORRRRRRROOOORRORRRORRORORRRRORRRORORRRORORRRORRRROORORRRRRRRORORORORRROROOROROOROOOORROOOROORRRROOROOOOROROOROROORRROROORRROORORRRROORRRORRORORROORORORRRRRRORROROOOORRROOOORRROOOOOOOROROOOOROOORROOOOOOROORROROOORRRRRORORRROROOOOOROROOROOROOOOOOOOOROORROOOOOROORRROOOOOOROROOORROOROOOOROROOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOROOOOOOOOOORRROROOOROOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROROOOROOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOROOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROROORROOOOROOOOOOOROORROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOROROOOOOOOOROOOORROOOOOROORROORRROOROOOOOROORRRROOOOOOOORROOOORRRORROROROROOROOOROOROOOOOROOOROROOROROOORRRROOORRRRROORROROOROORRRORRRORROROORRRORRROROOOORORRORRRORROOOOORRRRROORRROOORRRRRRROORROOOORROOOORORORORRROOOOOORRROROORORORORORROORRRRRORRRRRRRRROORRORORRRORORRORRRROORRORRROOORROORRROROROROOROORROOOOORRORRRRRRRORRRORORORRORROORORORORRORORORRROROORRROOOOROROORROORRRRRRRRRORRRRRRORRRRRORRRROORRRRRROOORROORORORORRRRORORROORORRRRORORRORRRORORORORORRRRORRRROOROORRRORRORRRRRORRRRRRRORORRORRRRRRRRROORRRROORRORRROORORRRRRRRROORRROORRRRRRORORRRORRRROORRROOORORROOORRRRRORRRORORORRROOOORROORORROOOORORRRRRROOROOOOROORRRROOOOOOOOOOOOORRORROOOROOORRRRRRRRROROOOORRRRROROOOORRROROROOOROOROOROOOROOROOOOROROOOORROOOOOORRORROOOOROOROOOOOROOOROOROROORRORROOOORROOORRRORROROOOROOORRORRROOOROOOOOOOOROROOROOROROORROOROOROROOORROOOORRORROOROOOOORORRORROROOOROROOOROOROROOOROOOOOROORORROOOOOROROOOROOOOOOOOOOOROROOOOROROOOORROOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOORROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOORROOOOOOORORROOOOOROOROOOOOOOOOOOOOOOORROOROROOOOOOOOROOOOOOOROOOOOOOOOOROOOOROOOOOOOOOORROOOROOOROROOOOOOOOOROOOOOROOOOOOROOOOOOORROOOOROOOOORROOORRROOOORROORROOORRROROOROORORORRROOOROOOROORORORROOROOOROOROORROOOROOOOORRORROORROORORROOROROOOROORROOOORRRROOORRORROORRRROOOROORROOOOOROOROOROOORRRORROROORRRRROROOORORROROROORROOOROOOORROORORRORROOROOOOOORROROOOOOORRORORRROOROORROROROOORROOROOORRORRROOOORRRRROOOORRROROOROROROORRROORRROORORROOOORRRORRRRROOROORRRRRROROORROORORRRORRORORRRRRROROROORROORROORRROOORROOOROROROORRORRORROORRROORORRROROORORROOORRRRORORRRRRORRRROORRRRRRRRRROROROOORRORORORRRORROOOORORROOOOOROOROORORRRRRRRROOORROORORROOOORORROROOOORRRROORROOORROROORROOOOROOOORRRROOORORRRORRROROOOROORRORROORRROOROROOORROOOOROROORRRRRRRROORRORRRRRROOOORRROOOROOOORRRORRRRRRRORORORRROOORRRORRORRORORROOROOOORROOOOROROORROOROOOROROOORRORRRORRRROOORRORROROROROOOROROOOOORRRROORRRROOOOOORRROOOROOOOOOOOOOOOORRORRRROOORROOOOOOORROOOOOROOROOROOOORROOOOOOOOOOROOOOROOORROOOOROROOOOOOOROOOOOOROOOROOOOOOOROOOROOORRROOOOOOOOOORROOOOOOOOOOOOOOOROOROOOOOOOORROOOOOOORRROORROOOOOROOORROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOROOOOOROOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOROOOOOOOOOOOOROOOOOOOOROOOROOOOOOOROOOOOOORROOROROOOROROOROOOOROORRRROOOROOOOOOOOOOOOROOOORROROOOOOOORORROOOORRRRRROROROOROOOOOOROROOROROOOOOOOROOOROOOOROOOOOOOOOOOOOOOORROOROOROOOORROORROROOORORROOORRRROROOORRRORORROOROROOOOOOROROROORROOOOOOOOORRRORRROOOOOROOOOORROROROOROOOROROORRORRRORROORRORROORRRRRROROORRRRORRORROOOORORRRRRRRRORORRRRROOORORORRORRRROORRRRRROROOROOORRRORRRRRRRRRRRRRORRROORORORRORRRRROORRRORRROOORORORORROORRRRRORORORRRRRRRORORRORROROROOROOOROOOOORROOOROROOORRRRRRRORRRROOROOORRROROROOORORORRROORRRRORRORRRORRRRORORORROOOORORRRRRRORORRORRRROOOORROORRORRRRORROOOOROROORRRROORRRORORRRROOORRRROROROROORROOOOOROROOORRRORRRRRORROROOROORRRRRRROOROORRRRRRORRROROORRRRRRROROROORRROROOOORRRRROORORORROROOOROOOOOROROOOOOOOOROOROOOORORORORRRORRROROROOOOOOORRORRORROOORROOOOOOOROOROOOROOOROOOOOOORROOOOROOOROORROOOOOOROROROOOOOROROOOOOROROROOOROOROOOOOORROOORROOOOOOOOOOOOOOORROOROROOROOOOOOROOOOROORROOOORORROROOOOOOROROOROOOOROOOOOOOOROORROROOOROOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOORORORROOOOOOROOOROOOOOROOROOOOOOROOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOROOOOOOOOOOOOROOOOOROOOROOOOOOOORRROOOOOOOROOROOOOORROROOOOROROOOOROOOROORORROOROOROOOORROROOOOROOOOOORRRORROOROOOOOORRROOROOOOROOOOOROOOOORROOORROROORRRRROOOOROOOROROOROORROOOOOORROOROOOOOOOOOOORROOROORRRRRROOOOORRRRRRROROROOOOORRORORROOOORRROOOROORROROORRRRRORROOOROROROROOORROROOOROORRROORRRRORROORRRRORRRROOOOROOORRRORRORROOROROOORORRRROORORRROROOROORRRRORORRORRRRRRORRORRRRRRROROOROOOORORRRROROORRRRRRRROROOROORRRRRROOORRROOROOROOORRROROOOORORORRRORRRRROORRRORRRRRRRORORRRRORORROOROOORORRRRRORORRRRROORRRORRRROORROROORORRRRORRORROOROROORORORROOOOOORROROORORROOOOROOORORRRORRORORRROORROORRROOOORORORRRRORORRRORRORRRORRRRRROROOOROOORRRORRORRROROOOOOOORROORROROOORRRORROROROOOROOORROOORROORRRRORRRROORORRRRRROORRROOORROOOOROOOROOOROROOROROROROORRRRRORORRROOOORROROOROOROOOOOOOOOOOOOROOOOORRRORRRORORRRRROOOOROROROROOOOOROOOOROOROOOOOOOOOROOOOORRORROOORORROROOOOOOOOOROORORROOOROOOOROROROOOORRROOOOOOROOOOOOOOOOOOOOOOOOOROORROOOORROOORROOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOROOROOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOORROOROOOOOOOOOOOROOOOOOOOOROOOROOOOOORROOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOROORROOOOOOOORORRROORROOOROOORRROORROROROOORRORRROOOOOOOOROOROORROROOOOOROOOOOOOOOROOOOROOOOROOOOOOROOOOOROOOORROOOORROOOOOOORRRRROOORRROROROORROOOOOORRRORRORROORRRRROORROOROROOORRRRORROROROOOORORRROOROOROOOROORRRORROOROOORRROORORRROOROORORRORROORROOORRROROROORRRRROOOORROROOORRRRORRRROOOOOORRORRRRRROROOROOORRORRORRRRRRRORRROROROORRORROOORRRRRRORORRRROOORORRORRRRRRORRRRRORRRRRRROROOOORRRRRRORORORROOROORROOOORRRRROORRRORRORRRORRRRRRORORORROORRORORRRORRORROOOORORORRRRRORRRORRRRRORRORRRROOOORRRORORRRORRRRRRRRORORRRRRRRRRRROOOOORRORROROROROOOOROOORRRROORRRRRRORROOOOORORRORORROORRROOORRRRORRROOROOOOORRORRORORORRRRRRRRORRRROORRORRRRROORORRROOOROORRRRORRORRRROOORRRROOOORROOOOOORROOORROOOOOOOOOOORRRRRRROROOORRORRRORRRRRROOOORRROOROOROORORORROROOOOOOOOOROROORRRORROROROROOOOORROOORROOORRRRORORRORRORROOOROOROROROROOOROOROOOORRROORORROOOOOROOOOOOOROOOOOORROOROOORROOOOROOOOOROORORROOOOOOOOOORRRROOOOOOROROOORROORORORROOOOOOOOOOOROOOOROOOOOROOOOOOOOORROOORRROOOOOOOOROOOOOOROOOOOOOORROOROOOOROOOOROROOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOORROOOOOOROOOOOROOOOOOOOOOOOROOOROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOROOOOOOOOOOOOROOOROOOOOORORROOOROOROROOOROOOOOROOOOOOOOOOOOOOORORRORRROROOOOOOOOOOOOOOOOOROOOOOOOOOORROOROOOOROROOOOROOOOOORROOOOROOOOOOROORORROOOOOROOOROOROOROOOOORROOORORROOORRRROOOROOOROOROOOOOORROROORROOROROOOOOOROORROOORRRRRROROROOOORROORORORRRORROOOOROORRROOOROROROROOOROROOORRORROROORRROOOOOOOOROOOORROOROORRORORROOROORRRROOOROORRORROROOOROROOORRORORRRRRRRRRRRRRORORRRORORROOORROOOORRROOROOOROOOROOOOROORRROROOROOORORORORRRRROOOOROORRROORROOORRRORORROOOOROOOORRRROORRRRORRRORORORORRORROOOORRRORORRRROORORRROORRORORRORRRROORORORRORROOROROORRROOORRRORRORORROORROOORORROROOOROROORRRORRRRRRRROORRORRRORRORROOROOORROOORRORRRRORRROORORRRRRROOROORRROOOORRROROOORORRRRROORRORRROORRRROROORRRRROORRORORRRRORORRROOOROOOOROORRRRRRRRORRRORRORRRORRRRROROROORRORRRORRORORRORRRRORRRORRRROOOOROOOORRRROOOOROOORRRROROORRRROORORRRORRROOORROORORROOROOROOOOROROOORROOOOROROORRRORROROROROOROOORRRRROOOROROOOROOOOOOOOOORRROOROOORRRROOROROOOORROOOOOROORORRORROORROOOOOOOROROOORROOOOROOOOROOROOOROOOOOOROOOOROOOOROOOORORORRRROOOOROROOOOOROOROORROOROOROOOOOOROROOOOROOOOOOROOOOOROOOOOOOOOOOROOOROOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOROOOOOOOROOOOOOOOOROOOROROROOOOROOOROOOOOROOORROOOOOROORROOOROROOOORORROOORROOOROOOOOROOOOOROOORROOOOORORROOOOROOOOOORROOOOOOOOROOOOOOOOOOOROOROROOROOOOROOROOROOOOOOROOOOOOOOROOOOOOOROOROOOORROROORRROROOOOOOOORRORROOROROOOOROOOORROORRROROOOROOROROROOORROOOROOOOROORROOORRRROROOOOOOOORROOORRROORORROORRORRRORRRRRROORROROOORORROROROORRROOOOOROOROOOOROORROORROOOORRROORRRORRORORRROORRRRROOROOORRROOROROOORRROOORORRRRORROORRORRRRRRROORORORORORORORORRRRRROOORRRORROROORROROORORRORORRROROORRORORRORORORROORRORORRROORRRRRORORORRRRRORRRRRROOORRRORORRRROORRORRRRRRRRORRROOORRRORROROOROORRROOOOORORORRORRORORRORRORRRROORRRRRROROORRRRROOORRRRORORRRROROROOROOOOOOOROROOOOORRRROOOROOORRRRRRROOOOOOOORRORRORORRORRROORORRRORRORRROORRRROOORORORROOROORRROOORROROORORRRRRRORRRRORRROROOOROROORORRRROORROOOOOOROROORROOOROROROOOOOROROOORRORRROROOOOOROOOORROORORORORORORRORROORORRROOOOOOOROROOOORROOOOOORRRORORROORROORRROOORROORRROOOOOOOOROROROOOOOOOOORORRROOROOROOROOOOORRRROOORRRORROOOOROOROOOROOOOROOROOOOROOROOOROOOOOROROOOROROOOOROOOOOOROOOOORROOOOORROOOOOOOOROOOOOOOOOOOROROOOROOOOOOROOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOROOROOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOROROOOOOOOOOOROOOOROOOOOOROOOROOOOOOOOROROROOOOOOOOOOOOORROOROOOORRROROOOOOOROROROROOORROOROROOOOOOOOOOORROOOOROOOOORROOOOOOOROOOOROORORRRORRORRROOOOOROOROORRORROOOOOORORRORRORROORORRRROOORRORROOOROOROROROOOOORRRORRORROROORORROOOROOROOORROOOOORRRRROOOORRRORORORROOOOORRROOROOORRROOOROOOOOORORROORRRRRORRROOORROROROORRRRRRRROOROROOOOROOROORORRROORRRORORORROOORROORORROOOOORRRRRRRRROROOOORRORRRRRRRRRRROORRORRROOORRORRORORRORRRRRRROORRORRROOOOORRORRORORRRRRROORRRORROORRORRRRRRRROORRRRRROOROORROORROOORROOORRRRRROORRRRRORROORRRORROOORRORORRROOOOROORROORRORRRRRORRRRRRORORRRRRRRRORRORRROORRROORORORRRRORORORRRRRRRRRORORORRROOOORRROORROROOOOORRRRRRORRRROOROORROROOROROROORORRRRORRRORROROROOROORRRORRRRORRROROOOOOOOOROOOORRRORORRORRRROOROOORORORROORRRORORROOROORROOROOOOOOROOORRORORROOOOORRORROROROOOORORROOROOOOOORORRROROOOOORORRRRRROROOOOORRORROOOOROOOROOOOOOOROOOROOOOROOORROOOOORROOOROOOOORROORRROOOOOOOOROOOOOOOROOORRROOROOOORROOOOOOOOROROOOOOOOOOOOOROOROOROOOOROOOOOOOOOOOORRROOOOOOOOROROROOROROOOOOOOOOOROOOOOROROORROOROOOOOOOROOOROOOOOOROOROOOOOOOOOROOROOOOOOOOOOOOOOROOROOOOROOOOOOROOOOOOOOOROOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOROOOORROROROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOORROORRROOOROOOOROOROOORROOROOROORRROOOOROOOOOOOOROROORRROROOROROOROOOORROOORRORORROORORROOOOROOOOROROORROROOOOROOOORROROOROOOROOOOOROOORORRROROOROORRROOROOOOOROROOOORROORROOOROOROORORORRRROOOOROOROOOOOORROOORORRRROOROOOROOORRRRROROORROOORRROROOORRRROOOOROOORRORORRROROROROOOOORORROORRRORRRRORRORROORRRRRRRORRORORROOROROOORRRROORRRRORROOROROROROORRORORRROOORRORRRRROROORRRRRRRRRROORRRROORRROOORRRORRRRRRORRORRRRRRORORROOROOROOROOORRORRRRRRRRRROROROORRRORROOOOORRORRROOROORRRRROOROORRORRORRROORORROOOROROROOOROORRRORORORORRROORRORORRROORORORRRORORRRRRRORORRRRRORRROROOORRRRRROROOOORRORORROOOORROORORRROOOROROOROORORORRRRRRORRRORRRORRRRRROROOOORRORORROROOOORORRRROROOOOROOROOOORROOORRRRRRROOORORRRRRRORRROORORRROOORRORRROOOOOORRRORROOROROROOOOOROORORROROOOOOORORRRROOORRROOOORROOOOOROOOOOOOOOROORROOROORORROROROOOROORRORRROROROROROOOORROOOORROOORROOOOOROORORROOOOROORROOOOOOOOOOOROOOOOOROOOOOROOOOOOOORROOOOOOROOOORRROOOOROOOOOOOOOOORROOOOOOOOOOOOOOROORROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROROROOOOOOOOOOOOOOOROOORRROOOOOOOORRROOOROOROOOOOOORRRRRROOOROOOOOOOOOOOOOOOORROOOOOOOROOOOOOOROOROOOOROOOROOROOOROOROOOOOOROROORROOOOOOOOOROROOOOROROOOOOOOOOOROROOORRROOOOOORROOOOROOOORRROORROROOOROROROOORROOOOOORRRRROORORORORORROROOORORROOORORRORORROORORRRORRRROORRORRORRRORRORROOOOOOOOOROORRORROOOROROOOORORRROROROOOROORROORROROROOORORORORORROORROORRRROROOROOROORROOORRROOROOROROORRRRRORROROROORORROOROOORROROORRORRRROOOOORORRRROROORROROROOROORORORRROOROOORRORRRRORORRROOOORROOOOOROOROROROORRRRRRORRRRRROORORORRRRORRRRRRRRRRRRRRRROOROOORRRORRRRRRRROOROROROROROORRORROROOROORROOORRRRRORRRRROOOORORORRRRORRROOOORRROOORRRRRORROOORRRRORRRRRRRRORRRRORRRRRRRORRRRROOORORORRORROOOOOOOOORRRORORRRRROROORROORRROOOOOOOOOROOOROOORROORROOORRRRRRRROOOORRORROROOROOOORRROOORORROOOORRROORROOOOOOORROOOROOOORRRROORRROOOOOOORORROOORRRROOROOOORROOROOROOOOORROOOROROOOROOOOOOOORRRORROROROROROROOORORRROROOOOROORORRRRROOOOOROOOOOOOOOOOOOORORRROROROOORRROOROROOOOOOOOORRRRRRROOOOOROOROOOOOOOOOOORORRORROOOOOOOOROOOOROROROOROOOOOOORROOOROOOOROOOOOOOOOROOROOOOOORROOOOROROOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOORRROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOORRROOOOROOOOOOOOOOOROOOOROOROOOOOOROROOORROOOOOOOOOOOORRRORORORROOOOORROROORROORROORRORORRRROROOOOROOORRRRROOROOOROOOOROORROOOOROOORROOOROOOOORROORRORROORRROOOROROOORRROROROOOROOOORORORRROROROOOROOOOROROORRORROORRORORROROOORRROOORROORROORROOORRRROOROOROOROORORORRRRRROORRROORROOOROORRRRRORRRRRRRRORRRROORRROOORORROORRRRORRORRRORROOOORROROORROORORRRROORROORORROROOOROOORROORROOORORROORRRROOOORRROORRRORRORRORRRRORORRROOORRORORROOORRORRROORROROORRRROORRRORRORORRRRRRRRRRORRRRORRRRRRRRRRRRRRROORORORRORRRROORORRRRRRRORRRRORRRORRRRRRORRRRROROROOOOOOOROROROROORRRRROOOROROORROOORORROROORRRRRRRRRORRRROOROORRORORRRRRORORORROORRROOOROOORRRRROOOORRRORRORORRROOORROOOOORRRRRORRORRRROORORROOOOOROORRROOORRRRRROOOROROORRRRROORRROOOROOROOROOOOOROROORORRRRRORORRRROOOORRRORORORROOOROOOOROOROROORRRORRRRRRROOROORRORRORROOOORROROOROORORROOOROOOROORROROOOOOROROORROOOOOOROORROOOROOOOOOOOOOOOROORROROROROORRROOORORRROOOROOOOROOOOORORROOOOROOOROOROOROOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOROOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOORROOROOOOOOOOOOROOOOROOOOOOOOOOOOOOORROOOOOROOROOOOOOOROORROOOROOROOROOOOOOOOOROOORORRORROOOOOOOOROOOOOOOOOOROOOOORROOROOOOOROROOOORROOORROROOOOOOOOOOOOROOROORRROOOOROORROOROOOOOROOOOOROOOROOOOROOOOOOORROORRROORRROORROOROOOORRROOORORROOROROOROOOOROOOOOOOOROROROOOOOROROOOOOOROORORROORROROOOOROORRORORRRORROOOROOOROOROROROOORRROORRROROOOOORRRROOOOOOOOOOOOOOOOOROROROROOROORROOOROROORRRORROORORROOORRORRRRRRRRRORRRRRORRRORRRORRRRRRORORRRRRRORROOOOOORORROORRORROORORRRROOOORORORROROORRRORORORRRROOOOROROROORORORRRORORRRROORORRRRRRROORRRRORRORORRRRORRRORRRRRRRRRORRORORRORORORORRORRRRRROOROOORRRRRRRROROOROORORRRRRRORRRORRRRRORRRRRRROOROOORRRORORRORRROORROORRRORRRRROORRRRRRORRROORROORROROORORORORRORRRRRRRRORROOROORORRORORORORRORORRRRRROROOROROROOOOROROOOOOROORRRROOOOROORRROOORROORRORRRORROOOOOROOROROOOOOOOOROOOOROOOORRRRORORROROROOROROORRROORROOORRRORORRORRRRRRORROROOORORROOROROOOROOORRORRORROOOOROROOOOOOOROOROOOOROOORROORRROROOOROOOORORRRROROORORRRRRRORROOORROOOOOOROOOOOOOROORROOROOOROOOOOOROOOOOOORRROOROOOORRORRRRORROOORROORRROORRRROOOROORROROROOOOOOOOOROOROROOROOOOOOROOROROROOOOROOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOROOROOOOOORROOROOOOOOOOOOOOROOOOOROROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOROROOOOROROOOORRORROROOOOORROOOOOOROORORRROOOORROROOOOOOOOOOOOOOROOOORORRORORROROOROOOROOOROOOROOOOOOROOOOOORROOOOOORORROOOOROOORROORROOOROROOOOOOORORRROOROROORORROOOOOROOORRRRORRORROROOROOOORRRROORRROOORORRORROOROORROOROOROOOOOOROORRORROROROROROOORRORRROOOOROOORRRRRORRRRRRORROROORORROORRRORORRRROORRRORROOORORRRORRROROOROOORRRORRORRROOORROORORRRORORRRRRORRORRRRRORROROORRRRORRROROORRROOROROOORRRRROROROORRROORRORRRRROORRROOORRROOORORRROOOORRORROROOROOOOOORORORORRROROORORRRRORORORROOROORRORORRRRRRRRORROOOOORROOROORRRORRORRRRROOORROORORROORROORRRROOROORRRRRRRRRORRRORRRRRORRRORRRRRRORORORRRROOROOORORORRRRRORORRROROOROORORRRRORRRRORRORORRRROORORRROORRORRRRRRORRRRRROORRROORRRRRORROROORORRRROORROOOORRROORORORROROORORORORRROOOORORROROOOOORORROROORROROORROOOOOORRROOOROOOROORRORROORROOOORORRRRRROROOOOOOOROOOROOOOROOOOOOOROROOROOROROROORORRRRRROOOOOOOOOOORROROOOROORRROROOROOOOROROOOORROOOOROOOOROOOROOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOROOOROOOORROROOOOOOOROOOOOOOROOOOOOOOROOOOROROOOOOOROOOROOOOOOOOOOROOOOOROORROOOOORRORROOOOOOOROOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOORORROOOORROOOROOOOOOOOOOOOOOOOOOROOOOOOROROORROOOOOROROOOORROOROOROOOOOOOOOOOROOOROOROOOOOOOOOOROROROOOOROOOOOROOOOOOOOROROROOOOOROOOOOROROOOOOOOOOOOOOROORROOOROOOOOROOOOOOOOOOOROOOOORROROOOOROROROOOOOOOORROROROOOORORROOROOORROOOOROROORORORROROOROORRRRRRRROOOOOOOOOOORORROROOOOOROOOOOOOROOORROROROOORRORRROOOOOOORROOROOOORRRRROOORRORRROOOOOOORRROOOROOOOORROOOOROOOOOROOOOROOOORORRROOROORROROORRRRROOORRRRRORRRRROROOOORRRRRRROROORORRROORRORORRORROROOOORORORORROOORRRORORRORRRRRORRORRRRRORORORRRORRRRRORORORRRRORORORROOOORRRRROOOROORROORORROOROROORROORRRRORRRRRRROOORRORORRORRRROORRORRRRORRRRORORRROOORRROOORORRRRRORRORORROROOOORROROORORRRROROORRRRRORORRORRORRROROORORROORORRRORORRROOROROORROROOOORORRRROOOOOROOOOORROORRORROORRORRORORRORRRRRRRORORRRRORRRRRRORORRRRROOORRRRORRRRRRORRRORRRORRORRRRORRRROOORROORRRRORRORROROOOOORRORRRORORRORRRORRROOORROROROOROOORRROROOOORRROOORRRRROOORRRRRRORRRROOROOOROORRRROOOORROOROOORRORORRRRROORROORROOOROOORROOORORRRORORROORROOORRRROOOORRORROOROOROOOOROROOROOOOROROOOROOOOOOOROOOOOROOOROOORRROOOOROOORROORROOOOOOOROOOOROOOROROROOOORROOROOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOROOROROOOOOOOOOOOOOOROOOORROOOOOROOOOOOOROOOORROOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOROORROOOOOOOOOOOORROROOORORROROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOORRROOROORRROOOORRROOROOROOOORRORRROOOOROOOROOOOROROOORROOOROORRORROOORROORRROOOOROOOOORORROOROOORRRORROOOORROOOOOOOROORORORROOOORROORRROROOOROOOORROORROROROROOORRRROORORRORORRRRRRROOOOROROORROORRROROOOORRORRROORRROOROROOOOORRRROORORORROOOOROOOOOOOOROOOOOOOORORROORRROORROORORRRRORRROORROORORORORRRORRRROOORORORROORROORORRRROORRORRRRORRRROORROORRRROORRORRROOOORRROOROROORORRORRRRRORRORORROORORRRRORRRRRRRROROOORRRRRORRRRRORRRORRRORRRRRRRRORROORROROROROORRRRRRRRORORROOOOOORRROROOORRRRRORORROORORRRRROROOOROOOOOORORRRRRRROORROORORRORRRROROORORRROROOROROORRRRRRRORRRROOOORRRRROOOOOOORORROORRRORRRROOROROOOOROOOROOROORRORORRRRRRORROOOOOROORROOOOORRRORRRROOORRORRORRROOOROORROORRRROOOOOROOROROROORROOOOOOROOOOOORROOROOORROOOOROOORORRRRROORORROROOOOORROOOORROROROOROOOOOOOOOORRROROOOOOROOROOOOOOOOORRROOOOOOOROROROOOOROOORORORORORROROOOOOOOOOOOOROOOOORROOOOOROOOOOROROOOOROROOOROOOOOOOOOOOORRROOOOOROOOOROOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOORROOOOOOOOOORROROOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOROROROOOOOOOOOOORRROOROOOOOOOOROOOOOORROOOOOROORRRRORORROROOORROOOOOOOOOROOOOROOROROOROROOOOOROROOOOROOOROOORORROOOOOROROOOROROOOOOOORROOOOOOORORROOROORORROOOOORROROOOOOOROROOOOORRORRROOOROROOOOORROOORROOORROROOOOOOROORRRROOOOOOOOROOROORORORRROORROOOOOOROORROORROORRROOORRORROORRRRORRROORRRORRRRROORRRROROORRRRORRRRRORRRRROOOORROROROROORORRRRRRRORROORRRRRORROOOOROOORRRRRRROOOOROROROOROORRORRRRORRORRRRROROROORRRRRRORRRRORRRRORROORRRROOORORRRORRRRORRORRRRRROROOORROORROROORRRRROOORROOOROORROORRROORROOORRRRROOORRRROROORORRORROORRRORORRROROORROROORRRORRROOOOORROORRRRRRRRORORORRROORRRROORRORRRROOORRRROOORRROROOROORRRROOORRRRRORRRROORORRRROOOOORRROROORRRROROOORRRRRRRORRORRORRORORRRRROROOROORRORORORRRROROORRORRROOOROOOOOOOOORROOOOOORRORRROOORRROOOROOOOROOOORROORORROROORRRRORRRRROOROOOROOROROROROOORROORRRORROOOOOOOROOOOOOOOOORROOOOROOROROROOOORROOOOOORRRRROOOROOROOOOORROOOOOOOOOOROROOROROOROOORROROORROOOOORROOOROOOROOOOROOOOROOOROOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOROROOOOOOOOROORORROOOOOOOOOOOOOOOOOOROOOOROROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOORROOOOROOROOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOROOOOOOOROROOOOOROOOOOOORROOOOOOOROOOOROOROOOOROORORRRORRORROORORORORROORROOROOOOOOROOROORORRROOOORORORROOROORROOOOOOOORROOROOORORROOROOROOOORRRROROOROOOOROROOOROROROOROOROOROORROORORRRRRRRROROORROROROOOOROORORORRRORROROOROOROROOOOOOORRRROROOOOORORRROROOOOROOROORORRROOOORRORORRRRORRRORRRRRRRORRROROOOORORRORORORRRROOOOOORROOROORRRRROOOROROORRORRORRRRROROROORRRRRRRRRRORRORRRRORRROOORRRORRRRROROOOORRROROROORRRRORRRRORRORORRROOOORRORORRRRORORRORORRROORRRRRORRROORRROOORRRRORRROORORRRORORRRRRRRRRORROOORRRROORRRORRRRRRRRROORRRROOOORROOORROROORRRORROOROOOROOOORRRROROORRRORRRROOORORRRRRORRRORORORRRROOOOOORROROOORRRRROORORRORORORROOOROOROOOROROORRROOOOROORRORORORRRORORORORRROOORORRRRRROOOORRRRRRRROOOOROROOORRRRROOROROOOOOORORORRROOOORROOROOOORRRORROORROROOOOOOOOROOOROOORROOROOROOOOOORORRORROOOROOROOOROOOOROOROOROROOOOOOOOOOOROORROROOOOOOROOOOORRROOOROOOORORROOROROOOOROOOOOROOOOOOOROOORROOOROOROOOOOROOOOOOOROOOOOOROORROOROOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOROOOOROOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOORROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROROOOOOOOOOOROROOOROROOOOOORORRROORORRRROOROROROROOOOOROOORRRRRRRRRORROOOOOOOORRRRORROOOOORORROROOOOOROOOOOOOOOOROORROROORROOORROOOOORROROOOOOOORROROOORROOOOOOROOOOORRROOOOORROOOORORRORROORRROOOROROOROOOROOOROOOOROORRROOOORROOROOORRROOROORRRRRROOORORORRROOOOOOROOOOOOROROORORRRORRRRORRRRRRRORRORORORROOOOORORRROORRRROROOORRORRROOOOORORRRRORRRRORRRRORORORRORORRROOOORROOORRRRRORROROORROORRRROORRROOOORROOROORRRORRORROORORORORRRROROROORRRORORRRRRROORROORROORRRRRROROORRRORORORRRRRORORRRROORRROROORRRRROOORORRRRRROROOROORROROROORROOOOORRROROOOROROOORROORORRORRRRRRRRORORORRORRORORORRRRROOROROROORORRROROOORRORORRRRRRORROROORRRROROROOOORROROOROOORRRRORRRRRRROROOOORROROORRRRORROOORRRORRROOORROOORRORORRRROOORORORROOOROOOOORRROROROROOOOOROOROORROOROOOORROROOORRROORROOOROORORORROROROOROORRORROROOOOOROOORROOORROORRROOOOOORRRRROOOOOOROOOOOOOORROORORRROORROORRROOOOORROOORRRRRROOOOOOOOROOOOOOOOOROOOOROOORROROOOOOORROOOROOOOOROOOOROOROOROOOOOORROOOROROOOROROOOOOOOOORROOOOOOOOOROOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOROOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORRRROOOOOOOOOOOOOOORROOOOROROOOOOOOOROOOORROOOOOROOROOOOOOOOOOROOOOOOOOOOOROOROOORRROOOOOROOOOROOOOOOOROOOOOOOOOOOOROROROOOOOOOROOOOOOROOOROOOOOOOORORRROOROROROROOOOOROROOROOORRRROOOOROROROROROOORRROOOROOOROROROOOOOOOOOOOOROOOORROOOOROORROOROOORORRRORROROORORRROOOOORRROOORRROOROROOROOROROOROOOOROOROORRROOORRORRROOROORRORRRROROOOORORRRORROOOORRORROOORROORROROOORROOROOOORORORRRRROORRORRRRORORROROROOORRROORROOROOOORORRRORORORROORROORROROOORROORRRRRRRROORRROROORRORRRRRRRRRORRRROOOOOORRROOROORRORORROROROOORORORROROROROOOROORRRRRRRORRRROOORRRRRORRRRRRRRORRRRROORRRRORRRROORORRRRRRORORRORORRRROOOROOORRROORRRRORORORROROOORRRRROROOROOOOOROORRRROOORORRRRRORROROROROOORRORRROOROORRRRROORROOROOROORROOOORRORRRROORRRRROROOOOOORRROOROOOORORRROORRORRORRORRRROORRRROORRORRRROOOOOORROOORROORORORORORRRRROORRRRRROOOORROORROROORROROOOORROROROOOORRROROOORROOOOOORRROROROOOOOORROOOOOORROOOOOORROOOOOROORROOOOROROORROROORRROOOOROROOOORROOOOROROOROOOOROROROROROROOROOROOOROORRROROORRRROOROOROOROOOROOOORROOOROOROOROOOOOOOOOROOOOOOOOROORRROROOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOROOOROOOOOOOOOOROOOOROOOOOOROOOOOOROROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOORROOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOROROOOOOOROOOOROOOOOOOOOORROROOROOOROOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOROROOOOOROOOOOOROROROOORRRROOOOOOROOOOOOOROOOOOOOOOOOOOOOORORROORROOOROOOOORROORROOORORROROOROOOOOOROOORRORRRROROROOROOOROOORROOOORRROROOOOOORRRRRORRORROOOROOOORROORRROOOOROORRORORRORORROROOOORRORROORRORROOOOORORRORROROOOROORRROOROROROROROOOROORORROOOOOROROORRRROORRORRORROOOOORROOOOOROOOORROROROORRRORRRRRRRRRORRROOROROOORRRRRRRRORRRORRRRORRROOOOORRRROORRRROOORORORRRRRRORRORORRROOOORRRROORRROROROOOORORRRORRORORROORORRRRRRRORRORRORORRROORORRRRROOORRRRROORORRRRROORRRRORRROROORRORRORRROOROROORROOOORORRORORRRROOOOOORRRRRRORORORRROOORORRRRORRRORRORRRRRRRRROROOOOOORROORRROROORRRORORORORRORRORRROROOORORRRRROORORRRORRRORROORORRRORRRORRROROROROROORRORRORORROOROORROOOOOOORORORRRRROOROOOROOROORRORRRRORORROORRRORRRRROOOROORORORROORORRORRRORORRORRRRROOOOOOORORROROORROOOOOROOOROOROOOORORORROROROROORRROOOOROOROOOROOROOROORRORRORORRROOORRROROOROOOOOOOOOOOOROOROOROOROOOOOOROOOROROOORROROOOOOOOOOOOOOOOOOOOOOROROOOROOROOOOROOOOROORRROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOROOOOOOOOOORROROOOOOOOORROOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORRROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOROOROOOOROOOROOOOOOOOROOROOOOOOOOOOOOROOORROOROROOOOOROOOOOOROOORRROOOOOROROOOOOOOOOROOOROROOROOROOOOOROOOROOOOOOOOORROOOOOROOOROOOORROOOOOROORRROOOOORORROROROROROORRORRORORROROOORRRORRROOROORROROROORRORROOOROOOOOROORROOROORRROROROOOOROOOORRROOOOROOORRRRRORRRROOROORRRRRRRROORORORRRROOOORRORORRROORRORRROROOORORORORORROOORRROORRRRRORROOROOOOOOORRRRRROORRORROORROROROROORORORRRRRROORRRRRRRRRORROORORRRRROROOORRRORRROORRRORRRRORRORRRORORORRROROROOOORORRORRORRROORROOORORROROOROORORROROROOORRRROOOORRRORRRRROOOORRORROORORRORROORRRRORORRRRRORRRRRROORRRRRRRORRROORRORORROORROOORRORROORRRRRRRRRRORRRRRORRORRORROORRRRORROROROORORRRROORROORROORRROORRRRORRRROROROOOROORROOORRROROOORORRRRRRRRRRRROROOOROORRRRORROROOROORORRRROROOOROOORRORORRROORRRRORROROOOORRRROOOROROROOROROORRRRROOOOORRRORRRRORRRORROROORORROROOROOOOROROOROOORRRRROOROOOORORRRRORRRRROOROOOROROOROORRROROOROORROOOROOOOOROROOOOOOROOOOOROOORROROOORRROROORORROOOROROOOOOORROROOOOOOORORORORROROOOORROOOOOOOOOOOOOROOROOROOOOOROOROOROROOROOOORROOOOOOOOROOOOROROOOOOOROOOOOOOOOOOOOOOROOOOOROOORROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOROOOOOOOOORROROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOROOOROOOROOOROOOOOOOOOOORORROOOOOOOOOOOORROROOOOOROROOOOOORROROROOOROROORRROROOOROOROOROOROOROOOOOROOOOOOOROOOOOROOROOORORORORROOROORROROORROOOOOOOOORRRROORROOOOROORROOROROOORRORRORRROROORROROOOOOROOROOORORORRORRROOOROOOROOOOROOOOOOROOROOOOOORORRRORRRROORRRORRROOOROORRRRORROOORROROOOOOROORORROOORROOOOOORRROROORROROOOORRORRRRRROORROORRORORROROROOORRROORRRORRRRRROROOORORROOROROOOROORRORRRORRRORRRRRORRRORRORORRRRRRORRORRRROOORRRRORRRRRROORRRROROORROOOORROORRRRRRRRRRRRRORRRRROOOROROOORROOOOORRRRRRORROOORRRORRROOOROROROOROORORRRRROOOROOROROROOORRRROOOORORROOROORRRRRROROORRRROOROORORORORRROOOORRRRRRROOORRRORROOOORORRRRRORRRORRORRRORORORRROORROOROORRRROOROOOROROOOOOOOOOROOORORRROOOORRRORRROOOROORRRORORRROOORROOOOOROORRRRRROOOOROORRROOROOROROOROOORRROROOORROOORRROORORROROOOORROOORROOOROOROOOORRROOOOOOORRRROOOROOORORRRROOOROOROOOROROOOOOROOROORORROOOOORORRROOORRROOOOORROOOOOOROOORROROROORROROROOOOOROOOOROOROROOROOORROROOOROROOOROOOROOROOOOOROOOOOROOOROOORROOOOOOOROOOORROROOOOOOOOORROOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOROOOROOOROOORROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORRROOORROOOROOROOOOOROOOORRROORORROOOOOOOOOOOOOROOOROOOOOOROOROOOROROOOROOORROOOOOROOOOOOOOOROOOOOOOOOORROOOROROROORRROOOROOOORROOOOROOORRORRROOOROOROORORRRRORORRRROROOROOOOORROOORROROROOOOORRROROORROOROOROOOROROOOOOROROOORORRROORORORROOOOROOOORORRRORORRRRORRROOOROOROOOOROROORRRRRROROOORRORORORRRRROORRRRRROOROOORORROORRRRORRRRRRRRROROOORRRRRORRROORRORRORROORRORRORRRORORORRRRROORROORRORRRORRRORRORRRRRRRRROORRRRROROROOORRROORROORRRORORRROROORRORORRORORROOOOOORORROORRRORROORRRRRORORRRRRRROORRORROOORRRRRROORORRROORRRRRROROROROOROOOORROOORRRORROORRORRORRRRORRROOOOOROORRRRRORRRRRRRORORRRRORRRRRRRRORRRROROORRROOOOROOORRROROROORROROOORRORRRRRRRRRORRRROOORORRRRROROOORROROROORORRORRRRROORRRRORRORRRRRROROORROROORROROROOOORRRRRROOORRRRORRROOOROROROROROOOOORRROOOOORORRROOORROORORROORRRRRRRROOORROOORRRRRORORROROOOOOOOOROROROOOOOROOORORROROOOORORRRORROROOROOOOOOOOOOOROOOROOOOOOROOOROOROROOOOOROOOOOROOROOOOOOOOOOOOOOOOORORROROOOOORRORRROOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOROROOROOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOROORROOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROROOOORROOOROOORROOOOOOOROOOOOOOORROOROOOROOOOOROROROOOOORROOOOOOOOROOOOORROOOOOOROOOOROOOROOOOOOOORRROOROOOORROROOOROOOROORORORORORRRORRRRORRROOROROROROOOOOOOOROORRRORROOOOROOROORROOOROOOORRORORROORRRROROOOOOOOOOOOOROORROORORROOOOOOOOOROROORRROOOOOROOROROOROOOORORRRORRROOOOROOORRORRORROOORRRORORRRRORRROORROROORRRRROOORRRORRRRRRRRRRORRRORROROOOOOROORRORRORORRRORORRRRRROOOOORORROROOOOROROROOOORRROORORRRROORROOOOORRORROORROOROOORRRRRRRROROORRROROORRRRROOROORRRRRRORORORRORORROORRRROORRRORRRORRRRRORRRRROORRORRRRRORORORORORRROOORORORRORRRORRROOORRRRRRRROORROROOROORRRORRROROORRRRORRRRRROROORRORRROOOROORROORRRRROORRORORROORROOOROOOROORROOORRROOROORORRROOROOOROORRROOOOROOROORROROORRRRRRRRRROORORRRRROOROORROORRROORROOROOORRRRRRORORRORRORROOORRRORORORORORRORORORORRORRROORRRRROOOORRROOROOOOROROOOOROOOOORORRORRRORRRROROOOORROROROROOROOOROOROOOROORORORROORROOROORRROOROOOROROOROOOOOROROROOOOOOOROOOOOOOOROOOORORRRRROOROROOROORROROROROOOOORORROROOORROOOOOROOOROOOOOROROROOROOOOORROOOOROOOOOROROROOOOOORROOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOROOOOOORROROOOOOOOOOOOOOOOOOOOOOOOROORROORROOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOORORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOROOOOROOOOOOORROOOORROOOOOROOOOOOOROOOROOOROOROOOOOORRROOROOOOROOOROROOOROOROOOOOOOOOOOROOOOROORROORROOOOOOOOOOOORRROOOROROOOORROORORRROOORRROORROROOOROOORORRROORRRRRORROROOROOROOOOOROROOROOOROOORRRRRROOOOROORRORROORRROOORRORORRRRORORROOORRRORRRORORORRRORRRRRROOOORORRRRRRORORRROROROORORRORORRROROOOROOOORRORRORRRRRROROROOOORRRRRORROOOOROOOORORRRRRRRRRROORRRRORROOROROORRRORRRRRRRRRRRRRROOOOORROORROOORRRRORROORRROOORROORRORORROORORRRORRRORRRRRORROROOORRRORROOROROORRRORRRROOOROOOORROOROORRORRRRRORROROORRRRORRRRRORRRRRRORRORRRROROROOORRRRORORRORORRRORRORORRORRRRRROORRRRROROORROORROORRRORROOORRRORORRRRROOOORORORROORRRORRORRORRRORRORORORRRRROROORRORRORRRORROROOROOORORRROOOROORRRROROOROORRRRORRORROORORRORORORORROROROOOOORORROOORORORROORORORRORRORRRRORROOORORORRORRROORRROOOROROROOROOOORRRRRRROOOROROOORRRRRRORORRORROROOOORROOOORRROOORORROOOOROOORROORORROOORORROROOOOOOROORORORORROROROROOOROOOOOORROROOOOROOOROOROORRRROORRORROOOOOOOOOOOORROOOOOOOOORROOOOOOOROOOROOROOOROOOROROOOOOOOOOORRRROOOROOOOOOOOOROOROOOORROOORORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOROOOOOOOROOOORROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOROOOOROOROOOROROROOOROOOOOOOOROOROOOOOOROOOOOOOOOOOOOROOOOOOROROOOOOROOROROOOOOROROORRRORRRORROOOOOOOOOROORORROOROOROORROROORROOOOOOORROORRORROOOOOOOOROOORROROOORROORROOROROOORORROOROOOROOOORRROOROROOOOOROROORORRRRRRORORROORRORROOORORROROOOOORORROORRRRROORRRRRRRRRORORRROORRRORROOOOROORRRRRROOROROORORROORRRRRORRORORRORORRROORRRRRRRROORRROOROOOORRRROORRRROORRORROORORRRRORORROORRRRRORRRORRROORRORRRORROORRRORRORORRORRORRRRRRORORROORRRRRORORRRRRRRORORRRRORRRRRRORORORRRORORROOROORRRRROOORRRRROORRROROOORRRRRROOORROOOOORORORRROROOOOORRORRROROORRRRRRRROOOROROORORRRRRROORRRRRORRRROORORRORROROROOOORORRRORRRROOOORRRRORRRRRRORRORORRRORRRORORRRROOROOROORORRRRRORRRORRRRROROORORORRRRORROOOROOORRROROOOORORRRRRROOOORORRRORROROORRRRROOOORORRRROOOORRRROROROROROORORROOROORRRRROOORRROORRROOORROOOOROORROOOOOOOOOOOOOOOROOOOROROOOOROORRROOORROOOOOOOOORRROROOOOOOOROOOOOROOORORRROOOROOOORORROOOOOOOROOOROOORROOOROOOOOOROOOOORROOOOOOORROOOOOORROOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOORRROROOOORROOOOOROROOOOOROOOOOOOOOOOROOROOOOOOOOOOROOOOROOOORROROOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOROOOOOOOOOOROOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOORRORROOOOOOOOOOOOOOROOOOOOOOOOORRORROOOOOOOORROOOOOROROOOOOOOOOOOROROOOOOOOOOROOOROROROROOROOOOOOROOOOORRROORRROOROORORROROOORROROORROOOORRROOOOOOOOOOOOORROOROOORORROOROORRORORROOOROOOORRRROOROORROORRRROROROOOORORROORORROOOOOOOROOOORRRORORRRRRRRORRRROORRORORROORRORROOROOROOORROOOORORORROORRRORROOOROORRROORROORRRRRORORRRRROOORRORRRRRORRROORRRRRORORROOORRRRROORRROROROORORRRRORRRORRROORRRORRRRROOROROOORORROROROROOOORRORRORORRRRORRRRRROROORRRRORRRRORRRROORORROORRRRROORORORRRORRORRRRRRRORRROORORORROOORROROOORORRRRRROORRORRRRRROROROROOROORORRRROOOOOROOOORRRRORORRRRRRRRORRRORRROORROOROOROORROORRROROORORRRRRORRRORROOOROOROORRORRROOOOORRRRRRORRRRRRROOROORORRRRRROOOORROORROOOOROOOROOORRORROROOROROOOOROROOOOROROOOOORORRROOOOORROOOOOOOORORORORROOOOORROROROOOORRRRRROOOOOROORORROOROROOOROOORRRORROOOROOROROOOORRRRRRRRROOROORRRORRORORORORORROOROORRROOROOOROROORRROOOORORROOOOOOROOOOORROOOOROORROOOROOOROOOOOOOOOORORROOROORROROOORRRORORROOOORROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOROROOOOOOOROROOOOROROOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOROOOOORROOOOOOROOOOOROOROROOOOOOOOROORRROOOOOOOOOOROOOOOOROOOOOOOOOROORROROOOOOORORROORROORROOOROOROORRROOOROOORROROOROOROOOOOOOOOOOROOOOOOOROOORROROOOORORROOOOOROOOOOOOOOOOOOROORORROOOOORRROOOOORROOOOOROOROORRROROOOROOOOORRROOOROOROOOORORROROOROORROOOROROOOROROOROOOOROROROORRRROOOOROOORORROROOOORRORRORRRROOOROOOORROORRROROOORRRRROOROOORRRORRRRROOROORORRROORROOORROROROROOROOOOOORORRORROOOORRRORRORROOORROROOROROORRRRRORORRRRRRROOORORROORROOROORRRORRRRRRROOORRORRROORRORROOOOROORRORRRRORROORROOORRRORRRRROOROOOORORORORROOOROROROOORRRRROROOORORROROORRRRORORRORROROOORORRROORRRORROORROROOOROORORRORRRRRRRRRORROROOOROOORRRRROORRRRRRORRRRROORORRRORRORRROOORRORRRORRORRROROOOORRROORRRRROROROROOOOOORRROROORORORORRROOROORROROOROROOORORORRORROROROORRRRRRORRRROOROORROROOORROROORORRORRRORORORROROOORORRORRRORROOROORROROOOROOORROOROORRRORRORROOROORRROOOOOROORROOOOOOOOORORROOROOORORROROOOORRROOOOOOROOOOOROORRROOOOOOORORROOOORRROOOOOOROOROOOROOORORROOOOORROOROORORRROOROOOOOOOOOROOOOOOOOOOOOOOOOROORRROORROOOOOOOOROOOOOOOOOOOOROOROOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOROROOOOOOOOROOOOOOOOROROOOOOOOROOOOROOOROORORROOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOROOOOOOROROOOROOOOROOOOROORRROOROOOROORROOOOOOOOOROROROOOOOOROROOOOOOORROOOOOORRORRRRORRRORROROOOOROOOORROROOOOROROOOOOOOORRROOROOOORRRRORROORRRRORRRRROORORRRROOOOROORRRRROORRORRRRRROROOROOOOOOROORROROORRRORRORORROOORORRRORRRRORORRRROOOROOOORROOORROOROOOROOOORRROORRRRORRRRRRRRROORRROOROOROOOROOROOROOORRRROROROOROORRROOOOORRRRRRRORRRORRRROOOORORRRORROOOORRRROOROORRORORROOROOOROORRRRRRRRRRRROOORROORORRORRRRRROORROROROROORRORRROROORORRROORRRRROROOROORRRRRROORORORRRORRRRRRORORROOOROROROORORRRORORRRRORRORRORRROROOORRORORRRRROROORRRRRRROORRRRRORRROORRRORORROORRRRRROORRRRRORRRORORRROOORORROROOORRRRRORRRRORORRORROORORRRRORRROOORRORORORROOOORORRRRRRRROROROORRORRROROOROROROROROORRRORORRROROOORORROOORROORRRRORRROORROOOOOORROOOROOOORROROORRROROOOROROROORRORROOOOOORROORROROROROOOOOOOOORRRROROROORRRORROROOOOOOOOORRRORRRRRRROROOROOOROOOROOORRRORORRORROOOROOOOROOOOOROROROOOROOOOOOOOROORROOOOOROOOOOOOOOOORROOORROROROOROOOROOOOOOROOOOROOORROOROOOOOROOOOOOOORROOORROOOROOOOOOROOOROOOOOOOOOOOOOOROOOROOROROROROROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOROOOOOOOOOROOOROROOROORROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOROORROOOROOOOOOROOOOORRROOOOOOOOROOROOOOOOROOOOOOOOOROOOROOOOROOROROOROROOOROROOROORROROROOROOOORRROROOOOOOOOOOORROROOOOOOORROOOOORROOOOROROROOROOROOORRORROOOROOOOROROOOOOOOOOORRRORROORRRRROOORRROOORROROOOOROOROOOOROOOOORROROOORORROOORRRRRRRROOOROOOROOOORRRRROOORROOORORRRRRRRROROROOOORROROORRRROOROORORROROROOOROOORORRRORROROORORRORRRRRORRORRROROORORROORROOOROORROORRORRRROORRROORRORRROOORROROOOROORORRRRRRRORORROOROORRRRRROORRORROROORRROORRRRRRRROROOROORORRRROROROROOORRROORROROORRRRRRORORORRRRRRORRRRRROORRRORORROORORRORORRORORRROORRRRRRORROORRORRRRRROROOOORROORRRROROOOORRRRRRRRORRRRRRRRRORRORRRROORROOORORRRRRROORRORRRORROOOOROOORRRORROOORRRRORRORRRROORORORRRORORRROOORRRRROOROROOOOROROORORROORORRORORRRROOOROOOORRROORRRRRRRORRORRORROORROORROOROOORORORORRRORROOORORROOOOOORROORORRRRROOORRORROROROORROOORORROOROORROOOOORORROOORRORORROOOOOOROOOOOOOOOOOORROORORORORROOROROOOOOOOOOROOROORROOROORROOOROORORRROOOROOOOOOOROROOOOROOOOOOROORROOOOOROOROOOOOORROROOOORORROROOORROROOOOOOOOOOOOOOROOOOOROORROROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOORROOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOROOOOOOROOOROOOOOOOOOROROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORORORORROROOOOOOOOOROOOOORRRROORROOOOOOOROOOOROOOOOOOROOOOROOROOROOOOROOROOOOOOORORROORRRROORRRROOOOOORORRRROROROOROORROOOROORROROROROOOORORRORRROOOOORROROOOROOOOOOROROOOROROOROOOOOOORROOOOROORRROOORRROOROOOOORORRROORRRROOOOOOORRORORROROOROOOOROOORORRRROROOORROOOROORORORRRRRROORORORRORRRRROOORORRRRRORRROORRORRORROORORORORORRRRORORORROOORORRRRRRRRRRROORROOOORROOROROORORROOORROROOORRROROORRRORROOORROORRORRROROOORRORROOOROOOOROORORORROROORORRROORORRORORORRRRRRRORRRROOORRRORRRRROOOOORRRORRRRRROORROORRROORORRROROOORROORROOORORRORRORORRRRRRRRRRRRRRRRORRRRRRRROOOORRRRORORORRRROROOORRROROORROORORRRRRRRRRROROOOROOORORORROOROOOORRRRRRORRRRRRROOOROOORRRROROORORROROORRROOROOROORRRROORRRORROOROROORROROROOROORRRROROORRRRORRRRRROORORRRRRROORRROOROORRROOORROORORRRRORROOROOOOORORRRRRRRORROORROORROOORROROOOOOOORRROROOOORORROROOORRORRRROOOOOROOOOOROOORRROORRROROOROOROOORRROOOOOORROOOROOOORRRORRROOOOOOOOOOORROOOOOOOOOOOOROOROOROROOROOOOOOROOOOROOOOOROOOOOOOOOOROOOOOOOROOOROOOOOOROOOOORROOOROROORROOOROOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOROROOOOOOOOOOOOOOOROROOROOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOORRROOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOROOOROROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOROROOOOOORROOOOOOOOOOROOOOOROOOOOROOOROORROOOOOORROORRORRORROOORROOOOOOOOOOOOOORORROOOOOOOOROORORROOOOOOOOOOOORORRRROOOROOROOOROOOOROOORORRORROROOOOOOOOOOOORROOROOOOROOOROOROROROROROOOOOROOOOORRORORRRRORORROOOOOOORORORORORRROOROORORRROORRRRRORORROOROOROORORORRRROORRROOOROOOOOOORORROROROROROORRROOORRRRROOROOOORRORRORRRRRORRRRRORRORORRORRRRROROOOORORRORRRRORROORRRRRRROROORRORORRRORROOORRRRRORRRRROOORORROORRRRORRROORORRRORRRRRRRRORRROORRRRORRORRROROORROORRRORORORORROORRROORRRRRRROROOORRRROROORRRRROORROORROORRRRRROROOOROOORRRRORRRRORRRROORRRROORRORROORORROORRRORORRRRRROORRORORORRORORRRRRRROROORROROORORRRRRORRRROOORRRORRROROOORRRRORRRRORRRORORRRRRRRRORORRROOORROROOOORROOROROOORRORRRORORRRROORRRROOROORRRRRRRRRROOROOOORRRORORROORRORORORRORORRROOOOOORRRRRORROROROOORROOORORRORROROOROROOROROOOOOOOROROORROORRRRROOOOOROROOOOOOORROOOOORROOROOOOOROORORRORROOOORRRROROORROOOOOOOROROOOOOOOROOOOOOOOOOOROOOOOROORRROOORORRROOOOOOROOOROOORROOOOOORROOOOOOOORROOORROOOROOOOOOOORROROOOOOOROOOOORROORROOROROOOOOOOORORORORROOOOOORROROOROOROOOOOROROOOROORROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOORRROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOROOOOOOOORROOOOOOROOOOROROOOOOOOORROOOOOOOROORROROOOOOOOOORROOOROOORORROOROOOOOOROROOROOOROOORRROOROOOOROOROOOROOOOOOORROOROOROOOOORROOOOOOOOOROORORRORRRROOORRORORROOOOOOOOOOOOROORRRORORROOOOOOOOOOOOORRORRROROOOOOOOOORRROOOROOOROOOOOROOOOORRRORROOROOORORRRRROOOROOOOOROORROORROORRROOORRRRROOROORRROORROOOOOOROROORRORROOOOOORRROOORRORORORRROOOOOOOROOROROOROOROROOOORROROORRRRRROORROOORRRRORRRROORRROOORORORORRRRRRORRRROOOOOROORORORRRRRRORRORRRORRRRORRRRROOROORORRORORRORORORRRRRRRROORRRRRRRRORORORORRROOROORRROROORRORORROORRRORRRRRORRRRRORRORORRRROOORORRORRORRRRRROORORORRORORRRORORORRORRORRORRRORRROROORORROORRRRROOOORORRRROORRROOOROORRRRRORORRRORRORORORORRROROROORORORORRRRORRRORRRRORRROROOROORRROOORRORROOROROOORRORROORRORRRROOOROORRRORORORRROORORORRRRRRRRRRRRORORRRRROOORORORRROORRROORROOORROOOROOOOOROROOOOOOOROOORRRROORROOOOORROOORRROOROROOROOROORROORRRORORRRRRORROROROOROOROOOROOORORRROROOROROOOOORORORROOOORORRORRORROOORROOOROOOOOOOOOOROROORORORROROOROOROOORROOROROOOOOOOOROROOOOOOOROORORORORROOOOOOOOOOOOORRROOOOOOOOOOROOROOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOROOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOORROOOROOROOOOOOOOOOOROOOROOOOROOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOROOORORROOOOOROOROORRROOROROOOOOOOOOOOOOOOOOOOOOROOOOROROOOOROOOROOOOROROROOOOOORORROORROOOORROOOROOROOOOOOOORRRORRRORRRROROOOOOOROORROOORROOOOROOORROOROOOOOORRRORRROROROROORROOOOOROROORRROOROOOOOORROOOOOORROOROOOOORORRORORORRROROOROOORORORRORRRRORROOOORROROOOORORROROORRRRRRROOOROOOROOOROOOROORRROOORORRRROOORORRROOROORRORRRRROROOROOOOOROOORRORORRRRROORORORORORRORORORRORRORRORORORROOOOOROOORRORRRROROOOOORORRRRRRORRRRRRRRRROROOORROROORRRRRORORRRROORORORORRRRRORORRRRRROOORRORORORROORORORORROORORORRROROOOORRORRROOROOROORRRRORROORORRORRRORROROORRRRRRRRORROROROORRRORRRROROROOORROORROROROOORRORRROOROORRORRRRRRROOROROORRORROROOROOROROORORRRORROROORRORRRROOOOROROOORRORORRROROROOOROROORROOOOOORRRROOORROOROROORROOROORRRRRRROROOORORROROROROOOROORRROROORORORORROOOROOROROOOROROOOROOOOOOORRRORORORORRROOORORORRRROORROOOORORROROOOROROROROOOOOOROORORRRRROROROOOROOROOOOOOROOROROOORROROOOOOOOOROROOOORRROOOOOOOOOOOROROOROROOOOOOOOROORRROOROOOOOOOOOROOOOOOOORROOROOOOOOOOROOOOOROOOROOROOOOROOOOORRROOOOOOOOORRROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOROOROOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOROOOROROOOOORROOOOORROOOOROOOOROROOROOOOOORROROOOROOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOORRROOOOROROOOROROROOROOOROOOOROORRROOROOROROOOOROOOOROOROOOROOOOOOROOORROROROORROOOOOORROORROOOOOROOROROOOOOROOOOOOROROROORRORROOOOORORRROOROOROOROORRORRROOOORROOORORROOROORRRROROOOOROOOROOOORORRRROOROORRRRROORRROROORRROOOOORROOOORRRROOOORRRRRRORORRRORROORORRRROOOORRORRORORRORROORRRRROOORRRROOOOORORRRRROOOROORRRRORRORROROOOOOOORORRRRORRROORROOORORRRRROROOROROROOOOOOOOORRORRORORRRORRORORRROOOORORRORRRRRROORRROOOROOROOORORRROROROORORRORORRRORORRRRRRRRRRROROORRRROOROORRRRRORRROORRROORROORRRRORRORRORRRRRRRRORRRORRROOROOOOROROORORRRRRORRRRORRROOOORRRRRRROORRRRRRRRRROORORRROOROOOROORRRROOOROORRROOOORRRRORRRROOROOOORROOOOOORROOORROOOROORRORORORROORORRRRRORRRROORRORRRORROROOORORRROOOORRRROROROROOOROOOORROORROOORORRORRROOORRORROOORROROROROORRROOROOOOORORROORRORROROOOOOROROORRORRRORROOORROROROOORROORROOOOOROOOOOORRROROOORROOOROORROOOOOROROOORORROOOROOROOORROORRROOOOORROOOOOOOOOOOROOOOOOOOOOOOROORRRRORRROOOOOOOOOOOROOOROOOORRORROOOOOOOROOOOOOOOOOOOROOOOOOOOROOORROOOOROOOOROOORORROOROOROOROOOOOROOOOOOOROROOOOOOROOOROOROOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOROOOROOROOOOOROOOOOOOOOOOOROROORRRRROOOOOOROOOOOOORROOOROOOOOOOOOOOROROOOOOOOOOOOOORROROOOOOROOOROOOOOOORRROROOOROORORROOOORROORROROOOROOOOORRORORROOOROROOROOOOOOROROOOROORORROROOOORRRRORORORORROROOOOOOOOOOOOROOROORORRORRORROROOORROORROOORRORROOROOORROOORROOOROROORORROOOROOROROROOOORROOORORRORRROROORRRROROOOROROOORRRRROROORORRROOROOORORRORRRROOOORORRRRROOROROORRRRRRROROORRRRORROOROORRORRORORRRROOORRORRRORROORORRRRRROOOOORRROOORRRRRROOORORRRRRRORRORRORRORRRRORRRORORRORROOORRRORRROORRRRRRORRORRRRORRRORRORRROORRRRRRROORRORRRRRORRORORORROOROORRRRRRRRRRORRRORRORRRRRRRORRRORRRRORORRRORRRORRORRORRROOOORORRRROROORROORRRRRRRROOORRRRORRROROROOORRRRRRRROROOOOOORORROROROOOROOOROOORRORRRRORROORRORRRRRRRRRRRRORRRROROOOOOORROROOOOORRRROROOOROROOOOOOOORROOROROOROOOORRRORRROROOOORRROOORROROOORRORROROOOORROROOORRRORRRORRRRROROOOORROOOOOOROOROROOROOOOROOOOROOOOORRORRORROOROOORRRROROORRROOOOROOOOOORROOORROOOOROROROOORORROOOOROOOOOOOORRROOORRRORROOOOOOOROOOOORRRRRORROROOROROOOROOOOROROROOOOOOOOOOOOOOROROOOOORROROOOOOOOOOOROOOOOOOOOOOOROOROOOROOOOOOROROOOOOOOOOOOOROOORROOROOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOROROOOOOROOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOROROOROOROROROOOROOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOROORROOOOROOOOOOOROOOOORROROOOROOOOOROROROOOROOROOOOOOOOROROORROOOOOOOOOORROOROOOOORRORRRROOORORRORORROOOROOOORRROOROOORORORROOORORRRROOOORRORRROORRROOOROROROOORROOOORRRRROROOOORROROORROOOROROOORRRRORRRROORRRRORRROOORRROORROORRRROROOOROOORRRRORRRRROROORRRRRRRORORROROORROROOOOROOROOORRORRROORORRRRROROOORRROOOOOROROORROROORROOORRROORRORORRRROROROORORRORORRRORRRRRRROOORORRORRORRRRORRRRRRRROOORORROORRORROORORRORORROROROROORRORRRRORORRRRRRRROORRRRORRRRRRORROOOORROORROORORROROORRROOOORRRRRORRRRRRORORRORRRORRRRRORORRROOORORORRRROORORORORRROORRRROROORRRROROOROORRORORRRRRORORRRRORORRRORRRRROOROOOOORRROORORORRORRROROOORORROORRROOOOROOOORROORORRRORRRRRORORRRORRORRROOROROOROOOORORORRRORRRROROOOOORORRRORORORRORRROORROORRORRRORRRORORROORORORROOOOROOOROOORORROOORORROOORORORRRRORRRORRRORRRRRRRROOORROOROOOOOOOROORRROOOOROORROOORRRROROOOOOROOROOROORORROOROOOOOROOOOORROOOROOOOOOROROOOOOROOOOOROOOOORRRORROROOOOOOROOOOORROOROOOOOOOOORROOOORROORROOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOROORROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOORROROOOOOORROROOOOOOOOOOOOOOORROOOOOOOOROOOROOOOOOOOOOOOOOOOOORROOOOORRROOROOOOOROOOOOORROOROOOOOOOOROORRROROOOROROROORORROOOROOORRRRRRRROOROOROORRRORRORORROOOOOROORORROOROROROORRROROORRRROOROOOOROORORRROOOROROOOOOOOROROORORRRRROORROOOORRRRORORRRRRORRRROOROROOOOOOROOROROROROOOORORRRRRRORRRORRORRRORRROROROOROORORRRRRROOORRORROORRORRRRORROOOOORRROORRROOROROROROOOOORRRRRRRROROOOROROORRRRROORORRORRRRRORRRRROORROOOOORRRRROROROROOORRRRRROORORRRRRRRRORRORRORORRRRRRRRORORRRORRRRRRORRRRRRROORRROOOROORORORRRRROORROROROORROOORRRRORORRRORRORRRRORRROROORROORORORRRORRORRRRORORRORRRORRRROOOORRORRROORORRROOORRRORORRRRRORORORRROORRRRRORROOOORRRRORRROORRRRORRRROORORROROOOOOROORROROOORORORORORRRROROOROOORORROORRROORORRRORRRORRROORRROROOORRRROOROROORROOROROOOOOROROOOROOOOROORROROORROROOOROOOOROOROROOOOOOOROORRRROOOOOOOOROOROROORRRROROORRORORORROOOOOOOROOORROOOOOOOROOOOROOOROOOORRRORRORROOOOOOROOOORRORRRROOOOOOOOOROROOORROOOROROROOROOOORRROOOROOROROOOOOOOOOOOOROOOOOROORROROOOOORROOROROROOOOOOOROORROOOROOOROOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOROOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOORORROROROOOOOOOROOOOOOOOOOOOROOROOOOOOOROOOOROOOROOOOROROOOOROROOOROOOOROROOOOOOOORRORROOROOOOOROOOOROOROOROROROOOOOOOROROROOOORROOOOROOOOOROOOOOORRORROOOOROOOROROOOROOORORROROROOOOORORRORORROROROOOROOOOORRORORORORORORROORROOROOOOROOROOROOOOOOORROOORRRORRRRORRORORRRRORORRORROORRRRROOOOROORRORROOROROOOOOOORROOORRROOROOOOORRORORRROROOOROOOORRORRORRRORRRORRORORRRRRROOORROOOORRRROORROOORROOOORRRRROORRRRRROROOOOOOOOOOOORRRRRRROOROORRRROOORORRRROORROORRORRROOOROORRORORRRRORRRRRRRROROOROOORRORRRRROORRROORRORRROOORRORRRROORRRORRRROORRROORRROOROROROOOROROROROORROOORRROORRRRRROOROORROOROOOROORRORRRORORRROOOORRORRRRRRORRROROROROOORORRRRRROOOORROROROORRRRRRRRORRRROOOOOROOOROOROORRROOORRRRRROOROROORROORRRORRRROORROORORORRRRROOOOORROROORRRRROROOOOROOOOOOOOOOOROOORRRRROROOOOOOOROROOOORORRROROOORORROOOOORORRROORROROORROOOROROORRRRROOOORRRROOOROOOROROOOORROOOROORROORORROOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOORRORROOOOOOOOOOOOOOROOOOROROROOROOOROROOORROROROORROOOOROOOOOROORROOOROROOOORORORRORROROOOROOOOROOOROOORROOROOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOROOOOOROOOOOOROOOOOOOORROOOOOROOOROOOROOOOOOOOOROOOROOROOROOROOOROOOOOOOOOOROOROORORROOOOOORRROROOROOOOORROOOOORORROROOOROOOOOOOOOOOOOROOOOOROORRRRROORRROOOORRROOOROOOROROOROOROOROOROORRRORROOOORRORORROORROOOORORRROORORRRRRORRRORORORRORROROOOORROORRRRROOROOOOOROOORRRRRROOROORRROOOORRROORRRRORORORROROOOOORROOOORORRRORRROOORROOOROOOROOORROOOOROOORORROORRRORORRRORORROOROOROOROORROOROOOORROOORRRRRRROORRRORRORORRRRORROOORRRROOOOROORROOORRRRRORRROOORORORRRRORRRRORROROORRORRORRORRROORRORRORRORRROORORORRRRRROOORORORRRRORORRRRRRROOROORRRRRRRORRRORORRROROOORRROROOOORRRRRRRRRORROOORRROORORROOROOROOOORRRORRROORRORORROOOOROOOORRRRORRRRROORROROROROOOROOORORRRRRRROOOORRORORRROOOOOORROORRRRROORRROORRRROROOOORRRRROOROOROOROOROROORROOOORRROOORORORRROOROOORRORRRORRROOOORORRORORRRORRRORROROORORRROOOROROOORRROROOOOOROOOOOOOOOROOOOOOOROOOOOOOORRROOOOROROOOOORROOOROROROORROORROROOOOOOOROROOOOOOOOOROOOROOOROOORORORROROOROROOORRORORROROOOOOOOROOOOROOOOOROROOROOROROOOOOOOOOOOROOOORROOROORROOOOOOOOOOROOOORROOORROOROOOOOOOOOROOOOOOOOROOOOOROOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOORRROROOOOOOOROOOOROOOOOOOOROOOOOOOOOROROOROROOOROOOOROROOROOOROOORROOROOOROOOOOOOORORRROOOORROORROOOROOOOOOOROOOROROROROROOOOOOORORROROOOOROROOOOOOOOROROROOOROOOORRROOOROOOOROOOOOROOOORROOOROOROOORRRORORROROROOOORROOORRROOOOORRROROOOOROOROOOOROOORRROROOORRRROOOROOOOROORRRROROOOROOORRRROOORRORORROORORRORRROOORRRORORORORORRROROORORRRRRRRRRRRRRRRRRRORORROORRRORRRRRROOROOORORRRROOORRRRROORRORROOORRRORRRORRROORRRROOORORRRRRRRRRROORRORORORORRRORRORRRROROOOOORRROROORRORROOORRRRRRROORRRRRRRRRRRRRROORRROORORRRRRRRRORROORORORRRORRRRRORRORRORRRORRRORRRRRRROORRRROOORRORORRRROROOOOOORRROROOORRRORORRORRRRRRRRROOOROOORORORRRRROORRRORROOORORRORRRORORORORROOROOROORRORROOROROORROOROORORRORORORRROORRRROROORRRRORROOORRORROOOOOROOOOOORROROOOROOOOORRORROOOOOORRRROROOOORRRORRROOOROOROOOORRRORROROORRRRROOORROROOOOOOOOORROOOOOOOOOOROROOOROOROORRORORORRRROROROOOROOROOROROOOROROOOORRROOOOORRRROOOOROOOOROOOROOOOOROOOROOOOOOOOROOOOROOOOROROOROOOORROOOROOOOOOOOOOOOOOOROOROROOOOOOOOROORROOOOOOROROROROOROOOOOOOOROOORROOOOORROOOOOROOOOOOOOOOORROROOROROOOROOOOOOROROOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROORORROOOOOOOOOOROOOOOOOOOOOOOOROOOOORROOOOOOOROOOOOOOOOOOROROOOROOOOOOOOROOOOROROOOROOOOOOOOOROOOOOROOOOOOOROOOORRROOOOOOOROROROOOOROOOOOOOOORROROOROOOOOOROROROROOOOOOROROOROOOOROOOROORRRROOOOOOOOROOOOROROOOOORRORRRROOOOOOORROROOOROROORROOOOOOORRROOORRROOOOOOOOROOOROOOOORORROORROROROOORRROROROOOORROOORRRROOORROOOROORRORROROROOOROROOOOOOROOOORROROROOOORROOOORRROOORRORORORORRORRROROOOOOROROOORROOOROROORROORRRRRRROOORRORORORRROOOORRROORORRRRORRRRRORROROOROROOORRROORROROOORRROROOOOORORRRRRRRORROROOOOOOOROROROOROROROOORROOORRORRRORROORORRROROOORRRRORRORRORORRRROOORRRRORRORRRRRRRRRORRROOORRRRRROORRRROOROORRROORRRRRORRRROOROORRRRORRRRORRRROORRRORRROOORRRRRORORRRROORRRROOROORRRRORRROOOORORRORORRRRRRRORORRROOROROROROROOOROROOORROOOORRRORROOOOOORRORORORRROOOROOOORRRRRRRORROOORRORORRRRROOROOOOOROOORRRORRRRROROORRRRRRRROOROOOOOOROOOORORRROOROORORORROOROOOOOORORROORROROOROROOORRRORROROOOROORROOOORORORRRRRRRROROORROOOORORROOOOROOOOOOOOOOROROOOOOOOORRORROORRRROOOOOROOROORROOROOROOROOROOOOOOOOOOORROROOOROOROORORROOOOROROROOROOOOOOOOOOOROROOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOROROOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOROROOOORROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOROORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOROROOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOORROOOOOROOOOOOOORROOOOOOOORRROORORRROOOROOOROOOOOORROOOOOOOOROOOROROOOORROOOOROROORROOOORRROROORROROOOOROOORRRROOOOORORROROOOROOOOOOORORORRORROROOOOROROROOOOOOORRRORRRRRRROOORROOOOOOOOOOOORRRRRORRORRRORRRRRROOROOROROROORROORORORROOOROOROROORORRROROROROOOORORORRRRORROORORRROOORRORRORORORRRORORORRORROORRRORRORORORRROROROOOROROROORRRROOROORROOORRRRRRRROOROOROROOORROROROROOOROROOOROOOORRRRRRRRROROORRORORORRRROORORROOORRRRORRRRRRRROORROORORRROROROOORRORORORRORRROORRRRRRRRRORROROOROOOROOOROOROORRORRRRORORRRRROROORORRROOROROORRROOORRRRORRROROROORORROORRORRROORRRROOOOOOOROOORRRROORRRORORRROROROOORRORRRRORORRRRORRRROORRRRORROORRRRORRORROORRORORRROORORRRRORRRRRRROROROOOOOROOOOORORROOORRORORRRRRRRRROOOOROOOORRORRRORRROORRRRRROOOOOOORORRORROOORRORORRRRROROOOROOOORROOROOOOOOOOOROOOOOOORORRROOOORROOOROROOROOORRROROOORRRORRRROOROROORROOROOOOOORROOORORORROROROOOOOOOROOOROOROOOORRORRORROORORORORRROOROROOROOOOOOOOROOOOOOOORRROROROOOORRROOOROOOOOOOOOOOOROOOROOROOOROOOROROOOOOOOROOOOOORRROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOROOROOROOOOOOOOOOROOOOOOOOOROOOORORRRROORROOOOOOORRROOOOROOOOOOOROOOROOROORROOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOROROOOROOOOOOROOROOROOOOOOOOROROORRORROROOOOOOORORRRROOORROOOOORORROROOOROORRRRORRORROOOOROOOORROROROROOOOOOOROOOOOOOOORROROOROOROOOOOOOOOOROORRROOOORRRRROOOOROROOORROROROROOROOOOORROROROROOOROOOOORROOOOORROOOOROOORRRORRORRROORORRROORRRRRROORORROORORRRRRORRRRRRRRRROOOOORORRRRRORROORRRRORRORORORRRRRROOOOOORRRORRRORRORRRORROOORRORRRRORROORRRORORORROOOOORORORRRROORORORROROOORROORRRRRRRROORRRORRROOORRORORRRRORRRORORRRORRROORRRROORROOORRRORROORROROORRORRORROOROORROOORRRRORRRRORROOROORRRRRRRRRRRRRRROOOOROOOORRRRRRROOORROORRROROROORRRRRRRORRROOOOOOROORORRROOOORRROOROOOORRRRROORRRRRROROOROORRRRRRRORRORROOOORRRRROORRORRRROORROOROORRROROOOROOORROROROROOOORRORRROOORRRRROOOORRROOORROROOORORRROROOOROOROOORORROORRORRORROOORRORORORRORORRRRROROOOORORRRRRORRROROORORROOOORORRRROORORRORROOOOROOOOORRROOROORROOROOOOOOORRROROOOROOROOOOOOOOROOROROROORROOORORROOOOOROOOOOOOORORROOOOOROOOOOROROOOROOROORROOROOOOROOOORROOOOOOOOOOOOOOOOROOOROOOOORROOOOROROOOORROOOOROOOOROOOROOOOOOROOOOROOOOOOOOOOOROOOROOROOOROOOOOROOOOOOROOROOOOROOOOOOOOOOOOROORROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOORROROOORROROOOOOOORORROOOOROROOROOORRRRROOOROROOROOROOOOOOOOOROOOOOOOOOOROOOOOROOORROORROORROROOORROROOROOORORROORORROOOOOOOOOROOROORROOOOROORROROOOOORRORROOROROORORROOOOOOOOOROOOOOOOOOORRROOOOOOOOROOOOROOOORRRRROOOOORORORROOOOOOOROROOORROOOOOROOOOOOOOOOROOROOOOOOOROORROORRRROROROOOOORORRRRRROROOOOORRORRROOROROORRRROOOROORRROROROOROROOROOOOORORORRRORROORORROORORRRRRRORORORRRORRRORROROOORROORRRRRRRRRRRRRORROORORORROROORROROOROOOORORORRRROORROOORORRRRORORORRORRROOOROOROORRRRRORROOOROOROROORORORRORRROORRRRROOOORRRRRRRRRRRRRRORRORRORRRROORRRORRORRROOOORORORORRRRRRORRRRRRORRORRRRRORRRRRRRRRRRRRRORORRROOOOOOROROROOOORORRRRORORROOORRRRRROORRRRRRROORRROOOORRORROORORRORROOOROOROORRRRRRRRROORORRRROORORROOOOOROORRRORRRRROROOORRROOROOOOORROROROOROROOOROROROOROORRORRROORRRROORROOOOROOROOROOROOOROOROOOROORORRRORRROOOOOORRROOOOOOOOROOROROORRORROROOOOOROOOOOOORROOOOOROOROOOOOOROROROORROOOROOOROOOROOOOOROOOROOROOOOOOOOOOOOROOOORROOOOROOOOOOOOROOOROOOOROOOOOOOOROOOROOOOOOROOOROOOROOROOOOOORRRROOROOROOORRROOOROOOOOOOOOOOOOORORROROOOOOROOOOOOROOOOOOOOOOROOOOOROROOOOOOOROOOOROORROOOOOOOOOOROOROOOOROORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOROOOOOOOROOROOROOOOOOOOOOOORROOOOOROOOOOOOOOOORROOOOOOOORORRROOOOORROOOROORROROROROROORORRORORROOROOROOOOOOROORORROOOORORORROROOOOOOROOORROORRRRRRORROORORRROOOORORRRROROOOOOROOROORROOOROROOORROOOOOOROROOORRROORORROORROOROOORRRROOROORRROOOOOOOOORRROROOOROROORRRORRRORORROOORROOROROORROORROOORORROORRORORRRORORRROOROORRROROOOOORORRRORORROROOORRRRROROOROOROOOORRROOROOORRORRORRRORRRRORROROOORORROOOOORRRRRRORRRORORORRORRRRRRORRRRORROOORRRRORRORRRRRROROROOORRROORRORROROROORROORRRRRRRRORRRRROOORRORRRRROORROORRRRRRRORRRRRRRRRRRRORRROROOOOORRRRRRORORRRROORRRRRRRORRRRRORORRROORRRRROOOOROROORRRROOROORRORRORRROOOOORORROROORRRROOOOOROROROROROORORRRORRRROOORRROORRRROROORORORRROOOORRRORORROOOOORRORRROROOORRRROROORRROROOOROORRORRORRRRRRORROOOOOROROROOORROOROOROROOOOORORRORRROROORORROROROORORROOOROOROROORRRROOROOORRROOOOORORORORROOOOOOOOOOORROOOORORRRORROROOROORROOOOOOROROOROOROOOROOROOOOOROROORROOORRRORRROOROORROROROOOOORORROROORROROOROOROOORRORRRORROOOOOROOOOORRROROOOOOOOOROOOOOORRROOOOOOOOROOOOOOOOORROOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOROOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOROROOOOOOOOOOOOOOOOOOOROOROOORROOOOOOOOOOOROOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOORROOROOOOOOROROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOROOROOORROOOROOROOORROOOOROORORROOROROOOOOROROOOOOROROOOROOOOOOOROROOOORROOOOOOROOOOOROOORROOORRORORORORROOORROOOORROOROORROROOOOOOOOOOOOOOROROOOOOOORROROOORRROORROOORRRORRRROOROROOOORROOORORROOORRROORRRRRORROOROOOOOOORROOOORRROOOOOROROOOROORRRRRRROORRRORORRRRRRRRRRRORRROOOOROORROOORORORRRRORRRRRRRORRRRRRRORRRORROORRORROROORRRRROOORRORRRROOROORRRRRRRROOOOORRRRRORROORRRROOROOOORORRORRORRRRRRORROORROROOROOROOORRRRRRRRRRROOOOORRORRROOOOOORRRRROROORRRORRRRORORRORROROORORRRROROORRRRRROOOORRRRRRRORRRRRORORROORORRRRORRRRRORROOOOORRORRRRROOROORRRORORRRRRRRROOROROORORRROROORRRORROROORRROROOOOORRORRRORORRRRRRRRRRROOROROORROOOOORRRORROORRROOROROOOORRRROOORROOOORRRRRRRRROROORRRROOOROROOORRROROROOROROOOOROOOOROOOOOROOORORRRORORRRROOROROOOROORORROOORRRORRRROROROOORRROORRROOOOOOOOOOROROOROOOOOROOROOOOOROOOORORROROOROOORRROOOOROOOOOROOROOOROOOOOOOOOOOROOOROOOOOOROORROOOORROOROOOOROOOROOOOOOROOROOROROOROOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOORROOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROROOOOOOOOOOOOOOOORROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOROOOOOOROOOOOOOOOOOOOROOOOOOROOROOROOOOOOROROROOOOOOOOOOOOOOOOOOROROOOOROORROOROOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOROOORROOROOOOOROORROOROORORROOOOOROOOOOOOOOOROROOROORORROROROOOOORORROOOROORRRORRROOOOOROOOOOOROOOOORRRROROORROOOROROOROROOORROOORROOOOOOROORRROOOORRROOOOROOOOROOORROROOOORROOOOOOOOORROOROROOROORROROOROORROORROOORRRROOOROORRRRROOROOORRRRRRRORROROORRORORRORORRRRORRRORROOOROORRROROOROORORRORORRRRRORORRRROROORRORRROOOROORRORRORORORROOOOORORRORRORORORROOROROROORRRORROOORROOOOOROROROROOROROOROROORRRRRORROROOROORROOORROROORRORRROROORRORROOORORORORRRRRORORORRROOOORROOORRORROORORROOROOROORRRRRORORORORORRRRRRRRRRROOOROOROOOROOOOORORRRRRORROORROOOOORRRRRRRORROORRRRORORRRRRRRRRROROROROORORORRRRRROOOROROOORRRROORRRRRROORORRRRORRRRRRORRRRROOROOOROOORORROORRRRROOORROROROOOOROORORRRRRROOORORROOOOOOROOOROOROROROOORROOOOOOORRRROROOOOORRROOOOROOOOOOORROOROROORROROROROROOOOOOROOOOROROOROROORORROOORRROORROORORRROOROOOROROORRRRORROROORROROOROOOOOROOOOOROOROOOOROOOORROROROOOOROOORRRRROOOROOORROOROROOROROOOOOOOOOOOOOOOOOOOORROROOOOOOROROOOROOOOROROOOOOROOOOOROROROOOROOOOORROROOOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOROOOOOOROOROOOOOOOORROOOOOOROOOOOOOOROROOROROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOORROOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOROROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOROROOORORORORORORROOOOOROOOOORROORROROOROROROOOROOOROOROOOROOROROOOOORORORROOOOOOOOOROROORORORRRROOOOROROOOOORORORORROOOOROROOOOOROOOROOROOOORROROOROROOOORRROROOOOROROOOOOOOORRORRORRRRORRRORROOOOOOROORROOOOOORRRRRROOOORRRRORORORORROROOROOROORRROORRRROOROOOROROORORORORRORRRRRRORORRRROOROOOOOOROOORORRRRRROOROOORRRRROROOOOORORRRORORORRRORRRROORRRORRORRROOORRROORRRRRRROOROOOROOROROORRORROOOOROORRRROROOORRRRRRRRRROOOOOORROORORORRORRRROOORRRRROORRORRROORRRORRROOROROORORRROOOOORRRROORORRORRRRRRRRRRRRRORRRRORRRRRORROOOORROOOROROORRRROOOORRROOROROOOORRRRRRRORROOORRROORROORRRORORRROOOROOOORRRRORRRROORORRRRROROROOROROOOOOOROORRROROROROROROOORRORROROOORRORRRORRORROROROOROORROORROOOORRROOOOOOORRROOOOOORROOORORRORORROROOROOOOOROOORRROORROROOROORRRROROOORRORRROOOOOOROOOROROOROORORROOROOOOOROOORROOROROOORROOOOOOROORORROOORORROOOOOOOOROOOROOOOOOOORRROROROOORORROOOOOROOOROOOOOOOOOOOOOORRRROROOOOOORROOROOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOORROOOOOOOOOOROOOOROOROOOROOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOROOOROOOOOROOROOOOOORROOOOROOOOOROOOOOOOOROOROOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOORROOOOOOOOOOOROOOOOROOOOOOOOROOROOOROOOROOOORRROOOROROOORORRROOOOOROOROORRRRRRROORRROROOOOROOOOROROORRRRRROOOORROOOOORORRORRRRROROOOROORRROOOROOORRROOOOROOOORORRRORRROROOOOOORRROOORROOORROOROOOOROOOROROROOOROROOOOROORRRRRROOOOOOROROOOOROROOOROOORORORROROORORORRROORROOOOORRRROOORRORRRRORORROORRRRRRRORORRRRRORRRROROORRRORRRORORRRRRROROOORORROOORRROROOOORRRRROROOORRORRRRRRRORRRRRORRRORROOROROORROORORRRORRORRRROROROROOOOORRRRORRRRRORRRRRRORORRRORORROROOORRRRRROORRRRORORRORRROOORRROORORRROOOORORRROORROOOROORORRRRROOOROOORRRRRORRROORRORRRRRRROOOORROORORROROORRRORORORRRROOORRRROOOOROROOOOROOORRORROORRRRROOOROOROOOORRROOOOORRORRRROORRRRRORORRRRRRRRRRRRRORROOORORRRRROOOORRRORRROORROOOORORRRRRORRROOOOOOOOORRORORRRROROOROROOOOROOOOROOOORRORRROOOROOORRROOROORRRRORORRRORROROOOROROOOOOROOOROOROOOOROROOROOOROORROOOORRORORRORROOOOROROOOOOOORROOORRORRRORROOORRROORORRROORROROOOOOOROOROROROOOOROOOOROOOROOOROOOOROOOOOROOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORRROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOROOOOOOOROOOOOOOROOROOOOOORROOOOOORORROOOORORORROOROOOOOOOOOOOROORROROOOOOOOORROOROROOOOOOROORRROROOOOOOROOOOOROOOOOORRROROOROOOORROOOROOOOOOOOOOOROOOOROOOOORROOROOOROOORROOOORORRRORRROOOROOOROOROOORORRRRRRROOOOROORROOROORRORRROROOOOOOOROROROORORROROROOROOOROROROORRRRRORRORRORORRROROOROORRORRRRORORRRRORRROROOORRRORRROOOOORORORROOROOORRRORRRROOOORROOOROOROOOORORRRRROROORROROOOROROOOOOROROROROOORRRROROROORRORRRRRROORRRROOROOROROROORRROROORRRRRRRRRRRORRRRRRORROOROROORROROOROROOORRRRRRRRORRRRRRRRRRRROORORROROOROORRRORROOOOORORROOOOROROOROOOOROROROOOORORROROORROROOORRRRRRRORRRRRRRORRRRRORRROOORRRORRRRORRORORRRRRRRRORRRROORRRRORRRRORRRROOORROROOOORRORRORORORRRRORRROORRRROOOOOORORRRRRORROOOROOOROROROROOOOROOOOROOOOOOROROORROORRRORRRORRRROOOOOOROORORORRROOORRRORRROORRROOOOOORRROORRRORORORROOORORROOROOROROORORRRROOORRORORRROOORORRROOOORRRROOORRROORROROOROOOOROOROROOOROORORROROROROOOORROOOOOOOOOORRRRRRORRRORRROROROOOROOOOOORRRROOROOOOOORRROOROOOOORROOOOOOOOROOOOOOROOROOOOOOOOROOOOOROORROOROOOOOOOOOOOOORROOROOOROOOOOOOORROORRROOOORRRRROOOROOOOORRROOOROOOROOOOOOOOORRROOOOOOOOOOOOOOOOOOOOROOOOROROOOROOOOOROOOOOOOROROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOORROOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOORRROOOOOOOORROOOOOOOOOOOROOOOOROOOROOROOOOOOOOOOOROOOOOOOROORROROOOOOOROOOROROROOROROOOOOOOOOOOOOOORROOORORROROOOROOOOOOOOROOROOOOOOOOOORROOROOOORORROOOOOORORRROROOOOROOOROROROROOROROROROOROOOOORROOOORRRRORORROROOROORORRROOOORRROROORORRRORROOOROOOOROOROORROOOROROORORROROROOORRROOOOOOORRROOORORRRRRRROOORRRRORRRRORORROOOORRROORRROROORRRRROROOOOOORROORRRROORRORORRRRROOORRRRORRORRRRRRRRRORROOORRRORORRROOORRORRRRROOOOOORORROOROROOORRROORRORRRROORROORROORRRRRORRORRRRRRRORROOROROOROOOROROROOROORRRORRORRRRRORRRRRRRROOOORROOROROORRRORRRORRROORRRROORROOROROROOROROORRRRORRRRRORORRRORRRORORRRORORRRRRRRORORORROORROORRROOORRRRRORRROROOOROORRORORRRRRORRORRRORRROORRORORRRRRRRRRROOOOOOORRRRRORROORRRROROROORRRRROOORROOROOOORRRRRORORORRORORRRROORRRORRORRROOORRRROORRRRRRORROROROORRRRRORRRRRROORRRRRROORROORORRORROROOORORRROROOROROROOROOOROROROOOOROOROORRROROOORROROOOOOOOORROOOOORORRRORRRORORRORRRRORRROOOORRRORRROOROORORRRROOOOOOOOROROROOOOROOOROOROOROOOOOOROOROOOOOORRROROOORRRROOROROROOOOROOROOOROOOOOOOOOOOOOROROOROOOOOROOOOOOOOROOOOOOOOOOOROOOORROOROOOOROOOROOOOOOROOOOROOOOORROORORROOOOOOOOOOOOOOOOOOOOOOROOROROOROROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOORORROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOORROOOOOOOROOOROOOOOORROOOOOOOROOROOOROOOOORRRROOOOOROROOOORROOOOOORRROOOOOROOOOORROOROOOOOROROROOOROOOOROOOROOOOOOROOOOOOOROOOOOOOOOOOOOOORORROOOOOROOROOORORROROOORROROOROOOOOROROOOOOROOROOROOOROOROORROOORORROOOOORRRRROOOOORORROROOOOOROROORROROORRROORRRORRORORROOOORROORROOROOROOOOORRRORRORRROOORRRRORROOORORRRRRORORORRORROORORRRROOORORORRORRRROOOOOORORRORRORRORROOORRORRRROOORRRRROOROORRRRRRRORRRRRROOOORRROROOROORRORRRRRROOOORORRRRRROROOOROORORORORRORORORRORRROORORORRROORRROOORRRRRROROOORRRORRROROOOOOOOROORROORRRRRORRORRRROOROORRRRRRORRRRRORRORRORRROOORRORRROORORRROORRORRRRORORORORRRORORRORRRORRROORORORRRRRRROROOOOORRRRRROORORRRORRORORRROOORROOOORORRRRORRORORROROORRROOOORRORRRRROORRORORORROOROOROORROROOOOORRORRRRORORRROORORORROOOOORRRRROROOROORRORRORROOOOROOORRROOOOORORORRORORORRORRRROOOORROOORROORORROROORORROOOOROOOOROORRORRRROOROROROORROOORORORORORROOOROOROOOROROOROOOROROOORRROOROROOOOOORROOORROOOOROORROOOOOOOOROOOOROOOOOROOOOOROROOORROOOOOOOOOOOROOOOOOOOOOOOOOROROOOOROROOROOOOOOOOOROOOOROROOOOROOOROOOOOROOOOORRRROOOOOOOOORORROOROROROOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOROOOOROOOOOOOOROOOOOORORROOOOROOOOOOOOOROOOOOORROOOOOOOOOOROOORROOOOOOORROORROROROOOORROOOOOOOOOOOROROOOROOROOROROROOOOOOROOOROOOOROOOROOORORROOOOOORROOROOOROOOROOROORROROOROOOROOROORROOORROROOOOOOOORROORORORRRRORROROORRRRORROOOOOOOOOOOROORORROOROORROOOOOOOOORRRRRRRRRORORRORRRRORRROOROOORROOOOOOOOOOOORRRRRRRROORROORRRRORORROOROOOORORORRRORORORRRROOORRORRORORRRORRORORRROROORORORROORRRORRRRRORORRROORRROORRRRRORORORROROOORORRORROOOORORROOORRRRORRRRORORRORROOOROORRRORRRRRRRRORRRRORRRRRRROOOROOOORRRRRORROORROROORRRORRRRROOROROORRRRRRRRRROORRROROOOOORROORRRRRRRRROOOOOORORORRROORORRORRROORORORORRRRRROORORORORRRRRRRRORROOOORRORORRROROORROROROORRRRRRRRRRORROOROROOORRRRRRRRROOOROOORRORORORRRROORRRROORROOROOROOROORORRORORROOROROROROORRROROOOOROROOROOROROOOOORROOORRROORRRRROORRRORRORROOOOORORROROOORRRORRROOOROOORROROOORROROOOOROROOOOOROOORROOOOOOOROOROROOOOROOOROOROOORROROOORRRROOORRRROOOOOOOOROOROOROOOOOOOOROOOOOOROROROOOORORROOOOORROORRROROOOROOOOOOROOOROOOOORRROOOOOROOOOOOOOOOOOOOORROOORORROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOROOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOROOOOOOOOOROOOOOOOOROOROOORORORROOOOOOROORROOOORORROOOOOOOOOOOOROROOOOOOOOORROROOOOOOROROOOOOOOOOOOOOOORRROORORROOOOOOOOORROOOOOOOORORROOOROOOOORROOOOOOOOORROROOOOOOROROOOORRORROOOOORRROROROOOORROOOOOORRORRORROOORROROOOORROROOOOOROORORRRORRRRORRRORROOROOOOROOORRORRRRRROROOOORROORRRORORORRRRRRRRRRRROROOOOOROROOOROORORROROOOOOORRRORROROOORRRROOORORORRROOOOOOOORORRRRRRORRROOOORRRRORRRRRROOOOROORROOROORRORORRRRROOOROORROROOOOROOOORORRORRROORRRRROORRRORRORORORROORRRORRORRRORRORRRRROOROOROROORROROOORRRROOOOORRORRORORRRRRORORRROORORRRROOOORRORROORRORRRRORROORROROOROOROORORORRORRROOOORRRROROOROROORRRRRRRRORORORRRRROORRORORROORRROORRRORRRRRROOORROOORROOOROOOORRORRORORORORORRROROORRRRROOROORRROORRORRORROOOOROORORROOROORRRRORRRRROOROORRROORORRROROROORRRORRRROROROOROROORORRROORROORRRROROROROOORROOOOROOOROROOOOOROOOOROOOROROOOORROORRORORRORRRORRROROOROORORROORORORRORRRORRRORORROOROOOROOROROOORRORRRRROROROOOOOOROROROOOOOROOOOOOOOORRROOOOROROOROORROOOOOOORRROOOOOROOOOOOOOROOOOOOOOOOORRORROROOOOOOOOOROOOOROOOOROOOROOOORROOOOORROOOOOOROOORROOOOROOOOOOOOOOOOOROOORROOOOOROROOOOORROOROOOOOOOOROOOOOOOOOOROOORROROOOOOOROOOOOOROROOOOOOORROOROOOROOOOOOOOOOOROOOOOOOOROOROOROOOOOOROOOOOOOOOROOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOROOORROOOOOOOOOOOOOROOOOOOOOORRROOOOOROOOOOOOOOOOROROOOOOROOROOROOROOOOOOROOOOOOOROROOROOOOROOROOOOOOOOOOOOORROOOOORRRORROROOOOROOOOOOOORRROORROOOOOOOOOOROOORROROOOORROOORRORORROOROORROOORRORROOOROOROROOOOORRORRRRRRORRRRROOORROROOORORRROROROOROORORRORRROOOOOOOORORRROOORRROROORROORRROROROOOOROORROOOROORORRROORRORRORROROOORORRORRORROOROORRRRORORORRORRORRROORORRROOOOORRRORRORRORROORROOORRORORRROORORRRRORRRRORORRROORRRORRRROORORRRRRRRORRRROOOORRORORORRRRRRROROOORRORRRRRRRRRRROOROOOROOORRORROOROORRRRORROORROOOORORRRORROORROORORRRROOOORORROOORRRORRRRORORRRRRORRRROORROROORORRRRRRRORORRRORRRRRORRROOROORRRRRRROOOROOOROOOORORRRRORRORRRRRROROOORRORROOROROROORRRROROORRROORRRROOOORORRRROOOORRRRORROORROOOOROORORRROOOOROOROORROORRROOOORORRORORORORROOOOOORRRROOORRROOROORORROOROOOROOROROOOORRRRRRRROROOOROROROOORORRROOORORROROOOOROOROOROOROROOORROOOOOROORRROOOROOORROOOOORORORROOROOOROOROOOOOROOOORROOOOOOOOROOOORRROOROOORRROOOROOOOOOOOORROOOOOOOOOOOOORROOOOROOOORROOROOOOROOORROOOOROOOOROOOOOROOOOOOOOOORROORORRROOOOOOOOORROOOORORROOOROOOOOOOOROOOOOORORROOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROORRROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOORROORROOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOORROOOOROORORROROROOOOORROOOOROOOOORROOOOORROOROOOOOOOOOOOOROOOROOROOOROOROOOOOOOORROOOROORROOROOROROOOOOORORRORORRORRROOROROOROOOOOROOROOOROOROOOOOOOROOOOOOORRORROOOOOORROORROOOROROOORRROROROOROOROOOROROORROOOOORROROOOROORORORRRORRORRORORRRRRROOORORRRRROORRRORRRORRRORORRRROOOROROROROROOOORRRRRRORRORRRRROOOOOROOOORRORROORORRROORORROROOROOOOROORRROORRRROROOROROORRORRROORORORRRROOORORORRORORORORROOOOOOROROOOROROORROOROOROOOORRRRRROORRRRRRRRRRRROROROOOOOORORRRRROORROROOORRRRORRRRRRRROOOOOROORORROROORROROROORRROORRROORORRRRRORRROOORRORRORRORROORRRRORRROORORRROORRRRORORRORRRRRROOROOROOORORRORRRORRORROOORRROOORRORORRRRROOOORRROORORRORRRRORORRROOROROOOOOOOOROOROORROROOROOOOORORORROORROOROOORROOORRRRRRORORROOROROORRRROROOORRRORRRROROORRRORROORROOORROOOOROOOORRRRRROOORROOOROORRORORRROROOOOOORORROOOORORORROROROROORROROOOOOOOORROOROOOROORRRROROOOOROOOROROOORROOROOORORROROOOOOOORROOORORROOROOOOROOOOOOORRORRRRRROOOOOORRRRROOOOOOOROOROOOOOOOOOOOROOOOROORRROOOOOOROOOROOOOOOROOROOOOOOOOOOOORRROOORROROOOROOROOOOOOROOOOOOROOROOOROOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOORROOOOROORROOROOOOOOOOOOOOOOOOOOORROOROOOOOOORROOOROROOOOROOOOOROOOOOOROROOOOOROOROORROOOOROOOORROOOOOOOOROROOOOOOROOOROOROROORROOROORROROROROROORORROROOOOOOROROOOOOROROOROOROOOOOOROROORORRORRRRORRROROOOOOORRROOOOOORORRRORROOOROOOOOOOOOROOROROROOROOOORORRRORROOOROOROOOOOOOOOOOROROOOOOORORRRORRRORRRRORORRORORORRROOROROOOOROROOROROROOORROROORORROROOOORRRRRORORRRORRORROROROORORROORORROOORROORROORROOORORORRORORRRRROORORRRROOOROORRORRORRRORRRORRRRRROORROOOORROOORRRRRRROOORRRRRRORRRRRRRORRRORRRRROOORORROORRROROROORROROROROROROORROOORROOOROROOORRRRRORRRRRRRORRRRRRROOROOOOOROROOORORRRROOROORRORRRRORRORORORORRORRORROORRRRORRRORRORRORRRROORRORRRRORORORRRRRRORORRRROOROORRORORRORROORRORRROROOOOOOOORRROOROOORRROROOOOROORRROOROOORRROORROROOROROORRRORRORORROORORRRRROROORORORROROOROOORORORROROROOROOOROROOROROORRRROOORORRROORROOORRRROOROOOOROOORORROORRROROROOORROOOOOORRORROORRRRRROORROOROORROOOOORROOORORROORROROROOOOROORORROOOOOOROOOOOORROOROOOOOOORORORROOOOROROROOOROOORROOOROOOOOOOOROOOOOOOOOOORORRROROROOOROOOOROOROOOOROOOOOOROOOROOROOOOROROOOOOOROORROOOOOORORROROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOORROOOROOOOROOOOOOOOROOOOOOOOROOOOOORROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOORROOOOOROOOOOORORROOOOOOOOOOOROOOOOOOROROROROOOOOOOOOOOOOROOROOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOROOOOROROOOOROORROROOROOOOOOOOOOOROOROOORROOOROOOOOOOOROOROOORORRROOOOOROOOROOOOOOOOORORROOROOROORROOROOOROROOORROROOOOOROOORROOOOOROROOROOOORRROROROORRROORROOORRORROOORORROORROOOOROOROOOORRRRORORORROOOORROOOOROROROROROOOORROOROOOROROOOOOROOOORRRORRROORRRROROOOORRORORORORROORORRRORRORRORRRORRORORRRORRRRORROROORROOOORRROOROOOROOOORORRRROROOOOOOROOOOOOORRORRORORRRRRRORRROORORRRRRRRRRROOOOROOOORRRRORRRORRROORORROORRRRRRRRRRRRORORRRORRROORORORROORRORORROORRRORORRORRRRRRRORORORRRROORRORORRROROORRRRORORRORROOORORRRORORRRORRORRRRORORRRROORRRRROOOROROROORRROOORROOORRROOORRRROORRRORORRRRORRRROROORORROOROOOOOORRORRROROORORRORRRORRORROOORRORRORRRROOOOROOORRROOOROORORRROORRORROOORROORRRRORRORRROOORROOOROOOOOOOROOOROOOORORRRRORRRRROROOOROROOOORROOOOORROOOROOROOOROROOOORRRORRORROOOORROOORRROROOOOOORROORROROROOOROROOORORRORORRRROOOROOOORROOOOOROOROOOOROOOOROOOORORRROROOOROROORORRROROOOOOOROROOOOOOORRROOOOOOROOOOOROROROOOORROOOOROOOOOOROROROOOOOORROOOROOOOOROOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOORROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOROOOOOORROROROOOOOOOOROOOOOOOOOOOOOROORRRRORRROOROROOOORRROOROOOOOOOROOROORROOOROOOOOROOOROOOORROOOOOOROOROOOROOORROOOOOOORRRRRROORORROOOOROOORROROOORORRORROOOORORROOOROOOOOOOROORROOOOROOORROROOORORROROOOROOOOORORORORROOROOORRROROOORRRRORROOORRROOOORROROOOOORRROORROOOOOOOOOOOROOOOOOORRRROOROOOOOORROROOOOOORRRORORRORROORROOOOROROORORRROORORRROOROOOOOOORRORORRRRROROROOOOOOORRORROORROROROROORORRRRORORORROROORORROOORRORROORORRORORRROOROOOROOOOORRRORRRRRRRROROORRORORORRRRRORORRRRROROOORRRRRRRRORRRRORRROROROOOORRRRRRRORORROORROORORORROOORRRROOORRRORRRRRRRORRROOOROORRRRROROORRRRRRRRRRORORRRRRRORRRRRROROORROROORORRRORRRRRRROROORRRROORRROROORRROROOOOORRRORRROORRRRROOORRRRROOROROORRORORRRORORORRRRROORROOOROOORORRORORRRRRRRRROORORRROOROROORRRRRRORRORRROOORRROROORROROORROOORROOOROROOORRORORORROOORROOOOROOOORROORROORROOOORORRROOOORORORORORROROOORROOOOOOROROOOOOORROOOOOORROOOOROOOORROOROROROOROOOOROORRORROOROOOROROOROROOORROORRRRRROROOOROOOOOOOOORROOOOROOOOOROOOOOOOOOOROROOOOROOROOOOROORROROOOOOOOOOOOROOOROOOOOROOOROOOROOOROOOOOOOOOOROOORROOOOOOOORROOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOROOOOOROOOOOROOOOOOOROOOOOOOROROOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOORRORROOOOROOOOOOROOROOORROOROOORORROOOROOORROOROROOOROOROORRRRROOOROROOORORORROORORROROROROOROOORORORROOOOORRROROROORRROROOOORORROORORROOOORRORROOOORROOORROOOOOOROOORROOROOOOOOOOOROROOOORRORORROOROROORRORRRRRRORRROOOOORROROROORORRRROROROOROOROORRORRORRRRORRROROROROORROORRRORRRRRORRRRORRRRRROORRRROORROOOORRRRORRORRRRORORRORORORORRRROOOORRRORRORRROROOROORROROROOOOOOOOOORORRRROORORRRROOOORRRORRORRRRRRRORORORORRROORORRROOORRRROROORRRORORRRRRORRRRRRRRORRRORRRRRRORRRRROORORRRROOOORRROOORRRORRRRRROORRROROROROROOORRROOOOOORRORRRRRRORRRRRRRRORRRRROOOOROROORRRRRROOORRRORRRORRRRRORRROOOROOOOROOOOORROORRROORRRRORRRRRROOORRRRRRRRRRRRRRRRORROORRROORORROOOOOROOORRORRRROOORORRRRROOOOOOOORRORRRRROOOOOOOOOOOOOROOROORRROOOROOORROOOOORROOOOOOOOOORRROOOROROOOROROROOOOOROOOORROROOROROOOROOOOROOOORRORROOROOROOOOROOOOOROOORROOOOOOOOROOROROOOROOOROROOOOOOOOOOOOROOROOOOOOROOOOOROOORROORRROOORORORROOOOOOROOOOROOOROOOOOOOROOOOROOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOORROOOOOORROOOOOOOOOROOOOOOOOOROOROOOOOOOOROOOOOOROOOOORROOOOOOOORORROOROORROOOROORROOROOOOORRROOOOOROOOOOOROOOOOOROOOOOOROOROOOROOROROOORORORRROROROOOOOOOORRROOOOOOROOROOOOORROOORROOOORRRROOORRRRRROOORROOROORROROOROOROOOOOOOOROOOROOOROORRORRROOROOORORORRROROOORROOOOROORORRORRROOORRRRRRROROORROOOOOOOORORRORROROOORRORROORROOOOOOOROROROORORORROOROOORORRORROOOROOOOORRROROOOOROORORRROOROOOORRRRRROORRRRORROORRORORROROOOOOROROORRRROORORRROORORRRRORRRRORRORRROORRORRRROOOOOOOROROORRRRROORORROORROOOOOOORORRORORRRORROORRORROOORRRORRORORORRROORRROORRRORRRRRORORRROOORRORRORRRRORRRRRRRRRRORRRROORRROORRRROOOROORORRRROROORRRRORRRORRORORRRORRRRROORROROROROROORRRRORORORORRRRORRRORORRRRRORROORORRRRRORRRROORRORRRRRROORORORORROROOOORRRRROROOOOOROOROROORRRRRRORROORROOOORRRRORROOORRRRROOOROOROROROOOOOOORRORORRROORRROOOORORRRRROROROORROORRROROROOROOROOOOOOOOOOOROOROROROOOOOROOORROOOOROOROROOORROOOOORROOROOORORROROOOOROOOORRROOOROOOOOOOOOOOOOOOOORROOORORROORRRROOOOOROOOOOORROOOOOROOOORROOROOOOROOROOOOOOROOORORRRRORORROOORROROOOOOOOOROOOOOOOOOOOROORORORROROOOOOOOOOORRROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOROOOORROOOOOOOOOROOOROOOROOOOOOROOROOROOOOOOOOOROOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOORRROOOROOOOOOOOOOOOOOOOROROOOOOROOOOOOROOOOOOOOOROROOOOROROOROOROROROOOORORRROOROOOOROOOOOOOOOROROOOOROOOOORRORORRROOOROROOROOOOOOOROOOOOOOROROROOOROOOOOOORRROORROOOOOOROOROORRROROORRROROORRORORRRRRRROROOOOOOORROROOOOROROORRROOROOOROOOROOORRRORORROOOORRRROOOORRROROORROROORRORRROOOOROORRRRRORRORRRORROOOROOORORRRORROROROOOOOORRORROORORRROOOROORRROOOOROORORRORRRRROORRORORRORRROROROORROOORROORORRRORRORORRROROORROORRORRRRORRORRROORORRRRRROORORRORROROOOOORRRRORRRRRRRRRORRORROORRRORROOROROROORRRRRORRRRRRRORRRORROROROOOOROOROOOORORRRORORRRORRORROORRRORRRRRROOOORORRRROOORRRRRRORRRORRRORRRORRORRRORRORRRRRRORROOOOROOOOORORRORRORORRRRRRRORRRROROOROOROROORORRRROOORRROROORRRRORROORRORRROORORROROOROOOORRROROOOOOOORROORRRROROOROROOOOROOORORRRRRRRRRORORRRRRRRRRRROOROOORRRRORRROORRRORORORROORROROOORRROOROOOORROOROROOOOOORROOOOOOOROOOORROOOOOROOROROOROOOROROOOOOROROOROOORORRRROOROOOOORRORORRRRORROOOROOOOOROOORROROOOOOOOOOOOROOOOOOOROOOOOOOOOROORROOOOROOOOOORORROOOOROOORORROOROOOROOOROOOOROOROOOOROOOOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOROOOROOOROOOOOOOOOOOOROOOOOORROOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOROROOOOOORROOOOOOOROOOOROOROOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOROROOOOOOROOOOROOOROROOOROOORROROOOORROOOOOROOOROOOOOOROROOROORROROOOOOOROOOROOOOROROROOOROOROROROOOOORROOOOROOORROOOOORRRORRROROROOOOOOROOOORROORROROOROOOROORORORROOROOORRROOOORRRORROROOROROROORRORRRRRRROROOROOORROOROOOORORRROOOOOORRRRROROOOORRRORORRROROORORORROROOORROORORRORORRORRRORROOROOORRRRRROORORRRRROROOORRRRRROORORRRORRRRORORRRRROOOOOOOROORRRRROORORRRRRRRROROORORORRORORORRRORRROROOORRROROORRROROOORORRRRORRORRRRRRROORROORRROROORROROROORRRRRRROOORRORRROROOOORORRROOORRRRRRRORORORRRORORROOORROOOORRROORRROOORRROROOOOORROOOROROROROORROROORROORRORRRRROOROOORORRRRORRORRRRRRRROOOOROORRORRORRRRRRRRROROROOORRRROOROOOROORRROORRRRRRRRORRORRRRRRROORROORRRRROORRRRRRORORRRRRRORORROOORRRORROROOOORROOROORRROORROOOORROORRROROORORROORRORORORORRROROROROOORRRRRORORROOOROOOOROROOORRRROROOORRRRROORRRROOORORRROROORRROORORRORRROOOOROOOOROOOROOOOOOOOORROOROOROOORORROORROOORRROOROROOOROORRROOORROOOOOOORRRROOOOOROOOOOOOOOOORROROOOOOOROOOOOOOROOOROOOROOROORROOROOOROOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOROORROOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOROROOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOROROOOOOOOOOORORROOOOOOOOOROROOROROOOOOOOOOOOOOOOOOORORORROROOOROROOOOOROOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOROOOROOROOOOROOROOROOOOOOROOOOOOOROOOROORROROOROOOOOROOOORORROOOOOOROOOOOROOOOOOROOOROROOORORRROOROROROORORRRROOOOORRRROORORROOOORORROROORORRROROOROOROORROOORRORROOOOROOOORRRRROOROOOROOOOORORORORORORRRROORROROOOROOOROOOOROROOOROROROORRRRRROROOOOORRRRRORORORROORRRRRORRORORRORRRORROOOROORRROORRRRROORORRORORORORROORORROOOORRORORRRROOOOROOOOOORRORRRRROROORORRORORRRRORORRORORRRROROORRORRRROOORROORRRRRROROROROROOROORORRRRRROROORRORRRRORORRORRRROROOORRORROORRRRRORRRORRROORORRRRORRORRROOOORRRRORORRRROORRRRRROORROOROORORROOROROOORRRRRROROORORRRROROOORRRRORRRRROROORRRORROORRROOROOORRRRROOOORRRORRRRRRORORRORRRORORORRORRRROORROROROOROOROOOROORROOOROOOORROROOORRRRROOOOROOORRRRRRRORRORORRRORORRORROROOOOORRRRROOORRRROOOROROOOORORRORROROOORORROOROROOOORROOORORORROOOROROOOROROOROOOOOOOROROROROORORROROORRROOROROOROROOOROROOORRRORRORORROOORORORRRORROROOOOOROROROOOROOROOROOORRRORORORROOOOOOOORRORROORROOOOOOOOROOOOOOOOORROOOOOORROROROROOROOROOOOOOOOROOOOROOOOROROOOOROOROOOROOOROOROOOOOOOOOOROOOOOROORORROOOROOOOOOOOOOOOOROOOOOROOOOOOOORROOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOROOROOOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOROROOOOROOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROROROOOOOOOOOOOOOOROROOOROOOORROROOOOOOOOOOOOROOOOOOORROOOOOOOORRROROROOORRORRROROOORORROOOOROOROORROOOOOOOOOOOOOORORROOOOOOOOOOOROOOROOOOOOROOROOOOROOOROORROOOORRORRRROOOORROOOOORRROOOOOOROOOORROROROOOORRORRRRRRRROROOROROROROORRRRRROORROOROOOROORRROROOROOROOROROOOOROOOOROOOORRROORRROROOOOROOORROORROROOORRRROOOORRRROROORRRROOOORRRROORRRRRORRORRRRRRRRORRORRRORRRORRRRRROROROORORORROOORRROORRRRRRORRRORRRRRRORRROORORORORRORRRROOORRRROOORRROROORRRORORROORRROORRRRROORRRRRROROORRRROORROROOOORRRRRORRRRRRORRRRRRORROOORORRORRRRORROOORRRRROOOORORRRRROROROOOOORRRROOOROROOOORRRORORORRROORRORORROROOROORROOOOROROORRORRORROROOOOORORRORORRRRRRRRRROOOOORRROOROORRRORRRROOROROROOOROORORRRRRROROOORROORRRORORORROOROOOORORRROROORRORRROROORROROORORRORRRROORRROROOROOOROORRROORRORROROOORROROROOOOROOORRROOOOORROROROOROROROOOROROOORORRRORORRRROOOROOROROORRRROOOOROOORROOOORRROOOOOROOORROOOORROROOOOOROOROOOOOROORROOOOOOROOOOROROORRROROROOOOOOOOROOOOOROOOOOROOOOOORROOOOROOOOROOOOOOOOOOOOOOOOROOOOROOOOOORROOOOOOOROOOOOROOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOROOOOOOROOOROROOOOOROOOOOOROOOROROOOOOOROOROORROOOOOOOOROOOOOOOOOORROOOOOOOOOOOROROOOOROOOOORRRORROOROROOOOOOOOROORORRROORROROOOORROROOOROROORROORROOOOROOOORRROOOROOROOROOOOOROROOORROOROOROOORRROROOROOOOOOORROOOORORRRROROOOROROROOROOORRROOOORROOOROOORORROROOOOROROROOOROROOOOOROOOOOROORROOORROOOOROORROOORRROOORROORRRORRRRRROOROROROROROROOOORRRROORROOORRRRRRROORRRRORRRORRORRORRRORRORROOOOOROROORRRROOROORRRORORRRROOORRORORRORRORRROORORRRRORRRROORRRRRRRRRRROOORRORORRRRRROORORRRORORRRRRRRRROROROOORRRRRRRORRORRRORROOOROORORORRRRRROOOOROOOROORORRROOROOORRRRRROOOROORRROOOOORRORRORORORORORRRRRORORORORRRROOOOROORRRRORRORORROOROROOORORRORRORRROOOROOOOROOOOOORORROORRRRROORORROROORRRRRRRORRROOROROOOOORRRROORRROROROORRORRORRROOOOORRROORORROOORROORRROOORORROORROROORRROOORRRORROROOOORRROOROOORRRORORORORORORORORROOOORRROORROROORROROOROOROROROOORRROROOOOROOORORROROROORROORROOROROOOOOOORROORRORROROROROOOOOROOOOROROORORORROROROOOOROOOOROOROROOOROORROOOOOOROOOOROOOORROOOORROOROROROOOORROROOOOOOOOOOOOOROOORROROOOOOOOROOOROOOROOOOOROOOOOOOROOOOOOOOOOOOOROORROOOOOOOOROOOOOOOROOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOROOOROOROOOOOOOOROOOOOOOOOOOROOROOOOROOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOORROROOOOOROOOOOOROOOOROORROOOROOOROOOOOOOOROOOROROROROOOOROOROOOOORROORORROORORROROOOOROOROOORROOROOOOROOOOOOOOROOROROOOOORRRROORROOOOOOOOROOORROOOOORROROORORROOOOROROOROOOOROROROORROROOOROORORROORROOORORRRROORRORRROOOOORRROROROOOOOOOORRRROROOROROOOOOROOOROOOOOOOROROOOOOOROOROOROOOOOOOOOORORRROORROOROOORRORRROOORROOORRROOOORORRRRRRORRRRORRRRRORRRROOORORRORRRRROOROROOORRORRRORRRRROOORORORRROOOROROROORORRRORRORRORRRORRROROORORROOORRROOORRRRRRRRRORORRRRRRRRRRRRRRRORROORORORRRRROORRROOORRRORROOOOORRRORRRORROROORRRORORROORRRRRRORORRROOOOOORORROORRRRRRRROOOORRROORRORROROROROOORRRRROOOORRROOOOOROORORRRRRORRORRRORROROROROOROOORRORORORRRROROORORRROROOROOORRROORORRROORROROOOORORRROORRRROORROORRRORROROOROROOROORROOORORRROORORORROOROORRRRRRROOOOOROROOOROOOORRRRORROOOORORROOOROOOOOOOOROOROOROOORROOOOROOOORRRROROOOOOOORRRRRRORRROROROORORROORROORROOOOOROROOOOOROOOOOOROOROORORORORRRROOOOOOOORRROOOROOOOROOROOROOOOOOORORROOOOOROOOROROOOOOOORROOROROOOOOOOROOROROOOOOOOROOOOOOOOOOOOOOOOOORROOROOORROORORROOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOORROOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOROROOOOORROOOOOOOOOOOOOROROROOOORROOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROROOOOOROROOOOROOOOOOROOROROOROOOOOROORROOOOOROOOOROOOROOOOROOOOOOOOOOOROOOROROROOOOOOOORROOOOOOORRRRORROOROORROOOOOORROROORORORRRROROOOOOOOOOROOORROORRROROORORRROOORRRROOOOOOROOORROOOOOOROOORORORRORORRROORORORORRRROOOOORROOORRROOOROOORROORRRRRROORROORRRRORROOORORROORORRORORORROORRRRRRRRORRRRROOORRRROROORORRRRROROOORRRROORORROOORRRRRROORRRRROOORROOROORROOORROORRRORRROORROROOOORORRRORRRRRRORRORORORORRORRRORRROOORROROOORRORRRRRRORRORORORRROORROORRRROORRRRORRORRRRORROORRRRORRRRROOROOOORRRRROORRORROOORROORRRORRORRORRRRRORRRRRRRRRRORRORROORRRRRRORRRROORRRROOOOROOORRRORRORRRROOORROOORRORRORROORROROROORRRRROROOROORORRROOROOOORORORROROOORORROOOORORROOOOOOOOOOROOOORRORRRRRRRROROOROOROROROORRROOOOOOOROROROORROOOROOOOOROORORORRORORROOOOROORROORROOROOOOROOOROOOROOOOORORORRRROORROORORRROROROROOORROROOORRRROORROROROOORRROORRORROOOOOOOROOOORRRROROOOROOOOOOORROOOOOROOROOOOOOOROOOOOROROOROOORORROOOOOOROOOOOROOOROOOOOOORORROOROOOOOOROROOOOOROROOOROOOOOROOOOOOOOOROOROOOOOOORROOOOROOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROROOOOOOROOOOROOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROROORROOOOOORRROOOOOOOOOOROOOOOOOOOOOOOOROOOOROROOOROOOOOOOOORROOOOOOORORRRORRROROOOOOORROOOOORROOROOOOOOOOOOROOOROROROOOOOOROOOOROOOOOOROOOOOORRRRROOOROOROOOROROROOOROOOORRRROOROROOORROORRROORRRORROOOROOOOORORROOORRRRRORROORRRRRROORROOOROOOOOROOROOORRORORRRRORRRORRRRORRRROOORORROOROOOOROOORORORROORRORROOORORRRORRRRORRORRORRORRORROORRORRRROORRROOORRRRRORROOORRORRRROROROORROROOROORRRROOOORRRRORRRRORORORRORRRRRRORROROOORRRRORROORRROORRROOORROROROORROROORRRRRRRRORRROORROOROORORROROROOORRORORORROORORORORRORRRRORRRRROOORORORORRORRRROORRRORORRRORRRORRRRRRRRRRRORRORRRROORORROOORRORRROORRRORRRRORROOOORRROORRRROROORROOOORORORORRROORRORRROOORROORRRORRORROROROORORRRRORORRRRORRRORRORORORORRORROOROORROOORRROORRORROROROOOOOOORRRRRROOOROOORROOORROORRRROOOROROOROOOOORRROOOOORRROOROOOOOOOOOORRORRROROROROOROOROROORRRROROOOOORRRRRRORRROOROOROOORRORROOOOROROOROOOOROOROOOOROROOOOROOOROOORROOOOROORRRRRROROOOOROOOROOROOOORROOROOOOOOOROOOOOROOOOOOROOOOROOOOOROROOOOOOOOROOOORROOOOOOOROROOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOROOOOOORROROOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOROOOOOORROOOOOOORROOOOOOOOROOORROOOOORROOORORRORRORORRROOOOOOOOOOOOOOOROOOOOOOOORRORROOOROOORROOORRROOOROOOROOOOOROOOOOORRROROOOOOORROOOORROOOOOOOORROROORROOROROORRROOORROROROOOOORROOORROORRORORRRRRORRORROROOOOOROORORORRRRRROOROORORORRORORRORORROORORROOORRRROROOOOOORRORORRRORORROOORRROOORRROROORORRRRRORRRORORROORRRRORRRRRRRORRROORORRRROOORORORRRRRRORRRRRRORROROOOOROOOOOOROROORORRRRRRORRRORRRORROOORRRRRRRRRORRRROROOORORRROOOORRORORRROROORRRRRRORRRRRORRRRRROOROOORRRORRORORRRORRRRRORORROORROORRRROORROROROORRORORROORRRRRORROORRRRRORRRRRRRRRRRRORRROORRORRRROORRRRRRORORRROOORRRRROROOORRRRRRORORRRROORRRROORROOOROOROORRRORRRRRRRRRRORRORORRROROOORROOORRRRRROORRRORRORRRROOOOOOOOROROOOORROORRRRORRROOOOOOOOORRROOOROOOOOOORRRROOORRRROOROROOORROOOROORORRORRORORROOOOOORORRORORRROOORRRRORRROOOOORRROOOORORROOORROORROOOROOOOOOROOOROROOORROOOOOOORORORORRROOORROOOROORROOORROROOOORROOOROROOROOOROOOOORROOOROROROOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOORROOROOOOOOOOOROOOOOORRROOOOORROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROROOOROOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOROOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROROOROOOOOOOOOOOOOOOOORRROOOOOOROOOOOOOOOOOOROOOROOOROORRROOROOROOOOOOOOOOOROOOOOOOOOROOROOROOROOROOOOOOOROOOOOOOORROORROORROOROOOOROROOROORORORRORRORRRROROORRROOROOROROORRRORROOOOOOOORORRROROROOOORRORRORRROROROOOROROOROOOOORROROOOOOOOROOROOOOOORORRRROOOORRRROOOROOROOORROORRROROOOOOOORORROOROROROOOOORRRROOOORORRROROORRRRRRRRROORRORORRRRRROOORRORRROROOROORRORRRRRROOROOORORRRRORORRRRORRROROORRROORRRRRORRRROROROROOOROROROORORRRRRRRRRRRRRRORRRRRRRRRRRROOOOORROORRRRRRRORORORRRORRRRORRRRRRRORRRRROORROROORRRRRRRROORRROOORRRRRORRRRRRORRROROOOOORRROORRRRORRRRROORRRRORRRRORROOORRRORRROOORRRRROOOOORRRORROOOOROROORORRORRRRORORRORRORRRRRORRRRROROORROOOOOORORRROORRRRORRRRRROROORRROOROOORORORRORRORRROROORROORRRRROOOOORROOROORRROORRRORRRRRRRRORRRROOORORRORORROOORRRRROOROOOOROROORROOOOOOOOOOOROOOORROORRROOORORRROOOOOROROOOROOOOOORRRRROOOOORROOOROOROOROORORROORRORROOROOOOOOROOOOROROOOOROORROROOOOOOOOROOOOOOORORRROOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOORRROOROROOOOROOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOROOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROORROOROOOOOOOOOOOOOROOOOOOOOOROOROOOROOOOOROOOROOROOOOROOOOOROOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOORROOOOOOOOOROOROOOOOROOROOOROOOOOROOORROOOOROOOORRORRROOORROOORORRORROOOOOOROOOOOOOOOOOOOOORRRORRRROROROOROROOOROOOROOOOROOOOROROROOOOOOROOOOROOORRORRROOOROROOOROOROROORRROOORRRORROROROORROOOOROOORRRROOORROOROOOROROOROOOOOOOROORORROORORORROORORRROOORRRRRRROROORRRORRRRROORORRROROOORRORRRRROOOOROORORRRORRROROROROROORRORORRRRRRRRORORRRRRRRRRRRRRROORORORRRRRROOORORRORROORROORRRROROORORRRORRORRRRORRRRRORRRORORROORRORRRRRORORORRRORRROORRORROORRORRRRRROROORRRRROOOOOORRRRRRRRORRRROROOORRRORORRRRRRORRRRORRRORRORRRRRRROORRRRORRRRRRORRROORRRRRRRORRRRRRRRORRORRRROROROROROORRRORRRORROOORRORRRROOORORORRORORORRROROROROROOROOOOOORROOOROROOORRORRRROOORRORRORORORRORRRORRORRORROROORROORROOOOOOORRRORORRRROORROOORRRRORRRRORRRROORRRORRRORRRROORRORRROOOOROOOOORROROOOROORORROROROROOOORROROOOOORRRROOOOOOORRRROORRROOOOROOOOOROOOROORROOORORRORROORRROORROOOOOROOOOROROOOOOOOROOOOROOOOROOOOROOROOOOOORORROOOOOOROOOROOOOORROOOROOOOOOORRROOOROOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROORROOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROROOOOOOOOOROOOOOROROOOROOOOOOOOOOOORROOOROOOOORRROOOOOORROOOOOOOROOOOOOOOOROOROOOOOOROOROOOOOOROOOROOROOOORROROROROOROOROOORROOOORRRROOORORORROOORROROOOOOROORROROORRRRRRROOROOOOOOOOROROOOOOORORORRRRROORRROOOROROOOROOORROROOROOOORROOROROOOORROOOOROOOOROOORRORRRRORORRRORRRRORRROOROORRRROOOOOORRROORRORRRORROOROOORRRORRRRROORRRRORROROORRROORROROOROOOOOOOOORORRRROORROOORRRRRROOORORRORRRRRRRROORRROOORRRRRRORROORRRORORRROOORROOORRRORORRRROOOOOOROORRRROORRRROOORRRRRORRORRRRRRROROORRORRRORRORRRORRRRRRRRORRORRORRRRROORRRRRORRRROROORRROOROOROORRROORRRRORRORORROOORROROROOROOOORORROOOOORRROOROOROORRRORRRORORROORRORRRROORRROROOOROROOOOOORRORRROORORRRRRORRORROROROOOOORRORRORROROORROORRRRORORRORROOOOOORRORRROORRROORROOROORRORRROORORRORORRRRRRRRROOOOOORROORRORORRRROROOOROORRRRROROOROORRRRROOROROOOOOROORROOORRRORRORROOORROOOOROORRORORROOROORORRRROOOOROOOORRROROOOROORROOOOORROROOOOORROOROROROOOOORORROOOROOOROOORRRROOOOOOOROROOOOOOROOOOOROROOOOOOOOROOOOOOOOOOOORRROOOROOOOOOOOOOOOORROOOOROORROROOOROOOOOOOOORROOOOOROOOOOOOOOORRROOROOOORROOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOROOROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOORORROOOOOROOOROOOOORRRROOORRROOOOOOROROOOOOOOOOROOORROROOROOOOOROOORRROOOORRRORROOROOROOROOROOOROORRROOORROROROOOOROOORROOROOOOOOROOOOOROOOOORROOOROROOORROROOOORORROORROORRORRROROROOROORROOOROOOORRROROOOOROROORRRORROROOROOORROOOROORRRORORRORRRRROROROOOOOROOROOOOORROROOOORORRROORRRORRORRROORRROORORRROROORRORORRRORRROOOORORROORROROORRRORRORROORRRORORRRRRRORRRRROORRORRRORRORORRRRROOORORORRRRRROORORRORORRRORRRROOOOOROORROOORRORROOOROOROORRRRRORROORORROORORORRORRORRRROROORRORROROORRORORROOORRRRRRRRRORRRRRROOROOORROOORROROORRRROROOOOORORRRRORROORRROORROOROOOORORRROROORRROOOORORORROROOOOROOOOOOOOROORRRRROORRRRORRRRORRRROROORORROROOROOOORRRORROOOOROROOOOROROROOROOOOOORROOOROOOOOOROOORRROOOROORROORROOROROOOORORRRRORRROORRROROOROOOOROOOOORORORROROOOOOOOOOOORROOOOROOORRROROROOOROROROROOROORRORROOOOROOROROOOOORRORROROOORROOOORROOORROROOOROOROOOOOOOOROORRROOOOOOOOROROOOOOOOOOROOOROOOOROOOORORORRROROOOOORROROOOOOOOOOOOROOOOOORROROOOOOOOOOOROROOOOOOORROOROOROOOROROOOOOOROOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOROOOOROOROROOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOROOOOOOOOROOOOOOROOROOOOOROOOOOOORROROROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOORROOORROOOOOROOROOOOOOORORRROOOOOROOOROOOOOOOOOOROOOOOOROOOORRRORROOROROOOOOOORRROOOROROROOROOOOOOOORORRRROROOROOROOOOOOOROROORRROROOROOORORORRRROROOOOROORROOOOROOORRROORRROROOOOOORRORORORORRRROOROORRRROORROROOOROORORORORRORROORRROORRRRROORROORRRRRORRROROOOORROOOOORRROORRRROORORRRRRROORORRORORORORORORORRORRORROOROORORORORORORROOOORRRRRRROROORROOOOROOROORROORORRRORRRROOORORORORRORROOORROROOROORORRRORRRRRROOOROOROORRROROORORRRROORROORRRRROROOOOOOROOOOROROROROOOOORROOROOOORRORRORRRORRRORORRORRRORRRRRRORORORRRRRRRRRRROOOOORORORRRRRORRROROOOOROOOROROORRRRROROORRRROOOORROORROROORRORRROOORORRROORRRRROOOOOOROORROORRROOORORRRROOOOOORROORORRRRRRRRRORRRRROOROOROROORRORORORORROOORROOORROOROORRORRROOOOORORRRRRORRORRRROROROROROOOORRRORRRORRORORRORRRRROROROROOOROROOOOORRRROOROOORROORRORROROOROORRRORORROORROROOOOOOOROOROOORRORORROOOOORROROOOOROOOOROOROOROROOROOOOOOROORRORROOOOOORRROORROOROROOROOOOROOORRROOOROOROOOROOORRRORROOOROOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOROOOOROOOOOROOOROOOORROOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOROROOOOOOOOOOOROOROROOOOOOOOROOORROOOOORORROOROOOOOOOOOOOOOOOOROOROOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOROROOOOOOOORORRROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOORROOOOROOOOROOOROOOROOOORROOOOOOOOOOOOOROOROOOOROOROOROORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOROOOROOOROROOROOOOOOOOROOORROOOROROOOOORROOOROOORROROOORROORORROROROROOOOORROOROROOOOOOOOOOROOOOOOOROOOOROOOOOOORROOOOROROOOORROROOORRRORRORORRRRORROROORORROOOORROOOORORORORRRROROOORROOOOORRROOORROORROROORRRRROOORROROOOOORROROORRRRRRRORROORRRROROORRROROROOOOOROOROOORROORRRROOROORROROORRRRROOROOROOROOROROOOORRRRROROORRROROORORORROROORRRRRRORROROORRRRRRRROORORRRORORORRRRROOOROORRROROORRORRRRRORRORORORRORRROORORRRRRRRORRORRRORRRRRRRRORRORRRRORRORORROOORORORORRRRRRORROORRORRROOORRORROOORRRRRROOORRORORROOOOOOOOOROOOOOROORRROORRRRRRROORROOOROOOOOORRRRRROROROORORORORORRRRORORORRROROORRRRORORRRORRRRRORRROOORROOOORORRRRRRRRORRRRRRRROORROROOOROOOORRRRRORRRORROORRORORRORRORORRRRRRRORROORROOROORRRROOOOORROOOOROOORROROOOOOORRROOOORROOORROORORRROROOROROROOOOOROORORROOORROOOORRRRORROOROORORRROOOOOROROOROOOOOORORROROROOOROOOROOORRROOROOOOOOOOOOOOROOOOROOROROORROOOOOOOOOOROOOROROOOOOROOOOOROOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROROOOOROROROOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOOROOOOOROOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROROOOOOROOOOOROOROOOORROOOOOROOOOOOROROROOOORRRROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOROOOOOROOOOROORROOOROORROROOORROROOOOOROOORORROOROOOOROOORORRORRROOOOOOROOOOROOROOORORRRRRROORORROROROOOOOORRORORROORORORRRROOROROOOOROROORRROOROORRORROORORRRROOORRROOORRROOOROOROROOOOROORRROROROOORORROOROORRRRORROOROROOOORROORORROROOORRROORRORRRROORRRRROORRRRRROOROROORROORROORRROOOOROORRRRRRRROOORROORRORRROROROORRORROROROOORRROORROORROOORRRRRORRORRRRRRORORRRROORRRRRORRRRROORROOROROOROORRRORRRRRRORRRROORORORRORRORROOORRORROORRRROORORRROROORORORROOROOOORRRROORORRRROOOORRRRRROOORORRRROOORORRORRRRRRORORRROROORRROOORROROROORORRORRORORORRROOORROORRRORRROOOOROORRRRRORROORORRORROOOOOOROOORORORORORRORORORORRRRROROOOOROROOOOROOOOORRORORROORRORROORRRROOOOROORRRRROROOOOORRORRRORORRORRROOOORROOOOORRRRROOOORROROOOOOOOOOOROORRRROOORROOOOOOOROOOOROOROOOOOOROOROOOOORROOORROROOOROROORROOOROOROROOROOOOOOOROOOOROROOOORROOOOOOROOROOORROOOOOOOOOORROOOOROOOOOROOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOROROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOROROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOORRROOOOOROOOOOROROROORRROORROOOOOOOOROORORROOROOOOORROOOOOORROOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOROOROROROROROOOOROOOOOOROOOORRRRRROOROOOROORROOROORRORROOROOROROOORROROOOOOOORRRRROOROORRROORROOORORROOOORORROOORRRORROROOOOOOOROOORRROOROROOOROOORROORRORRROOOORROROORORROORORRRORROORROROOROORORRRRORRROROOOOORRORORROOROOOROOORROROROORRRORRRRRRRRORRRORRRRORRRROORRORROROROORROOOORRORRORRRORRRRROOORORROOOOROOORORRRRRRRRRRROOORRORRRRORORRRRRRRRRRRORRROOORRRRORRORRRRRRRRROORORORORRORRROOROORROORRRRROOORRRRRRRRRORORRRRRROORRORORORROROROOOORORRRORRRRRRRROOORRRROROOOOOOORROOROORRRRRORRRRROORORORRRRRRRORORRRROORRRRORRROROROROROROOORRRRRORRRROOROOOROORORROORORRRORRORRRRRORRRORROROOOROORRROOORRRORRORORROROOOORROROROORROROROROORRROOROROOROOOORORRROOOORRRRROOROROOOOOOORRROOROROOROROOORROROROORRORRROORORROOROORROROORORRORROOOOOROROOOOOOOOROROOROROROORORORROOROOOOOOOROOOOOROOOOOOROOROOROROOROOOROROOOOOOOROOORRRORRROOOROOROOOOOROOORRORRROROOROOOOOOORRRRORROOROOOOOROOROOOOORROORRORROOROOROOOOROOROOOROOOOOOROOROOOOOOOOOROOOOOROOROOOOROOOOROORROOROOOOOOOROOOOOOOOROOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOORROOROROROOOOOROOOOOOORORROOOROOROROORROROOOROOOOOOOOOROOOOOOORORRROOROOOROOOOROOOOOOOOORROOOOOOOOOROROOROOOOOOOOOOORRRROOOOOOOROOROOOOROOOOOROOOOOOOORROROOOOORROOORORROOOORROROOROOROOROOOOOROROOOROOROOOOROOOROROOOOROROOOOROOOROOORROOOORORROROOOOORORORROOROORRORRROROOROROORROOOOROORRRRRORRROROOROROOOROOROROROORRRROROORROOORROORRORRROOORRRORRRRROORRRROOOORROOOOOROOOOOOOORORRRRRRRRORRRRRRROROOROOOOORRORROOOORRRROORORORRORRRORRROOORRRORRORRORORRRRROOORRRORRORRORORROOORORRROOROROROOORORRRRRRRORORRROOROOORRRRRRORRROORRROORRROORRRROOROORRROOORROORORRORORRRRRRRRORROORRRORRRORRRRRORRRROORROORROOOROROROORRRROOORORRRORORROROROOORROORROOORRRRRROOOROOORROROORORRRRRORRRORORROORRORRRRROORORORRROOOROOORROORRROORORORRRROROROOORRROROOORRRROOOOROOORRRROOORROOOOORROROORRRRRRORRORROORRROOORRRRROORRRRRROOROROOROOORRROOOORORORRORROOORRROOOROORROORORRRRORRORRROORRROORRRRRORRROOORRRORROOOROROOORORORRRROORRROOORRRRORORORRRROORRORRRROOOOOROORRORRORRORROOROROOROOOOORORROOOOROOROORROOOOOOORROOROROOOOOROOOOOOOORROROOORRRROROOOOROROOROOOROROOOROOOOROOROROROOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOROOOOORORROOOOOOOOROROROOOROROOOOOOOROOOOOOOOOOOOROOOOOOROOROOOOOOOOROOOOOOROROOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROROROROOROOOOROROOOOOOOOOROOROOOOOOOOOOROOORORROOOROOOOROROROOORORROOOOOOOOROOOOROROOOOORROOOROOOOOOOOOOROORROOROOOOOOROOOOORROOOOOOROOROORORRROOOROOROORROROOOROOROROOOROORROOROOOOROOROORROOORROORRORROOOOOROOOOROROORORRROOOOOORORRROROOROROOOROROOROORROROORRORROOORRRROORORRRRROOOOOORORORRRRRRORRRORORROORORROORRRRRRROROOOROOORORROOORRRRROOOOOROORROOROOROROORROROOOOOORRRRORROROROORRRROORRORRRRRORORROOROORORROOOORORROOORRRORRRROOOORRRRRRRRORRORRROOORRORORORROORRRROOORRRRORRRRRORRRRRORRRROORRROORORRRORRRRRRORORORRRRRORRORORRRRROORRROORRROROORORRRORRRORORRRRORRROORROROOOROOROROROROOROOORRORRRRRRRRROORRRRRRRROROOORROROOORROOROORRRRROORRRORRRRRRROORRRRROORRORORRRRRROROOORRRRROOORORRRRROORORRROOOROROOOOORORORRORORROROROOORROOROORORRRRRRRROORRRRRROROOROORRRRRROOOOROOOROROOOORRORROOOORORORROORRORRRORRRROORRORRROOOOOORRROORORORROROOROORROROROROOOORRRROORRRORROOOOOORROOOORROOOOOOOOOROROOROOOROROORRRROOROOROROOOROOOOOROROOROOROORRROOOROORORORORRROOROOROOOOROROORROORRROORROORROOOOOOROOOOOOROROOOOOOOOOROROOROROROOROOOOOROOOOROOROOOROOOOROOROOROROROOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROORROOOOOOOROOOROOOOORRORROOORRORROOOOOOOOOOOROOOOOOORRRROROOROOROROORRROOOROOOOOOROOROROOROOOOORRROROROROOOOOOOOOROOOOORORORRORRRRRORROROOOOOORROOOORROOOOOOORORRROORROROOOORRROOOROROROORROROOOORROOROOOOOOOOOROOROOORROROORRRROOOROOORRRORORRRRROOORRRROROROORRORRRRROOROROROOROOROOOROROROORRRORRRRROOORROOOROOOROROOOORRROORROOORRROOROORORORORRRRROORRROOORROROORROORRRORRRRROROORRRROORORRRRRRORORRROROOOORRRORRRRORROORRROROROOOROOOORORRRORORRROORRROOORRRRRRROROOORORRROOORRRORRRORRROORORRORRROOOORRORROROORORRRRRRRRRRRRRRRORRROOOOORORORRRORORROORRRRRROORORROOROORRRORRROORRORRRRRRRRRROOROOOOOOORORROOROOROROORRRORRORROORORORRORORROROOORORRROROROORRRORRRROOROORORROOORORRROOORORRORRRROORROOROORRRROORRRRRORROOOOOORROORRRORROORRRRORROOROOORORRRRROOOOOROORRORRORRROOOOOOOROORROOOOORROORRROOOOROOOOOOOOROOROOOOOOROOOOOROOORRORORORRROROOROOROROOOROOROROROOOORRROROROOOOROOOOOROOORORROOOROROOOOORROORROOROOOOROOROROROOROOOOROOROROROOOOOROOORROORROOOROROOROOOOROOORRROOOROOOOOOOOORORROOOOOOROOOOROROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOROOOOOOOOROOOOROROOROOOOOOOOROOOOROROOOOOOOOOOOOROOOOROOOOOROOORORROOOOOORRROOOOOORROOOOOOORROOOROOOOOOOOOROOOROOOOOOOOOOOOOOOROORROOOOROOOOOOOOOOOOOOROROOOOORRROOOROOOROORRROOORORORROOOOOOROOOOOOORORORROOOOROOOOOOOORRRRROOORROROOOOOORORROROROROOORRORRORRRRRROOOROOOROORORRRORRORROOORORROROOOORRRORROROROROOORRROROROOOORROOOORRORROOROOROORRORRRRRORRRRRRRRRRRRORORORRRRORROORORORROOOORRRRRORORORORRORRROOOORORORRORRORROORRORORRROROOORRRRORORORRRRORROROOORRROOOROROROROORORRORRRRORORRRRRRRRRORRRORRRROORRRRORROROOORROROOOOOOORORROOOORROOORRRORRORORRRRORRORRRRRRRRRORRORRRORRRROROOORORRRRORORORORRRRRROROROORROORORROOORORROOOOOOORROORRORRRORRROROOROROOROOOROOROOORRRRRRORRRRRRRROORRRRRRROORORORORRROORORRROOROORRRROROOOROOOOOORRRORROROROOOOROORRRRORRRROOOORRRRRRORRRRRROOROOROROORRORRRROROOOORROOOOOOOORRROROROOORRORORORRROROOOOOOORROOOROROOROOROOOOORRORROOROROROOOOORROOOOOROROOOOOORORROOOOROOOOOOOROROOOOOROROOROORROOOROOOROOOROROROOROORORRROOOOROOOOOOOROOROOROORROOORORROOROOOOROORROROORRROOOOOOOOOOOOOOROOOOROOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOROOROOOORROOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOROOOOOROORROOOOOOOORROOOOOOOOOOOOOOOOOOOOOROORROORROOOOOOROOORROOOOOOOOROOORORRORROOORROROOOOOROOOOOOOOROOROOOOOOOOROOOOOROOOOROOOOOOOROOOOOOROROOROOOOOOROROOOORROOROROOOROOOOOROOOOROROORROOOOROOROROROOOOROOOROROOORROOOORRRRRROOORORORROOORRRRRRORORORRORORROOORORROORRROOOROOOOORRRROROORROROOORORORORRROORRROORROOOROORORROOROOROOOOROROOROORRORRRROOORRROORORORORRRROOORROROORORORRRORROOOOORROOROORROROROOORORORRROROORRROORORORROOOROOOOORRRORRORROOORRRORRRRORRRORRORRORRORRRROOORROOOOROORRRORRRRORROOOORRORRROOOORRRORRRORORRRRRORRROOORRORROOOORROOORRORROORRRORRRRRROORRORROORRORRORRROOROROORRRRRRRROOROORRRRRORRRRROROOOOROOORRRROOORRRRROORRRROOORRRRRRORRROOORRROORRRRRORRRRRORORRROOORRRROORRRORRRRRRROORRRORORORRRRRRRRRRROORORRRRRRORRORRRRROORROROROROROOROROORROORROORRRROOORRRRORRRRRORROOORRORROOROORROORRRRROROOROOOOOOOOORORROROORRORRORROROORRRORROOOOOROOROROROORORORROORROROROOOROORORROOROROOROORRROOORROORROROOOOOROOOROROOROOROORORROROOORRRRRROROORORROOOOOOORRROROORRROOOOOOOOOOROORROOOOOOOOOOOORRROOOOORORROORROOOORRROOROROOROOOROOOOOOOORRORROOOROOROOOOOROROOROOROROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOROOROOOOOORROOOOROOOOOORORROOROOOOOOOOOOOOOOOOOORROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOROOOOOOOOOOROOROOOOROOOOROORROOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOROOOOROROORROOROOOOOOOOOROROOOOOOOOOROOOOROOOOOOROROOOROOROOORROROOROOOROOOOOROORRRORROOORRROOOOROOORROOOOORROOROORORORORROOOOORRROROOOROROOOOOROOOOOORORROROORRRROORRROOOROROOOOORRORORRORRORROROORRORRRROORORORRRRORRRORROROROOOROORROOORORROOOOOROOROOORRRORRRRRROROROROROOOORRORRRRORORORROOOOORROORRORORRRORRRRORRORRRRORROORRROOROOROORROORORRROOORRRRRRORRRRRRROOOORRORRRRORROOROORRRRRRORRRRRROOORRRORROORRRRORROORRORROORRRRRORRRRRRORRRORRRRRRRROOOROOROOOOORRRRRORORRRRRORORRRRRRRRRROORRORORRRRRRORORRORORORRRRRRRORRROOORRRORRRROOROOOOOOOOROORRORRRRRRRRRROROORORRRRORROOROOOORROORROORORRRORRRROOOOOORORROOOROOOROOORRORRRROOOROORORROOOROROOROORRRORRROROORRRRRROOORRRORRROROROROOROORRORORROROOOOORRORRROOOROORRROROROROOOORRRORROORRORROORROOORORROOROOOROROORROOROORORRROOOORRORROROORRRROROOOOROOROOROOROROOOOORROORORORRRRROOORORRROORROOOOOOOOROOOOROOOROROOOROORROOORROOORRRROOOROOOROOOOOOROORORORROOOOOROOOOOOROORRRORROROROORROOORROOOROOOOOOOROOOROOOOOOOOOOOROOOOOORROOORROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORRROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROROROOOOOOOOOOORROOOOOROROOROOROOOOOOOOOORROOOOOOOOROOOOOOOOORORRROOOORROOOROOORRORROOROORORRORROOOORORORROOOROOROROOROOROOROOOOOOOOOOOOORROOOOOOOOOOOROOOOROROOOROOOORORROOOOROOOROOORRRORORROROOOROOOOOORORORRROOOROORORROOOOOORRRORROOORRRORRRRRRORORRRROOOOORRORRROROOOOROROORRORORORROORORRRRRRRROOORORRORRRROORRORRRRORORRROOROORORRRRORRRORORORRROOOROROORORORROORRORRRRRORRROOOROROROOOORROOROORORRROROORRROOORORRRRRRRRRORORRORORRRRRRRRORRRORORRRRRRRROOORORORORRORRROROROORRRRRRROORRRROROOOROORRRORRRRRRRORRRROOORRRRRRROOOOORRRROROOORRROOOOORROOORROOROORORRORRRRRRORRRRORRROORRROROORORROOORORORRROOORORRRORORRRORRRRRRRRRRRORROORORRRRORRORORRRROORROROROOOOROORRROOORRRRROOOROOORRRROORRORRROOOORRRORROOROOROROORRRRORROROOOOOROOORRRRRRRORORORORRORRROOOORORORROORORORRORROROROOOOROROOORROROOOOROORORORRROOROOROROOROOOOOOOOROROOROOOOROORROROOOOOORORORORRRRRROROORRRRROOROOORROOOORRRROROOROOOROOOROOOROROORROROOROOROOOORROOOROOOOOOOOOOOROOROOOOOOOOROOOOOOOROOOOOORORROOOOROOOROOOOOOOOOOROOOOOOROROOOROOOROOROOOOOOOOOROOOOROOOOROOOOROORROOROOOROOOOOOOOOOOOOROROOOOOOOOOOOOOROOORROOOOOOOOROORRROOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOORROOOOROOOOOROOOORROOOROOOOROOROOOROOOOOOROOOOOROOROOROOOOOOROROROOOOOOORORROOROOROOROOOOOOOOOOOOORROOOOORORRROOROOOROROROOOROOOOROOOOOOROOROOOOROROORROOOOORROORORROOOOOOOOORROORORROOROOOOORRROORRROOOORROOOOROOOOOOOOOOOOROOOORRRRRRORROOORRROORORRRROOOOROORORRORROOORROORORORORRRROOOORROOROOORRROROOORRRRORROORROROOORRRRRRROOORORRRRROORRORORRROOORRRROORORORROOROROOOOOOOOROROOOOORORRRRRROOORRORRRROROOOOROORORRRRRROOROOROROOOOOORROROORRROROORORROROORORORRRRRRORROORRRRORRRRRRRORRRRRRORRRORRRRRORRRRRORRROOORORRRRRRRORROOOOOROORRRROROORRORROORRRRORORORROROOROOORRRORRRRRRRORRRORROOOROOOORROROORRROOOOOORORRORORRRRRRORRROOROROOROOOOROORRRRRRRRRRORRRRORRROOOROORROORRRROROOORRRRROOOROOORROORRROOORRORRRRROORROOOOORRRROOORORORRRORRROOROORRORROOORORROORRORORRROOOORRRRRRRORROOORORORROOORRROORORRRORROOROOOROOOOORROOOORROOOORROROROOOOOOROROORRORROOOOOROOROORROOORROOOOORORROOOORRORROOOROROOOORRROOROOOOOOOOROOORROOOORROOOOOROOOOORRRRROOOROOOOOOOROOOORROORROOORRRRRRRROROOROROOOOROROOOROOOOOOOOOROORRROOROOOORROOOOOOOOOOOOOORROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOORROOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOORROROOOROOOROOOOOOOOOOORROROOOROOOROOOOROOROOOOORRROOOOOOOOOOROROOORRRRROROOOROOOOOROOROOROOROOOROOOOOORROOOOOOOOROOOOOOORROOROOOOOROOROROOROOOOOROOOROORRRORORORROOORROOOROROROORROROORORORORORROOROROOORROROOOOOOOOROOOOOORROROORROROOOOOOOOOROOORROOOORROROROOORROOROOORROORRRRRORORROOOOROOOOORROROROROOOOOOROROROOORROORROORORRRRRRROOOOROROROROROROOORRRROROOORRORRORRORRORRRROOOOOROOORRROOORORORRRRRRROOOORRORORRORRRRRRRRRRRORRORRRORRRRRORROORRRROOOOROOORRRORORRRORRROOORRORRROOORRRRROROORORORRROROROOORRRRRORRRORRORORRRROOOORORRRRRRRRRRORRRROOOOORRROOOROOORORROROROORROOORRRORRRORORRRRORRRRRROOORORROOOORROOROROOORROOORRRRORRRRORORRRROORRRRORORRRROOORRRRRROORRROOORRRRRORROROOORORORORRRRROORRORRRROROOOORROROORRRROROROORORRRROOROORROROOORRRRROORRRRRRROOOROORRRROROORRORORORRRRROOORROORROORROROROOOROOOOOORRROORRRROOROOOOOOOOOOOOORRORRORROORRORROROROOOOOOROROORORORORRORROROROOOROROROORROROOOORROOOROORROROROROROOOOOOOOOOOOOOOOOOOOOORRROOOOORRROOROOOROROOORORROOOOROOOOOOROOOOOOORRRROOOROOOROOOOOOOOROROOROOOOROOOORRORROOROOROROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOROOOROOOOOOOOOROOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOROOROOOOOOOOOOOOOOOROOROROOOOOOOOOOOROOOROOOOORROORRROOOOROROOOOROORROOOOORRORRRRORROOOROOOOORORROOOOOOROOROOOOROOROOOOORORRRROROOOOOROOOOROROOOORROOOOROOOOOOOOORROROOROOOROOOOOROOROOOOORRRRROROOOOROROORRRROROROOOOROROOOOOROOORROOROROOOOROOOOROROROROROORRRROROOORORRRRROOROOOOROOROORORORRROROROOOOOOROORRRRROOOROOOOORORRORRROOOOOOOOROROOROORRORORRORRRRORROROROROROOORRRRRRRROOOORRRRRROROOORRROROOORRORRRROORRRRROORORRRRRROOROORRRRRROROROOORRRRROORRROOOORRRRRORORORRRRORORRRRRORROROORRROORROROORRRRRRORRRROOROORROOORORRRRROROORORORRRRORROOROORRORORROOOORRORROORORRRROROORRROORRROOROORRORRRRROOORROOORORORRRRRRRORRRORRROORRRRORRORORORORRRORRRRRRROROORRRRORRRRRRRRRRRRRORORRORRRRORRRORORRROORRRROOORRRRORROOOOOOOROOROROOOOOROROOROORORORROROOOOOOORROOROORORRORRROORROORRRROROOOOORRORRRRROOOORRRROOOOOOOOOOOROOOOORRROORROROORROROOOORROROORROROORROOORORROOROOROROROOOOOROOOOOOROOOROOROOROOORRORRRROOOOOOOROORORROORROOROOOOOOOOOROOOOOOOROROOROOOOOROOOOORORRORROOOOOOOOOOROROROOOROOOROOROOOOOOOOROROOOOOOOROOOOOOOOOROOOROOOOOOOOROOOROOROOROOORROOROOOOROOOOOOROOROOOOROOROOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOROOOOROOOOOOOOORROROOOOOOORORORRORROROOROOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOORRRROOOOOOOROOOOOROOROOOOOOOOOORRORORRROROOORROROOOORORRROOOORROORROOROOROOROOORROOOOOOOOOOOOOOOOOOROROOORROOROOROROOOROROOOORRROOOOOORORRROOROOOOOROOROOROROOOOROOROROOORORRROROOOROOORRRROROROOROOROOOOROROORRRROOOORROOOOORRRRRROOORORROORRROROORRORRRRROROROORRORORRORRRRROOORORRRRRORRROROOOORRORORRORORRRRRRRRORORORROORRRRROOORRRRORRRRRROROOOOROORROORRROOOOORROORROORRRORRORRRROOORRORRORRRORRORRORRROOROOOORROROROOORRRRRORRRORRRRRORORRORROROOROORORRRRROOOORRORRRRRROORROORROORRORROORRORRRRORORORRRROOORORROORRRORRROROORRORORRORRRROOROROOORRRRORRORORRRRROROOOORORORRRRRRORRORORORRROROORRORORROORRRRORRRROROORROOOOORORRRRRRRORORROOORRRROORRRRROOOORRRORRROROORROROROOORROOROOROORRORORORROOOROROOORRROOORROROROOROORORRORROORRROORRROROROORRRROROOOROORRROOROOROROOROOOOOROOROOORORRRORORRORROROOOOROROROOOOROORRRROOOROOOROORRRROOORROOOOOORROOROROOROOOOOOOOOOOROOROOOROOORRORRROOROOOOROOOOOROROROROOROOROOOOOROOOOROOOROOOOOROOOOOOORROOOOOOOROOOOROROOORROROOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOORORROOOOROROOOOOOOOOOOOOROROOOOROORROOOOROOOOOOOOOOORROROOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOROOOOOOOOOOROOROOROOOOROROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOORRROOOOOORORROROROOOOROOOOROROOOOOROOOROROOROOOOORORRROOOOOROROROOOOOOOOROOOROOOORRROORROOOROORRROOOOOROROORORRORROOROORORRRROOROORORROORROORORRROOOOOORRORROOOOOOORORORRRORROOOORRRROROROOOOOORRORROORORRROOORRRROORORRRORORRROOORROORROOOORRRORORRORORRRRORROROOOORRORORORRORORRROORORRROORRRRROOOOROOORORRRRRRRRRRRRRRROOOROOOOOORRRRRRRRRROOORRRRRRORRORRORRROOORRRROOORRRRRRRRORRORRRRORRRORROORORROORORRRROORRORRRRROROORRROORORORORRRORORRRROOOOOROORORROORRORRRRRRRRRORRRRROOORRORRRRRRROOOOORRRORRORRRRRRORRRRORRRORORORRORROOORRRRRRROOROORORRROORRRRORORRORRORRORRROOOORROORRORRRRORRRRRROROROORRRROOORORRRRRRORRRRROOORROOOOOOOOROOOROROOOOOORORORROORRORORRORROROOORRRRRROORRROOOORROOORROROOOROOOOOROOROOORRROROOROROOOORRRORORRORROROROORRRORRORRORROORORORRROOOOOOROOROOOOOROORORRRRRORROOOORROOOROROOORRROOROROORORROOOOROOROOROORRRORORORRROORORROROROOOROROOOROOOORROOOROOOOOORRROOORROOOOORROOOROOOOROOROOOOOOORORROOOOOROOOROOOROOOOROOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOROOOOOOOOOOOOOOOOOOOORORROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOORORROROOOOOORORROOOOOOROOOROOOOOOOOORORORROOOOOOOORORRORROOOROOOOOROOOROORRROOOOOOROOOOOROOORRROOORROOOOOOOOORORORROOOOOOROORORRRRROORRRROOOOOOOOOORORROROOOROOROOOORROROOOOOOORROOOOOOROROOOOORROOOROOOOOROOORROOOORROOROOOROROOORORORROORROROROROOOOOROOOORROOOOOROOOROOORORROORRROROOOORROROROROORRROOOOOORROROORORORORRORRRROOORROOROOOOOORRRRRROOOOORRRRRRRRRRRRRRROROORRRORRORRRORRRROOOOORRRRROORRRORRROORORRROORRRRORRORRRORRRRRORRRRRROORRORRRRRORRORORRORRROORRROORRRRRORORORRROOROORRRROORRORROROOOOROROOORRRRRROORRRRRRRORORORRRORRORRROORROROORORORRRORROROORROOOROROORRRROORRORROORRORRRRROROORRRORRORRRRRROOOOORRRROOOROOROROORRRRRRRRORRRRRRROORROROOOORORRORROOORORROOORORRRROROORROOORROORROOOORORRRORRROORROORRRORORRRRROORRORROOROROOORORRORRORROOOROOOOORRRRRROOORORROOOROOORROOROROOOOORROOOROROROOOROOROOROORRORORROOOROROOOOOROROOOOOOORORROOOOORROOORORROROOOOOOOOOOOOORRROOOOOOOOOOOORRROOOOOOOOROOOOROROOOOOOORROOROORROROROROOROOOOOROROOOOROOOROOOOOOOOOOOOROROOROOOOOOOOOOROOOROOROOOROOOOOOROOOOOOOOORROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOROOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOROOOORRORROOOROOORROOOOROROOROORROOORRORROORORORROORRROROROOOOOOOOOOORROOOOOOOORRROROOROOOROOOROOOOOOOORORROOOOORRROROORROOROOOROORROOOROOOOOOOOROORRRRRROOROOORROOORROROOROOOOORROROOORORRROOROOOROORRORRROORRRRRRRRRROROOORROROROORROOORROROOOOROOROOOROROOROOROOORRRORORORRRRROROOORROORRRORRORROROOORRORROOOOOROOOORRRORRROORROOOROOORRRRROOOROOORORRORRORRRRROOORORORRRRRRRROROROOORRRRROROORORORRROROROORORROORRROOORRRORROOOOROROROORORORORORRRROORRRRRRRORORRRROROOORRORRORRRRORORRRRRRRROROORRRRROOOOORRRRORRORRRRRRROORRRRORRRRROROORRRRRRROORRROROOORORORRROORRORRRORRORORRRORROROOROORRRROORROOOORRRORORRRRORORROOROORORROROORORRRRRRROROOOROROROOOOROOOORRRROOOORORRORRRRRROOOROORROOOROOOROROOROROROOOROROOOOOOROROOROOOOROORRORORORRRRRORROROOORROORRROOROOOORROOOORORORORROORORORROORRRROOOOOOORROROOROORROOROOOROROOROOOROROROOROOOORROOOROOROOOOROROOOOORROOROROOOOOOROOORROOROOOOOOOOROOOOOOOOOOOORORROOORROOROROOOOOOOOOROOOORROOOROOOOOOOOORORROOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOORORRROROOOOOOROOOORROOOROOOOOROOOOOROOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOROOOOROOOOOOOOROOOOROOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOORROORRROOOROOOOOORROOOROROROROOOOROORRROOROOORROROOOORROOORROOOOOOOOOOROOOOROOORROROOROOOOOOOORRROROOROOROOOORROOROROROROOORORROOOOOOOROOOOOROOOORRROOORORROROOOOOROOOROOROOOROOROROROOOOORRROOROROOORRRROOROROROROROOOOORORRRROORRRROOOOOOOOOOOOOOOOORROOOOROOORRRORORORRRROROOORRROOOORRRRRRRORRRRRORROROORROROROROORRRORROOROORRRRROOORORORRRRRORRRRRORORRORRRORRRRROROORRRRRORRORORRRRRROORRROROOORRRRROOORRRORRRORROOORORORRROOORRRRRRRRROOOROROROOORROORRORRORRORORRRROOROOROORORRROOOOOOOORRRORRRRRRROOOOOORORROROORRRRRRRRORRORROORRRORROORRORORORRRRROROOOORRRRRROORRORORRORORRRROROOOOROOORORRROOOOOOOOOOROROORRRRRRROORROROORROORRORROOOORRRROOOOOROORROROOORRORORORROROORRRRRRORROOOOOROROOOORORORRORORRRORRORRRORROORRRRRRORORRRRORRROOOROOOROOOORRROOOOOOOOOROROORRRROORRRRROOORRROOORORRROROORORRORROROOOOOOOOROROROOROOORROOOOOOROROROROROROOOROOORROOOORORROOOOOOOROROOOROOROOOOOOOOOOROORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROROROOROOROOROOOOOORROORROOOOOOROOOOOOOOOOOOOROOOOROROOROOOOOROROOOROOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOOORRROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOORROROOOOOOROOOROOOOOOOOOROOOROOOOOOORROOOORORRRROOOOOOOOOOORRROROOOOORRORORROROROOORRORROOOROORROOOORRORORORROOOORRROROOOOOROOOROROOROOOOROROOROOROOOROROOOORROORORORORRORROORROOROOROORROOOOORRORORROROROOORORORRRORROOOORORRORORROOOOOOROORRRORORRRROOORRORORROOOOROOORROROROOORRORROOROOOOOOORRRORRORRRORROORORROROOOORRRRORORROOROOORORRROORRRROOORORRRRRRRORRROOROOOORRORRRROOORORRROROORORRRRRROOROOOOORORORRRRROOROORRRROORORRRRRRRRRRORRRROOORORRORORRRORRRORRROORORRRORRRRRRRRROOROROOROORRRRRRRORRROORROOROROOORORRRROROROORORRRRRRROORRRRORORRRORRRRRORRORROOOROROROROORRRRRROOOOORROORRRRROROOROROORORRORORRRRRRROORORRRORRROORROOROOORRROROROOOROOROROORRRROROOOOROOOOOOROORRRORROORROOOORRORRRORROOOORRRRRRROOOOOORROOORRRRROROOOOOORROROROOORRRRORROORORORRROORROOROOROORRRROOOROOOORRORRRROOORORROOOROOROROROOROOOOROOOOOOOOOOOOOOORRRRRORORROOORROOOROOOOROOOOOOOROOORROOOOOORRROROOOOOOOORORRRORRROROOOOOOOOOOOOORRROOOOORRROOROOOOOOORROOOOOOOORRROOOOOOOOOOORROROROOOOROOOOOOROOOOROOROOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOROOOOOOROOOROROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROROROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOROOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOROROOROOOROOOOOOOOOOOOOROORORROOOOOROOOOOOOOROOOOOROOOOOOROOROOOROOROOOOOOOOOOORRRRROROOROROROOOOOOORROOOOOOOOOOOOOOOROOROOOOROOORROOROOROOORROROOOROOROOORROROOOROORROOORRRROROOORRORROOOOOOOOROROOOOOROOOOOOOROORORORRROROROOOOOOORROOROOOOOOORRROROOROROOOOOORORORROOORRROROROROOOOOROOROORRRROOROROOORORORORORRRRROROOOORROROROOROROORROORORRRRORRORRRORRRORORORORRORRRORRRRRROOORROORRRORRRRRORROOORROOOORRRORORRORRRRRRROORRORROOORROOROORRORORRROROOOOORRRRRORRRRRRORROOORROORORORRRRROOORRRRRORORRRRORRRRORROORRROOOROROOORRORROOOROOORROOORRROROOORRRRRRRROORORRRRRORRRRRRORROROORROORROROOORROORRRROORRRRRROOORRRROOROORROOORRRRORROOROOORORRRORORRRRRORORRROROOORORRORROOOORRRRORRORORRRRRRORRRRROOOOOOOORRORROORRRROOORRROROROOOROORRROOOOROROROROOOROOORRRRORRROOOORORORROORORRROROOORRROOROORRRRROOOOOOROOOOROORROROORRROROOORROOOROOOORORRRROOOOORRROROORORROOROOOOOROOOOROOOROOOOROROOROOORROOOOOOOOOOOOROROROOOOOOORRROOOOOROOOOOROROORROORORROORROOOOOOOROOOOOROOROOOOOOOOOROOROOOOROOOOOOOOOOOROOOORRRRRRROOOOOOROOORROOOOOOOOORROROOOOOOOOORROOOOOOOOOROOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOROOOOOOOOOOROROOOOROOOORROROOOOOOOOORRROOOOOOOOROOOOROOROOOROROOROOROOOOROOOOOOOOOOOOOORORROOOOOOOOOOOROOOORROOOOOOOOROOOOROORROOOOROORROOOOORRRROOOROOOOOOROOROROOOOORROOOOORROOOOROOOOOROOOOOROROORROOOOOOOOROOOORROROORROROOORORROOOOOORRRRRORRROORRORORRRORORRRRROOOROROOOROORRROOOOROROORROORORRRRORRROOOORROOOOOOOOORRRRROOOOOROOORORROROORRROOORROOOOROROORORRRORRROORRRRROORORORORROOOOOORORORORRROORROORORRRRORROORROORRORORROORORORROORRRRRORRORORROOROROOROROOOOROOORORROORRORROOROOROOORORRRRRROORROOOOOORRRORRRROROORRROOROOROORRROORRRROORRORRRRRRROORRORRRRRORRRRORRRORRRORRROOORROROROORRROOORORRRRRRRRRRORORROOORRRRRRORRRRRROOROOORROORRRORRRROORRROROORROOOOROOORORORORORORRORROOORORORRRORROOROOOOROROORROOROOOOOORROOOORRRORRORROOOORORORROORROROOROROORRROOOOOOOORORROOOROOORORROOOORRROOOOOORRROORROOOORORRRORROOOOOOOOOROROORROORRROROROOORROOROORORROOOORROOOOOROORROOROOOOOOOROROROROOOOOOOOOROROORRRORORORORROOOOOOROOOOOORORORRORORROOOORROROOOOOOOOOOOOORROROOOOROOOOROOOOOOOROOOOROOROOOOOOOROOOOOROOOOOROOOOOOORROROOOORRROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROROOOOROOOOOOOOROROROOOOROOOOROOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOORROOROOOOOOOOOOOOOOOROOOOOOROOOOOROOROOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOORRROOOROOOROOOOROOOOOOOOOOROOOOOROOOROROOROOOOOROOROOOORROOOOROOOOOOROOOOOOOOOOOROOOOROOOOOOOOROOOROOOROOOOROROOOOROOORRROROOROOROOROOORORRRROORROOOOOROOROOOROOOOORROOOOORROOROOOOROOOOROROOROROROOROOOOORRORORRRRRRROROOORRROOOROOROOOOOOROOORRRRRRORRORORRRRORRORORRORROROOROOOORORRRROOOOORROROORORORROOOORRORRROOOORRORRORORRORRORROOROORRROOOORROOOROORRORORORROROOROROROOOORROOORRORRRORRRRRRRRROOOROORROOOOOOOROOORRORROOORORRORROORRROROORRORRORRROORORRORRRORRORRRRRROORRRORRRRROROORROORORRRRRRRRRRRRORORORRRRRRRRORRROOOOORRRRRROOORROORORORORRRROROOROROOORRRRORRRROROORROROROORORORRRORRORRRRROROORRRORRROOORRRORORORRORRRRROORROORRRROROORROOORRROOROOROOORORORRORRRRROOROOROORORRORRROOORRRRORRRORROOROOORRRORORRORROORORRRORRRRRRORRORROOOROROORORROROOOROROORORRROOOOORRROOOORORRRORRRRROOOOORORROOOOOROOORRROOROORRRRRORROOOOOOORROOOOOOOOOOROOROOORRRRRRROOORRRROROOOOOOOROOROOOOOOOOROOOOOOOOROROOOROOROROORROOOOOOORROOORROROOROOOOROOORROROROROOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOORRROROOOOOROOOOROOOOROORROROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOORORROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOROOOROOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOROOOROOOOOOORROOORROROOOOROOOROOOOOOOROOOOOOOOROOROOOROORROOOOOOOROOOOOOROOROOOROOOROOOOOOOOOOOOOOROOROROROOOOOOOROOOOOOOOORROOORROOORRRROOOOROOOROROOOOOROROOOORRORROOOROORROOOROOORORROOROOOROROROROROOOOOOORORRORRORRORORRORRRROOOOROOORRROORORORRORORORORRROOOROORRROROROROOORRORRRROORRRROORORRROOOORROROOROOORORRORORROOORORROOOOORROOOROOROORRRORORROOOOORROORORRORORROOORROOOOOROOROORROROOORRORROROORRRRROOOORORRRRRORROORRRRRORORORRRRRORRORRRRRRROORRORORRRORRRRRRRRORRRORRRORORRRRORRRROORRORRRROROOOOORRRORORORRROORRROOORRRORORROOOOROOORORRRRRRRORRRROOROROROORROOOROROROORRRROROOOOORRROOROORRRROOORORROORRRRRRRRRRORORRORORRRRROROORRRROORRRORRORORORROOROROORRRRRORRORRRRRRROOORROOOROOROORRRROROROORORROROORORRROOOOORRRRORRRORRRROOROOOOROROROOOOROOORORRRRRRORRRRORRRROORROROOOORORORROROOORROOROROORROORROORORORROOOOOROOOROOOOOOOOOORORROROOOOROROOOROOOOOROOOORROROOOOOORROOORRROROOOOORROROORORORROOOOOOOOROOOOOOOOOOOOOOOOOROOOORROOOROOROOOOOORORRRROOOOOOORROORORROOOOOROOOROOOORORROROOOROOOOOOOOOOOOOOOOOROOOORROOROOOOORORROOOOROOOOOOOOROOOOOOOROOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOORROOOOOOOOROROOOOROOOOOOOOROOOOOOOOOOOOOOOROORROROOROOOOROOOOOOROROORRROOOOOOOOOOOOOOROOOOOROROORROROOROOOORRROOROOOROOOOOOOOROORROOOOOOOROOROROOOOOORROOORORORROOORORORROOOOOOOORROROOORROROOOOORRORRORROOOOOROOROOOOOOORRROOROOORROOOOORRROROROORRRORRROORROORROROROOOOOOOOOOOROOOOOOORROOROORRRRRROOORORRRROROOOORROOOORORRORRORRORRRORRORRORORRROOORRRORRRRRROORRORRROOOOORORRRROORRRRRRROOOORORRRROORROOROROOROOROORRROROOOROOOORRORORRRRROORORRRROROORRRRORRORROOORROOROORRRRROORRRRORORROOORROORRROOROORORRROOORROROOROORRORROORORRRRRORRORRORRRRRRORORRRRRORORORORORRORORROORRRORORRROROORORROORRRRRROOOROROORRRRRRRROROOORROROOOROROOORRRORRORORRORROROOORRRRROROORRORORORROROROROORROOORRORRRRRRORRORROROOORROOORRORROROROORROOORORORRRORRRRORRRRRROOORRORRORRROOOROROOROOOROORRROOOORRRROROORRORORORRROOOROORRORRORROROOROROOOROROOROOROORRRRROROOOORORORRROROORRROOOOROROOROOORRRORORORRRROOOOOOROORORORROOOOROORRORROOOORRROORROOOROROROOOROOROOOROOOOOOOOOOOOROROORRORORRROOOOROOROROROOOROORROOOOOROOOOROORROROOOOOOOOOOOROOOROROOOOOOOOOOOOOROOOROOOROOOOROOOOOROOROOOROOROOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORRROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOORROOOOOOROOOROROOOOOOROOOOOOOOOOROOOOOOOROOROOOOROOOOOOROOOOOOOROROOOOOOORORROOOROOOROOROROOOOOOOROOOOOOOORROOOOOROOOROOROROOOOOOOOOOOOOROOOOROROROOOOOOOROOOOROOOOORORRRROOROROOROROOOOORORROROROOROOROORORROORORROOROOOOOOOOOOORROOOOOOOOOORORORORROOOORRRROOOOROOOORROOROROOORORRROROROOROOORORRRROOROOOOOORORRRORROOOOORROORROORRROOOORORORORRRORRRRORROOOROOOROOROOORRORRORRROORROORROOOOORRRRRRRORRORRROOOOORROROROORRROOORRROROOOROROOORROOORROOOROROOROOOOOOORORROORRRORRRORORRRRORORROORROOORORROROOROORRRROROORRRRRRORRROROOOORRRROROROROOORROOORORORORRRRORRROORRRRROORRRORRRRRRRRRROOROORRRROORRROORRRROROROOROROOOOROOOOOOOORORRORRRROORRRRRRRRRORORORRORROOOOOOORORROORROOORRRORORRRORRRORRRRORROORRRRORRRRRRRRROOROOROORORROORRRORRRRRRROROOORORORRORRRRRROROOOOROOOORRORRORRRORORRRRRROORORRRROOOROORRRROOORRORROROROROOOROORRRROROORRORORORROORRRRRRRROROOOOOOOOOOROOOOORORRRRORROOROROOORRORROOOOOROORORROOOROOORROOOROROROOORROROOOOROROOORROROOOROROOORROROROOOOOOOOORORROOOROROORROOROORROROOOOROOOROROROOOROOOOOOOROOOOOOOORRROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROROOOOOOOOOROOOOOOOOOOOROOOOROROOOOOOROROOOOOROOOOROOOOOROOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORRRROOOOOOOOOOOROOOORORORROOOOOOOOOOROOOOROOROOOOROROOOROOROOORRORROOOOROOROROOORORROORRROOOROOOOROOOROROOOROROOORROOROOOOOOOOOROOORROROORORRORROROOOROOOROOOOOROOOOROOOORORRORROOORORRORORRORRROOOOOORRRRROOOOORORROORRORRRRORROOORORRRROORORRRROOOROROOORROORRRRRRRRROOOOORRRROORRRRRRRROOROORRRORRORRORROROORRORORROOORRORRRRROOOOORRORRROORROROROOORRRRRRRRRRROOOORRRRRRRORRRRROORRRRRROOOOOOOORROROOOORRRRROOROOOORROOOOOORRRRORRROORRROROOORRORRRRRRROORRRRRRRRORRRRRRORORRORRRRORRRORROORROOORRROOROOORRRRRORRRRRRROORRRRRRRORRRRORRRRRRORRRRORRRRRRORRRRRRRORORORRRROORRRRROOORRRRRRRRRORRROROORRRRRORRROROOORRRRROOOORRROOROROOORRRRRRRORROORORORORRRRRRROOOOOROOORRRROORROOROOORROORROORORROOORORORORRROOROROOOOROROOOORROORORRRRRORORRRROOOOOOROOOROOOORORRRRRRORORROOROORROORRRORORROOORRRORRRRORRROOROORORRROROOOOOOOOOOROROROOORORRRORRRORRROOOOORROOOOOOROORROORRORORORRORORRROOORRRRRRROOOROROOROORROOORROROOOROOOOOOROOOORORROOOROOOOOOROOOROOOOROOROROOOOOOOOROOOROOROOOOOROOROROROOOOORROOOOOROOOOOORRROOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOROROOOOOOOOOOROOROOOOOROROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOORROOOOOOROOOOOOROOROROOROOROOOOOOROOOOOOOOROOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOROOOOROOOOOOOOROOORROROOOOOOOOOOOOOOOOOROOOOOORROROORROOOOOOOOOOOOOROORORROOROOORRROORRROOOOOOOOROOOROROOOROOOOOROROOROROOOOROOROOORROOROOROOOOORORRRORORRRROROOORORRRRROOORORORRORROOOOORRROOORRRRRROORRRRRRRROROOOROOOOOOROOORORRROOROROOOOORRROOOORRORRRROOROOOORORROOOROOOOOOROROOORRORROOORRROROOORORORROROROOROOROOOORROOOROOOOORRRRRROROORROORROOOORRROOROORRRRRRRORRRRROOROORRORRORRRRRRORRROORRORORRRROROOORRROORRROROROROORRRRRORROORRORRRRRORORORRRORORROORORRRRRROROORRROORRRROOORRRRRRORROORRORRRRRORRRROORRRORRORRROOROORRRRRORORROOROROROROORORRORRRORRROORORROORROOROROROORORRRRRORRRROOOOROOOOROORRORRORRRRRROOOOOOROOORROOOOROORROORRRORRORRRORROROORRORRORRROOROOORORRRRROOROROROORROORROOOOORROROROOOORRORRORROROROOOORRORROOORRROROORROORROORORROOORRRROORRRRORROROOROOORORROROROOORROOOOOOOORRRORRROOOOROROROORORROOOROOROROORRORRORORRORROOOORROOROOOROORRROROORROORROORORROOORROOOOOOOROOOOOOOORORRROOROOORRRROORROORROOOOOROOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROORROOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOROOORROOOOOOROROOOOOOOROOOOOOROROOOOOOOOOROOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOROOOOOOOOROROOOOOOOOORROROOOOROROOROOOOROOROORROROROOOOROROOROOOOOOROORRORROOOOOROORORROROOROOOOROOOOOOOROOOROOROOROOOOROORORROOOORROOOOOOOOORRRROORORRROORROOOOOOORROOOOROOOOOOROOROOOOROOROROROORRORROROOOOOOROOORRROOOOOOOOOOROROORORRRORROROOOOROORORORROOROORRRRRROORROOOOORRRRRRRORROOROOOORRRROROORROOOORROOOROROROORORRRRROROROORRORRRRRRRROORROORRRRRRRROORRORROROOORRRRRRRRROROORRRRORRRORRRORRROOORROORRROOOROOOORRRRORRORROORORRRORRORRORRRORORRROROORORROORORRRRRRROROOOOOOOROOOOOORROORORRRRRRRRROOOOOORRORRRRRRRRORRRORRRRRRRORORRRRRORORORROORRRRORRRRRROORRRRRROROOOORORRROOORRRROOORRORORRRRROOOOORRRORORRRRROOROOORRROOOOROOORRROROORRRROROORROROOORROOROROOORROOORORRRROORRRORRORRROORORRRRRRRRRORRROOORORROOORROROOOOROORRRROROROROOOOORORRROROORROOORROOORRORRORORROOORROROOROOORRROOORRRORROOOOROORROOORRRRRRORRROOORRROROORRRRROORRRROROOOOOOOOOOOOOOOOROOOOROOOOOORORORORROOOOOOOORRROORROOOOROOROOORRROROOROOOROOROOROOORROOOOOOOROORORORORROROOOOOOOOOOROROOORROORROOOOOOOOROOOOOOROOOOOOOOORROOOOOOOROOOOOOOOORROOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOROOOOOOOOOORRROOOOOOOOOOOOOOROROOOROOOOOOOOOORROOOOOOROOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOROOOOOROOOOORROOOROROORORRROOROOOOOOOOOORORRROOOROROORROROROOOOOOOOORROORROORORROROOOROOOOORRROOOOOOOOROORROOOOROORROOORRORRORRROOROROOROOOROORORROROOOORRRRRRORROOORROORROORRROOROROORRORROOOROOOROROORRRRROOOROOROROOORROOROOROOOOORROORRORROORRRRORROOOORORRRRROOORORORROROROOORRRRRORROORRRRRRRORRRORROROROOOOROROOROOOROOOORRORROROROOROOOORRORORRRRROORRORRROORORRORORRORROOOORRRROORRRROROORRRROROOOORORRORORRRORRRORROORROOORORRRROORROOROROOORORRROOORRRRROORORROORRRRRRRRRRRRRRRORRRRORRROORRROORORORRRROROORRORRROROOORORRORRROROORROOROOOROORROOORRRRRORORORROROOOROORRRRRORROOOORRRRRORRROOOORORROROROOROORRRRROOROOORRROORORORROROORROORROOOORRRRRRRRRRORORRRROORROORRRORORRROROOOORORRRRROROROROOOROOORORRORORRRRRROROORROROORRROOROOROORORRORRRROORROOROOOORROROOOROORRRRROOOROORROOORROOOOOOOORORRROOROORROROROOOROOOOOROOOROOOOOROOROROOOOORROOROOOROOOROOOOOROOROOOOROOOOOOROROOOOOOOORROOOOOOOOOROOOOOOROOOOOOOORROOROOOROORROOOOOROOOOOOOOOOOOROORRROOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOROROOROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOROOORRROORORROOROOOOOOOOORROROROOOOOOOOOOROOOROOOOOROOOORROROOOOOOOOOOROOOOOOOOOOROORRORRORROOOOOOOORORRROOROROOROOOOOORROROORRROOOROORORROORRRORROROOROROROOROOROROOOOOOOOORORRRROOOOORROORRORRORROORORRRRRRRORORROOOORRORRROOOOROOROOROOOORRRRRRORORRRROORRRRROROOROROROOOROORRRROOORORORRRORORRORROROOOOOORROOOOORROORRORRRRRRROORROOOROOOOOROORROROORRRROORROOOOROROORORRROORRORRROORRROORRRRORRRORROROROOOORORORORORORRRORORRRRRROROORRRRROORRRROROOOOORRROOORORORRRRRORRORRRRRROOORRRORRRRORRRRRRRRORRORORRRRRORORRRORORROOOORROORORORROOOORRORRROORORRRRRROORORRRORORRORRRRORRRRORRRRORORRORRROORROROROOOOORROORORORRRRROORORRRRORORORROROORRORRRRRRRROORRORORRORRRRRRORROOROROORRRORROOORROROROOOROORROORRORRRORORORRORROOORROOOROORRORRROORROORRORRROOOORROROOROOOOOOROORROOROOOROOOROROORRORORRRROROOOORRRRROOROORRRORORROROOORRRROOORORRORROOOROROORROOOROOOOOORRORROROOOOOOOORORRROOOROOOOOROORROOOOOROOOORRROORROOROOOOROOOOOOOROOOOROROOOROOROOROOOORRROOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOROOROOOORROOOOOOOROOOROOOOORROROROOOOOOOOOOOOOOOOROROOOOORROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOROOORROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOORRROROORORORROOOROOOOOROOOOOOOOOOOORROROROOROOOOOOROROOOOROORRRRROROOROOROOOROOOOOOOOROOROORORROOOOOOOOOOOOORROROOOOOOORRROOOORORROOROOOOROORRORROOORRRROORROROOORROOOOROOOROORORRORROOOOOOORRRORORRORRORROOOOOORROROORRRORRROOORROOROROROOOORRORRRRORORRROROOOOORORROOROOROOOOROOOOORRRRORROROOROOOOORRRORRRORRRORRRRROROOOOORRRRRROOORRORRROROORRROOOORRORRRRRRRORRRORORORRRROORRRRORORRRRRRRROOROORRORORRORRRRRORRRORRROORRORORRORROOOORRRRORROOROOOROOOROOOOOORRORROORRRORRROOOROOROORRORRRROOROOOROORROORORROORORORORRRRRRRRROORRRROOORROOOOOORROOOOOOORRORROOOORRORORROORRRRORORRRRRRRRRRROROOORRROOOORORROORRRRORORRRRRRRORRRRORRRRROOROORRRRRRORRRRROROROOORRRRRRRRRORORROOOOROROROROROROORROOORRRROROOOOOROORROROOOOORORORORORORRRRRRORRRRORROOOROOOORRRRRORRROROOOROOROORROOORRRORRRROORORROOOORROOOROROORRRROOROROOORRRRORRRORRORROOORROOORRRROROORROROROOOROOOROOOOROROORROOORRORORROROOORRORRROOOROOOOORRRORORROROOORRROOOOOOOOOOOROOOOOORROOROOOOOOOROROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOORROOOOOOROOOOOROOOOOOOROOOOROROOROOOROORRROOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOORROOORROOOOROOOOROOOOOORORROOOROORORROOOOROOOOOOOOOOOOROOROOOOOOOOROROOOOOOOOOOOOOORROOOOORROROOOROOORROOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOORORROOORROOOOOOROORRROOROROOOROOOOROOOOOOROROOOOROOOORORROROOOORROOORRRROOOORROOORRRRORORROOOROROOOROOORRROOROOOOOROOROOOOOOROORROORRRRORROOOOOROORRROOOOOOORRRROORROOOOORORRROOOOOOOOORRRRRORORORRRORRRRROORRRRRRROOOORRROORRORRRRRROOOOOOROORROOOOORRORORORROOORRRRORRRORRRORROORRRRORRROROORRRRRRRORRROOOORRRROORRRORORORRRORORRORORRRRRRROORRROOORROORRORRORORRORRRRROORRRRRORORRRRORROOOORRRRRROOORRRROOORRRORRRRRRORROOORROORRRRORRRRRRRRRRRRRRORRORRORRORRRORRROORRRRORRROOOROOORRORRRRRRORORORRROROORRRORORORORORORORORROORORRORRROOOOROOOORRRORRROROORORRROOROROOORORRRROOOOROROORRRORORORRORROOROROROOOROOORORRRORRRROOOOOOORRRROORROROORORRRRRROORORRRORROORRORRROOOROROOROROOOOROOOOOOOORROOROROORRORRROOROORRROOOOORRRRORRRRORRORORROORRORROROROROOOROOOOOOOOORORORRROOOOOOOOOROOOOROOOOOROROOROORROOOORROOOOOROOOOROROOROOOOOOOOOOROROOORROROROROROOOOOOOOOOOOOOROORORROROOOOOOORROOOOORRROOOOOOOOROOOORROORROOOOORROOOROROOOOOOOOOOOROOOROOOOOOOROOOOOROOOOROOOOOOOORORROOOOORROOORROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOORROOOOORROOOOOOOOOOOOROOROROOOOOOROOOOOORROOOROROOOROOOOOOOOOOROROOORORROOROROOOROOOOOOOOROOROOROOOOOOOOOROOOOOOOROOOOOROOOOOOOOOROOOOOOOOORRRROOOROROOOROROROOOORROOORROOOOROOOOOROROROOROOOROOROROORRRROORORROOROOROROORRROOOOROOOORROROOOROORRRRRORORORRROORRROOOROOROOORORRORROOOOORORORRORRORROROORROROROOORRRORRROOOROROORRRORROROROOORRRROROOOROROORROORORROOORRROROORORRROORROROORRRRRROOORRROROORORRORRORROOOORRORRRRRRROROROORRRRRRORROORRROORORORORRROORROORRRORRROORRORORRRRRORRROROORRRORRRROOORRROROROORORRRRRRRRROROOORORRRRORROROROOOORRRRORORRRRRRRROORRRRORRORRORRORRRRRRRROOORORRORORORORROORORORRRORRRRRRRRROOOORORRORRROROORRRORRORRRRORRRRRRRRORROROORORRRORORROOOROOORORRRRRROOORRORRRRRRORRRRRROOORROOOOROOORORORRROOOORRRRORRRRRRROORORORRRRRRORRRRRRRRRORRROORORROROORROORROOORRORRROROROROOOROORROOROOROORORRORORROOROORRROOOOORROOOROOROROOROOROROORRRORORROROOOOROOOORRRROOROOOOOOOOOROROORROORROOROOOORROROOOOOROOROOROOOOOOORRROOOOOROOROROOOOOROOORROOOOORORROOOOORORROOORROROOOROOORORROOROOOOOOOROOOOORRORORROOOOOOOOOROOOORRROOOOROOROOOOOOOOOROOOROOOOROOOOROROOOOOOOROOOOOOOOOOOOOOOOROOOOOOROORROOOOOOROOOOORRROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOROOOOOOOROOOOOOOOOOOOOOOROOROROOOOOROOOOOOOOROOOOOOOOOROOOOROOOOOOOROOOOOOROOROROOOOOOOOROOOOOROOOOOROOOOOOROOROORRRROOROOOROOOOOOOOOORROOROOOOOOOOOOOOORROOOORROOOOOOOROOOOROOOROOROOOOOOROOOOORROOOOORRORRROOROOOOOOOOOOOROOOROORRORRROOROOORRRORORORORRRROORORORROORRORROOOOROOORRRRRRRROOOOROORORORROROOOROOOOOOORORROORRORROORORRORRROOOOOROOOROOOOORORRRROORRRORROOOORORRRORORORROOROORRRRRORRORORRORRROROOOROOOROOORROORRRORRRROOOROORROROROOORRRROORORORRRRRRRRRRORRORRORRORRROOORORRRROOOORORRROOOOORRRRRRORRORRRORORORROORORROORROROROROORORRROROORRRRROROROROROOROORROORORRRORRRORORROOROOROORRRORRRRORRORROORROORRRROOROORROOROROORORRROORORORRRRRRRRORRORROROOOORRRRRRRRORRRRRRORRROORORRRRRRRRRORRORRRROOORRORRRRRROORRROOOORRORRROOORRRRORROOOROOROROROOROORRROORRORORRRORRRROROROROROORORRRORROROORORRROOOOOOOOOOOORRORRRRROROORRRROOORROOOROORRROOROOOOROROROOOOOROOOOROOORROROOOOOORRORRRORRRRROOOROOOOORORORRORORORROOOROOOROROOOOOOOROORRROORRROORRROROOOOOOORRROOROOROORORROROROORRRROORROORRROOOOROOOOOOOOROOOOROORORROORROROOOOOROOOOOOROROOOOOORRRORRORROROROORROOOROOROOOOOOOOOOROOOOOROOOOOOOORROOOOOOROROROROROOOOOOOOOOOOROOOOOROOOOOOOOOOOOORRROOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOROOOOOROOOOOOOOOOOOOOROOROOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOROOOROROOOOOOOROOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOROOOOOOROOROORORRROORROOOROOOOOOOOOOROROOROROOOOOOOOOOOOOOOOOOOOROOOOORROOOOROOOROOOROORRROOOOROOORRORROOOOOOOORRROROOOOOOORRROOOOOOORROROOOOOOOOOROROOOOROOOOROORRORRRRRRROOROROOROOOORORORROOOROROOOOOORORRROOROOOROORRORRRRRORRRRORRRROORRRORORRRRRROOORROROROORRORORRRRROROOORORROORRRRRRORRORROOROROOORRROOORRRRRRRRRROROORRROORRRORORORROORORORRRRORRRRRRRRROOOOORROOOOOORRORORRRRORROROOOOOOOORORRORRROOROOOOROOOOROROORRRRRRRROROOORRRRRRRRROOROORRRORRRRRRORRRRORORRROORORROOOROORRRRORORRRROOROOORRORRROORRRORROORRRORORORRORROROOORRRORORRROORRROORRRROROROORRRRRRRORRRORRROROOROORRRROROOORORRRORRRRORROOORRRRRROROROOOOOROOROOOOROORORORRROORROOROORORROOROOOOOORRRORRROORRROROROROROORRORRROOROROORORRROORROROOORORORORROOOOROOOORROOORROOORROORROROOROORORRORORROROORRORROROROOROOORORRROROOOOROOOORRORROOOOOOORROROROOOOOROOOOOOOOOOROORRROOROORROROOOROROOORRORROROOOOROOOROOROOOROROOOROROOROOOOROROOROOOOOOOOROOOROOOOOOOOOROOROROOOOOOOOROROOOOOOOORROOROOOOOOOOOROOOOOOOORROOOOORRROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOORROOOORROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOORROOOOROOOOROORROROOOOROOOOORRRORROOOOOOOOORROROOOOOOOROOOORROOROOOOROOOOOOOROROOOORORORROOROOROOORROOOORRROOROROOOROOROOOOORROROORORORORROORORORRORRROOOOORRORRROOROOOOOOOROOROOOOOROORORROORROOORROOOORROROORRORRRRORORROOOOOOOROOOORRORROROOROOROOROOORORRROORORRRROROOOOORORROOORRROOOROROORROOORROORROOOROOROORROROOROORROORORRORROOORRORRROOROROORRROOROORRRORRROORRRRRRRROORRROROORRRORORRORROOROROOROROOOORRRRORRRRRRRRROOOOOROOOORORRROOOORRROOORRORRRRRRRORRORRRRRROORRORRRRRORROOORROROOOORRRRRRRORORORRRRROOOORRROROROORRORORORROOROROORROROOORORROORRRRRORRRRRRRRORRRORRRROOOORORRRORRRRRRRORORORRRRRORRRRROROOOROOOROROOORRRRRRORRRROORRRORRROORORRRORRRRROOOOORRRROROORROOOORRRORORROOOROORROORRRRRROOOOORRROOROOORRRRORRRROOOORRRROROROROOROROOORRROOROROOROOROOOOOORORROROORRRORORRROOOROOOROOOROORROROOROOOORROOOORROOORROOROROROOOOOOROOOOROROROOOROROOROROOORRORROOROOOOOOOORROOORORORORROOROOOOOORORRRROOORRROOROOROOOORRRROOROORROROOROOROOORROOOOOOOOOOOROOOOROOOOOOOOOROORORROOOOROOOOOORROOOOOOORROOROROOOOOOOOOOOOOROORORROOOOOOOOOOOROROOOOROOOOOOOOOOROOOOOOOROOROOROROOOOOROOOROOOOOOOOOOOROROOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOOROOOOOOROORROOOOROOOOOOOOROOOOROOOOOROOOOROOOOOOOROOOOOOOOOROOOOOOOOROOOOROOOOOOOORRROROROOROOOROOOOOOOROROOOOROOROOOORROOROROOOOOOOOOORROOOOOOOOOOOOOOROOOOOROROOORROOOOOORROROOORROOROOOORORRROOOOOORROOOOOOORRRRROOORRORROOOORRROOOROROOORRORRRRROOOROOROROROOOROORRROOOORORRROORORRRRORRRROROROOOROOOOOOOOROOOORRRRROORRORROOORROROOROOORROOOORROOROROORROOORRRRRROORRRORROROORRROORRORRRROORROOROROOORRORORRROOOOROROROORRRRRRROROORROROOOOORRRRRROROROOORRORRRORORRORROORRRRROORORRRRRORRRROOROORROOOROORRRRRROORRORRRORRRROOROROORORORRRORRRRORRORRROORRRRRRORROROORRRRRRRROROORORRRRRORRORRRORORRRORROORRORORRROOROROOOORRRRRRRRRROOROORRRRROOOROROORRROROOOORRORROOORRRORRORRROOORRROORORRRORRRRRORRRORRRORRORROOROOORRRRORORRRRRRORRROROROOOOORRRRRROROROROOROROOOROORORRRORRRRROROROOORORRRRORORRORORROOROOORRRRROROROORRROORORORRROORRRRRORRRORORROOOROOOOROOOORRRORORROOORROOOOOOROOOOOOORRORROORORRRORORROOOROORROROROROOOOOOORRRRORRORORROROROOOOROORRRROROOROOOOOOORRRROROOOORROOOOROOOROORROOOROOOOOOOORROOOOOOROOROOROOOORRROOOOORROOORROOOOOOROOOOOROOOOOORROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOORROOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOROROOORROOROOROOOOOROOOOORROOOOOOOOROOOOROOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOROOOOROROOROOOROOROOOOROROROOOOOOOROOOOOROOOOROROOOOOORROOOOOOROOOROROOOOOOOOROROROOOOORROOOOOOOROOOOOOROOROORORRROOORRROOROOOOOORRROROOOOROOORRROOROOROORRROORROROOOORROORORROROORRRROROORRRROROOOROORORRROROOORRROOOOROOROROORORRORRROORRORROROOORORRRRORROOOORORORORRRRRROORROOOORRRROROORRRRRORRORROOROORRORRRRRRRORRRRROOOOOORRRORRRROORRROORORRRORORRROOROORORORRRROORRORRORRROOORROORRRORRRORROROORRRRRRORRRRRORRRRRORORORORROOOOOORRRROOROORRRROOOORRRROROORROORORRORROORRROOOORORORORROOROROOORRRRORROOORRRRRROORRRRRRRRRORRRORORRROOORRROROORRORORRROORRRRRROOORRRRROROORROROORRROOOOORRRRRRROORROORORRROORRROORORRRROOOOORRORORORRRRORRROROORROOORRRORROOORORORORORORRRROOROROORROROOORRROOORRRRRRROORRRRRROROORRRRRRORORRROOORROROOOOOOROOOOROOORROORRRORRRORROOROORRROROROROOORORORRROORROOOOOOOORRROORORROROORROOOOORROOROROOROOROROOORORROOOOOOROOORRRROOOOOOOOOOORROOOOOOOOROOOOOOOROOOOOROOOOROROOROOOOROROOOOOOROOOOOOOROORRRROORROOROOROOOOOOOOOOOOOOOROOROOOOROOOOOOOROOOOOOOOOOROOOOOOOOORROOROOOROOOOOOOROOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOROOOOOOOOOROORROOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOROOOOROOOORROOROROOOOROOOROROOROOOOOOROOOOOOOOOOOROOORORRROOOOOOOOOOOROOORROOOROOOOOOOOOOOOOOROOOOOOOOOORORORROROOOOROOOOOROOOROROOOOOOOROOOOOOOORORROOOOROOOOOOROOORRROOOROOOOORROOOORROOOROOOORORROOOOROOOOROOROORRROOROOORRRROORRRORROOORROORROOROROROROORORRRRRRRORORROROOOOROORORROOOOOOOOORRRRRORROROROROROOOOROROOROROORORRRRORROOROOOORROORRROOROORRRRROOROOORRORRRRRRROROROROORRROOOOOORRRROOORRRRROORRRRORROROOROOORRROOROOROORRRRORRRORRROOOOOOROROROORRRORRRRROROOOORROORORRRROROORORRRRRRRRROROOROOOOORRRRRROORORRRRRROOROORROROORORROORROOOOOOOOOOROORRROOOORRROROOOOROOOOROORORRORORRROOOORRRRRORRORRRRROROOOROOROOROORORRRORROOORORORRRRRRRRRORORRORROROORRROORRORORORRRRRRORRROOROOORRROOORRORRRRRRRROOORRROOORRORORORORRROROOROOORRRRRROOOOORORROORORRRRRRROOROROROOOOORORRROROROORRRROROORROOOORRRRROOROOROOOOOOROOOORRROORRROOOROOORROORRORRRORROOORRROORRRRORRORROROOOROOOROOOOORORRROOOOOROOOORROOOOROOOORRROROOROORROOOOOOOOOROOOORROOROOOOOOOOOOROOOORORRORROROORRROOROOORORROOOROOOOOOOROOOOOOOOOOROOOOOROROROOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOROOOOOOROROOORROOOOROOOOOROOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOROOOOROOOOOOOOOORROOOROOOOROROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOROOOOOORROOOROOROOOOOOOROOOOOORORROOROOOORROOOOOORROOOOROROOOROOROOOOROOROOOOOOROOOOOOORROROOOOROROORROOROOOROOOORRRRRRRORROROOORRORROOORRROROROROOOOROOOOROOROORORORRRORRRRROOORORROROROROOROOOOOOROOORROROORROOOOROOROORRROOOOORORROROOORROOORROOORORRRORORRORORRROOOROOORRROORRROROORORRROORRROORORORRRORORROOROORRRRORRRRRORRORRORRORRRRORRRRORRRRRORORRRRORORRORRORRROORORRRRORRRRORORORRRRRORROOOROORRRRROORRRRORROOROORRRRROROORRRRRORRROOOROORRRRRRRORORRRRRRRORORROROORRRRRORRROORORROROROORORRRRRORROORRRRRRRRRORRRROOROOORRRRORROOOORRORORORROROORROORRRRRRORORRROOOROROROORRRRROORRORRRRORRORRRRROORRRROOORRROOOOOORRROROOORROOOOOROOROORRORRRRRROOORRORRROOROORRORORROOORROORRORORRRROROROROORRROROOOOOROOOOOOROROORROROOROROOOROORRRORORROROROOORROORORROOOORRROOOOROOOOOOOORRORORROOOOORORRROOOOOOOOOORRRRRROOOOORORRORROOOORROROROOOROOROOOROOOOOOROROOOOOOROOROOOOORROOOOROOOOOOOOOROORORROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOROOOROROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROORROOOOROOOOROOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROROOOOOOROOOROOOOOOROOROROROROOOORORROORORRROOOOOOOOOORORROROOOOORROOOOOOOOOOOOOORROOROOOROOOOOROOOOOORROOOOROOOOOROORRRRRROOOOROOORROOORROROORRROOROORORROOROOOORROOOOOORRROOOROOROOOROOOORRRRRRRRRROOOORROOOOOORRROOROOOOOOORRORROORORRRROORORROOOOOROROOOROOROOROORORRRRRRORRORRRORRORROOORRORRRROROOROORORORROORRRORRORRRROOOROORRRORRRROORRRRRORRRROROROROOOORRROORROORRRRRRROOOORRROORRRORRRRRROORORRRROROROOOORROOORRRORRRRRRRROOORRRORRORORRRORORRRORRORORORORRORRORORRRRORRORRRORRRRRRRRORRRRRORORRRORROORRROORRORRORRRRRROORORRRROOOROROROROOORRRORRRROOOOROOOORROORRRRRRORORRRRRROORORRRRRRRORRORRROROROOORRRORORORROOOROROOORRRRORRORRORRRROROROROOOORRROROOORRORRROOOOOORORORORROORORRRORRORORORORORRORROORRRRORROOORRROOORRRORORRROOORRROOORROOROROROROORROROOOOOROOOOOROOROOOROROOORORRORORORROOORROROROOROORROROORROOROROORORORRRRRORROOORORROOORROOROOOORROROROOOROOOROOROOROORORROOROOOOOORORORROOOOOROOROROROOROOORROOOOOOOROOOORRROOOOOOROORRROOOOROOOOOOOOORROROOOROOOOOOOOOOOOOOOOROOOOOOOOOROOORROOOOOOOROOROORROOOOOOOROOROOROOOOOOROOOOOOOOOOROOOOORROOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROROOOOOOOOOROOOOOOOOROOOROROOROORROOOOOOROOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOROROOOOOOROOORROOOOOOORROROOOROOOORROOOOOOROOROROOOOOOOROOOORRROOROOOOOOOOORRRRRRROORRROOOOROOOOOOOOOOOOORROOROOOROOROORRORRRROOROOOROOOROOOORROROOOORORRRRROOROOOROOOOOOORORROOOOROROORROOOOORRORORROOOOROORORRRROORROROROOOOORROORRRROROOOROOOORRORORRROOORORROOORRRROOORRRORRRROOROOROOROORROROORORROORRORRRRROROOOOROORRRRORRORROROOROOORORRORORROOOROOORORRORRORRRORRRROORROROOROOORORORRRRORROOOROOROOORROOORRRROROOORRRORRRORORRORRRRROORORRRRRRRRROORROOOORRRRRORORRRORRRORRRORRRRRROORRRROOOROROORROOORORRORRRRORRRRROOOOROOROOORRORRRORRORORRRRORRRORRRROROORORRRRRRROOOOORRRRRRORRROROOOROORRRORORORROROOOORORRRRRRORRORROORROOORRRROROOROOORRRRRORRORROOOROOOROOROOOOOOOOOOORRROOOOOOROOORRRROROORRRORRRRORRRROOOOOORRROOOOOOORRROOORORRORRORROROROORROROOOORROOORROORRORRROOOOROORROOOORROOORROOOOOOORRORORROOORORROORRROROORROOOROOROORORROOROOORORRORROORROOOOOOOOORRORROROOOROROROOROOROOOOOOROROORROOROROOROOOOOOOOOOOOOOORRORROOOROOROROROROROROORORORRORROORROOOOOOOROOOOOOOOOROOROOROOOOOOORROOOOORROORROOOOOOOOOOROOOOOOOOOOOOOROROOOOROOOOOOOOOOOOROOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOORROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOROOOOROOORROOROOOROROOROOOOOOOROOOOOOOOOOOOOOOOOORRORROROOOOOOOROOOORRROOOOOOOROOROROORROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOORROOORROOOOROOOOOOROORORORROOOOOOOOOROROOROROROOROORORRROOOORRORRRRRRRROORROOOROOROOOROOOOOOOOROORROOOOROORROROOOORROORRRRROOOOROORRROOROORROOOOROORORRORORORRRORRROOOOOROOROOROOORRRRORORRRRROORRRROOOROOOROORRORROOROOROOORROOOOROOOOROOORROOOOORRRRROROORRROOROROORROOOROOOOOORRORRRROOORRRORRRRRRRORRORROOORROORRRRRRORRRORORORRROROORORRRORRORRORRRORRRRRRRORORRRROOORRRROORORROORORRRORRRRRROROORROOORORRORORRRROROORRRRORORRORRRORORRRRRRRRRRRRORRORRRRRROOOOROOOORORRRORRRROOOORRRROROOROORROOROORORROOOROROORORRROOROORROOROOOORORROOROOROROORRORRRRRROORROORROORRRRRRRROOORRRROROORRRRROORORRROORRRRORRRROORRRRORRRORORRROOORRRROOOROOOOOOOOORORRROOORROOOORROORROOROORRRORRROROOOOOOOOOORRRRRROOROROOOOOOOOOROROOROOOORORRRROOOOOROORORORRRROOROORROOOOOROROOROOORROOORROOOORORROOOOROOOROROOOORROOOOOOOORROOOOOROROROORROOOOROOOOOOOOOROROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOORRROOOROROROROOROOOOOOROROOOOOOROOOROOOOORROOOOOOOOOORROOOOOOOOOORRORROOROOOOOOOOOOOORROOOOOOROROOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOORROOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOROOOROOOOOOOOOOORROOROOOOOOOOOROOOOOROOOOOOOOROOOOOOROOOOOOOOOROOOOOROOOORROOOOOOOOOROOOOOOOROOOOOOOORRRROOORROOROORRROROROROOROROOOOOOROOOOOOOORROOOROROROOOOOORROROOOROROOOROOORROOOOOOROOOOROOORROOROOOORRROOROROOORRROOOROOORORORRROROORRRORROOOOOOOROOOORROORROOOROOOROROOROROORORRROOORROOROOORROOOOROORRROOOOORORRORRORROROORORRORROOOOROOOORRRORRORORRORRRROOOROOORRORRRROORRRRROOROROORRRRROOOOORRROORRROROROROOROORORRRRRRORORRROROORROORRORORRORORRROOROOOORROOROORRORROOOORRROOORORRRROOORRORRROROORRRROROOORORORROOROOROOROROORRRRROORRRRORORORROOORRRRRRRRORORRRORRROORROROORRRRRRORRRROOOOORRROORORRRRRRRRRROOROOORORROOOORROOOROROOROORRROROROORRORRRRRRRRORRROROORORRRORROORRRRRRRROOOROORRRRRORRORRORRRRRRRRRROOOOROORRRRRRRRRORRORRRRRORORRRRRROORORROOORRROOROOOROOOOORORORRRRRROOOOOOROOORROOROOOORORROORROOORRRORORRRRROOOOOORORORRRRROORRRROOROROROORORRRROOOROOOORRRORROOORROOOOORORORROOROROROORROOOROROORORORORROORRRROORRRROOROROOOROORRORROROOOOORORRRORRROOORRRROOOOOOOROROOORORORROOOROROOOROOOOOROOROOROOROOOOOOORROROOOOOORRRROOOOOOOOOOOOOROOOOOOOOOOORROOROOOORROOOROOROROOOOOOOOOOROROOROOOOOOOOROORORROOOROOOOROOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOORORROOOOOOOOOOOOOOOOOROROOOOOOOOROOORROOOOOOOOOOORROOOOOOOOOOOOOOROORROROOOOOOOOOOOOOOROOOOOOROOOOROOROOOORRROOOOOOROOROOORRROOORORORORORRRROOOOOOOOOOOROOOORROORORROROORRRORRROOORRROOORORROOOROORRORORROOROROOOOORROORROORORRROOROOROOROOROROOROORRROORRROOROOORROORROORRRROOROROROROOOOORRRORORORROROORRRROORRRROOROOOROROOROOROORRRROORRRRROROOROROOOOORRRORROORRRROOORRORRRRORRRROOOORRORRRRRRROOROOORRRRRRRORRRRROOOROROORRRORRRRORRRROOOOORROROORROROORROORRORROORRRROORRRRRRROROORRRRORRORRRRRRRRRRRORRORORRRRRROORRROORROOOROORORROOROOORRROORORORRROROORROORRRRRRORRRRROORRRRRRRRORRRORORROOOORRRORRROOOORORRORORRRORORORRRORRRORROROOROROOOORRRRRRORORRRORRRROORORRRRROORRORRRRORORRRRRRRRRORRRRRRRRORRRRROOROOORRORROOORROOROOORRRORORROORRRROORRROROORORRROOORORRRORRROORRORRRRROORRRRRRRRRROOROOOORRORORRORRRROOOOOORROORRRRRORROROOOROOOOORRROOROROORORROROOROOOORROOOOOOOROOORORROOOOOROOROOOROOOOORROOOOOOOOROOOROOROOOORROOOROOROOOOROOORROOROOOROOORROROOROROOROOORRRROOOOOOOOOROOROOOOOOOOROORROOROOOOOOOOOROOOOOORRROOOOOOOOOORROOOOOOOOOOROOOORRROROOOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOROORROOOOOROOOOOOORROOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOORROOROROOOOOOOOOOOOOOOOROOOROOROOOOOROOOOOOOOOOOOOOOORRROOOOOOOOOOOOOROOOOOOROROOOROORROOOOOOOOOOOOROOROOOOOOOOOOOOORORROOOROROORORROROOORROOOOROOOOOOORROROOOOOOOOROOROOROORROORROOOOOROOOORORORRRROROORRROOORORORROOORORORORRORRORROOOOOOOORRRRRRORORROOROORRRRRROOOROORRORROOOORRRRRRRRORORRRRRORRORRRRORORORORRRRORORROOROROROROOROORRRORRRRRRRORRRRROOROORRORORRRROOROROORORRORROROORRORROOOORRROOORROOROORRRORRRRRRRORRORRROROOROOROOOORROORRRRRRORRROOORRRRRRRORORORRROOOROORRRRRRRRRRRROORORROOOOROORORROROORORRRORRRORORROORORORRRORRRORROORORRRRROORRRRRRRRORORORROORROORROORRORROORRRRRRRRORRRRORRORRORRRRROROORRRROROROROORRRROOOOROROROORRRRRRROOROOOOOORRRRRRRRRRRRRRRRRORRORRRRORROOORORRRROROORRRORORORRORRORRRORORROOOOOOOOOROORRROROROOROROOOOORROORROORORROROOORRRRRROROORRRROOOOOOOOORORORROOOROOROOORROOOOORROORRRRRRORRORORROOOOOROORORORRROROOOORORROOROROORRRORRRROORROOOOROROOORROROORORRROOROROROOROOOROOROOROOOOOOOOOOOOOROROOOORRORROOOOOOROOOOOOROORRROOOROROOROROOOOOOROROOOOOOOOOOORROROOOOOROROOOOORROOOOROOOOOOOOOROOOOOOOOROOROOROOOOROROOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOROOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROROOROOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOROOOOOROROOROOOOOOOROROOOROOOOOOOOOOOOOORROOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOORROOOOROORROOOROOOOOOOROOOOOROOROOOORROOROROORROOOOROOOORROROOROOROOROORORORROOOORROOROOOROROORROOOOOORRORROROOOOORORROOOOORROOORROOORRRRORRRORROOOOOORRRORROOROROOOOOORRROOOOOOROOOOOOOORORRORROROOROOROROOOORROOOOOOOOOROORRROOOOOOOOROORORRROROOROROOOORORORORRROOORRORROORORRORORRROOORRROOOOOORORORORRRRROOOROORRORRORRRRRORRROROROOORROROOROOROROORRRRRRRRORROOROORRORRORRROORRROOORROORRRORRORRRORROOROROOROROOORRRRORRRRROROORRRORRORRROORRRRRORRORORRRRORROORROROORRRRROOROOORRORRORORRRORROOORRRROORORORRORORRRROORRRRRORORROROROORORRRORRORROORRROOROOORRRRROORRRROORROORRRRROORRRRRRRORRRORROOROORRRRORRRORORRROOORROROORRROROORRORROROOOROORRORROOOROORRORORRORRROORROOROOOOOROORORORORRROORORRORRRRRROOROORROORRRROOROOROROOOOORRRRRRROOROOROROOORORRORRORROROORRROOOROOROOOOORRROROROOROOOROOOOOOORORROOROROOOOOORROOROORORORRROOOOOOORRROORROORRROORROROOOROROOOOROROORROOOOROORROORROOOOOORORRROORROOOOOOROOOROOOOOOOROOOOOOORROROROOOROOROOORRROOOROROOOOOOOOOOORROOOOOOOOOOOOOOOOROROOOOOROOOOOOOOROROOOOROROOOOORORORRRROOORROROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOORROOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOORRRROOOOROOOROOORORROOOROOOOOOOOOOOROOROOOOOORRORROOOOORRROOROORROOOROOORRRORROOOROROOOOOROOOROROOOOROOOOOORROOOOROOORROOOORORRRRROOOOOROOROROROORRRROROOOORROOROROOOOOROROOOROORRRRORORRRRRROORRROORORORORROOORORROROOOROOOOROOOOOOROROOOOOOROOROROOORROROOORRORRROOORRRORRROORRORRRORRROOORRORRRROORRRORRORORROOORRORROOROOOROOROORRRRORRORRRRRRRRORRRRRRRRORRRORORROROROROROORORRRROOORORRRRROOORRORRORRRORRRRRROORRROROORRRRORORORRORORROORRROORRRRRORRRRRORROOROORRRORRRRORRRRRORRORRROORRROROOOOORROOOOORRRORRRORRRRRROORORRRROORRORROROORORROORRRRRRORRRRRORRORORRRROROORRROOOOOOROOORRROROROORRROROORORRRORRORRRRRRRRORRRRRRORORROROORRORRRRORRORORORROORRROOOROOORRRRROORORORRROROROOROROOORRRROORRROOOROROOOROOOROORRORROORRORORROOROOOROROOROORROOOROOROORROORRORROROOOROROOROROOOOORRRRROORORORRORRROROROOROOOOOOOOOOOROOROOROOOOOROROORORORROOORROOROOOROROORRRRROROOROOROOOOOOOOOOOROOROROOROOOOROOOOROORRORROOOROROOROOOOOOOROOORRROOOOOOOROOOROOOOROOOOROROOOOROOOOOOORROROOOOOROOOOOOOOOROROOOOOOOOROOOOROOOROOOOOOOOORORROOROOOOOOOORRROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROROOOROOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOROOOOROROOOOOOOOOOROOOOOOROOOOOOORORORROROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOOOOOROOORRROOROOOOOOOOOOROOROOOOOOOOOROOOOROORROOOOOOROOROOOORRRRROOROOOROOROOOOOROORORROORRORRORROOOROOOROOOORROOROOORORROOOOOOOOROOORRRRRRORROOOOOROORRRRORRRRORORROROROOOOOOOORRORORRRRORRRROOOOROROOOROORRROOOOOOOROORRRRRRRRRROROORORRRORORRRROOOROOORRORRRRROORROOOORRROORRRORORORROOORRORROOOROOOOORORORORROOOOROOROOROOORORRRORRRROORRORRRROROROOROOORORROOOORORORRRROOOROOOORRRRRRROORROROORROOORORRRRRRORRRORROOROOOOOORROOROORRRORRRORRORORRORROOORROOROORRRORRRROOOOOOROOOOOOROOOROORRROROORRRRORRORROORRORRROROROOORROROROOORORRRRRRRROORRORROORROORRRROROOOOOOORRRRROOORRRRRROOOORRRRRRRRROROORRORROORORRRORRRRORROOOROOROORRORROOROROORROOROROROOOROORRRORROOOROOROORROOOROROOOOORRRRORROOOORRRRROOROOOOORRORRROROOORRORORRRRRRRRRORORROORROOORORROORROROOROROROROORRROOOORRROOOOOROOORROORRROOOROORORORORRROROOORORROOOOOORROOORROOROOROROOROROOOOOOOOOROROROOOOOROORROOOROROOOOOOOOROROOOOOOOOROOOROOORRRROOOOOOOOORORRRROOOOOOOOOOOOOROROROOOOOOOOOOOOOORROOOOOOROOROROROOOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOROOOOOOOOOOROROOOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOORORROOOOOOOOOROOOOOORROOOOORRROOROOOOOOOOORROOOROROORROOOOOOOROOOROROOOOOOOROOORORROOROOOROOOORRORROOOOROOROOORRORROROORROOOOOOOOOOROORRORRRORRROOROOOOORROROOOORROOORRRRRROOORORROORRRRORROOOROOROORORRORRRRRRRRORRRROOORRROOOOOOOOROROOOOOOORRORROORRRRROROROOORROOOOOROOOROOORRORROROROORROORORROOORORROOROORORRRRORROORRROORROROOOORORROOORORRORRRORORRRROOROOOORROROOOROORRRRORRROOORROROOOOOORRRRORRRRORRRRRORORRRRRRORRORORRROORROORORRRRROORRROOOORRRRRRRORROOROROORROORROOOOROORRORRRRORORRROOOORRORORORRRRRROOROROROORRROROOORRORRRRRORORORRRROORRORORRRROORRROROROOROOOOOORROROOORRRRORROROORRROORRRRORROROROORROOORROORRRROORRRORORRRROOORROOOORRROROOOROORRRRRORRORROORRRROROROOOROORRROROOOORORRRORRROOROOROORRRORRRRRRRORRRRROORROROOORRORROOROORORRRRROOOOOOROORROOORRRRRROROOOOORRROOOROOROOOROORRORORORROROOOROOOROROROOROORRORRRORORROORROOOROOOORRORROOOROROOORRORROOROORROORROOOOOOOROOOOOOROOROOOOOOROOOOORRROROOOOOOOOROOOOOROROROORROROOOOOOOOOROROOOOOORRROOOOOOOOOOOROOOOOOOOOROOOOROOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOROOOOOROOOORROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROROROOOOOORROROOROOOOOOOOOROOROOOROOOOORROROORROOOOOOOOOOOOOOOOROOROOOOOOOORROOOOOOORROOROOOOORROROOOOOROOROOORRROOROOOOOOORROROROROOOOROOOROOROOOOROORRRORROOOOOOOOORRRROOOOORRRRROOOOROOORROROOOOROOOOOOOOOOOORRROOOORORRRROORROORROROOOOROOOOOROOROOOOORROOOOOOOOOOROOOORRORORORRRORRORORRRROOOROOOOORRORRORRROOOROOROOOROOORRRRROOORROROROOORRRORROOORRROOORRRROOROROROROOORRRORORROOROOROOORROOOORRORROOROROOORRROOOORROROOOROROOOORRRRORRRROORRORORROROROORORRORROOROORORROOROORRRORRORRORRORORRROORRORORRRRRROORORRORORROROOORRRRORROORRRORRORRORROORRRRRRORRROOOOOORRRORRROOROOOROORRORROROORROORRRRORORROOOROROORRORROROOORRORRRRROROOORORRORORORRRORROOROOOORRROOORORROOROROOORRORROOOROOORROOOOORORRORRRRRRORRORRRRRORORORRRRRRRRROORROROORRRRORORORRROOORRORRRRROROROROOORROOOOOROROOOROORRRROOROROOOROOOOORRRRORRROROORORRRORROOOORRROOOORROOOOOOOROORROOOOOORROOOORROOOOROOOROOROROROROROOOOOOOROOOROOROOOORRROOOOORROOOROOORROOOOOOORROOOROOOOOOOOOROORORORROOOOOOOOOOOROOOOROROOROOOOOOOOOOOOROROOOOROOOOOORRROROOOORROOORRORROOOROOOORROOROOOOOOOOOOOOOOOOOROROROOOROOOOROOOOOOOROOOOROROOROOOOOORRROOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOROROOOROOOOROOOROOOROOOOOORROOOOROOOROOOOOOOORRROORRORRROROOOOOOROOOOROOROOOOOOOOOOOOROORORROOROOOOROOOOOOROOORROROOROOOOOOOOOORROROOOROORROOOOOOOOOOOROOOROROORROOOROOOOOOORRROOOOOOORORRROROORROORROOOOROOOOORORROOROROROOOROROOOOORORORRROOOOOOOOORORRRORORRROOOOROROOROOORRROOOOOOOROROROORRORROORRORRRORORRRRORORORORRROOOOOOROORROOROORORROOORRRORRORROROROROOROOORRORRRORRRORRROORRRORRRRRROOORRRORORRRRRRROOROOOOORORORROROORRORORRROOOROORRRRORRRRRRRRORRRORRRRORRORRORORRRRRRRORORRROORRROORORRRRRRRRRROOOROROROOOOOOOORROORROORORRRRORRRRRRORRORORRORRRRROROOROOORRRRRORORRRROORRRRORRORRRRRRRRRRRORROOOOORRORRRROORROOOORORROOORORRORROORROOROORORRRRRRRROOOORROOORORROORRRORRRRROOROROORROOROOOORRORRROOOOROORORORROOOOROOROORROOORRRRORROOROOROOOOOORRRROORORRRROORORORORROOOOORRRRORRRRRRORRROOOROROOROOOOORRROORROOROORORRROROOOORORRORORORRRORROOROOORORRORROORRORRRRRRORROORORRROOROORRORRRRROOOOOOROORRRROROOOROOOOOROROROOOORORROROROOOOOOOROROOOOOOORORROOOOOOOOOOOORRROOOORROOOROROOROROOOORROROOOOOOOORRRROOOOOOROOOOOOOOOOOOORRRROOOOOOROOORROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOROOOOOOOORRROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOORROOOOOOOROOOROOOROOOOROOOOORRORRROOOOOOORORRROROOOOOOOOROOROOOROOOOORRRROROOOOOOOOOOROOOROOOROOOORROOOOOOOOOOORORORROOROOROOROROOOOOOOROOOOORROOOROOOROORORRROORROOOOOOOOOOROROORORROOOOROOOOOOORRORROROROROROORROOOORROROOOORRROOOOOOORROORROORRROOROOROROOROOORRRRORRRORROOOROOORRORRRROOOOORROOROOROORRROOROORROORORRORRROOOORORRORRRROROROOROORRORRRROORRROORORRRRRRRORRROORRORROORRRRRORORROORORRORORORORRRRRRRRRROORRORORROOOROOOROOROOORRRORRRRROORRRRRRRRROORRRRRORRORRRRROROOORRRORORRORROOORROORROOROORRRRRROOROORORRRRRROROOOOORRRRROOOROOOOROROORRROROORRORRRRRRRRRRRRORROROORRRROROORRROOOROOORRRRRRRRRORROROROORORORORORRRORRRROOOORRRRRRORRRRORORROOROROOORRROOOOOORRRROOORROOORRRORRRRRRRRRRROROORROOOORROROORORRRORRORRROOROORRRRRORORROROROOOOORRORORORROOORRROROORROROOORRRROOOOORORORROOOOOOROOORROOORRROROROOOROROOOROOROOORORRROOORRRRORRRORRROOORRRROOROOOOROORORROOOOOOOOOOROOOROOOROOROOROOOROOOROOOOROOOOOROOOOOORRRROOOOOOOROOROOOOROORROORRRORRRRROOOOROOROOROOORROOROROOOOROORORROROOOROOOROOOROOOOOORRROOOOOOROOROOROOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOROORROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROORROOOOOROROROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOROOOROOROOOROOOOOOROOOROOOROOORORROROOOOOOOORRROORRORROOOOOROOOOOOOORRROOOORROOORORROOOORROOOORORRRRRRRRRRRROORORRRRORORROORROOOROORORRRRORORROOORORRRROORORROOROORROOROROOROOOROROOOORRRRORORRROORRROORRRORORORRRRORORROORRRORORORROORORORORORORORRROOROROOOROOOOORORRORORROOOORRROOOORORRORORROROROROOORORROORRROOORROOORROORRRORORRROORRORRRRRORRRRRORROORROORRRRRORORRORROORRORORRRRORRRORROORRORRRRRRRROORRRORORORRRROOROORROOOORRRORROROROORRRRRORORRRRRRRRRORORRRORRRRRORORORRRRRROORORRRORRRORROORORRRROROOORRRRRRRRRRRRRRRORORRRRRRORRRORRRRROORORORRRRRORRROOOOOOOORORROOOROOOROOOOORRRROROROOOOROORRRRRORORRRRRRRRROORRORORRORORORROROOORRROOROOORORROROOORRRROORROOORRRORRRORRRROOOORRRROORRRRROOORRRORORORRRORROOOORRRRRRRORRRRROOOORRORRRRRRRORROOOOOROOORRROOOOROROOROOROROOORRROOOOOOOOROOOOORROOOOOOOOOOOROOROORRROOOOOOORRROOOORRRROOROROOORROOROOROROORROOORRROOOROOOOOOROORROOOOROOOORROOROROROOOOOROROOOOOOROOOORRRROOROOOROROROORROOOORROORROOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOROROOROOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROROOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROORROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROROOOOOORRROOOOOOOOOOROOOOOOOROROOOOOROOROOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOROOOOROOOOOOOOROOOOOROORRROOOOROOOOOOOOORRROOROOORRROOOOOOOOOOOOORRRROOOOORRROORRRROOOOOOROORRRORROROOOOOOOOOOOROORRROORRROOROOOOOOORORORORRROOOROROOROORORORRRROOOORROORORRROROROROOOOOOOOOROROORORRROROOORRROOOORRORRROORRRROOROOOROROOOROROOOORORROORRORORRROORROROOOOOOORRRRROROOROORORRROROROOORRRORRROOOOROROROOROOOROOROROROOORORRRRRRRRORRRRROOOROORORROOROORRORORRRRORRRRORRRRRROORRROORRROORRORRRORRROOORORRROORORROOORROROORRRROORRRRRRRROORORRORORRRORROORRRORRRRORRROOORRRRRRROORRORRRROOORORRRORRRORORRROOOROORORORRROORRRROROORORROORROORORORRRRRRRORRRRROOROORRRORRRORROORORORRRRRRORORRORRORRRRRORRRORORROORRRRRRROORRRORROORRROOROOOOOOOORORORRORRROOOOOOOROOOOROROOROORORRROORRORROOOROORORRRRROORRROORRORRORROOOROORROOORRRROOROROROOROORRROOOROROROOOROROOOOOROROROOOOOOROROOORROOOOROOORORRORRORRRROROOORORROOOOROOOOOOROOROROROOROOROORROORRROOROROOROORROOROOOOOOOOORRROROOOOOOOORROOOOOOOOOOOROOROOROOOORRRROROORROOOOOOOROOOOROOOOOOORORROORROOROOOOROORROOROOOOOOOOOOOOOORROOOORROOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOROOOOOOOOOROOOOROROOOOROOOOOOOOOOOOOROOOOOROOOOOORORRROOOOOORROOOROOORORROOROOOROOOOOROROOOOOOOOOOOOOOOROORROORROOROOOROOROOOOROOROOOROROROOROOOOOROOOROOORROOOROOOOOOOOORRORRROROOORROOOORROROROOOOROORRORROORORRORRRROROROOOROROROOOOROOOOROOROROORROROOOOOORROOOOORRORORORRROROOORRORROOOORROOOOOROROROROORRRRRORRORRORRRRRRROROROROROOOORRORRRRRRORORORROOOOOOOORRORRRORRORORRORRRRRROOOOORORRROOOOORRRORORRORORRRRRRRRROROROORROORRRRRRROORRORRRORORRORRRRORORRRROORRRRORORRRRRRORRRRORORRROROROOORORORRORRROORORROROROORROORROOORRRORRRROORRRRRROOOROOOROOROOROOOORORORORRROOOOOROOROORRRORRROOORRRRRORORRRORRRORRRORRRRRRORORRROROOROORRRRROOOROORORRROORRRRRORRORROROORORRRRORROROROROOORRRRRRORORORRORRRROOOOOOROOORROOOROOORRROOOOOORRRRROOOOORROOOORROORRROOOROORRRORRORRORROOOORORORROORRRROORRROOOROOROOROOROOOOOOOROROOOOOOOOOOROROOROROROOORRORROOROOORROROROOOOOOOOOOOROOROOROOORORROROOOOOOORORROORRROOOOOOOOOOOOOORORROOORORORORROOOROOOOOOOOROOOOOOOOROOOOOOOORROOROROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOORROOOOOOOOOOORRROOOOOOOOOOOOOOOORROOROOOOOOOOOOROOORRROOORRORORRRROROOOOOOOROOOOOOOOROROOOOOROOOOOOROOOOOOROOOOOROROORROOOROOOOOROOOOOOOROROOORROROOOOOROOOROOOOROOOOROOOOOOOOOOORROOROORROOOROOORORRROOORROORROOOROOOOOOOOOOROOOOOOORROOORROORRRROROOROROOORRROOORORRRORRROORROOROOORROOOOOROROORRROOOOOROORRRRRROORRORRRORRRRORRORROOOOORROORORROOROOROOOOOOORRORRRRORRROOOROROOOORRRRRORORRROOOORROORORROOORROORORORRRRRORRRRRRRRRORRROORRRORORRRRRRRORRRRRRRRRORRRROORRRRRRRORROORRORRORRORORRRRRORRRRRRORORRRORORROOORRORRRRRRORRRROOOOOOOROOORRRROOROOORRROORORRRRRORORORROROORRORROORORORRRROORRORROORRRRRRRRRORORRRRROOORRROROOORROROOROOOORROOORORROOROOORRORROORRRROROROROOOROOORRRORROOORORRRRROROORRORORRRRRRORROOORROOORORORRRRORROORRRORRORORORRROROOROORORRRRROORROOOROORORRRRROORROOROORRORORROOORRORRRORROROOOOOOORORROROROORROORROOOOOOOOOROOOORORRRRRRROROOOORROOORROORROOOOOOOOROROOROROROOOOOOOOOROROORRROROOROOOOOROOORORROOOOOOOOROOOROOOOOOOOOOOOOROOROOOOOOOOOOOORROORROOOOOOOOOROOROOOOOOOOROOORROOROOOOOOROOOOOOROOOOOOROORROORRRROOOROOROOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOROOROOOROOROOOOOOOOOOOOOOROOOOOOOOOOOORORRRROOOOOOORRROOOROROOOOOOOOROOROOROOOROOOOOOOORORRRRROROOOOOOROORROOOOORRORORRROOROOROOOOOOOOROORRROOOOOOOORROOOOOROOOROOOOROOOOOORORRORRROROOOROOROOROOOOOOOOROROOOOROORROOROROOOOROROORRROOOOOROOOOROROORORRROOOROOOROOOOOROORRRROROORRROORROROOOORRRROROORRORROROOROORRROROORRROORROROROORRORROOOORRROOORORRRORORRORROOORRROORRRRROROORRRROORRRROROOOORROOOORRRRRROROORRRRORRRRRRRORORROORRRRRORRRORRRORRROOORRRROORORRORRORORRROOORRROOOOOORORORRRRRRORROORRROROORRRROOORORRROOROOROOOROOOOOORORROROORORROROORRRRRROROOROORROORROORRRROORRRORRRRRRRRRROOOORORRRRRRORRRORORRROROOORRORRRROORROROORRROORRORROROORRORRRRRORRORRORRRRRRRRRRORRROORRORRRORRRRORROROORORRROOROORORROROROOOOOORRRROOROORRROOROOORRRRRROROROOOROROOOOOOOOOOORRROOROOOOROORORRRROOORRORRROROOORORORORRORRRRROROROOOOROROOROROOOORROOOOROORROROROOOOOORRRROOROOOOOOORROROOROOOOOOOORRORRRRORORRRROOOOROOOOROOROOORROOORRORRROOOORRROOOORROOOROOOOOOOROOOOOOOOOROOROROROOROOROROOOOORROOROOOOOOOOOOOROOOOROOOOOROROOROROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOORROOOOORROOOORROOOOROOROOOOOOOOROOROOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOROROOOOOOOOOOOOOOOOOROOOOOOROOOOROORROOOOOOOOOOOOOOOORROOOORROOROOROOROOOROROROROOOOOORORROROOROOOOOOOOOOROOROOOOOOOORROROORROORROROOORROOOROROOROROOOROROOOOOOOOOOOOOROOOOROROOOROROOOOROROROOOOOOOROOORORORROOROOOROOROOORROOOOROOOROOROORROORRORROOOOROOROROOROOOOOOOORROORORRORORORRORORRORORORRRORORRRORROORRRRROOOOROROOORORRROROORROOOORORORROOROROOOOORRORRRRRRRRRORRRORRORRRRRORRROORRRORORORRRRRROOOORORRROOORORRRORROORORRRRORORRORRRROORRORRRRRORORRORORRRROORORRRRORORRROORRRROOOOORRROORRRRRROORORRROOORRRROORRRRORRRORRROROOROORORRRRROROROORRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRRROORRORRROORORRORRROORORRRRRRROOOOORRRRORRROROOORRRRRRROOROROOOOOOOROROOOOORROROOOORROOOOOOOOORRRRORORRORRRRORORRRORORROROOOROROROOORRRORROOOOROOOOORROOORRRRRRRRRRORRRRORRRORRORROORORROOORROOROOOORROOORROROOOOROROOROROOORRORROORROROORORRRRORORRROOOROOORRORROOOOOOROROOOOOORORORROOOOOORRROOOROROORRROOOOOOOOOROROOOROROOROOROOROOOOOROOOOROORROROORROOOOROORROOOOROOOORROOROOROORROOOOOROOROOOOOOOOOOOOOOOOROOOOOOROOOOROOOOROORROOOOOORROROOOOOORROOOOOOORROOROOOOOROOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOROOROORORROOOOOOOROROOOOOOOOOOROROOOOOOOOOOOOOOROOOROOOROOOOOOOOROOOROOOOOROOOROROOOOOOOOROOOOOORORROOOOOOOOOOOOROOORROOOOOOOROOOOROOROOROROOOOORROOROOOROOROROOORROROOROOOOORORROOOOOROOOOOOOOOORROOOOROORROORRROOOOOOOROOOOOROORROORORROOOROROROOOROOORRROOORROOOOOOROROOOROROOORRROOROORRRRORORORORRROOOOOOOOOOOROROOOOOROORROROOROORORRORORRROROORROORROOOOOOORRRORROROOOORRRRORRRORROORROORROOORRORORRORROROORRORRRRRRROOOROOROOOORROOOROOORRORRORROOROORRRORRRRRORRRRRRRROROOOORRRRRRRORRRRORRRRRROROORORORRORORORORRRROOOORRRRORRORRRRRRRROOORRRRRRRORRORRRROOOOOORRRRRRORROOOOORRROOOORRRRORROORORRROORRROOOROOOROOOROOOROOROOOOOOROOROOROROOROOORORRORROORRRORRORRRORROOORRORRORRRORRRORRRRRORRRRROROORRRORRROORROORRRRROOOOOOORRRRRRROROOOROOROORROORRRRORROORRRORROOOOOOOOORORROOORRROOOROROOORORROOROORRRROOOOOOROROOORROOROOOOROORRRRROORORRRRRRRRROROOOOROORORORRROOORROORRORRORROROOROROOROROOOORROORORROOOOOORRRROROOOOROOOOROOOOROORRRROROORROROOOOOROOOOOOOOROOOORRORORORROOOOOROOROOROOOOORORROORROOOROOOOOOOOOORROROOROROROOOOOOROROOOROOOOOOOOOOOOOOOOOOOOROROOOOROOROOROROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOROOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOORROOOOOOOOOOORORROOOOORROROOOOOOOOOOORROROOOOOOROROOROOROOROOOROOOROOROOOOROOOOOORROOOOROOOROOOROORROOOOROOOROOORROOOROOROROROROOROOOOOOROOORORROOOROORORROROOROOOROROORRROROOOOOOORRORRROOROOORROOOOROOORROROROROOOOOOOOORRROOOOORROORRRROOOORROROROORORRRRROOORRRRRRRROROROOOROROOOROOOORORROORRORRRRRRRRRROOORROOORORROROOORRORRRROROOOOOOOOOROOORRRRRROORRORRRROOOOOOOORRORRRRROOROOOOOOOOORORRORORORRRRROOORRRORROROROORORRRROROROROROOOROROOORRRRRORRRRRRRRORRRRROROORRRRRRRROOORORRORROORORORRRRORORRROORRROROOOOOORROOORORRRRORRRRORRRRRORRRORROOOORORRROOORRRORRORORROORRRRRORRRROROROOORRROORRRROOOOORRRRORRORRORRRROOOORRORRRORRRRRORRROROOORORRORRORRORORORRRRORRRORROOROOROOORRORRRRRORRRROROROROROOOOORORROORORROROOOROOORORORROOOORORROROOORORRORORRORRORORRORROORRRORROORRORRRRROOOROROROORROOOROOROROOROOOORORRROORROOOOOOOROOROOORORORROROORRROOOOOROROOORROOOOROROROOROOROOROOOOOOOROOOOROORRORRROOROROOROOOROOOROROOROOOOROORRROOOORORRRROROORORROOOOORROORRROOROORROOOOROROOROOOOROOROORROOOOOOOOOOOOOROOOOOOOOROOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOORROOOOOROROOOOOROOROOOOOOOROROROOOROOOOOOROOOOOOOOROOORORROOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOROOOOOOROOOOROROOROOOOORROROOOOOOOROROOORORROOOOOOROOOOOOOROOOOOOOROOOOOROORROOOOORRROOOOOORRRROROROROROOROOOROOOOORORORORRROOOOOROROOORRRROOOROROOOORROOOOORRORRRRRRROROORRROOORROROOOORRROOOOROOROOOOROROOOROOORRRROORRORROORRRORRRRORRRROOOORROORORORRORRRRROROROORORORRROOOOORROOOORORRROOOOORRORROORORRORRRORRORRRRRRRRRORROOORRORRRROROROOOORRRRRRORORROROORROORRRORRORRRROORRRROORRRRRRRRRRRRORROORRRRORROOROORRRORRROORRRRRRRRORORORRROROROOORRROOROORRRORRROROOORRRORROOORRRRORRROOORRRRROROROROOOORRROOORRRORORROOROROROOORORROROORRRRRRRRRORORRRROORRORRROORRORRRROORRRRORRRRROORORRRRRRRROORORRRORORROOORRRORORORRRRROORRRRRROORORRRRROORRROORRROOOORRRORRROOROOOOROOOOROOOORRRROORRORRRROORORRORROORRRRROORRROOOORROORROROOOOROOOOOROOROOOOOOOOOOROOOOOOOROROOORROOOOOROROORROOROROOOORROROROOOOROOROOOOOOOORROOOOROROOOOROOOROOROOOOOOROOOOOOOROROOOROOOOOOOROOOOROOROROOOOOOOOOROOOROOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOROOROOOROOOROOOOOOOROROOROOOOOOOORORORROOROOOOOROOROOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOROOOOOROOOOOROOOORROOOROROOOOOROOOOOROOROROOOOOOOORROOOOROOOOOROOOOOOOOOOOORRRORROROROOOOOOROROROROOOOROROOOROOROOROOOROORRORROORORRRORROOOOOROROROORROOROOOOORRROORROOOOOORORROOOROOORROOOOOOOOOOROROOORROROOOROROORROOROOORORRRRRRRORROOOROOROORORRRRRRORRRRORROOOROOROORORRRRRORORORRRRRORORORRRORROORRORRRORRRROORRRORRROOROOORRRRORROOOORROORRROOOOORORORROOOORRORRRRRRORROOORORRRRRRRRRROROORRRROOOORORRROOOOROORRRORRRRROORRROORORROORRORORRRRORRORROOOORROORROOOOOORORRRROOOORRROORRRRROROOROORORRORRRORRRROORRROORRORRRRORRORORROOOORRROROORRRRORROOROORROROOORRRORORRORRRROOORRORORROOOORRRORORRRROORORRRORRRRROORRRRORRRRRORORORRRRORORROOROORORRRORRROOOOROOOOOROORORORRRRORORRORORRROROOOOOROORORORORRORROROROORORRORROOORROORRRROOROORRORORRORROROOOOOROOOOOROOOORRORORORRROORRORRROOOOOORRORRRRROOOROOOROROOOOOOOROOOROROOROORRROOOOROROROOOORORORORROROROOOOOROOOOOOOOOOROROOOORRROOOOOROOOOOOOROOOORROOOROOOOOOOOOROROOOROOOOOOROOROOOROROOOOROOOOOOORRROOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOROROROOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOROROROOORROOOOOOOOOOOROROOOOOOOOOROOOOROOOOOOROOORORRROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOORROROORROROOOROORROOORROOOOOOROOOROROOROOOOROOOOOOOROOROROOOOOOROOROROOOOORORROOOOORROOROOOOOOOORORORORROROORORORRROOOOOOROOOOORROORRORORRRROOROORRROOORRORRROROROOROORORROOORORROOROOOOROOOROOROOOOOOOORRRRROROORORORROROROORRROORROORORRRRRRRRRORRRROORRRORRRRRROOROORRORRRRROROOORORROOOROORRROOROOROOOROROOORORRROORORROROOOORRRRROORRORORRRRRRRRRRRORORRRROOROROOOORORORRORORRRRRRRRRRRORRROROROOROROORRRRROORRROORRRROOOROORRROORORRRRORRORRRRRRRRRRRRORRRRRRRRROROOOORRORRROORROORORRROOOROORRRRRRRROOORRORRRRRRRRORRRORROORORRROOROORRRRORRRRORRRROORORRORRRRRROOOROROORRRRRRROOOOORRRRRRRRRORRRRORORROROOOOROOORRRRORROORROOORRRROORRRRRORROORRRRRRORROORROROORORRRORORROROOOORRORRROORRRRRROORRRORRRRRROOOROROROOORORRRRORRORROROORRRROORROOORRRORROORROORROORRRRRRRORRRROOROOOOROOROOOOOROOOOOOOROOOOOOOOORROROROOROROROOOOOOORRROOROOORRROORROOOROOOOOOOOOOORORROOOORRROOROORORRRROROROOROOOOROROOOOOROOOOROROOOOROOOOOOROOOOOOROOOOOORROROROROOOOOOOORROOOROOROOROOORROROOOOROROOOOROOOOOOROOOROOROOROOOOROOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOOORROOROOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOROORRROROROOORROOOOOOORORRRROOOOOROORROORRROORROOOOORORRORROOOOOOOOOORROOOOOOORROOOOOOROORROOOORROOOOROROOOOOROROOROOROROOROOROOOOOOOROROORROROOOORRROORRORORROORRORRROOOOROOORRRRORRRORROORRORROOROOOOOROORROORRROROROOOORORRROORRORORRORRRRORRROOOORROOROOOORORRRROROORRORRRORRROORRORRORROOOOOORORRORROOORRORROROOORRRRROOOOOOROOOORROOOORRORORRROOORRORRORRORORROORROORORRRRRORRRRRRRRRRORORRRRRORRORORRORRRRORRROORRRROORRRRRRROOORORROOROORRRROOOORROORORRRRORRRRROOOROORORRROROOROORORRROOOORRRRRRROOROOROOOOOORRRRRORRORRRRORRRRRORRORRRRRRORRRROORRRROOORRRROOOOROROROOOROORRROOORRROOORRRORORORRRORROROOROORROROORORROOROOROOOROOOROOORORRRRROOOROROORRROORORRORROOOORORORRORRRROORRROOOROOORRRRRRRORORRROOROROORRRROORROOOORROOROROOOORRORRRRORRROROORROORRRRORORROORORORRRORRORROROOOOORRORORROOOOOOROROOOORORROORROOROOROOOOOROOOROOORRRORORRROROOROORROOOROOOROROROOROOOOROOORROOROOROOOROOOORROOOOOORRRROORRROOROOOOORROOOOOROROOOOOROOOOOOOOOOOOROOROROOOOOOROORORROOOORORROOOOOOORROROOROORROORROOOOOOOOOOOOOOOROOOOROOOROOOROOOOOOOOOOOOROOOOOOOOORROOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOOOOOOOOROOOOOROOOOOOOOOOOORRROOORROOOOOOROOOOOOROROOOOOOROOROROOROROOOOOOOROOOOOOOROROOROROOROOOOOOOOROOOROROOOOOOOOOOOOOROORRROROROOROOOORROOOOOOOOROOOOOOORRORROROROOOOOOOORROOOROROOOOOOOOROORRORORORROOOOOORROORROOOOOROOOOOROOOOROOOOOORRROOOOOROORROOOOOOORRRORROROOROOROORROORROOORRRROORRRROROORROOROOORORORRROROOROORORROOOOOORROORRRROOOOORRRORRORORRORRRRORRRORROROOOOOOOORORRRRROOROOOROOOORORRRRORORRORRRROROOROORORRRRORRORRORRORROOORRROORRORROOOOROOORRROROORRRRRRRRROORRRRORRRROOORORORORROOOROORRRRROOORROOOROOORORORRRORRRRRRORORRRRROORORRRRORORRRRRORRRRRORORRRRRRORRROROORROOOOROORRRROORORORRRRROOORRORORROOOOORRRROORROORORRRRRRRORORRRRRRROOORRRRRORORRRROOOROOORORRRRRRRRRRORRRRRRRRRRORRRRORRORRRRORORRORROORROORRROOROROOOOORRROORROOORROOOROROOORORRRORROOROOOOOOROOOOORRRROORRROOOROORRRRRRRORRROROOORORROOORORORORROORROOROOOOOOOROORORORORRROOOROOOROOOROOOORRROOOOROOROOOOORROOOOOROOOOROOOROROOROOORROOOROOROOOROOOROORRRRRRORROOROROOORROROOOOROOOROOOOROOOOROOROOROORRROOOOOOOOOROROORORROOOOOROOORORORROOROOOOOOOOROOROOOOOROOOOOOOOOOORROOOROOOOOOOOOORROOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOORROOOOOOOOOOOOOOOROOOOOOOROOOOOROROOOOROOOOOOORROOOROROOROOROOOOOROOOOOOOROOOOOOOOOOROORROOOOOOOOOOROOOOOROROOOROOOOOOOOOROOOOOROORORORORROOOOOROOOOOOOOOOROOORROROOROOOOOOOOOOOOOOOOOOROOROOOOOOORORORRROORROORORRORORRRROOORRRORROROROOOOORORRRROROOORRROOORRRORROOOORRRRORRORROOROROOOOOROOOOROORRRRORRRRROOOORORROOORRROROORORROROOOOORROOORROORRRRRORRRORORROROOOROOOOOOOROOOORRRROROOOOORRRRORRROROOOOORRRORRORORRORRRRRRORRORROOROOORORORRROORRRRORROOORORRRRRROOOOORROORRRROOROORRORRRRRROORROROORRORORRRORRORRRRROORROORORROORRORRORORORORROOOROROROORROORRROORRRRROORRRRRRRORRRRRRROOORRRRRORRORROROOORRORRROOORROORORRORROORORRRROROROOOORRORRORROORROOOOORRORRORORORRRRRROROOROORRRRROOORROORRRRRRRROOOOORRRORRRORRRRROOOORRRORROORRRRRROOOOROORRRROORRROOROOOOOORRROORRROOOOOORRRROROROOOOROORRRRROORORROORROOOOOROROORROROOOROORROORORROROORRROORRRRROOOOORORRROOOROORORORRROROOOROOOOOORORORORORRORRRRROOOOOROROOROOOROOORORROROOOOROROOOOROROOOORROROROROROROOROOOOOOORORROOOOOOOOROOROORROOROROOOOOOOOOROOOOOOOROROOOROROROOOROOOOOOOOOOROOOOOOROOOOOOOOOROOROOOOROOOOOOOOOROOOOROOOOOOOOROORROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOROOOOOOOROOROOOOORROOOOOOOOOOOOOOOOOOROOOROOORRRROOROROROOOOORROROOOOROOROOOOOOOOROOROOOOROOROOROOOORORROOOOOOOOOOROOOOOOROOORORROORORROOOOOOOOROOOROOOROROOROORRORROOOORRROOROOROROROOROOOOROORORROOOROORROROOROOOOOOORROOROOROOORRROOROROORORORROOOOOOROOORRORORROORORRORRROOROOOROORRRORROOROOOROOROOOORORRRRORROOROORORROOOOROROROOOOOORORRRROORRRRRRROOORRRRRORRRROOROORROROORORRRROOOORROORORRORRORRRRRRORRRRRRRRRRROORORRRRORORRRRORORRORRRRRROOOOOOOORRRRRRROOROOOORORROOORRRORROORROORRRROOOOOORRORRROORROOROOOORROOOROORORRRROOROORORRORRORORRRORORRRRRRRROORRORRROOOORORRORROORORORRRRORRRRRRROORORRORORROORRRRORROOORORRRROORRRRRROOROROOOROORRROORRORORORORORROORROROOORRORRRORRROOROOROOOORROORRROORORROROORROROOOOOROORRORRRORROORROORROOOOOOOOOROORRRRRRROROORORROOOOORRORROORRORRRROROROROORROORRROROROOOROOORRORRROOOOOORRROORRRRRRORORRORORROOORRROOROOOOROOROOOOROOORRRROOORRRROOROOOORROOOOORORORROORRROORROOOOOOOOROROOOOROROOROOOOOOOOROOOOOOROROORROOOROOOOROROOOOROORRROOOROROOROOROROOOOOOOOOORRRORRRROORROORROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROROOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOROOOORRROOOOOOOOOROROOOORROOOOOOROOOOOOROOOOOOOOOOROOOOROOOOOORROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOROOOOORROOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOORROOORROOOOOORROOOOOOOORROOOOOOROROOOOOROORRORORROOROOROOOOOORORRROOOOOOOROOOOOOOOOORROOOORROORROOOOOOROROOOROROROOOROROOOOOOROOOOROOORORRRROORROOOOOORORORORRRORROROOOROROROORROOOOOOROOOOOOOORRRRRRRROROROOORRRORRORROOOOOOROROOOOORORRORORRROOROOORRRROORRRRRRRRRROOOOOROOOOORRROOORORORORROOOORROOORORRRROROROORROOOOORRRRRRRROORORRRRRORORROORRORORRRRRRRRRORRROORRROORRRORRRROORRRRRROORRRRORRRORRRROORORRRRRORRROOOORRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRROORRORRRRRROOORORRROOROORRROOROOOROORROROROOORORORORRORRRORROOOOOOORORROORRRORRRRRORROORROORRRORORRORRRORORRRORRRROOORRRRORORRRRRORROORRORRORROROORRORORROOOOOORRORRORRROROOOORRRRORORRRRRORROOOOOORROROORROOORRRORORORRRROROROORRORRROORROROOROOOOORRRRRROORROROROORRORORRRRORORRORRRORRRROOOORORORORORROOROOROOOOROOOOOORRORROOOORRRROROOOOOROOOORORRROOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROROOORRROOOOORRRRROROOOORRROOOOOROOOOOROOOOOORRRROROOROOOROORORROOROOROROOOOORROROROOOOOROOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOROOOOOROOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOROOOOOOROOROROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOORROOOOOOOOOOOOOOROOOOOROOOROORROROOOROOORROOOOROOOORRROOOOOOOORROOOOORORROOOOOOOROOOORRROOOOROOOOOOROORRROOOORROOORRORROOOOOOOOOROROOOORRORORRROOROOOORROORORRRROOROOROOOOOOOOOOORRRRRRORORROOORROOOOOOORROROROOOROOORROOOORRROROOOOROORRRORORORORORRROROOROOROOOOOOORRROOROOROOROOOROOORRORRRROROORRORORRRRRROORRORROOROORRRORRROOOROROROOORRORORRRORRORORRRROORRRROORROOORRRRRORROROOOROOOORRROOROORORRORORRORRRROOORRRRORORRROOORROOOORRRORRORRRRRORROOORRRORRORRRRRRRRROROROROOROOROOORORRRRORORRORRROOORRRORRRORRROROOROOOOROOORROORORRROORORRRROROOORRORRRRRROOORROOROOORRRRORRORROOORRORRORORRRROROOOORROORRROORRRORRORORROORRRRRRRRORORRRORORORRRRRRORORRORRROORRRROROORRRRROORRROROOROOORROROROORROORORRRROORROOOOOOOORRORRORROROROORRRORRRORRRORRROOOOOOROOORROOROOROOOOOROROORORROOOOORROOROOROORRROOOROOOOOOROOOOOOROOOORRRRRORROOOOROOORROOORORRROOOOORROOOOOOOOOOROOROOOROROORORROROROOOOOOOROROOOROROOOOOROOROOOROROOOORORORRROOOOOROROORROROOROOROOROOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOROOOOOROOOOOOOOROOROROOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOROOOOORROOROOOOOOOOOOOROOOOROOOOOORORROOOOOOOOOOROOOOOOOOROOOROOOOOOROOOOOOOORROOOOORORROOOOOOROOOOOROOROOOOOOROOOOOROOROOOORROOOOOOOOOOOOORROROROORRRRORORROOOOROOOOROOOORORROROROOROROOROORORRROOOOOOOROROOOOROROOORRRROOOROOROROOORRROROOOOOOOOOOOOOOORROOOROROORRORROROOOOROROOROOORORRORRORRRROOOOROORROROOOOOOROORRORRROOOORRRORORRORORROOOORRRRRORRORROROORRRORROOOOOOROOORORRRORROORRRRRRRRROORRORRORRRRRRRORRROORORRRROOORRORORROROROOOORRRROORROORORROORORORORRRROORROROOORORORORRRROOOORORRRORORRORRRRRROOORRORROOROORRORRRRROOOORORRROROOORRRORRROOORORORROORRORRRORRRROOOROORORROOROORORRORORORORROORRRORRRORRRRRRRROOROROOOROORRRORORRRRORORRRRORORORRRORRRORRRRRORRRRRORORROORRRORRRRRROORORORORRRRRRROORRORROORORRRRORRRORRRORRRRORRORROORROOROOORRORROROOOORRORROOOOOOORRORROOROROROOORORORRORRRRRRRORROOORRROROOORRRORORROOORRORORROORRROOORRRROORRRRORORROOOOOROOOORROOORRRRROOOOOORROOOORRRRRRRRORRROOORROROOOOOORRROOORROROOOOOOOOOOROOROOOORORRORROOROOOOORRROOOOORRROOOORORRROOROROOORRRRRRROOOOROOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOORORROOOOOOOOOOOOOOROOORROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOROOORROOOOOOOOROOOOOOOOOOOROOOOOOOOOORRROOOROOOOROOOOOOOOOOOOOOOOOOROOROROOOOOROOOOROOOOOORROOOORROOOOOOOORROROOOOOOOROOOOOROOOOORRROOOOROROOOOOOROOROOOOOORROOOORRROOROOROOORRORRROOOOOROOOROROOROOROOOOROOOOOOOROOOOOROROOOOROOOROOOOROROROOOOROORORRRROOROROORROOORRORRRRRROROOROOOOOROROORRRROORRRRRRRORORRROORRRORRORRRROROOROORROOROOOORROORROROOORROOORRRORRRRROOOOROOORROOOOOORORRROORROORROOORRROORORRRRRROOORRRRORORRRORRRROROORORROOOORRORROOOORORORROORROOOORRRORRRRRORORRROROORRRRROOROORRROOOOORORORORRRRRROOOORROROORRRROORORROOROOOOROROROORRRRRRORRORROOORRROORORROROOORRRORRORRROROOORORORORORORRRORORRORORRRRRRRORRRORORRRRORRRRRORRRRRRRRROOORROROOORRRRRRORRRORRRRRORORRRROORRRRRORRORROOOROOOROROROOOORORORORROOOROOROORRORRRORRROORRRRORORRRRRRROROOORRORRORROOOOORRRORORROORORROORORRRRRRRORROOROORORRRROOOOOROOROOOORRROOROROOROROORORROOOOROOORRRRORRROOORRORROOOOORORROORROOOOOOROROOOROROORRORORRORRRROOORROOROOOROROOOROOOOOORRROOOOOROROOROOOROROORROOOOOOOOOOROOOOOOOOORRRORRROOOORRORRROOOOROOOOOORROOROROROOOOOOROORORRORRRRROOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOROOOOOOOROOOROOOOOOOOOROOOOOOOOOOOOOOORROOOOOROOOOROOROOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORROOOOROROOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOORROOOOOOROOOOOORRROROROOOOOOROOOOOOOOROOOOOOOROOROOOOOROOOOOROROOORROOROOOOROOOOROOOORROORRROROROROOOOOORRORORROOROORORROOROOROOOROROROOROOOOOOROORROOROOOOOOORROOROOOOOORRRROOROORRRROROOOROORRROROROROOOORRORORRROROORRRRRRORRROORRROROORRRRROROROROOORROROROROOOOOORORROORRROOROORROOOOOOOROOOOOORORRORORRORRRORORORRRROROOORRRRRROOOORRRRORORRRORROORROORORRROORRRRRORRRROORRRROROROROOORRORROORROROROOROOOROROROORROORRROORORRORORROROORRORRRRRRRORROROORROORRORORRROROROOORRROORORRROROOORRRRRORRRRRORRORROORORROROORRORORRORRRORRRROORRRROROOOORROORROORROROORRRRROOOROORRRORRRORORROOOROROOOROOOORRRRRROORRRRRRRRORRRRRORORROROOORORRORRORRRORRRRRRORRRRROORORORROROROOROORORROROROROROOORRORRROOORRRRRROOORROROORORORROORRRRORRROROOOOOROORRRORRORRRROROORROORORORORRRRRROOROOOROOORRORRROOORORORORRRROOOROOOROOOORRORROOROROOOOOORRROORRROOOOOROORRROOOOOROOROOOOOROOOROORRROOOROOROORORORROOOOOOOOROOOOORROOOOOORRROOOOOORRROOOOOOOROOOOOOOORRRRROOOOOOOOOOOOROROOOROOOROOORORROOOOOORRROOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROORROOOOROROROOOOOOOOROOOOOOOOOOOOORROOROOOOOOOOOROORROOOOROOOOOOOOOOOROOROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOROOOOOOOOOOOOOOOORRRRROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOOROOOOOOROROOOOOOOOOOORROOROROOOOOOOOOOOOOOOOOOOROROOROOROORORROOOOOOOOOOOOROROOOOOOROOROOOROOOOORROOOORROOOOROORROOROOORRROOOOOOOROOROOOROOOOROOOROOROOOOOOOROORRRORORORORORROOROROROROROORRORRORORROOORRRROOROOROOROROOROOROORRRRRORORROOROORRRORROOOROORORORORRORROROOOOROROOOROOOORRRRRORRRROOROOOOROROROORRORRROROORROROOORORRROOOORRROORRORRRROORRRORORRRRRRRRRRRORRORRROOORRRORRRROOORROROROOROOORRORRORROOROOOOROOOOORRRORROORRORRRRRRRROOROORORRRROORRRRORRRRRROOORORORORRORORRRRRROOOROROORRRORRROROROOOOROOOORRROOOROORRRROOROOROOOOORRRRRORRRRRRRROOOROOOOORORRROORRRROOOORORROROORRORRROROORRORRRORRORRRROOROOROOORRROORORRORRORRROROOOOORRRROROOROORORRRORORRROROORORRROROOROOOROOORROOOROORRRORROOOOORROOROOROROOOOOORORROOOOOORORROORRROOOOORROORRRORORRROOOOOOORROOROROOROOOOOOROOOOOOORROORRORRRRRROROOOOROORRROOORROORROROROORORRRORORRORORROOOOROOOOOROOOORORORRRROOOOOOROOOROROOOOOROROOORROOOOORORROORROROOOORROOOORROOOOOOROOOOOOOROOORROOOOOOORROROROOOROROOOOROROOROOOOOOOOOOOORRROOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROROOOROOOOOOOOOOOORRROOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOROOOOOOROOOOROOOROOOOOOOROROROOOOOROOOOROOROOOROOOOOOOOOROOROOOOROROROOOORROOOROORROOOOROROOOOROOROOROROOROOOROORRORROOOOOOOOOOORROROOOROOOROOOOROOORRRROOOOOROOROOORRRRORORRRORROORROROORORROORORRRORRRRORRROOROOOOROOOORRRROROORRRORRORRRRRORRROOOOOOROOROROORROROROORRRROROOORRRRORROOOORORRRROROROOORRRROOORRRRRRORROOOORROROORROORORROORORRORORRORRRROORORRRRORROORRRORRROOORRRRRROORRORORROORRRRROORROROOOROOORRROOOOOOOROOOORROROOROOOOORROOORROORRRORORRRRRRORRORRRRORRRRRRRRORRRORRRORRRORORRRORRRRROOOOORRORORRRORORRORRORRRRRROORROOROORORRRRROORRRRRRORORORORROORRRORRROROORROOOROOOORROROORRRRRRRROORRRRROORRRRRRROROOROOOORRRRORROORRROROOORRORROROOORRORORORRRRORRRRRROOOROORRRORROORORRRORRRRRRORROOROROOOOORORROOOOOOOOOORRRROROOORORORROROORRORORROOROOROOOOROOROROOOOORRROROORROOOOOOROOOOORROOOOORRRROROORORRRORROORROOORRORRROOOOORRRORRRROOROOOOROORRRRORRROOOOOOOOOOORRROOOOROOOROROORORROOROOROROOOROROOOOROROOROROOORROROOOOOOOOOOOOOOOOORROOOOOROOOOOORROOOOOOOOOOOOROOOROROOOOROOOOROOROOOOOOOOOORROOOOOOROOOROOOOOOOOOOOROOOOOOOOROOOOOROOOOROOOROOROOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOORROOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOORRROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOORROOROOROOOOOOOOOOOOOROORROOORROOOOOROOOOOOOOOOOROOOOOROOOOROOORROOROOROORROOOOOOOOROOOOROORROROOOOOOOROOROOOOOOOOOOOROOOOOROROOOORRORORROOOOOROOOOOOROOOOROOOROOROOROROOOOORORRROORORRORROOORRORROOORROOOORRRRROOOOOORROROOOROOROOOOORORRORROORROOORRROOOOROOOORROOOOROROOORROOROOOOOORRRRRORORRORROOOORORORORRROORRROROOROORORRRROOROOOOOOOORRRRROROOROROOOROORRORRRORORRRROOOOORRORRRRORRROROROOOOORORRRRROOOOORRRRORROORORRROOORRORRRRORROROORRORRRORRRORROORORRRRROOOROORRRROOROROOROORROORRROOOOOROORRRRORRORRORRRRORRORRRROORORRRROORRROORRORORROORRRORRRRRRORRRRORORROOORRORRORRRRORORRRROORRROORROORRROORORORORRORRRORROROORRRORRRROORORRRORRRORORORRRRORORORROOORRORROROOORORRRRROOROOOOORRRROORROOORRRRORORORORRORRRRRRORROORRRORORRRRROROOOOORRRORROOROROORRORRROORRRROROROROORORORRORRORORORORROOROOROROOOROROOORROOOOOOOOROORROOOROOOROOOROOOORRROOROOORORROROORRORROOOOORROOOORRORRROOOROOOOROOOROOOOROOORRRRROORORROOOORROORRRRRRROOORRRRRROOROOROOOROROOOOROOOROROOROOOOOROOOOROROOOOROOOOOOOOOOROOOOOOOOOOOROROORRROOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOOOOROOOOOROOOROOOOROOROORROOROOOOOOOOOOOOOOOOROOOORROOROOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOORROOOROOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOORROOOOOOOOOORORROOOOOOOOOROROOOOOOOOORRROOOOOOOOOOOOROOOOOORRROOOOOOOOOOOOOOOROOOOOOOOROOOROOROOOROOOOROOOOOOOOOOOOOOOORROOOOOOOOOROOOROORRROORROOOOOOOROOOROROROOOORORROOROROOOROOOROOOOOOORORORROOOROOOOROOOOORROOORROROORROROOOROOOROOORROOOOORROOOOORRRROROORROROROOOOOOOORRROOOROROROOOOORROROOORRORRRORORRROORRROROORROOOORRRROOORRORRRRROORRRRROORRROORRRRORROOOOOORROOOOOORORORROOOOORORRROOOROOOROOROOROOROORORRRRROORROROORORRORRRRRRORRRORRRRRRORRRRRRRRRRROORORRROORRRORRROORORROOOORORRRRRROORRRRROROROORRROOOORROORRRORRORRRRRORRRRORRRRRRRRROOORROROOOORORRRORRRRORRROORRORROROOORRORRORRRORROROROROORRRROROOORORORRRRRRROOOORORRRORRRRRORRORORROOOOROROOORRRROOOOOROROOROROOORRORRROROORRROORRRRRRRROOOORROROROORROOOORRRROOOROOROOROORRRORORRORRORRROROROROORRROROOOOOOOROOROROROORRORROOROORORORROROOOOROROOOOROROOOOORRROORRROROOOROOOROOOOROOOORRROORRRORRRORRORORORROORORRROORRORORROROORORRROORROORROOROOROORRROOOOOROOOOROOOOOOOOOORRROROOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOROOOOROOROROROOOROOROROROOOOORROOROOOROOOOOOOOOORRROOOOROOOOOROROROOORROOOOOOROOOOOOROOROOOOOOOOOORORROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOORORRROROOROOOOOOROORORRROOOOROORORROOORROROORROROOOOOOORROOOROOOOOORROROROOROORRROOOOORROOOROROROOROOOOOOROROOOOOOOORRORORROROORROOOOOROOOROOOORROORORRORRROOOOOOROROORRRRROOOOOORRRRROOROORORROOOOORROROOOOOOOROOOROROORRROOROROOOOOOORROORORRROORRRORRRRRORORRRROOOOROOOORRRRORORRORROOOORRORRRORORROROORORRORROROROORORRORRORRRROROOOOOOOROOOORRRRRRORROOOOOROROORROORRRRRRROROOOOOORRRORROROOROORRRROOROORRRORROROOORRRORRRRRRRORRRRRRRROORORRRRRROOROOORROOROORRRROOOORRRRRRRROORORRRROOOORORRROORRROROORRRORRRRROROORROROORRRRORROROOROORORORRRROOORRORRROROORRRRRRORRRORROROOOORRRORRRORRORROORROROORRORRRRRROOOOORROORRROORRRRRORORRORORRORRORRRRRRORRROROOOROOROOOOOORRRORRORROOROOORORRRRRRORRORRROOOROORRRORRRRRRROOOROOOORRRROORRRROROROOOOOOOORRRORROOOORRROORRROOOOROROOROROOOROOOROOOOOROROOORORRORROOOROROROORROOOOOOOROROOOROOROOORROROOOOROOOOOORRROORRROOOROORROOROOOOORROROROROOOROOOOOOORORROORORRROOOOOROROROOOOORROOROOROOOOOOOOOOROORROOOOOOOOOOOOOROOOOOOROOOOROOOROOOOOROOOROOOOOOROOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOROOROORROOROOOOROOOOOOOOOOROOOROOOOOOOOOOOOOROOOROROOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOROOOOOOOORROOOOOOROOOROOOOOROOOROOOOORROOOOROROORRROROOOROROOOROOOOOOOROROROOOORORROOOOOOOOROOROOOROOOOOROOORRRORROOORROOOOROOOOORRROOOOOROOOOOOOROOROROROOOOOORROOORRRROORROOOROOOOROOROORROOOOORROORRRRRROOROOOROORROORORORRRORROOOOOOORRORROOORRORROROORRORRRROOOROORRROORRROROOORRRORRROORROOROORROROOOORROORROROOOORROOROOOOROOOOOROOROORROROOROOORORRRORORRORRRRORORORRRRRRRROORRORRORROOORORRORRRROORRRORRRRRRRROORRROORRORROORRORRORRRRROROROOOOOOOOORROOORRRRRORRRORORRRRRRRROOOOOORORORRRORRRRROROOORRRRRRRRRRROORORRRRRROOORRRRORROORRRRROORRRRRRRRRRORRRORORORORRRORORORORRRRORRRROROROORORRRRORORRRORROORRORRRRRORORRORRRORROORROOROOOORRROOROORROOORROORORORROROOROOOROROROORRROOORORRRRROOROORORORORRROOOORRORRRRRORROROROORORROORORRORRRRORROROOROOORRRRRORRRRROORRORRRROROROROOROOORROROORROOOOOOORROOROOOOROOROOOOORROOOOOOOOOOOOOOROORRRROOROROOOOOOORROROROROOOOOOORROOOOOOOOROOORORORORRROROOOORRRRROROOOOROOOOOOOOOOOOOOOOOROOOOROOROROROROROOOOOOROOOROROOOOROOOOOROROROOROOOROOOOOOORROOOOOOOOOOOOOOOOOROROROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOROOORORROOOOOOOOOROOOOOOOOORROOROOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOORROORORROOROOORORORROROROOOOOOOOOOROOROOOORRRROOROOOOOOOOOOOOOOOOOOOOOOOROOORROROOOORRROOROOOROOOORORRROROOOOOOOOROOROOOOOOROORRRORROROOOROOOOORRROROROOOORRORROOROOOOOOOROOORORRRRRRRRORROOORRRORRROOOOORROROOOOOORROORROOORORORROOOROROOOORORRRRRRRRRRRRORROORORROOORRROOOOROORRRRROROOROORRRRORORROOROOOROORROOORRRORRRROOROROOOOORRORORRORRRORORRRROORRROROROORORRRRRROOORROROORRRRRORRRRRRRRRRROROOOROORRRORRRRORRRRRRRRRORROOORRORORRROORORRRORORRORRRRRORORRRORROORRRRRRRORORROROROOROOOORRRRORORRRRROROROROORROROOORRORRRRROORRROROROOOOROOROROORRRRRROROROOORRROROOOOOORRRROROORRRORORRRRRORRRRRRRRRORRRRORROROORORROORORRROORRRRRRRORROOORROORRRRRRROOORRRRRORRROROROOOOORROORRRORORRROROORRRRORRORRRRORORORRRRRRRRORRRRORRRRRROOORROORORROORROORRORROOORORORORORRRRRRORROOOORROROROOOROOOOORRORROOOROOOROROROOORORRRROROOOOOORROOOORORROROOORRRRRROOROOOROOROOOOOROROROOROOOOOOROOORROOOOOOOORROOROORROROROOOROOOOOROOOOROOROOOOOROOORORROORORROOROOORRROOOROOROROOOOOORROOOOOOOOROOOOORROOOOOROOROOOOOOROOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOORORROOOROOOOOOOROOOOOOOOOOOORORRORROOOROOOOOOOROOOOOOOOOOOOROOROOOOOROROOOOORORROOOOROOOROOOORROOOOOOOROOOOROOROOOROOOOORORROROORROOOOOOOOOROOOOOOOOOROOOOOOOOROOOROOOORROROOOOORROORRROOORROOORRROOOORRROOOOROROROOROOOOORRRRORRRRROOROORROOOOOOOORRROORRRRROOOOOORRRORRRROOROOOROORROROOOORRROROOOOOORROOORRRORORORROOORROOOOOOORORRORRRRROOOORRORRRRROORRRORRROOOORROOOOORRORRRRORROROOORORRROOOORRRRRRORRROOROOORORORRORRRRRORORORROROOORORRRRRROORRORORRORRRROOROORORROROROOORORORRROROOORRROORRRORRRRROORRORRRRORRRORRORROORRRORRORORORRRROORRROORRORROORROROORRRRRORORROORRROOOORRROROOOORRRROROOOORORROROOROORRRRRRROROOORRRRORROORRRORROOOOORORRRRRORRRORORRRORRORROOOORRRROROOORRRRROROORRRRRRRRORROOORRROOROORORRRROOORORRRRROROOOOORROOOOOROOOROOOOOROORRROOROORRRORROROROORRROORORRRRORROROROROROORRROOOOOORORRROOOORRORROORORRRRRRRROORORRROORORRRORROOORRRRROOOOOOORRRORRROOOROROORROOOOROROROOOOORORORORRROROOOOROOROOORORORRORROOROROOROOOOOROOROOOOROROOOOROOOOROOOOOOROOOOOOORRROOORROOOOOOOOOROOOOOOOOOOOOOORROOROOOOOROOOOOOORORROROOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOROOOOOOOOOOORROOOOOOOROROOORORROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOROROOOOOOROOOOROOOROOOOOOOROROORRORROOOOOOOOOROOOOORRROORORRROOOROOOOOOROOOOOOROROROOOOORRROOOOOOROOOOOOOOOORORROROROOROOOOOORROROOOOOROROOOORORORRROOROOOOOOOOROOOORRRRRROOOROOORROORROORRORROROOOOOROOROOOROOOOORROOOOORRORROROOOROORRROORRRRRRRORORORORRRRORORORROORRRRROOOROOOOOROROORRRRRRORROOORORRRRORORRRRORORRROROOOOOOROOROOROROORRRRORRRORRRROOOOOOOORRORRRRRROOOORROROOORROROOOORRROORORROOOOORRORRROOOROORORROOORRORROORORORRRRRRRORRORORRRRROORRRRORRRRORRORROOORRORRORROOOORORRRRRRRORRROOOOORRRRRRROOORRORROROOORRRROORRRRRRRRRRRORORORROORROROORRRRROROOOORRRRRRRROROROORORRORRRRRORRROORRROORRROORORORROOROORRROORORRROOOORRORROROORRRROOOOOORRRORORORORRORRROORROORRORORRRRROORORRROOORORROORROOORRROOOORORORRROROROROORORRORROORORRROORRRROROROROOORRRORROORRROROOOROOOORRRORORRRORRRRORRROOOOORRRROOOOOROORROOROOOORRROOOORROROOOROOOOOORROOOOOOOROORRRRROOOOOOORORROOOOOROOOOOOOORRROOOOOROOORRORRROOOOORRORRRROORROOOOOORRORRORORRROOORRORRORROORROOOOOOOOOOOOOOROOROOROOOOOOOROORROOOOORROOROOOROOROOORORORROORROOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOORROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOROOOROOROOOOORROOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOROOOOOROOOOOROORORORROROOOOOOROOROOOOOOOOOOOOOOOOOOOROOROOOOOOROROOOOOOOOOOROOOOORROOOOROOOOOROOOROOOROROROOOOROORROOOOOROOROOORROOOORROOORORROROOOROOORORRORROOOOROORRROROROOORORROOROORORORORORRRROOROORORORRROOOROORRROOOOOROROORRRORRROROORRORRROOOORROOROOROORRRRRRRORROORROOORRRROOOROORROOOOORRRRRORRRORRRRORORRRRRROROORORROOORRRORORORRROOOOORRRROORRRORORORORORRROOOROORROROORRRRRRORRRORRORRRRRORRORORORRRRROOOROROROORRRRRROORRRORRRRRRROORRORRRRROORRRORROROORORRORROOORORRROROORORRORRRORROOOORRORRORORRRRROORRRROROOOORRRORRRRRROOOORRRRROROOORRRRRRORRRRROROROOROORRORORRRRROOROORROROORORROROOORRORRROOOROROORROORRRROROOOOORRRORORROORORRRRRRRROOORROORORRROROOROROOROROROOROOOOROORORORRRRROROOROOOROOROROOROROOOOROOROOOROOROOOROORORORRROORRRRROROOROROROOOOOROOROOOROOOOROOOOROOROROROORROORORRRORROROOROROROOOORROOOROOOOROOOOOOOOOOROROOORROROOORRRROROOOORROOROOOOROOROOOOORORROORROOROOORRRRROOROOOOORROOROOOOOOOOOOOROOOROOOOOROOOROROOOROOOROOOOOOROOOOOROOOROROOOROOOORROOOOROOOOOOROOROOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOROOOROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOROOOOOOOOROOROOORROOOORORORROROOOOORROOOOOOORROROROOOOOOOOROROOOOORRRRROOOOOOORRROROOOOOOOOOROOROOROOROORRORROOROOOOROROROOROROROORORORRROORROOOROROOORRROOOOOOOOOROOROOORRRRORORORORORRROORRORORROOOOOOOOORROORRORORROROOORRORRRORORORRORRORRROORROORROOOOOORROROOORROORROOROOOROOROROOOOOOOORORRRORRORRRROROOROOROORROOORROORROORRROOOOORRORRROOORRRRORRRORORRRRRROORORRORORRRRRORRORRRRRRORRROOORROROROROROROORRRORRRRRORRROORRRRRRRRRRRRRRRRRRRRROOORRRROROORORORORRRRRRRRRORRROOOROROROROORORRRORRRRRROORORROORRRRORRORRRRRRRRROORRRORRRORRORRROOOROOORRORORROORROOROORORRRRROROOOORRORRRRRRORORRRRRRRORORORORORROORRRORRRORROOROORRRRRRORRRORROOORRROOORRRORORRROROOOOOORRORRROORORRROORORRRRROOROORORROROROOORROOORRRRRROROOROROROROORRRRORRROOORRROORRROOROROOORRROROROROORRORORROOROROOOOORRORRRROOOOORRRORRRORORROOROOOOROOOROORROOOORORROOORORROOROOOOOORRROOROROOOORRRROOROOOOOOROOOOOROOOOOROOOOROOROORROOOROROROOOOOOOROOOORRORROOOROROOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOROOOROROROROOOOOOROROOOROOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOROOOOOOOROOOOOORROOROORROOOOOOOOOOOORORRRROROOOOROOOOOORRROOOROOOOOOOOROOOOOROOROOOORORROORROROOOROROOOORROOROOOOROOOOOOOROOROOROOROOOOROOOOOOOOROOOROROORROROOOOOOOORORORRRROORROOROOOORRRRRRROOOOOROOOOOROOROOOORROROORRRRRRORRROOORRRRORROROOORRRRRORROORRRROOORRROOORROOROOOOOOOOORROOROOOORROOOROOOORROOOOOORROOOORRORRROOOOOORRROROOORORRROOORRROORRRORRROOROORROORORORORRROOORROOOOROOORRORRRRRRRRRRRRRORRRROOORRRORRRRORORRRRROOORRRRORORORORORORRROOROORROOORROROOORRORRRRRORRRORROORRORROROROROORRROORORROOORORRRRRRROROOROORORRRORRORRRRRRRORORORROOOROORORRRRRORROOOROORORORORORORORROORORRRRROORRRRORRORORRRRRRRROOROROOROROORROORORROORROORROOOROORORRRRRRRORROROOOORRORRROOORROROOOORRRRROORRRRRRORROOORROROROROROROROORRROOORROROROOOORROORORRROOOORORORROORORRROOOROOOOOOOOROOOOOOORROROORRORORROORRRRRRORROROOORRROORRROORRROOORORROOROOOOORRORROORRROOOOROROOOROORRRROOOOOOROROORROOROORROOOOROROOOOOOROORRORRROROOOROOOOORROOOOROOOOOOROOOOOOOOROOOOOOOROOOOROOOOROOOOORROOOOOOOROOOROROOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOROOOOOOOOOOORROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOROOOROOOOOOOROOOOOOOORORROOOOORROOOOOOROOOOOOROOOOOROOOOOROOOOOOROOOOOOOOOOOROOOOOROOOOROROOOOROOOROOORROOROOOOOOOOOOOOOOROOOORRORORROOOOOOOROOOOOOOROOOOORRORROOOROOORORROROORRRORRROOOOROORROOOORRRRRRORRROOROOORRORORRORRROROORROORROOORRORROOROORORROROOROOOOOORRORORROROORRORRRRRROOROOOOOOROROORROORRROROOOROORROORROROOORRRORRRRRRROOORORRRROROOOROOROORRORRRRRROORORRROROOORROOORROOORRORROORRRRRRRORRORRORRROROROOROOORRRRRORROOOORRRRRRRORRORROORROROORORRRORRRORORROROOOROORROORROOORRORORRORRROROOOOORORRRORROROORRRRORORRRORRRRORRROOORRRRRRRORORRRORRRORRRRRRRRORRRRRORROROOROROOORORRRRORORRROORRRRRRRROROROOROOOORRORORRRRRORRROROROOOORRORRRRRRRRORRORRRRRRORRORROORORRROROOORROOROOORROROORORORRRROORRRORRORORRRRRORRORRRRROOROOROOOROORRROOORORRROORRRRRRRRRRROOORROROOORROORRROROOOOOORRRRRRORORRROORRRROOORORROOOOOOOOOOOOORORRRORRRROOOROORRROOOORORORRORRRRORROOROOOOOOOOOROOOROOROOOROORROORROROOROOROOROOOOOOOOROORORROOOROOOOOORROOORROOOROOOOROOOOOOOOOORORORROROOOOOOROOOOOOOOOOORRROOOOOROOOOOOOORROOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOROOOOOOOOROROOROORROROOOOROROOOOORORORORROROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOROROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORRROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOROOOOORROOOOORORROOOOOOROOROOOOOOOROOOOORROOOOOOOOOOOOOOOOOROROOOROOOROOOOOOROORRROORROOOROORORROOOOORORROROOOOOORROOOROOOOOROOOOOOROOORROOROOOORROOOOOORORORRROOOROOOOOOROOOOOOOOROORROORRROROROOORRORROOROOOOROOORROROROOORORROOROROROROOORRRROOROOOOORORRRRROROOORROOORRORORRRRROOORRRORRRORRROROROROROORROROORROROROORRORRRORRRRROOROROORORRROOOOORRRROORROOORROROROROORORRRORRORROOROORORORRORROORROOORRROORORORRRORROROOOROROOOROOORRORROROROROROORORROORRORRORRRRORORRORRROORRORORROROROORORROORRRROORRRORRORORRRRRRRRROOORROOORRRRORRRRRRROORORRRRORRRRRRORRRRROORROORRORROORRRRROORRRROORRRROOORROOORORRORRORORRRRRRRRRROORRROOORORRROOOOROOOORROOORRRROORRRRRORORORROROOOORRORRRROOROROROOOOORRRRRRORRRROORORORRRORRROROORRRRROROORRRRRORRRROORRRRRRROOOORROROOROORORROOOROOORORROOORRROOOOOORRRRRROORROROROOORROOOOORORORRROROOORORROOROOROORROOOOORROOROROROOOOROROOROOORRORORRRORROROOOOORRORRORRROOOOOOOROOROOORROOOOROORRROOROOOROOOOOOOORROOROOOOOORORROOOOOOOROOROOROOROOOOROOOROOOOOOROOROOROOOOROOOOOROOROOOORROOOOOOOROOOOOOOOOOOOOOOROOOROOOROROOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROROOROOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOORROOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOROROROOOOROOOOOOOOROOOOORRRROROOOOROOROOROOOOOOOOOORORORROROOOOROOOOOROOORROOOOOOROOROORROORORROOOOOOROOOORRROOOOOOOORROROOORRROOOOOROROOOOORROOROOORRRRROOROROOOROOROOORRRRRORROROORORRROOROROORROOORROOORORROOROOOROOOOROOOOROOROOROOOROOORORRRROOOORRRROOOROORRORRRRRROOROROORRRORRRRRRRRROORROORORRRRRRORORRROROROROORORROORRRRRORRRROOOORRRRRORROORORRRRORRROORORRRORORRRRRORROOROOOOOOORRORRRRRRRRRRRRRROORRORRRRRRRORRROROORRRORROOOROOORRRROORORRORORRRORRORROOOOOOROOROROORRROORRRRRROOOOROORORROORORRRRORORRRRRORRRRRROOOOOORRRRRRRRRROROORROOORRRRRRRRRRRORRRRRRORRORORRRORRORROOORORRRRORRRRORRRRROOORRRRORORRRRRRRRRORRRROOORRORRORRROORORROORORORRRRORRORRRORORROOOOROORORORROORRRORRRROOOORRORRROOOOROOOOOROOOROORRROROROOORROOROOORRRRRROOOOOORRRRRRROOORRRROROROROROOOROOROROOOORORORRORRORRORROOOROOOOOORORRRRRORORRROOROOOOOOOOOOROOORROOROOOOOROROROOOORRROOOOORROOOOOROROROOROOOOORROOORROOOOROROROOROOROROOOOORRORROORORRORRORROOOOOOORROOOROOROOROOOOOOOOOOOOROROOROORROOOOOOOOOOORROOOOORORROOROOOROOORROOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOROROOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOROOOOORROOROOOOOOOROOOORROOOOROOOROROORROROOOOOOOOOOOOOOOOOROOOOOROOOORROOROOOROOROOOOOOROROROOOOROOOOOOROROOOROOOOROOROOROOOOOOOROOOROOROORROOOROOROORORORORROOROOORROOROOROOROORORRORRORORORROROOOOROOOORROOOROOROOOOROORRROROROOROOROROROROOOORORORROROORRROOOOOOOROOOOOOOOORORRORORORROORORRRRRRROORROOORRORRROOOORRRROOORORORRRORRROROROORROOORORRRRROROOORORRROOOOORORRORROROOORORRROROOROROROROORRROORRORRRORRRRRORRRORRRRRROROOORRRORRRROORRRORORRRROORRRRORRROORRRRROORRRRROORORORRORROOROROOOORRRRROORRRRROOORRRRRRRORRORROROORRRORRRRRRRRORRRRROOOOOROORRRRRORORROROROORORORRORROOOOROROOORRROOOORRRRRRRRROOROOOOOORRRRROROORORRRORORORROORORRORRRRRRROROORROOORROROORRORROOOROOORRRORRORORORORORRRROROORRROORORRRORRROROORRROOORRRROROOOROROROORRROOORROROORRORORRRRRROOORRRORORORORRROOOOOROROOORORRORROOROOOOOOOOROOOOROOORORRORRRORROOOROOORROOOOOOOOOOROROOOOROOORRRORRROOOOOROOOOOROOROOOOOOORROROORORRROOOROOOOORORROOROOORORROOOOORROOOOOOOOOOROROOOOOOOOOOROROOOOOROROOOROOOOROOOOOORROOOOOOOORRROOOROORRROOOOOOORROOOOOOOOROOOOROOOOOOOOOORRROOROOOOOOROOOOOOROOOOOOROOOOOOOOROOOOROROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOROOROOOOOOOOROOOOOOOOOOOOROOOOROROOOOOOOOROROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOROOOOOOOORROOOOOOOOOOOOROOOOROORROOOOOOROOOOOORROROROROOOOOROOROOOROOROOROROOOOOOROORORROOROOOOROOOOOOOOROROOORROOOROROROOROROOOOROORRRRORROOOOORROORRRROROROROORRRORROROOORRROOROROROOOOROOOOROORRRORRRROORROORRRRROORRRROOOOOOROOORORROORORRRORROOROOOROOORROORRORRORRROOOORRROOOROOORRROOOORROORROORRRRORRORRORROOROOROORRORROORRRROOORRRRRRRRRORRROORRRRRRRRROORRRRORRROOROROORRRRRRORORRRRRROORRRRORRRRORROOOROORROOOOORORRORRORRROOOOORRRORROOOOROOROOROORRRRRRRORRORRRORRRRRRROOORRRRRRRRRRRORRRROOROROROOROROROOORRRORRRROORRRORRRRRORRORROOROORROORRRRORRORRORRORRRRRRRRRRRORRRRRRORORRRROORORORRROOORROOROOORRRORROROOORROROOORRROORRORRRORORRRROOOOOORRRRORROOROROOROROOORORORROORRRROOORROROROROOORORROOROORRRORORROORORORORORORORRROOOOOOOORRRRROOROOROORORROORORROORROOOOOROROROORRROORORORRORROORROOOOROOROROOROORROOORRORRROROOROOOROOOROOORRROROOORORROOROOOROOOOOORROOROOROOORRROOOOOROROOORRROORROOOOOOORRRROOORRROROROOOOOOOROOOOOORROOOOOORROOROOROOOROOOROOOOOOOOOOORROOOOOOOOROOOOOOOORROOOOOOOROOROOOROOOOOOOOOOOOOOOORROOOOROOOOROOOOOOOOOOORROOORORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOORRROOOOOROOOOOOOOOOOROORRORORORROROROOOOOOORROOROOOOOOOOOOOOOOOOOOOOORORORROOOOOOROROORROOOOOOORORROROOOOOOOROOOOOROOROOOOORROOROOOROOOROOOOOROOOOOROORRRORROORRROOOOOOOROOOOOOOROOORORORROOOOORRROOOOOOOORRRRORORRRRRORRRORROOROOROOOORROORRRRROOROORRROORORRRRORRROORRORROROORRRRORROOORORROOROOROOOOROOOROROOROOOOORORORROOORORORORRORRROROOOORRORORROOORORORRRORORRRRRRRRORORORRRORRRRRRRRRROROORORRRRRRRRRRROORORRRRRRORORROROROOOORORRRORRRRRRORRRRRRORRORRORROOROOOOORRROOOOOOROROROORRORRRRORRROORRROORORRRRRRRRROOORORROOROOROORRORORRRRRROORORRORRRRRRRRRORRRRRRRRRRROOROOOROORRRORRRROORRORRRORRRRORRRRRROORRRRRROROORRRROOORORRRRROOOORRORRRORROORORRRRRRRORROORRRRORRRROORRRORRRROORRORRROORRRROORROOORORRRRORRORRRRROOORROOORRROORORORROOORRRRRRRRRORRRORRRRRORROORRRORRRORRORORORRORRRRROOORROORRROROOOROOROOROORRROOOOOROOOOOOOROROOOORORORROOROROOOORRROOOOROOROROOROORORRRROOROOOROROOORROOOOOOORORORORROROORORROROOOROOOOOORRORRORROROORRROOROOOORRROOROOORORROORROOOOOOROOOOOOOOOOOOOORROOOOOOOOORROOOOOROOOOOORROOOOOOOOROOOOROOOOOROORRRROOOOOROOOROOOOROOOOOOOOROOOROOROOOOORRROORRROOOOROOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOORROOOOROOOOOOROOOOOOOOOOROOOOOOOOROOOOROOOOOOROOOOOOOOOOROOOOOOORROOOOROOOOROOOOROOOOROOOOOOOOOOOOOOOOOROOROROOOOROROOOROOOOOOOOROROOOORROROOROOOOOOOOOOOROOOORORROOORRROOOOOOOORROORROOOROOOOOOOROOROOOOOROORORRRORROROOOORRRRRRRORRORROOROOOOORORROOOOROORRRORROOROROOOOORORROOOOROOOROOROOOORROROOOORRROORORORRRRRRRORORRORRRORROOOROROOOORORRRRROOROORRRRROROOOROORRORORROOOORROORRORORORORORORROOROORRROOOOORRORRROORRORRRORORRRRRRORRORRROOROORRROOORRROOORORORRRROOOORROOROORORRROOORORRRRRROORROOORRORORRRORROOROROROORRRORROROOOROOORRRORRRROOOROROORRRRRRRROORRRROOROORRRRORRORROOOOOROORROOOOROORROROORROOORRRROROOROOOROOORRRRROOOOORRRRRORRRRRRROOORORRRORORRORROORRRRRRORROOROORORORRRRRRROROOORROOOOORRRRROROROORRORRROOOOROOOOORORRROORROROOROORRRRORRRORRORRROOOROOOROORRRRRRRROOROOROROOROOOOOOOROORRROORORORORROROORRRRRROOOOORRRRRRROOOOOOOORRROORRROORROOORROOOROOOOOOOROOOOOOOROOOOORROOROOOOOOROROOOOROOOOROOOOOOOOOOOOOOOOORORROOROOOOOOOOOOOORRROOOOROORROROOORRRRROOOOOOORROORORRROOOOOORRROROOROOROOOROROOOOROOROOORRRRROOOOOOOOOOOOROOOOOOOROROOOOOOOOROROOOROORROROOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOORROOOOOOROROROROOOROOOOOOOOOROROOOORROOOOROOOOROOOOOOOOOROOOOROROROOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOORROOOOOOROOOROOOOOOROOOROOOOOOOOOROOOORRROOROOOOOROOOOOOOOROOROOOOOOOOOOOOROOOOROOOOOOOROOOOOOOROOOOOOOOOOOROORRROOOOROROOOOROOORROOOOOROOOOOORROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROROOOORROORROROOROROOOOORRROROOOROROOOROORRORROOOROOORROOOOOOOOOOOOOROOOOOOOORRRORORROROOOORRROROROROOOROROOOOOROORROORRRORRRORRORRRORRROROROORORORORRORROOROORRROOROOOROOROROORRORRROORORORRROOORORRROOORORORORROORORORORORRROORRRRORRORROROROOOORRRROORROOOOOOORRORRRORRROROORRRORRORRRRROOOROOOORROORRORRORRRRRORRRRRRRORORROROOROROORRRORORORORRORRRRROROOROOOOOROORORRRRRORRRORORRRRRORROOOOOOORORRORRRORRRORRRRORROOOOORORRORORRORORROROORRROROOORORRRORORORORRORRORORORRRORRROROOORRORRORROROROORORROROOOORROROORRORRORRRORORRRRRROORRORRRRRRRROROOROOOOOROOORROROOOROOOOORRORRRRROORROOOROOOOROOROORRORRRROROROOOORROOROROORROOOROORROOORRRROOORRRRROORRRORRRROROOOOORROOROOOOOROROOOORRRORROROORORORROROROOROOROOOOOOORRROROROORROOOROOOROOOOOOOOOOOROOOOOROOOOORRRRORORORRRROROROROOOOROOROOROROOROROOOROROORRRRRORROOROOOOOROROOOROROORROOOOOOOOOOOOROROOOOOOOOOOROOROOOOOOOROOROOOOOOOOOOOROROROOROOROOOOOOOOOOROOOOOOOOOOOORROORROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOROOOROOROOORORRROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOORROOOROROOOROOOOOROOOOORROOOOOOOOROORROOOROOOOOOOROOORROOROOOOOOROOROROOOOOROOOOOOOOOORROOOOOROOROOOROOORROOORROOOOORRROORROROORRRROOOOOOROOORRRORRORRRRROOOOROROROOORROORORROOOOORROOORRROOOORROOOOOOROROOROROOOROORROROROROROOORRORORRRORORRRROROOOROROOOOORRORORRRRROROORROOORROOOOORORRORRRORRORRRROOORROOROROROORORRRRORRRORROORROROORROOOORRRRRRRORROOORRRRRRRROROOORRRRRORRRROORORROORORORRORRRRRROOOOOOOROROROOOORORRORRRORORORRRORRORRORROORRRRORRORRRORRRRRORRORRRORROORORRRRRROROORRRORRROORRRORORROROORRRORRRORRRORRORROOORORROOOORRROOOORRROOORRRRRROORRRRORRORROOOOORROROORRRRORORROOROORRRORROROROROORROOORROORROOOROROROOROROROOROORROORORORRORROORRORORRROROORROROOORROOOROOOROORORROOORORRORORORRRORORRRRROROROOORROORRRROOORROOORROOROOOOROROROORROROROOOOOOROOOOROROROROROORROOORRORORRRRROOOOOOROOOOOROROROROOROROOOOOOOOORRRORORORRORORROROROOORORRROOOOROOOOORORORRROOOORORRROOROORROORRORROOOOROOROROOOOROOOROROROOOOOOOOOOOOOOOOOOOOOOROOORRROROORRRORROOORROOOROORROROORRRROOOOOOOOOOOOOOOOOROOROOOROOROOROROOOOOOROOOOOROOROOOORROOORROROOOOOOORROOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOROOOOOOROOORROOOROOOOOOOOOOOOOOOOOROOOOOOROOROORROOOROROROOOOROOOOROOOOOOOROOOOOORROOROOOROOOOOOOOOROOOOOOROOOOOOORROROOORROOOOROOOOORORROOOROOOOOOOOOOROOOOOROOORROROOORORROOOOROOROOOROROOOOROOOROROOROOORRROOROOOROOOROOOOORROOROROOORROROOOOORROORORRROOROOORORORRRRORRROOORRRRRRORORORRRORORRROORRROROORRORRROORORRRROORORORRROORRROOORROOORRRROORORRRROOORORROORRRRORROROORRROROOROROOOOOOORRROROORRRRRRRORROOOROOORRRRROORRRRRROORRRORRORRRORORORORORROOOORORROROORORROROROOORRRRRORORRRROROROORORRRRORROROOOROROOOORRRRORRRRRRRRRRORRRROOROROOROOROORROROORRRORRORRRRRRRROORORRRRRROOORRRORRRRRRRRRRRROORRROORRRRRRRRROOORRRRRRRRRROOROROORRRRRROROOORRRROROORRRRROORRORRORRRRRRROORRROORRROOORORRORROROORROROOOROORRORRORRRRRRRRORRRRORRRRRROOROOORRROROROORRORORRRRRRORRORROOROOORRRRORRRORRORROOORRRROROROOOOOROORROOOOOOORRRROOROROOROOOOROORROOORRRRORROROOORROORRORRORRROOROROOORROROROOROROROOOORORROROOOOOOROOOROOOOOOORRRROOOOROOROOOROOOORRRORROOROROOOOOOOORROORRRROOOOORORROOOROOOORROROOOOROOOOROOOORORRROOOOOOOOOOORROOOOROOROOOOROOROORORROOOROOOORROOOROORRROOOOOOOOOOOOOROOOOOROORORROOOOOOOOOOROROROROOROOROOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOORROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOROOOROORROOOOOOROOROOOOOOOOOOROOOOOOROOOOOOROOOROOORROOOROOOOROOOROOORROORRRRRROOOOOOOROOOROOOROROOOOOOROOROOROOORROOROROOOOOOOOOOORRROOOOOOOROOROOOOOROOOOOOOOOORROROOORRROOOROOROOROROROOORROOROOROROOOORROOOOOROOOROOORORRRORROOOOROORROROROROROROORROORRORROOORRRRORROROOORRRROOOOOORRORROOOORRORRRRORRORRROROORRROORROOROROOROORORRROOOROROORORRROOOOOROORRROROOOORRRORRROORORORROOORRORRORRROOOROORORRRRRRORRORRORRORRRRORRORORRORORRORORORROOOORRORRORRRRORRRRRROROORRRROOORRRORRROORROOORRRRRRORRORRORRRROOOOOROORROROOROORORRRRORORORORRRRORRRRROORRRRRRRRRRRRROROOROORRRROROROROOORRROOORRRROROOOOOORRORRRORORRORRRORORRROORORRRRORRRORRRRROORRROOOORRRORRRRRROORORROORRROOOORROROROROOOOOORRORRRRORORROOROROOROOORRROOROORRROROORRORRRORRRRRROORRRRRRORORRROORROOOROROROROOOOOOOORRRORROROROOOOOOOOOOOOORROOROOROORORRROOOROOROROROROORROORORRROOROROOOOOORROOROOROOOOROOROOOOOROROOROROOORORROOOROOOOOOROROOOOROOOROORRRRRROOROOROOOOORROOOOOOOROOOOROOOOOOOROOROORRORORRROOOOROOOOOOOOOROOOOOOOROOOOROOROORROOOOOROOOROOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOROOROOOOROOOROOOOOOROOOOOOOROOOOROOOROOROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOROOOOOROOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOROOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOORROROOOOROOOOROOROROOOOOOROOOOOROOOOROROOOROOOOROOOOOOOOOOOOOOOORROROOOOOOOOROOOROOOOROOOORORRORROOOOOOORORROROOORORROOOROOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOROOROROOOORRROROOORROOOORORROOOOROOOOROROOOROOOROOOOORRRRORRRRRROOOROOROROOROOORORRRROOROOOROOROORORORRRORROOOOROOOORRRRROROOOORORORROOROOORRROORROOOOOOORORORORRROOORORRROROORORRRORROORRRROOORRROOORRRORRROORRROORORRRORROROORRRRROOROOOROOROOOOOORRORRROOOORRRORRROORORRORRORORRRRORRRRROORRRROROORRRRORROOORROORORRORRORORRRORRROOOORRRRRROORRORRRROROORORRROOORRORORROROROROORRORRRRORRROROORORRROROOORROOORORRRRRRRORRROORROROORROORRRROOOORRORRRRROOORRRRRRRROROROROOOOROOOORROORORRRORRRORRRORRORORRRRRROOROOORRROOORROORRRRRRORRRRRROOOOOOROOOOOOOOOOOOORRRRORORORROORRORORRRRORRROOROOROROOOROORRRROROOOROROORRRROROORROOROORRRORRROORRRROORRORROROORROORRORROOORORROORRRRRRRRRROOOORRORROOOOOOOROORRRROROOOOOOROROOOORORROOORRROORORRROOOOOOOOOOOORORRRROOROOROOROOOORROROOOROROOOOOOOOOROROOOOROOORORROOOOROOOORRROOOROOOOOOOOOOORROROOROOORRRROOOORROOOROOOROROOOOOOOOOOROOOOOOOROOOOOOROOOOOROOOOROOOOOOROROOORROOOOOOOOROROOOOOROROOOROOOOOROOOOROOOORROOOOROOOOOOORROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOORROOOOOOOOOOOORRROROOOOOROROROOROOOROOOOOOROOOOOOOOOOOROOROROOROROOOOOROOROOOOOROROOOOROOOOOOOROOOOOROOOROOOORORROOOROOOOROROOORRORROOOOOOROOOOOOOOOOOOROROOOROOOOORROOORROOOOORROOOOORROOOROOOOROOROOROORROOROOOROOOOORRORRORORRRROOOOOOORROORORROOOOORRRRRRORORORRROORRRRROOOOOOORRRORROOOOOROOOOOROOOORORORROOOOOROROROROOOORRRRROOORRROOORRRRRRROOORRRRROOROORRORRRROORRRORRRORRRRROORRRRORORROROOORORROOOROOOORRROORRRRORROORRRROROOOOOOORRORROORRRRRRRORORROORORRRRRROOORRROROROOORROOORRORRRRRROOROOROORRORROORRORROROORRORRRORRRROOROORRRRRRRROORRORRRRRRRORRROROROORORRRORRORROORRRROOOORORROORRRRRRRROOORRRRRRORRRRROROORRRROROORRORROORRRORRRRORRRROORRRROOROORRORRRRRRORRORROROORRRROORRORRRRRROROROROORORRRRRROOORORRRRRROOOROOOOOOORROOORORROOROOORORRROROROOOOROROORRRRRROORROOOOOOORORROOOORRROOOORRRRORRRROROOOOOROORORORRRORROOROROORRORROROORROOOOOROROROORROOOOOOOOOROROOROOOOOOROOOROORRROORROOORRRROOOOOOORROORRROORORRRORROOROOOOOROROROOOOOOROOROORORROOOOORORRRRORRROROOOOOOOOROOOROOOOOOORROROOOOOROOOOOOOOOOORROROOOROOOOOOOROOROOOOORROOOROOOOOROORROOOROOROOROOOOROOOOOROOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOROOOOOOORROOOOOOOOROOOOORROOOOOOOOOOROOOOOROOOROOROOROOROOOROROOOOOOOORRROOOOOOOOOOOOOOOORORROOOROOOOOORRROOOOORROOOOOOOOOOOOOOORRRRRRRORORORROOOOROOOOROOOOORRRROROOROOOOOROROROOROOOOOOOOOOOORROOOORROROORORROOORRORRROOOOOROOOORROROROORROROOOOROROORRROOROOORORROORROROOORRORRRROORRRROOOROOROROORRRROOOOORRRRRRRORRORRROOROROOOOOROROOROORRRROROOOORORRROROROOOROORORRORRROOORORRROROORRRRRORRORRROROOORORORROOORROORRRORRRRORRORRRRRRRORROROOORRROORORORORROORRRORROOOROORORRROROORORRROROORRORORRORRRRRORORRRRRROORRRRORRORRORRRROROORRORRRROROOORORORRRRORRRORRROORRRRROROORORRRRORRRRRORRORRROOORRRORRRRRRRORRRORRORROORRORRORRORORORORRRRRRRROOROROROOROROORRORRRRROROROORRORRRRRRORRORRRORRRROROORROROROORRORRROOROORORROORRRRRRRROOOROOROOOOORORRRROROORRRRRRRRRRRRRORROORROOROORRRORORRORRROOORRRRRROORRORORRRRORRORROROROORRORRROOOROOROORROOORRROOROROOROOORORORRORRRRORRROOORORORROOOOOROOOORRORORROOOOROROORORROOOOOROOOOOROOOROOORRROOOOOOOOOOOOROOOROOOOROROROROROOROOOOORRROORORROOOOOOOORROOOOOROOOOROOROOOOOOOOORROORROOOOOOROROOOOROROOOOOOROOOOOOOOOOOROOROOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOORRROOOOOOOOOOOOOOOROOOROOOOOOOROORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROROOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOROOROOOOOOOOOROOOOROORROROOROOOOROOOROORORORRROROOOORORORROOOROROROOROROOOOOOOOOOROOOOROOOROOROOROOOOOROORRROROORRRROROOOROORROOOORORRROOROROROOROOOROOOROOORRROOROOOOROOORRRORRORROROOROOOOROORRROOOROOOOOORRRORORRROOROORROOROOROORRROOOORORRROOORRRRRRRRORROOORRORRORRORROORRROROROORORROOOORORORORRROOROROROOORRRRORRRROORRORORRRRORRRRORRROORROORRORROROOOROOORRROORORRROROROOOOOORRRRRRRRRRRORRRRORRRRRORROOOOORORRORRROORRRORRORORORRORRRRRRRRRRRORRRORRRRRRROOORORRRROOORRORRRRRRRRRRRRRROOROORROOOROOOOOORROORRRRROROROORRRORORRROOROOORRORRRORORROORRORRORRROROORORROOROROROROOROORRRRRRROOROOORORRORRORRORROORRORRRROORROORORROOORORRRRORORRROORORRORORRROOOROOOROORORROOOORRORRRORORROOOOOOROORRRRROOORRORROOORROOOOOOORROORRORORROORORRRORRRROOOROOOOORRRROROORRRRRRROOOOOROROOOOROROOORROROROROOROROOROORRRRROORRORRROROORRRROROOOOOORRRORROROOOOROROOOOROOOORROOOOOOROORRROROOORROOROROOROORROOOOOOOORROROORROOOOROROROOOOOOROOOROOOOOROOOORROOOOOOROOOROOROROOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOROOOOOOOOOOROOOOROOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOROOOOOROOROOOROOOOOOOOOOOOOORORROOROOROOOROOROORROOOOOOOOOOROOROOROOOOOOOROOROORROOOOOROROOOOOOROROOOROOROROOOOOOOOOROOOOOOOROOOOOOROOOOOORROOOOROORRROROROOOOORROOOROOOOOOOROOROOOOOOOORROOOOOORORRROOOROOROROROOOOORROROOORROROORROROOROORORRORRROOROORRORRRRROORRRRORRORRROOROORRRORRROOOROOROOROORORRRROOROORRROROORRROOROOORORRRRRORORRRRORRROOOORROROROROORRRORORRORRORROOROORRORRORRRRRRRRRRRRRROROROORORORORRRRORORRRROROORORORORORRRRORORRORORROROOOORRRRRORORRROOORROOOROORRROROORROROROORRRORROORRRROOOROROORRROORRORROORORRORRRRORRRRORRRRRRROOORORRROORRRRRRRORORORORORRRRROROORRROOORORRRROROORORRRRROROORROORORROOROOORRRRRRORRRRRRRRRRRRRRORRRORRRRRROOOROOROOORRRORRROOOOOROOOROORROOROORROOOORROOOOORRRRORORROROROOOOROOOOOOROROORRROORRRRORRRRROORORRRRRRRROOOOOROOORRORRRORORRRROOOOOOROOROOORORROOROOORROORORORRRRORRORRROROOROOOROOORROROROOOOOOORRRROORORRRRROROOROOOROOORRROROROOORROOROOROOOOOOOOOOORROOROOORROORORRROOOOORORROOOOOOOORROOROROOOOOOOOOOOROROOROOOOROROOOOOOOOOROOOOOROOOROOROOORROOROROOOOOOOOORROOOROOOOOOOROOOOROROROOOROROOROORROOOOOROOOOROOOOOOOOOOOOOOOORROOOOOOOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOORROROOORROOOOOOOOOOOOOOOOOOOOROOROOOROOROOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOROROOOOOOROOOROOOOROOOOOOOOOOROOOOROOROOROOOOOOROROOOOOOOOOOROOORROOROOOOORRRRROROOOOOOOOOROORROROOOOROROOROOOORROROOOOROORORRORRROOROOORROROROOROOOROOOOOOORROORRROOOORORROOORORORORRRORORROOORROOOOROORRROORORROOROOROORROOOOOORORROROOROOORRROORRORRORRRROOROOORROROROORRORRRROORROOOROOROOOROOOROOORROOORORROROORRRRRRRORORRROORRRRORRORRROORROROROOOORRORRRRORORORRRRORROOOROROORORORROOOOROROORRRRORRRRRRRORRORRRRRORROORRORRRRRRRORROORROOORRRORRORRRROORORRRRRORORRORORRRORROORORORORORRRROROROORRROOORRORRRRRROORRRROORRROOOOORORROORRRRROROORRROORRRRRORROORROROOORRROORRRRRRRRORORRRRRORROORRORRRRROROROOROROOOORORORRORROORROROROORRORRROROORORROOROOORRORORROORROROROORROORRORRRORRORRROROOORRRRRORRORRRROOORRRROROOORRRORROORRRRRROOORORRROROOOROORORROORRROOROOORRROROOORRRRRORRORRROROROROROROOOOOOORROROROROORORRRRORROORRRORROOORRRROOORRROROOORRRRRORRROROOOROROOOOOROORORRRORROOROOOOROROOOROROOOOOOOROOROOOROOOROOOOOROOOOOOOROOOORRRRRROORROOORORROROOOOROROOOOOOOROOROOOOOOORORROOOROOOOROROOROOROOORROOROOROOOOROOOOROOOOOOOOOOROOROOOOOOROROROOOOOROOOOOOOOOORROROROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOROOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOROOOOOOOOOROOOOOROOOROOROOOOROORRROROROOOOOOOROROOROOOOOOOROROOOOOOOOOOOOOORORROORRORROOOORORRROOOOOOROOOROOOROOOOOOORROOORROOOOOOOROOOROOORORORROOOOOOOROOOROROORROOROOOOOOOOOORROROOOORORRRORROOOOOORRROOROOROORROOOROOORORROOOORRRROOROOORRORROOOOOOROOOORORRROOOORRORRORRRROOORRORRRROOROROOORRORORRROORRROOOROOOROOOOROROROOORROOOOORRORORRRRRORRRROOOORRORRRRORRROROOORRRORROORRRRORRRRRRRRRRROORRRROORROOORORRRRRRRRROOOORRROOROROORRRROOROOOORROOORRRORORRORROROOOOOOOORRORRORRORRRORRRRORRRROOOORORRROORORRRROOOORRRRORRRRRRRROOORRRROORROROORRROOOORORORORROOOORORROROROROORRRRROOOORRRORRORROORRRRRORRROORRORROROORRORORORRRRORROOROORORRRRORRRROOOOOROROROOORRORROORRRRROROORRROORRROROROORROORORRRORRRORROORROORROORORRRRRROORRORRROORRRORROORORRORRRROROORROORRROROOORROOROORORRORRROROORRRROORROOORRROOROOOROOOROOROORRRRROOROOROOROORRROOROROOOORROROOOOOOOROROOOOROORRRRORROORRRROOORROOROOROROORROOOOORROORROORRORRROOORROOROOOORORROOOOROOOOOROROROROOROOOOOOOROOROOOORROOROROOORROOOOOORORRROOOOROROOOOOOOOOOROOOROROOOOOOORROOOOOROOOOROOOOOORROOOOROOOOOOOROOORROOOOOOOORROROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOOOOOOOOOOOORORROOOOOOOOOROOOROORRROOOOOOOOOROOROROOROOOOOOOOOROOOOOOROOOOROOROORROROOOOROOROORROOOOOORROROOROOROOOOOROROOROROOROOOOOOOOOOORROROOOOOOROOOORRRRROOOROOOROOOOOOOOOOORROOOOOOOOROROOOOROROOOROOOOORRROOORRRROORROOORORROORROOOOOOOOOROOROOOOROOOROROORORRROROROORROROOOORRRRORROOROOOOOOOORORORRROORORORRRORROROROROORORROOOOROROORORROROROOROORORRROOROORRRRROROROORRROOOOOORRRORRRROOORRRRRORRRRRRROROOROROOORRRRRORORORRRROORORORORRORORRRORROOOOOROORROORRORORRRORRRRRRORRROOOOORRROORROORORORORRRRRORROOROORRRROORORROORORRORORRRORRORRROORRRRRRRORRRRORORRORRROOOROORRRRORROORRRRORRRRRORRRRRRRRRROORROROROOOORORRRRRRRORRROOOORRORRROORROOOROORRORRRRROORROORRORRRRRRRRORRROROORORRRRORORRRRRROOROORRRRROOROROORRRRORORROOORRRORROORROORROOOOOOROROOOOROOOOOROROOOROOOOROOOORRORORRORRRORRORRRRORRRORROOOORRROOORORRRORRORORROORRRRRROOROOOOORRORORRRRORRRRORORRORRORRROROROOOOROORROORRRROORROOOROOROOROOOOROORRRROROROORROROOOOORROORRRROOOOOOOOOROOOOROOOORRROOORROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROROROOOOORROROOOOORRROOOOOOROOROOOOROOOROOOOOOOOOOOROOORORROOOOOOROOOOOOROOOROORORRROOOOOOROOOOOOOOOOOOOOOOOOROORROOOOOOROROOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOORROROOOOOOORORROOOROOOOOOROOOOOOOOOOORROOROOROOROOOOOOOOOOOROOOOOOOOOROOROOROOOOORRROOOOROOROOOOOORROOOOOOOOOOROOOOROOOOOOOOROOOOOROOROOROOOOOOOOOROROROOOOOROOOROOOOOOORROORROOOOROORORROOROOOROOORROROOOROOOOOOOORORROOOROOOOROOOOOORORRORRROOORRORROORORROROOOROOOORRRORRORRORRROROROROOOOROROROORRORRROORORROROROROROOORRROOOOROORROROORROORRORRRRRORORRRRROORROORRORORRORRROOOROOOOORRORRORORORRRRRRRORORRORROOOOOOOOORRROORRROOORORROOORRORRRROROORRRROOROROORROROROROROROROOOROORRRORORRRROOOOOROOOROOOROORORRROORORRRRORROOORRRRRRROROORRRROORRROOOOOOOORORORRRRRRRROOORRRORRRRORRRRORORRRROORRRRRORRROOROORRRRRRORRRRRROOROOROROOORRROORORRROOORROROROOOORORRROOROROOROORRRORORRRRROROORRRRROOROOOROORORRORRRROOORORRRRROROORRROROORRRRRRRRRORRORORRRRROOROOOOORORROORROORRRRORRRROOORORRRORORROORROOORROOOOROROROROOOORRROROOOORRROOOORROROROOROOOOOROROOROOOOOOROOOROOORORORRRRROROORRRROOOOROOORORRROROOORROROOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOROORRROORROOOROOOOOORORROOOOOOOOOOOOOOOOOROOROOOROOOOOOORORORROOOORROOOROOOOOOOOOOOROROROOOOOOORRROOOOOOOORROOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOORRROOOOOOOOOROOROOOROROOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOROOOOOROOOOOOROOOROOOOOOOOOOOOOOOROOOROOOOOOOORROOOOOOOOOROOOORORROOROORROOOOOROOOOOROOORRROORROROOROOOOROOOROROOOOOORRORRRRRRROROOORRRROORROROROROOROORRROROOOORORROOOROORRORRORORROROORROOOOOOROROOOOORRRORROOROOOOORROROROOROORRRORROOROORRRRORROORORROORROOOORORRORROOOROROOOORRROORRRROORROROOOOROROOOORRROOORROORORORORORORRRRRRRRROOORRRRROROOORORRROOORRRORORORROORORORRRROOORRRRRORRRRROORORRRRRORRRRORRRRROORROROOORRRRRRRROORROOOORRROORORORRRRRRRRRROOOROOORRRRRORROROORORORRRRROOOROOOORRRRORRORRRRRRRORORRROOORRRRRROROORRRORROOROORORRRRRORRRORRRORRRRRRRRRRRRRRRRORORROORRRROORRRRROORRRORROORRRRRORRORRORRORORRRRRRRRRROOROORORRORROOROORRRRRRROORRRORRROORRORROOORRORRRRRROOOOOROOOROROOOOORRROROROROROROORRRORRRRRRORRROORRRRRRORRROORRRROOOROROOOROOOOORROOOORROROORRROOROOOOOORROROOOROOOOROORORRRROORORRROORROOOOOOORROOOOOORORRROROORORRRROORRROOOOOOOORRRRROOOOOOORORROOOROROOOROOOOOOOORRRROROOOORRROOROROOROOOROOOORROOOOOOOOOOOOORRORRROOORROOOOROOOROOROOOOOOROORROROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOORRROROOOOORROOOOROOOOOOOOOROOOOOORRROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROORROOOOOOOORORROOOOOORROOOOOOROORRROOOOROROOOOOOOOOOOOROROOROOOROOOOOOOROROROOOROOORROROOROOOOOOOOOOORROROROOOOROROOOORROOOOOROOROOOROOROOORORORRROROOROOROORROROOOORRROOOOROORROORROOORORRORROROORROROOOOOOROOOOORRRROOORRORRROOOOOOOROOOOOORORRRORRRRORROOOROOOORORRORRROORORROOORRORORRRORORRROOORRORROROORROROORRRRORRRRROROOROOOORRROORROORROOOOROOORRORROOOORRRRRORRORORORRRROOORRRRRRRROOOOROROOROROOORRRORORRRORORRRRRORRRORRRROOOOORORRRROORRRROOROOROOOOROROORRRRORROORROROORRRRRRRRRRROOORORRROOORROOORORRRRRRRORORRRRRRRRRRRRRRROORRRRORROORRRRROROOORRORRRRRROORRRRRRRORROOORRRORROROOROORRRRRORRRROORROROORRROROORRRORRRRORORRROORRORROOORRORRROROORRRROOOOROOOOORRRRROOOOROROROORROROOORRRRROORRRRROROOORRRRROOOROOOOOROORRORROOROORORRORORORRROORROOOOOOORRORORROOOROOOROROOOROOORORORROOROOROOOROORRRORORROORROOOOROOROOORROOOOROOORROOORORROOOOOOOROORORROORORROOROOROOOOOOORORROROROOOOOROROOOORORORRROOOORROROOOOOOROOOOOROOOOOORROROOOOOOOOOOOROOOOOOOOOOROOOROOOOOOOOOROOOOOOOOROOORRORROOROORROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOROOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOROOOORORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOORROOOOOOOOORROROOOOOOOOOOOORORROROOOROOOROOOOROOOOROOOROOOOOOOOORORROOOORORROOOORROOOROROOOOORROOOOOOORRORRROROOROOOORRRRROORRRROROROORROOORORROROOROOROORORROROOOROOOOROROOROROROORRORRROROOOOOROOOROOOORRROOORRROOROOORORORORORRRRRRROROORROOROOORORORRRRROOOOORRORROOROORRRRRRROROOROORRRORROROORRRORROROROOORROOROROOOROORRRROORROROROROORROROROOORRORROOROORRRORORRRORRORORRROORRRRRROROORRRRRRRORORROOOORORORRRROROROORRRRORRORRRRRRROOORRROORRRRROOOOROOORROOORRORORRRORORRRORRORRRRRRRRORRROROOORRROOORROORRROOORRROROOOORORRRORRORROOOOOORRORORRROOOOORRRORORORRROROOOOOOOORROROORRRORRROORROOOOOOOOORRORROOORRORRRRROOORRRRROROOROROROOROORORRRRRRRORRRRRORRORORORORROROROOOOROORROROOORRRRRRRRRRRROOORRORRRRORRRRORORRRROOOORRRRORROOOROOOROROORRRROROROROORRROOROROOOORROOOROOOOOROOROORORROROORROOOOORROOORORROOROROOORROOROORROOOROOOROOROOROOROORROORROORRORRROOOORORORROOORORORROOOOOROROROORROOOORROOORROOROOOROROOROOOOROOROOOROOOOOOOOOOROROOOROOOOOOOOOOROOROROROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOROOOOOOOOOROOOOOOOORORROOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOROOOROOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOROROOOROOOOOOOROOOOROROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOORROOOOOOOOOOROOOOOROOOOOOOROOOOOOOROOOOROOROOORROROROOOOOOROOOOOORRROOOOROOOROOOOOOOOOOOOOOROOOROORORORRROORRROROOORROOOOOORORROOOOORROROOORORROOORRROOORROOORRROOOOOOOORROOROORORROOOORROOOOOOOOOOORROORROORROORRORRRROORROORROOORRROOORRRRORRROOROROOROOOORROORORROOOORRRORRORRROOOOOORRROROOROOOOROOROORRROROORROOORRROOOOORORORRROOOORRRRROROOOORROORORORROOOORRORRORRORORROORRRRRRRRRRROOROOROORRROROORRRRRRRRRROORRRRORRRRORORRROORRRRORRORORORRROROROOOOROROROROOORRRRORRRORRROORORROOORORORRRORRORRROOOROROORRROORROROORROOOROOROROORRRRRROOORRRRORORORRROORRRORORRRORRRRORRORRRROROORRRRORRRRORRORRRRROORRORRRRRRROORRORRRRRRRORRRROORRRRRROOORRRRROROOORRRRORRROOORRROORROORORRRORORROOORRRORORROOORRRRRRROROORRRRORORORRROOOOROOOOORRRRROOROORORRROROOOROORORORROROOOORORROROOROORRORROOOORROORROORRORRROORRROOOOOOROROORROOORROORROOROOOROOOOROOOORRORRORRORORRORORROROOROOOOROOOOOOOORROOOOROROOOOROOOOOROORRRROOOOOOOOOROOOOOOOOOROOROOROOROORRROOOOOROOOOOROROOOOOOOOOOROOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOORROOOOOOOROOOOOOOOOROOOOOOOOOROROOOROOOROOOOROOOROOOOOOORORROOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROROOOOOOOOOOOOOOOOOOOOOOOOROOROOOOROOOOROOOOOOROOOOOOOOOOOOOROROORROOOOOOOORROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOORROOROOOOORROOROOOOOOOOORRRROOOROOOOROOOOOOOOOORRROOOOROOOOOROOOROOORORRROOOOROOROOOORROOOOOORROOOORRRRROORROOOROOOROOOROOOORORRRRRORRORROOOOROROOROROOOORRROOROOORRORROOOOROOOOROOOOROOORORORROOOOOOROROROOROOOOROORORORROORRROORRRROOORRRRROOORORROOROORROROOOOOOOOROOORROORROOORRRROOOROOOROROOROROROOOROOOOORORORRRRRRORRRRROOORRRORROOORROOROROOOOROORORORRROROOORRROROROOOOROOOOOORRORROROROORRORORROOROOROROROORRROORORRRRORRRRRORROORRRORORROOOOORRRORROOORROORRRORRORRRRORRRORRRRRRORROROORORORORROOORRRRROOOORRRRROORRRRRRRRRORRRRRROOOROORORRROOOROROOOOORORORORRROOROOOOORROOROROOOOOOROOORRORRRRRRORRORRRORRORRORORRROORRROOOOORRORRORORRRRRROOORROOOOORRRRORROORRROORORRRROORRRRROROOORROOROORRRRORRORORORRROROOROOOOOORORROROOORROROOOOOOOOROORRORRORORRRROORRORRROROROOROOOROROORRROOOROROOOORRORROORROOOOROROROROOOOOOROOOOOROOORRORROOOOOOOOOORORRRORRRROOOROORROORROROORROOOOOOROOOOOOOOROOROOOOOORROOROOOROOROOOOOOOOOOROOROOOOOOOOOOOROOOOOROOROOOROOROOOROROROOOOOROOOOOOOOROROOROOOOROOOOOROROOOROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOROOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOROOOOORROOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOROOOOOOOOROOOOOOROOOOOOOOOOORRORORROOOOOOORROOOOOOORORRRORROROOROROOORROOROOOOOROOOOOOOOORROOROROROOOOOROOORROROROOOROROOOOROORROOOOOOROROOOOOROOOOOOOOORROOOOOROORORROORROOROROOORRROOOORRROROROOOROOOOROOOORRRORORRRORROOOOORORRORROROROOROOROROOOOOORORRORRROOROOOORRORORROROORROOOORROORRRRRROOROROOORRORRRORORROOROORRRRRRRRROROROROROORRRORROOROORORRRROOORRROORORRORORRRRORRRRORROORRRORORORRRRRROORRRORROOOORROROOORORRORRORORRORROORRROROOOORRORRRRRRORRORORORRRRRRORRORRRROORRORRRRRRROORRROOOROROROOORRROOROOOOOOORROORORRRRRRRROROOORORRRROOOROORORRRROROORRRRRORRRRRORROROOOOORORORORRORORRRORROROORRRROORROOORRRROOOROOORORORRRRRRORRORRRROOOORROOOROOROOOORROROORRROORROROORRORROROROOORROORRRROORRRRRROROOOOOORRRORROOORROOOORRROOORRRORRROROROROORRROOOOOROOOOROROOORROORROROOROROOROOOROOOORRROORRRRRORRRORRROOOOORROROORROORRROOOOOOROOOOROOOOROROOOROOOOOORRROOORROOROOROOORORRROOOOROOROOOOROOROOOOOOOOOORROOOOROOOOOOOORROOOOROOOOROOOROOOOOOOROOOOOROOOOORROOOOOOROORROROOOOOOOOOOOORROOOOOOOOOROOOOOOOOOORORROOOOOOOOOOOOOOROOOOROOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOROOOORROOROOOOOOOOOOOOROOOOROOOOOOOOOOOROROOROROROROORROOOOOOOORROROROOOORROOOROOOOOOOOOROOORROROOOOROOOOOOOOOOOROOOROORROOOOOOROOOOROOOOOOOOROORROOROOOOOOOOROROROOROOORRRORRROROOROOOROOOOOROOOOROOOOOOORRROORROOOOOOOROOROOOOOOOROOROOROOOOORRROOOOOOROORROOORORRRROOOROROOORRRROROORROOOROOOROOROROROOORRRORRORORROORORRRORRRRRRRRRRORORRROOOORRRRRROROORRROROOOORORRROOORRORORRORRORRRORORORRROORRROROORRRRORORRRRORORORORRRORRRRRRROOROROORRRRORORORRRROOOOROOROOROROOORRRRRROORRRORORRROORORORRRRORROOOOORRRRROORORROOORRRRRRRRRRROOROOORRRRRRORRRRROROROORORORRRRRRRRRRRORRRRORRRRRORROOOROORRROROORRRORORRORRRROORORRRRORROORRRRRORRRRRROOORRRRROOROROROORRRRORORORORRROROOOROOOORRRRORROORRROROROORRORRORRRRROOORROOROOORORRRRROROOOOROOROROOOROORORORRRRORROOROOROOROOOOORRRORROOOOOOORORORROROORORRROOORRRORRRRRROORRROOOORROOOROOOOOROORORORRORRORROOOOROOROOOOROOOOOORROORRRROOROOOOORRORRRORROOROROOROOROOOROOOROROOORROROOOOOOROROOORROOOOROOOROOOOORRRROOOOOOROOOORORROOOOROROOOOOROOOOOOOOOOOOOOROORROOROOROORROROOOOROOOOORRROROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOORRROOOOOOROOOROOOOOROROOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOROOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOORROOOROOROOOOOROOROOOORORROORRORORROROOOOROOOORRRRRROROOOROOOOOROROOOORROROOROORROROOOOORRROOOOROOOOORORRRORROORRORROOOOOOOOOOOOOORROORORRROOOOOROROOOOOORRRORORORROOORROOOORRROROOORRRROOOOORORORORRRRORRROROROROROROROOORRRROOOORORRORRROORRRRRORROROROROOROOOROOORROOOOROOORRORROORROROOORROOORRRORORRRORRRRROROROORRORORRRRRRRRRORRRRRRROROROROOROOOORRRORRROOROOOORROORRORRROORORROORRRROOROROOORRRRRROOOOOOOORRRROROROOOOROORORRRORORORRORRRORORORRROORORRORRRRROORROROROORROOROORRORRRRORRORRRRORRORRRORRORRRRRORORORRRRORRORROROORRRORRORORRORORRRRROORRRRORROROOOOORRORRRROROORRRRRRRRRORORRROROOOORORRORRORORORROROROOOROOOOOROORRRORRRRORRRROOORORORRRRROORRRRRRRROORRROOOORRORRRRRRROOOROOORRRORRRRORRRROROROOOOOOROOOOOROOOOROORROOROOORRROOOOORORROOOOORORORRORORRRRORRORRROOOOOOROORROOOROOOOOROOOOROORORROOOOORORROOROROROOOROOOOORRORROOROROOOOOOOOOOOROOOOROOOROOOOROOOOORRRRROROROORORROOOOOOOOOOOORRROOROORROROOOOOROROOORROOOOOORROOOOOOOOOOOROOOOOOROOOOOOOORORROOOOROOOOOOOOROOOOOOOOOOOOOROOOOROOOROORROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOORROOORROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOROOOROROROOOOOOOOOOOOOOOROOOOOOOOOROORRROOOOOOOORROOROOROROORORORRRRORROOOOROORORORROOROOOROOOOOOOOOOOOOROOOOROOORROORROROOOOOOOOROOORRRRRORRORRORORROOOROORROOORROOROOROORRRRROOOROOORORROOOROOOROOOORORROROOORROROOROROOOROORROORROROOOROROOORRORRORORORORRROORROORORRRRRRORRROOROOORRRRORRORRORRRORRROORROOORRRRRRRORRROORORRRRROROORRRRRORORRRORRRRROROORORRORRRRRRORRRRRRORRRROROORRORRRROROOORRRRRRROROROOOOORRORORORORORROORRROOORRROOOORORORRRORRRRRORROROOORRROOROORRRORRRRRRORRRROOOOROROROROOORRRRORRORRRRRRRRORRORRRRORRRRROROORRORRRORRRRORRRRRRORORORORRRRRRORRRRROORORRRRRORORORROOORRRORRROORRRRORRRRROORRROROORORRORRROORORRROROORRRRRRROROROORRRROOOOROOORORROROORRROOOORRORRROOOORORROORRRORRRRROROROOOORRRRORRROROOORORRRROOOOROOORRRRORORRRROOOROROROROOOORORROOROROOOOOOOROOOOROOORORRRRORROORROROROOROOROROOROROOORRRROROOOOOOOOROORROORRROROOROORROOORROROROOOOOOOOROOROOORROROOROOROOOROOOROOOROOORROOOOOOOROORORROOOOOOORRROOOOOROOOOROOROROOOOOOOOOOOOOROOOOOOOOOOOORROOROOOOOOOOOROROROOOOOROOOROOOORROOOOOOOOOROOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOROOROOOOOOOORROOOOOOOOOROOOOOROOOOOOOOOOORORROOOOOOOOOROROROOOOORRROOOROOROOOROOOOOROOOOROOOOOROROOOOOORRRORROOOROOOOOOOOOROOROOORRRROORORROOOOOOOOOOOOOOORROOOROOROOOOOOOOROOORORRROOOOOOOOROOOOOORORORRROOOOOROOOORROROOORRROORROORORRROOOROROOOROORROOOOOOOOROOORROOROORORRROOROROOORRRRROORRRRROROOORROORORORROOOROOORRROROROROOROORORRORRORRORRRRRORRORORROOORORRRROROOORRRRORROROROOORROROORRRORRRRRROORRORRRROORROROOOOOOROORRROORRORRORORROOORRRRRRRRRRORRRRROROOORRORROROORROOOORRRRRORROOOROOROOOORORROROROORORROOOORRRORRORRORRRRROORRORORROOOOROROROOROORRRRROOOOROORROORORRRRROORORRORRRRRRRRRRORRORRORORRRRRRRRRRRORRORORRROOOORORRRROOORORROORRRROROOORROOROORORRROROROOORROROOOOORROOOOROORRROORROROOOOORRRRROORRROOOOROOOOORORORORROROOROROOOOOOOOORROROORRROROROOOOOOROOORORROORORRRRROROROOORROROROROOOROOOROOORRROORRRROROROOROOROORRRORROOOOORROORORRRRROOOOROROOROROOROOOOOROOOORORORRRORROROOOOOOORROORORRRRRROOORROOOOOOOOOOROORROOOOORRORRROROORRROROOORROOROOROOOOOROOROOOORRORROROORROROOOORROROORROROOOOOOOOOOOORROOROOOOOOROORROOROOOOOOOOOOORROROOOOOROOOOOOOOROOOOOOROROOOOOOOOOOOOOOOROOOOOOOROOOOROOOROOROOOOOOOOOOOOROOOOOOOOOOOOOROROOOROROOOOROROOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORRRROOOORROROROOOOROOOROOOOOORORRORROOOOOOOOOOOOORROOOORROORORROOROOOOOROOOOOROOROOOOOOROORRRROROOOOOOROOROOOOOORROROORRORROOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOORROROOOOOOOOOOOOROOROOOROOROOOROOOOOORROOOOROROOROOOOOOROROROOORROOROOOOORRRORROOOOOOORROOROORROOOOOROOOOORRORORRRROORRRRORROROOOOORORRROROOOORORROROORORORRRRORORROROOROORORRROOOORORRRORRORRRRRROORORROROROOOROROORRORROROORRROOROORORORRORORRRRRRRORROOROORRORRROOROOOORROOOOOOROOORRRORRRROROROROORROOORORRRRRRORRROOROROORRRRRRORRRRROORORRRORRORRROROROOORRRRORRRRRRROORRRRROOOORROROORORROOORORORROORRRROOROORRRORRORROOORORRRORRORORRRRRRORORRRORRRRROROORRORRRROOOROOOROORORORRORORRROROOORRORRORROROROORRORORORROOROROORROROOORRRRROOOORRRROOROOROORORRRRRORROOORORORRRRRRORORRRROORRRROOORROOOORROORROOOOOOORRRRORRRRRORROROROROOOOROOOROOROORORRRRORROROOOROOOOOOOORORORRROORORRRORROOROOORORORROORRRORRROROOROORRROOOORROOOOROOOOOROOOROOORORROOOORRORORORROOOOOOOOROOOOOOOOOOROOOOOORRORROOROOOOROOROOORROROOORROOOOOOOROOROROOOOOOOOOOOOROOOOOROOOORROOOOOOOOROROOOOOOOOOOROOROOOOOOOOOOOOROOROOOOROOROOOOOOOOOORORROOOOOORROOOOOOOOOOOOOOROOOROOROOOOROOOOOOROOOOROOOROOORORRROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOROOOOOOORORROOROOOOOOOROOOOOOOOOOOOORORROROOOOOOOOROOROOOOOOOOOOOROOOOOOROROOORORROOROOORORROROOROOOOOOOOOOOOOOOOORROOROOROOORROOROOOOOORRROOOOORRROOROOOOOOROOOOOORRROOROOROORROROORROOROROORROOOOORRRRORROOROOOOROOOROOORROOOOORROROOOOOROROROOORRORRROOOROROROOOOOROROOOROORRRROROORRROOORRROROROROORORROORROOOORRRORRRRRRRORRRORRORROROOOOROOROOOOOROROROOOOOORORRROOORROOORRORRORRRROOOOROROORORRORRRORRORRRORROOROOOORRROORROOROOORRORRRRROORROOROORRRROROOOOROROOOOOORRRORORROOOOOOOROOROOOORRORRRRRRORRORORRORORRROORRRORRRRROOOOOROROOOOOOROOOOROORRRRROOOORRRRRORORORRRRRRORRRRRROROOROORRRRRORRROROROORRORROORRRORRRORRRRRRRORRORRORRRRRRRRRORROOOOOOOORORRRRORORRRRRRRRORROOORORRRRRRRRRRORRORRRRORRRRROOOORRROOOORRORORROROOOORRRRRORRORRRRRORROOORRRORRRRRORRRRORROORRORORROOOORROOOORROROOOORRRORRRRORRRORRROORROROORORRROOORROORORRRROOROROROROORRROORROROOOOORROROOORRRROOOOROROOORROOOOORRORORORROOROOOROOOOORROOOOORRROOOOOROORRRRORRRRROOROOOROROOORORORORORROOOOOOOOOOOOOOROOOOOOOOOOROOROOOOROOOOORRROOORRROOOOOOROROORRORROOOOOOROOOOOOOOORROROOOROOROOROOOOOOOOOOOROOOOOOOOROOOOROOOOOOOOOOOORRROROOOROOOOOOOOOOOOOOOOROOOOOOOOORROROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOROOOOOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOROROOOOOROOOOOORROOOOOOOORROROOROOROROOROROOOOOORROOOOOOOOOOOOORROOOROOOROROOOOROROOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOROROROOOROOOOROOROOOROORROORRROOROORROOOOOOOOORROOOROOROOOOOOOOROORORRRROOOOROOROOROORRRRROROOROROOOOOOOOORORRRROROOROOROOOOROOORRRORRROOOOOOORORORROOOORRROOOOORRORRRRORROORORRORRORRROOOORORRORROORRRRRORROORORORORRRRROOORRROORRRROROOOOOORRROROOORRORRORORRROORRROOROROOOOORROROROORRROOORRRORRRRRORRRORROOORROORROROORROROOORROROOOROORROOOORROORRORRRRRRORRRRRROORRORORRORORROORRROORRORRRRRRRRRROORORORROORRROORROOOOORORROOOOORORRORRRRRRRRRRROROROOOOORROORRRROOORRORRRORORRROORORORROORORRRRRRRORRRORORRRRORRORORRRRRRROOORROROROORRORRRRROOOORRRRORRRRRORROORRORRRROOORORROORROOORRORROOOOORORORROROROOOORORROORORRRRRRROOOORRRORROORRRROORRRRRRROOOORRORORRRROROROOOROROROROROROOOOOOOOOORRRORORRORROORRROORROOROOOOROROOOOOOOROORRRORROOOOROORRRROROROOOOOROORRORROOOROOOORORROOROOROROOORROROOOORRRROOOOOROOORROORROROORROOOORROOROROOOOOROOOOROOOOOROORROOOOOROOOOOROROOOOROOOOORRROROOOORROOROOROROOOOOOOORROOOOOOROOOROOOOOOOOOOOOOOOROORROROORROOOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOORORROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRROOOROROOOOOOOOROOOROOOOOOOROOROOOOOOOOROOOOROOOROOOROOOOOOOROOOOROOROOOOROOORROOOOORROOOOOOOOOROOOROOOORRROOROROORROOOROOORRORRROROORROROOOOROOOROOOOORRORRRROOROROORRROOOOOOROOOROOROOOORORORRRROOORROOOROOROOROROOROOOOORROORRRRORRRRRROOOORORORROROOOROORRRRORORRRROORRROOOOORRRRORRROORRROOROOOORROROOOROORORRRRRRRRRORRRRRORRORORRRORORRORRROROOOOORRROROROROOORRRROOOROORRRRORORRRORORRRORRORRRRRRRRROROROOOORRROOOORRRRRRRRORRRRORRRRRRRRRORRRRRRRORROORRRRRORORORRROORORRRRROOOOORORRRRRRRROOORROOROOOORRROORRRORRRROOOROROOORRORRORORRRROOORRRRROOOOROOOOROROORORROROOROOORRRRRRRROROORRRROROROOOORORORRROOORRRRRRORORORRRROOOORORORORORRRROORRRRRRRRRROORRRRRORRORRROOORRRRROROOOOROROOORRRRRROORRRROORORORRORORRORRORRORROOROOOOOOOOROROOROORRRROROOROROOOORRORRRROOOROOROOOOORRORORORORROORRROORRRORRROOOORROORORROOROOOOROOOOOOOORROROOOROROOOOROOORRRORROOOROOOOOOOOOOOOOROOOORRROROROOOOROOOROOORROOOOOOROOROOORROROOOOOOOOOROOOOROOOROOORRROOOOOOOROOOOOOORROOOOROOROOOROOOOROOOOOOROOOROROOOOOOROOROOROOROOOOORROOOOOOOOORROOOOROOOOROOROOORORROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOROROOOOROOOOOOOOOOROOROOOOOOROROOROOOOOOOOROOOOOOOORORORRROROOOROROOOOROOROOOORORROORRRROOOOOOROROOOOOOOOROOOROOROOOOROROROOORRROOORRROORORRORROOORROOROORROROORROOROOOOROROOROORROORRORORRRORROOROROOROOROROORORORRRRROROOROROROOORRRRORORROROORRORRRROOROOOROROORRORRRRRROOOOOOOROOOROORRRRRORRROORORORROORROOROORRRORRROOOOROOOOROOOOOROROROOROOORORRRRROOOORORRRRRRRRORRORRROOOOOOROOOORRRORORRORRRRRRORROROORORORRORRRORRORRRRROROROOROROOROROROOROROORRRRROROOOORRRRRORROORRRRRORROORORRRRRRRROOOORRORROROROROOORRRRRROOOROROROORRORRROOROORORRRROROORRRRROROORRORRRRORRORORORROORROROROOORRRRORROOOOORRORROROROOORRRORRORRROORORROROOROOORRROOOORORRRRORROORRORRRORRRRROOROOOORROROOORRRRRROOORRRROOOOROORROOORORORORORROOOORRROOORRRORROORORRRROORRRRROORRRRROOORRRRROOOOOOOORORROOORRRORROOROOROOOROROROOOOROOOOROOOORORROROROORROOROOOOOOOORROORORROOROOOOORRORRROOOOOOOOOROOOROORROOORROOROROOOOOOOOROROORORRRROOOOOOOOOROOOOOOOOORORROOOOOOOOOROOOOOOOOROOOROOOOOOOORROOOOOOOORROOOOOOOROORROOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOROOOOOOOOROOOOOROOOOROOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOROOOROROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROROOOOOROOOOORRROOOOROOOOROORROOROOOROOOOOOOOOOORRORROOOROOROOOOROOROOORROOOOOOOOOOOOOOOOOOOROOOROOOOOORROROOOOOROOOOOOOOOOROOOOOOOROOOOROOORORRROROROOROORROORORORORORORORRRROROOROOOROORROOROOOOOROOOORROOORORRRRORROOROOOOROORRROORRRRROOOOROOORROOORORRRRORORORRORROOOOROOOOROOROOOROOOROOOOROOORROORROORRRORROOORORRROOROOOOOROOROOOOOORORRRRROOORRRROROORROORRORRRORROROORRROOORORRORRORRRROORORRRRORRORRORROROORROORRROORORRROOROORRROORORRROORORORORRRROROROOROOORRRORRRORRORORRRRRROROORRROORORRORRRRRRORORRRORRROROOROOROOORRRRRROOOORROOROORORORRRRORORRROROROROROOORROOROORRRRRRROORROORRRORORRORROORRRORROOOOOROORROORRRRRRORORRORRRRRRROOOOORRRRORRRRRRRORRRRRRRORROROOROOROROOROORORORROOOOOOORORRRORRORORRRRROROORROOOOROROOOORROOORROOOROOOOOROROOOOROOOORRRRORRROORRRORRRROOOORROROOORROOORROROROROROOROROROOOROOORROOOOROOORORROORROOOOOROOORRRORROORRORROROOOOROOOOOOOOORROROOOORROOROOOROROROOOOORROOOORRROOOROOOROOROOOOOOROOOOOORROOROROROOOOOROORRROOOORROOOROOOOOOROOROOOROOOOROOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOROOOOOOOROOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOROROOOROOOOROOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOROORORROOOROOOOOOOOOOOOOORROROOROOOOROOOOOOOROOORROOOROROOOOOROOROORROOROROROOOOOROOOOOOOOROOOOOOOROROOORORRROROOORROROROOOOOOOROOOOOOOOOOOOROOOORORROROROOOOORORROOROROORRORRROROORROROOOOORORORORROOOROOOOOOORORRRRROROOOROROOOOOORROOROORORROOOOOOOROROOOORROORRRRRROOOORRROOOROORRRRRRROROOROOOROOROOROORROROOOOORRORROORRRORORRRRORRRROOOORROORRORORORRROROROORRORRRRROOOOROOOOROROOOOROROROORORRRRRRRRRRRROORRORORROORRRRRRROOORRROROROORRRRRRRROORROROORRRROOORRRROORORRRORRRRROOORRRROORRRRORRRRRRRROOOORROORRRROOORRRORORRROOORRRORRROROOORRRORRRROORRORORRORORRRRRORROORRRORROORRORORORORRRORRRRRROORORROOORRRRRROROOROOOOORRRORRRRRRROROORRRROROOROROORORROORROORROOROORRRRROORROROROORRRORRORORROOOOORROROROROORORRRROORRROROROOROROOOORRORROOOOORRROOROORROROOORRORORRRRROOOROOOOORRRRRRROORRROROORORROROORRRROORRRRRRROROROOOROOROOORORRROOORROROOOOOOROOORROOOORRROROOORROROROROOOOROROOOOOOOROOOORRROROOOOORROOOOOOORORROOORROOOOOOOROOOOOOROOOOOORROROOOROOROROROOOOOOOROOORORROORROOOROROOOOOOOOROOROOOOROOROOOOROOOROOOOOOOROOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOROOROOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROROOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROROOOOORROOOOOOOOOROOOOOOOOROOROOROOROOORORORRROOROROOORROROROROOROOOOROOOOOOOOOOOOOROOROOOOORORROOOOOOOROOORROOOOROOOOOOOOROOROORROOOOROROOROROOOOOORORORRROOOOORRROOORROORRORROOOOORORORRRORORROROORROOOROOROROOOROOORROROOOOROROOROROORORORRROROORORROOROOROOROROOOOROROROOOORRORROOOORORRRROOROOOROOORRRRORRROORRORROORROROOORROORRROOOOOORORRROOROROROOORORORROORORRORORROOROOROOROOROOORRRORRRRROROORRRORORRORORRORORRRORRROOROORRORRORRRORRRRRROORROOORRORRRORRROORORORORRRRORROORRORORORROORRRRRORRRRROORROORRRORRORRRRORRROROORRRRRORRROROROROOOROORROORRRRORROORRRRORRORROORRRORRROROORRRROROORRRORORRRROOORRROOOORRORORRRRRRRORROORORORRROOROROORRROOORRORRROOOOORROROROOOOORRROOORRROOROROORORROOORRROROOORRROOORRROORORROOOROOOOOROOORRROROROROOOOOOOORROOORORORORORORORRRROORORORRORRROROOOOORRORORRRROOORROROOOOOOROOOROOOROROOORRRROORRORRROOROORRRORORRROROORORORRROROOORORRROORRRRROROOOROOROROOOOOROOROOOROOROOORROOOOOOROOOOROOROOOROOOOORROROROROOOROORROOORRORROOROORRRRROOROOOOOORROOOOOOOROOROROOROROOOOOOOORROROOOOOROOROOROOOOOOOOOOOOOROOOOOOOOROOOOOROOOOROOROOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOROROOOORROOOOORROROOOOORROOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOROOOROROOROROOOOROOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOORROOOOOOROOOOOOOOROOOOOROOOOOOOOOOOOORROOROOOOOOROOOOOOOOROOOOROOOOOOOOOOOROOOOOROROOOROOROOOROOORROOOROOORRRORROOROROROOOOORROOROORRRROOOOORRROORROOROORORRRORORRORROOOROOOOOORROOOORRRROOROOOOOORRRROOORROOOOROOOORRORRROORROROORROORORORRORRRRRORROORORRROORORRORRRORORRRROOOOROOORROOOORRROOOORRROOORRRRORRRRORRRORRRRRORRORRORROOROOOROORORRROOOOOORROORROORRRORRORROOORRROROORRRROOORRRRRRRRORORRORROOOOORRRROORRRROORRORRORRRORRROROROOROROOORRRRRROROROORORORORRORRROORORROOROROOOROOORROORRORRRRRORRRRROORROROORORRORRRORRROOOROOORROROOORROORROOROORRORORRRRRRRRRRROROORRRRRORROORRROOROOORRRRRORRRORROOORRRRRRRROORRORRRRRRROROROROORROORROORRRROORROROOORRRRRRRORORRROOROOOOROOORRRORRROOOOORROROORROROROORORROORORORORRRROOROOOORRRRROROROOROOOROROORORROORORRROOROORORRORRROOOOOOOROORRROOORORORRRRRRRORORROROOOROROROOOROOOOOROOROOOORROROROOOORROROOOOOOOORRROOOROOROOOROROOROOOOOROOOROOROOOOOOOOROOOOOORROOROOOOOOOOOOROOOOOOOOOOOOORROOOOORRROOOOOOOROOOOOOROOORRROOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOROROOOOOOOOOROOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROROOOOOOROOORROOOOOOOOOOOOOROORROOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOROORROOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOORORORROROOORROOOOOOROOROROOROOOOOOROORROOOOOOROOOOROOROOORORRROOOROORORROOOOROOORORORRRRROROORRORORRRRRORRORRRRRRRORRRROROROOROROOOOOOOORRRRRROOOOOROROOROOORRROOOOORRORROOORRRRORRRRRRRORRORROROROROROORRRORRORROROOOROORORRRRROORRROOORRRRROROOOOOOOORORRRROORORRROROOROROOOROORRROROORRROROORORRORORROROOORRORRRRRROOOORORRRRRRORRROORRORORORRRRORORRRORORRORROORORRRRRRORRRRORORRRRRRRRRRROORORORORRRORRRROOROOORRRRROORRRRRRRRORRRROROROOORRRORORORORROORRROROORRRRRRRROROROORROROOORRORRRRORORRRRORROORORRRROROOORORRORROOROORRRORRORORRROOROROOORRRRRRRORROORRRRRRORORRRORRRRRRORRORORORRRORRRORRORROOOORRRORORRRRRORROOOORROOOROOOOORRROORORORROORRRROROOOOORORRROROROOOORROORROOOOORRORRRORRROORRRROORORRRROOOROOORRORROOOORRORRORROROROOOORORRROOOOOORORROOOOOORROOOROOOORROROOORROOOROOOOOOOOOOROROOOROOROROOROOOOOOROOOROROOOROOOOOOROOOOOOOROOOOROOOOOOOOOROROOOOOOROOOOOORROOROOOOOOOORROOOOOORRORORROOOORRROOOROROOOOOROROOOOOOOOOOROOOOOOOOOOOROOOOOOOROORROOOOROOOOOROOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOROOOORRROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOROROOOOOOOROROOOOOOOOOOOOROOROOROOOOROOROOOOOOOOOORORROOOROOROOOOORROORROOOROOOOOOOOOOOROROOOOOOOOOOOORROOOOORRROROOORRRROROOOROROOOROOOOROOOROOORRORRROORRROROROOOOOORRRROOOOOORRORROORRORRRRRROORRORROOOROOROOROOOOOOOOOOORROROOOOROOOOOOOOORRRROOORRORRRRRRORRRRROOOORORRRRRROOOROROORRRORORROROOORORRORRORRRROOOROORORRRORORORRROOROROORROOROOROORRRROOORRROROOORRROORRORRORORRRRRORRROROROOOOOROROOORRORRORRRRRORROORRROORRORRRRRRRRROOOOORRRROORRRRRORRRRRRRORRORRRRORRORRROOOORRRORRRRORRORRRRRRROROORRRROORORRRORRRRRRRRORROORRROORRORRORRRORRORRORORRRROROOOOROOOOORRRORORORRRORRRRRORROROORRRRORORRRORRRROORROOORRRORRORRRRORRORRRRROOORRROORRORORORROROORRRORROOORRROOORORRRROORROORRRRORRRRRRRRRRRRROOORROROOOROORORRRROROROOOORORROORROROROOORRRRRORRRORORORRORRRROROOORRROOORORRRROOROORORRRROOORRRROORROOOOORROROOROROOROOOROOOOOORROROORRRRORORROROROOROOORROOORORRROORRRROOOROOORRRRROOORROOROOROOROORRRROOROOOOOOROOOOORROROOROOROROOOOOROOOOORROROOOOOROOROROROOOROOOOROROOOROOROORRORROOOORRROOROOOOOROOOOOOOOOOOOOOORROOOORRRROOORORRROOOOORROOOROOOORRRORROOOOOOROOOOOOOOOROOOOOOOROOOOOOROOOROOOOOOOOOOROOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOROOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOROOOOROOOOOOROROROOROOOOROOOOOOOROROOOOORROOOOROOOOOROROOOROOOOOROOOOOOOOROOOOOROOOOOOOOOOOOOROOOROOOOOOOROOOROOOOOOOORROOOOOROOROOOROOOROROOOROROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOORRRRRROOOOROOORRROOROOROOOOORRRRROOOOOROOROOOOORRRORROROROROROOOOROOOOOOOOOOOOORORRROOORRROOOROOOOROOOOOOORROROOOOORRRROOOORROOOORORRROOROROOOORRRORRROOOORRORRRRORRRORRORRROOOROOORORRRRROROORORORRRROORRROORROOORRRRORORORORRRORORRRORORRORRRRRRRROOORRRORRRRORROOOORRRROORRORORRRRORROORRRORRROROORRROROOORORROORROORORRRRORRRRRROORRORRRRRRROORROROORRORRROOORROOOROORRRRRRRROORRROORORRRRRORRRROOOOORRRRRRORROOOORRRORRORRRRORRRRRRRROORRRORRRRORROOORORRRORRRORROORORROOORORORRRRRRROORORRRORORORROOORRRRRORRRROOORORROOOOOOORORRRRROOOOROORRRRORRROOROOOOROORRRRRRRRORRRROOOORRRORROROOORRRROOORORROORROROOORRRORRRRRRRROORRRRRRRROROOROROORORRRROOROOOROOROOOORRORORROORORRORRROOORORORRRRROOOORROOOORORRORORORRROOOROORORROOOROOORRORRROOOROORRROOOOOROOROOROROROORORROOOOOOROOROOOROOROROOOROROOROOOOOROOORRORORRROOROROOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOROOOOOOOROOOORROOOOOOOROOOROOOOOOOOOOOOROOOOOROORROOOOOOROOOOOOOOOOOOOOORROOOOOOROOOOOOOROOOROOOOOOOOOOROOORROOROOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOORROROOOOOOOOOOOOOOOROOROOOOOROOROOROOOOOOOOOOOOOOOOOOOOORROROOROOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOORROROOOOOOOOOOOROOOOOROOOOOOROOOOROROOOOOOOORROOORROOORROORRROOOOOOOOORROOOOOOOOOORROROOROOOORRRRROOOROROOOOORRORROOORROOORRRROROROROOOROROOOORORROOROOOOOOOOROROOORORROROOOORORRROORRROOROROOORRRROROOOORORORRORRRRROROROROROOOORROOORRROROROOOORROORORROOROOORORRROOORORRROOORROROORRRRORORRRROOOOORORROROORROOOOOROORRRROROOROROROROORROORRROROOORRROROROORRROOORRRRRORROOOORORORORRROORRRRORORRRRROORRORRRROORRORRORRORRORROORROROORRRORORRORRRRORRRRRROROOROORROORORRRORRORORRRRORROORRORRORROORRORRORORRRORRROOORROORORORRRRRROOOROOORRRRRRRRRRORRRROOOROOOOROORRRRRRRRRRRRORRRORROROOOOOOOORRRRORRRROOOOORRRROOROORROORRRROORRORORRRRORRRRROROOROROOOORRRORRRRRRROORRRRRORORRORRORRORRRRORRRRORORROOROOOROOORRRORROOROORRROORRROROORORORRORRORRROOOROOOORROORORROOOOROORROOOROOOOOROOOROOORROOOORRRROOROOOOOOOOOROOOOROORROOORROOROORRROOOOOOOROOROOROOOOOORROOORORROOOOOORRRROOROOOOORROORRRORROOOROOOOROOROOOOROROOOOOOOOOOORROOROOOROROROOROROOORROOOOROOOOOOOOOOOOOOOOORORROOOOROOROROOOOOOROOOOROOOROOOOOOOOOOOOOOORROOOOOOOOOOROOOOROOOOROROOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOORROROOOROOOOROOOOOROOOOOOROROOOOOROOOOOOOOOOROOOOORORROOROOOOOOOOROORROOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOORROOOOOROOOORRROORRROOOOOOROOOOOOROOOOOORRRRROOOOOOOOROROOOOOOOOOOOORRRRROOORRROROOOROOROOOROOOOROROOOORRRORROROOOROORROOORORROROROOORROOORORRRROOOROOROOROOOOORRORORROOORRRRORROROOROROROROORRORRORORORRROOOORORORRORRRRORRRROROROROOORORRORRRRROORRORRRORROROOOROOOROORRROROOOOORORORORORROOOORRROORRRROROOOORRORORROOROOORORRRORROOROORORRRORROOORRRRRRRORORRRORROORRROOOROOROORRRORRRORRROORORRRRRORRORRRRORORRROOOORRRRRRRORRRORRROOORRORRORROOROOOOROOROOOOORROORRROORORRORROOORRORROOORRORORORORORRRRRROORORRROROOOROOOROROOORROORORRRROOORORROORORORRRRORROORRORROOROOROROOROROOOORRROOROORRROORROORROOOORRORORORRRRRROROORORROOOORRRROOOROOOORRROOROOORRROOOOOOOOOOOOOROORORORORORORORORRRORRROOROOOORORROOOOOOOOOROOOOOROOROORRRORORORROORRRROOOOOOOORORRRROROOROOROOORROROOROOORROOORROROOROROOOOOOOROOROORORRRROROOROROROOOOROROORROOROOOOOOOOOOORORROOOOOOOROOROOOOOOROOOOOOOOOROROROORRROOOOOOOOOOOOROOOOOOOOOOOROOROOROOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOROOOOOOOOOOOOROORROOOOROOOOOOORRROOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROROOOOOROROOOOROOOOROOOOOOROOROOOOORRROOROOOOOOOOOOROOOOOOROOOORROOROOOROROOOOOOOOOORROOOOOOOOOORROOOOOROOOOOOOORRORRORROOOROOOOOROROORORRRROOOOROORROOOORRROORRRRORROOROOROOOROOOROOOOROOOROOOOOROOOOROOORRROOOROOOOORRRRRRRORROROOOROROORRRROOROOOOOORRRRROOROORORRROOROOORORORORRRRORROROROORORRRROROORRRORORORRRRORROORRRORROORROROOROORRORRORRORRORROOOOROOOORORORRORRRORRORRRRORORRROORRRRRRRRRRORORROORROOORRRRORRRORORRROROOOOROROOORRORORRRRRRORRORRROOOROORRRRORRRRORRRRRRORRRRROOOROORORROROOROOROOOORRRRORRRRRRRORROOOROOOROORRRRRRRROROORRRRRORRRORORORORROOOROORRRRRORRROORROOOOOROOOORRROOORRRRRRRRRRRRROORRRRRORROORORRORORRROORRRORRRROROROROOROORRRORRRRORORORROOOROROOOROOOOROROOOORRROOOROORRRRRRRORRROORRROOOROROOOORRORRRROROROOROOROOOOORRROOOOORORORRRRRRRORORROROOOORRRROROOOROOROORORORROORROORRROROOROORORRROROOOORRORROORRRRROOOROOORROOOOROORROROOOORROOORORROOORROOOOOOOOROOOROOORORRROOOROROOOOOORROOOROOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOORORRORROOOROOOOOOOROOOOOOROROROOOOOOOOROORORROOOOOROOOOOOROOOROOOOOOOOOROOROOOOOROOOORROOOOOOOOOORROOOOOOROOOROOOOOROOOROOOOROOOOOOROOOROOOOOOROOOROOOOOORROOOOOOROOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOROOORORROOOOOROOOOOOOOROROOOOROOOORORROOOOOROOROROOOOOROROROOOORRORRROOOROOOOOROROROROOOOOOOROOROOOOOROOOOOOROOROOOORORROOOOORROOOOOOOOOROOOOOOOROOOROOOORORRROROROORROOROOOROOORRROOOOOORORROOROROOOROORRRORORRRROOOROOOROROOROOOOROROROROORORROOROROROORROORROORROROOORRRRRRRORRORORROORROOORRORRORROROOROROOROROOORRROOOROROROOROROROOOOOORORORRROOORORRRRRORRORRORRRROROROROROROORRRRROOORRORRORROROORROROOORRRRRORORRROROROORORRROOORORRROOORRORRORORORORRRRROOROORRRRRORROOROOORORROORORORRORRROORRRRROOOROOROORRROROORORRRROORORRROOORORRRRRRORORRORORRRRRROROOOROORRRRROORRROORRORRRORRORRRRRRRORRORORROORRORROOORRORRROOORORRORROORROOORROROOROORROOOOOOORORRRROOROOROORRRROOOORRRRRROOOROOROORORRRRORORRRRRRORRRRORRORORORRORRORRRRRRROOROORRROOOOOOOOOOORRORRROORRROOOORRRROOOROOORROOORROOOOOOROOORROOOORROROOORRRRRROOROORORROOOOOORORROOROORRROORORROOOOOOOROOOORROORRRORROORRROOOOORRROORRROOOROROROOOORORROROOOOROOOOOOOOROROOOOOROOORORROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOROROOOOOOROOOOOOOOOOOROOOOOOOROOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOROOROROOOORROOOOOOOOOOROROOOOROOOOOROROOOROOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOROOOOOOOROOOOROOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOORROOOORROOROOOROOOROOOROROROROOROOOORROROROOOROOOOOOOORORRROOROOOOOOOOOOOOROOOOOROOROOROORROOOOORROOOOROOOORROOOOOOROOOOOORRRRRORROOOOORRROOORRROOOORRRROOOROROORRROOORROOROORROOOOROORORROORORROOROOROOOOOOROOOORORORORROORRRORROOOROOROROOROOOROOOOOOROOORORRRROORROOROROORRRRRRRRRRROOROOROOOOOROOORRRORRROORRORRROROORORROOORROROOORRROOORRRRRORRORORRRROORRRORRORRRRRRRORRRORROROOROOOROOOOORORRRRRRRRRORRRRRRRRORRORRRORRRRRORORORORRRRROORROORROORRRRROOORORORROROOOROROROORRORORORORRORRRRRRRRORRRRROROORRORRORRRRRRORORORORRROROROOORRORRROOROOORRROROOOORRRRORRRORRRRORROROORRRROROOORRRRRRRRORRRORROOOOORROORRORORRROROROOOORROORROROROROOOROOOORRROOORRROOROORRORRROROORORRRRORROROORRORRROOOROROROROORROROOORRORRRORROOOOOOOROOROORROOROROOOROORROORRRROOOORROOOOORRRRRORORROOOORRRORRRROORROOOOOOROORORROROROROOORRORRROOOOOROOOOOOOROOORROOOOOOOOOOOOOOROORROROOOROOORRROROOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOROROOOROORROROOOOROOOOOORROOOORORROOOOOOROOROROOOOOOOROOROOOROROOOOOOOORROOOOOOOROOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOROOOOOOROOROOROOOOOOOOOOOROOOOOOOROOOOOOOORROOOOROOOOOOOOROOOOROOOOOOOOORROOOOOORROOOROOROOROOOOOROOOOOOOOOOOOOROOROOOROOOOOOOROOROOOOOORROROOROOROOORROORRROOROOOOOOROOROORROORROOROOOOOROOOOROOORRROOOOOOORROORROOROOOORROOOOOROOORROOOOROOROORRORORRRROOROOORRROROOORRRROROOOORORRRROOROOOOOROOOOROOOOROROROOORORRROOOOOORROORORORRROROOOROOOORORORRROOROROOROROOROOOOOOORRORORRROROOROOROORROORROORRROROROOOOOROROOOOROOORRORRROOORROROOOOOOROROORRORRRRRRRROORRRRORROORROOOORORRRROOORRRROORORORROROORRRRROOORRRORRRRROORORRRORROORRRROOORROOOROORRROROOORORRRROOOROROORRROROORRRRROOROOOROORRORORRRRORORRRORRRRORRRRORRROROORRORROORRRRRRRROOROOORRORRRRORRORORROROORRRORROROROORRRORRORRRRROOROORORROOORROROOORORRRROOORORROOORORRORROOROOORORRORRRRRRRRORORRROOOOORRRRRRRRRRROOOROOORORROOOOOROORORORRORORORRRRRRRROROOOOOORORROORRRORRORROROOORROOROOORRROOOOOOROOORRRRRROROOROROROOOROROOORRORRRRRRROORROROORRORRRRROOOOOOORRORRROOOOOROROOORROROORROOOOOORRORROOOROORROROOROOOOOORRORROORORROOOOOOOOOOOOOROROOOOOOROOOOROOOROROOOOROOROORROOOROOOOOOOROOOROOOOOOOROOROOOOOOOOOOOOROOOOOOOOROOOOOOROROOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOROOOOOOOOOROOROOOOOOROOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROROOROOOOOROOROOOOOOOOROOOOOROOROROOOROOROOOOOROOOOOOOOOOOROOOOOROOOOORORROOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOOOOORROOROROOOOROOOOROOROROOOROOOOOROROOOOOOOOOOORROOOOROORORORRROROOOOOORORROOOOORROORROOOROORRORROOORRRROROORRORORRORRRORROROOOORORROOOOORROOOROOOOOOROROOORRROROOOORRRRORROORORROOOOORRROOROROOORRROROROORRRRORORRORRRROOOOORROOOROROOORRROROORROORRRROOROORRRROOOOROOOOORORRORROORORRORORORORRRROOOOROROOORORRRORRRRORRRRROORROROORRORRRRRORRRRRORRRORRRORORRRRRRRORROROORRRORORROORRRRROOORROROORORORROORRRRROOORRRORRRRROOORRORRRRORRRRRORROORRRORRRORRRRROOORRRRRRRRRORRRRRORRRRROROOORRRORRRRORRRORRRRORROOORRRORRORRRRRRRRROOORRROOORRRRRORORRRRRRRRORROOOORROORROOORRRRRRRRORRORRRROORRROORORORRORROROOOOORRRRORRORRORRORORROOOROORROROOROORORORRORRROOROROROROOROORRRORRORRROOROOOOORORRORROOOROROOOROORRORROOORRROORRRORROROORRROOOOOORORRRROOORORROOOOOOROORRORROROOROOOOROOOOOROOOOOORORORRROOOORROORROOORRROOOOROOOOOOOORRROOOOROOOOOOORROOOOOOOOORROROORRRROORRRORROORORRROOOOROORROROORROROOOROOOROOOOOOORROROOOOOOOROOOOOOOOOOOOROOOOOROOOOOOORROOOOOROOOOOROOOOOOOOROROOORROOROOOOROROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOROOOOOROOOROOOOROOOOOROOROOOROOROROOROOOOOROROROROROOOOOOROOOOOOOOOOORRROORRRRROOOROROOOOROOOOROOOOOOOROORORROOOROOROOROOOOOROROOOOORORROOROOOROOOOROOOROOOOORRROOOORROOROROOOOOOOOROOORROORORRRORORROOOORRROOOROOOORRROOOORRORROORRROOOROOOOOOROOROORORRRRRRRRORORRROOORORROORROOORORRROOOOOOORRORORRRORRRORROORORRORROROORORRRRRORORROORRRORROOROOORROOOORRRORORORORROROOOOROORORROOOOOOROOORRRRORRRRROORORRRROOROORORROROOORRORRORRROROOROROORROOORROROOORRRRROORRRROOORORRORORRROORORROORROROOROOOROOOORORRROOORORRRRRORRROORRRRRROOORORORRRRRORRRRRRORRROORRRRRRRRRROOORORRORORROOROOOROOOORRROORROOOOROROORRRRRORRRRRRRRRRRRRRRRRRRORRROOORROOORORROOOOOOROROOROOORROORORROOROROROOORORRROROOOROROORRRRORROOORROORRROOROOOOROORRORRRROROORRRROROOROORROORRRORRORRROOOORROROOROORROORROORRRORRROOORRRRORRORRROOROOROOOOOOOORRROROROORRRORRORORROROOORRORRROORROOOROOROOROORORORRROROOOOROROOOOORRRRROOOOOOOOOORORRORORROOOOOORROOOOOOOROROOOROOOOROOROROROOOROOORORROOOORROROOOOORROOROROROOOROROORRRORRRROOORRROROROOROOOOROOOOOOOOOOOOOOROOROOROOOOROOOOOOOOOOROROOROOOORRROORROOOOROOROOOOOOOOOROOROORORROROOROOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOROOOOOROOROOOOOOOOOOOROROROOOORROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOROOOROROROOOOOOOOOOOOOOOOROOROOROOOOOROOOOROROOOOOOOOROOOOOOROOOOOOOOROROOOOOROOOROROOOORRRROOOOROROOOOOOROOORRRORROOOOROOROOOOOROOOOOOOOORRRRROOOORRORROOORRROOOOOOOOROOOOOOOORRROOOOORROROORRROOOROROOORRORRORRRORORRRORORROOORORRRROOOOROORORRORROOROOORRROROOOOOORORRRORRORRROORROORROROOORRRRRRROOROOOORORORRROOOORORRRROOROROROROOORORORORRRRRORRORORRRRORRRRROORROOOORORROOOOORROORRROORORRRRRRRRRRRROOORRRRORROROOROOORRRORORORRRRRORRRRRORORORROOOORRRORORROOROROORORRROORRORRROORROORORRORRROROORORRROORRRRRROORRORRROORRRORROORRORROOROROORORRORROORRRRRRRRORRROROORRRORRROORROORRROOORORRRROOROORRRORRORRROOROROOOOORRROOOOORORROORRRORRRROOOOROORRRRRRRRORROOORRROROOORRROORRORRROROOOOOORRORORRRORRROOOOORRROORRORRRRORORORRRROOORRRORROORORORRROOOOOOROORROORRORORRORORROORORRRORRROORROOOOORROOOROOORROOROOOOROROOOOOOROROROORROOOOOOOOROROOOORROORORRROROROORORRORRRORRRRROOORRRROOOOOOOROROOOOOOOOORROROOOOOROORRRORORROROOOOOOORROROOOOOOROROOOROOOOOOROOOROOOOOOOROOOROOOOORROOOOOOROOOOORROOOOOOOOORROOROOOOOOOOOOOROOOOOROROROOOROOOOOOOOOOOOOOOROOOOOOOROOOOROOOROOOOROOROOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOROOOROOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOROOOOOOOOOOROOOOOOOOORROOOOOROOROOOOOOOOOOOOOOOOORRORROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOORORROOOOOOOOOOOOOOROORROOOORROOOROOOOOROOOOOOOOOROOOOROROROOOROROROOROROOOOORROOOOOOOOOOOROORROROOOOOOROOOROOOROORRROOOOROOROOORROOOOOROOROOOOROOROOROOROOOOROOOORRROOROOOOOORRRROROOOORORORROOOOORORRRROOORROOROOOROOOROOROROOOOOROOOROROROOOOOOOORRRRRORROROOORRRRRRRORRRROROORRORROORRORRROOOORRRORROROORORORORRRRRRRORROOROOROOROOORRORRRORORRORRROORRRRRRROOOOROORRROORRRRORRRRROOOORORRRRRORORORORORORORRORRRROROOOORRORRORRRRROORROOROORORRRRRROROOOORRROROROORRROORRORRORRORRORRRRROROOOROORORRRROOOORORORRRRRROROORORRRRRORRROROOROROROROOOORRRRROORRRORORROROOOORORORORRRROORORROOROOROOORORROROOORRORRRRRRRORRRROROROOORORORORORRROROROORORRRROORRORROOOROOORORRRORORRRROOORRROROOOOROOORRRRRRRORORROOOOOOOOOOOOROOORRRROOORORORRROOOROROROOOOORORROOORRRRORORROOOORRROOOOOOORORORRROOROOOORRRROOOROROOOOORRORRRORRROOOOOOROOROOOROOROOOOOOOROOOROOROOORROROORROOOOORRORORORROOOOOOORRRRRROROOOOOROROOROROOOROOORROROOROOOOOOOROOOOROOOOOOOOOROOOOOOROOOROROOOOOROOOOOOOORRORRROOOOOOROROOOOORROOOOOOOOORRRROROROOOOOOORROOOOOOOOROOOOOOOORROORRROOORROOOOOOOOOOOOOOOOOROOOOOOROROOOOOORRROOOROOOROOOOOOOOROOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOROROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOROOOOOOROOOOOOORRROOROOOOOROOOROOOOOOOOOOOOROOROOOROROROOROOOOOROOOROOOOOOOROROROOOOOOOROOORROROOOOROOROOROOROOOOROOOOOOOROOOOOOOOOOROOOOOORROROOORRRROROROROOOOORROOOOOOOOOOORROROROORORROOORROOORRRORORORROOROOOOROOROOOOORROOOROROOORORROOOROOOOROORROROROOOROOROOROOOROROOOROOORRRRRRROOORORRROROORROOOOROOOROOOORROROOOOORRROOOOORRRROOOOOORROROORRROORRRORORRROOOROOORORRROORORROOROROOORRORROROOOOOORRRRRORORORRORRRORORORRRRRROOROROOROOOOROROORRRRROOOORRRRRORRRRRRORROORRRRRORRRRRORROORRORORORRORRRORRRROORORORORRORRROORRRROROOORORRRORORRRORORROORRORRRRRRORORRROOORRORROROOOOOORORRROOROROORRRORRRROOOOROOOOROORRRRRROROROOORORRORROROORROOOROOOOROOOORRORRRORROORRRRRRORRORORROORRRROORRRRRROORRRRRRORROOOORRRORORRORRORRROROORRROORORRORRORROORROORROROORRORROROROORRRORRORORORRRROROOOOOOOORROORRRROOROROOORORRROOORROOOROROROOOOOROOROOOOOOOROOORRROOOROROOOROOROROOROORROROROROOOOOOOOORROOOROOOOOORRROORROOOROOOORRROOOROOOORROOOOOORRRRRROOROROOOROOOOORRRROOOOOOOOOOROOORORROOOOOORROOOOOOOORROOROOORORROOOOOROOOOOOOOOROOOOROOROOOOOOOOOROOROOOOOOOOOORROOOOOOOOOOOROROOOOROOOOOOOOOOOOOOROOOOOOOROORROOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOROOROOOOOROOOROOOOOOOOOROOOOOOOOOOORROOOOOOOOOOOORROOOOOOORROOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOOOOROOOOROOROORROOOORROOOOOOOOOOOROOOOROROOOROOOOOOOOORRROOOROROOOORROOROORROOOROOOROOROOOOOOOOOOOOOROORROOOOOOROORRRRROOOROOOOOROOOOOOROOOROOROROOROOOROOOROORORORROORROOOOOOOOROOOROOOOOOOOROOOORORRRORORORROOOORORROOOOOOORROOOOOOROROOOOOORRRORROORRROOORROOOOOOORORRRROOORORRRORRRRRRORRROROOOOOOORRRORORRROROOOOOOOROROORRROOROORRRRROOORRROOOOROOOOORORORROOOOROORROROOROOOORRORORORRRRRRORRRRRROROOROORRRORORRROROROORRORRRORRRRROROORRRRROORRORRORRRRRORRRROORRORRRRROROORORRRRRROOOORRRROOOORRRRORRRRRRROROROOOOORRROORRROROROORRRORROORRRORRRORRRRORRROROROORRRROROORRRORRRORRORROOORRRRRROORORRRROROORORRORROOORROOORORROOOORORROOOROORRROORRORORRRORORRORRORRROORROOOORRRROROROROROROORRORRRRRRRROROORRROORORRRROOOOOOOOORORROROOROOOOOOORRRRORRROOOOOROORORRROOOROORRRROORRRORORORROOORROORRRROOORRROOOROOORRROROOOROROOOOORORRROORRRROORORRORRRROOOORROOOOOROOORROOORROOOOROROORRORROOOOOOOOOOOOOROOORROROROOROOOOROOOROOROOROOORRROROROROOROORRRRORRROOOOOORROOOORORORRROOOOOOOOOOOROOOOOROROOORROOOOOOOOOROOOOOOOOOOOOORROOORORROOROOOORROOOROROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOORROOOROOOOOOOOOROOOOOOOOOROROROOOOOOOOOOOOOOOOOROOOOOOOOOROOROROOOROOOOOOOOOROOOROROOOOOOORROROOOOOORORORRROOOROROOOOROOOOOROROOOROOORRORRRORROOOOORROOOOOOOOOOOOOOROOOOOOOORRRORRORORRRROOROOORRRRRORORRORROORRORRRORROROOOROOOORORROORROORROROROOORRRRROOOROROOORRROOORRRRRRRRRRORROOOORRRRRRORROOORRRORROOOOROORROOOORORORRRRORRRORRROOROOOORORORRROOROROROROORROOOROORRRRROORROROOROOROOOOOORORRORORORRORRRRRROOROOOROOOOROORRROOORRORRROOOOROOROOROROORRRORRRRROROOOORRRORRRRORROORRORRRRRRRRORORRRRRORRRROROORROOORRRRROOORORORORRROORROORRORORRRRRROOROORRRRROROORRRORROROROOORRRORRRORRRROORRRRRORORRRRRRRRORORRORRORRROOORRRRRRRORRROOOROOORORRRORROORRROOORRORRROORRRRRORRORROROROOORRRROORROROORORRRRRROROROORROOROORRRRROOORROROROROROOOOROOOROORRRROROOROROOORRROOORRORRRROOORRROOROOORROORRROOORRRORROROORRRROOOOORROOROOORRROOOROOOORORRRRROOOOOROROOROORROROOROOOOOOOOORROOORORROOOOORROROROOOROOOROOROOROOOOOOOOROOOOOOOOOROOOOOROROOOORORROOOOOOOROOROROOOROOOOOOOOOOROOROOROROOOROOOROORROOOOOOOOOOOOOROROOROROORROOOOOROROROOOOROOROOOOOOROOOOOOOOOOOOOOOOORROOOOOROOROOROOOROROOOROOOOOOROOORROOOOROOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOOROOOOOROORRROOOOOOORROROOOOORORRROROOORROOOOOORROOOOOORROOOOOOOOOOOOOOOOOROOOOORRROOOOOOOOOOOROOOROOOOROORROOOORRRROORRROORROOOOOOOOOOOROROORRORROOOOORORROOOOROOOROROOORRRRROROOOROOROROOOROROOOOOROROOORORRROOOORRRRROOROOOOORORROORORRORROOROOOROOOOORORORRORRROORROOORRRORRROOORRORROOOROOROROOROOROORORRROOOORROOORRORORRORRROOOROORRRROORROORRRRRRORRROROOROOROROOOORROOORORORRROROORRORRROOORRRRORORRROOOROOOORORRROROOOOORROROORRRORRORRRROROOORRRORROOORROROOOOOORORORRRRRRRRORRORRRRRORRORRRROROOORROORRRRROORRRRORRRRORROORORROOOOORRROORRROOOOORRRRRRORRRRORORRORORRROOORROORRRRRRRRRORROROOOOORROROORROORORRORRRORRROOROOROROOORRORORRRROOOORORRROROOOOROROORRRORRRRROORORRORRORORRRROORRROOORRRRORORRRRRROOROORROOROORRRROORORORROOOOOOROOOROOOOOORORROOOOOOOORRRRORROROROROOOROOORRROORROOOOROORROROORROROORRRRRRRRORORRROOOOROORROROOOOORRRORROROOOOOOROROROOOOROOOOORRRROOOOROOOROOOROOORROROOOOROROOROROROOOOOROROOROOROOROOOOOOORRRRROROOROROOORROOOOOOOOROOORORROROOOROOOOOROOOOROROOOOOOOROROOOOROORROOROOOOOROOOORRROOOOOOOOOROOOOOOOOOOROOROOOOOOOROROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOROOOOOOOOOROOOROOORORROOOOOOOOOOOOOOOOOOOROROOOOOROOROOOOROROOROOOOOOOOOOOOOOOOOOOROROOOOROROOOORROROROOROOOOROOOOOOROOOOOOROOOOOOORORROOOOORRROOOOOROOOROOOORRROORRRRRRROROOORORROOOOROORROORORRRROOROOOORORRROOOORRROOOOOOOOROROOOORROORRROROROOROOOORRORRORROOOROORROOROOOROROOROORRRORRROROOORROORRROOORROORROORORROORRRORRORRROORRRROOORROOROOROORRRROORORRRORORRRRROROROROORRRRRORRRRORRRRRRORRRROOORRRORRORRRRRRROOORRRRRRRRORROROOORRORRROOORROORORRORORRRROROROOROROROROOOOOOOORORRROOROORROROORORRRRROOROOORRRROROORRRRROROOORRRRRROROORROOROROROROOROROOOROORORROOROORRRORRROOORROORORROROORROOROORROROORRRRROOORRORORROOOOROOOORORRRORRRRRRRRRORRRRRRRRRRRRORORRORROOORRORRROOROOOOROORRRROORRRRRORRRRRRORRRRORRRORROOOOROOOOROROORRRORRROOOOOORRRORORRROOOORROORRROROORRROROORROORORRORRROROORRORROOORRRRRROROORRORORROORROORRRORROROOROROOOROORRROOOOOOOROROROOORORRRRROROOOOOOOROROOOOROOORRROORROOOOROOOROOROOOOOOOROOOROOOOROOOROOROOOROOROOORRROOOOROROROROOORRORRORROOOORROOROOORRRRROORRORROOOOOOOOOROORORRRRORRRRROOOOROOOROOOOOROOOROOOOOOOOOOOORRROOOOOOROOROOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOOOOROOOOOOOOOOROOOOOOOROOOOOROOOOROOOOOOOROOOOOOORRORROOROOROOOOOOOOOOOORROOOORORRORRROROOOOOOROOOOOOROROOORRORROOOORORORORRRROORRRRORROOOOOROORORRORROROOOOOROOROROORRRORORRORORRORRROOOOOOROOOROROORRROROOOOOROOROROOOOORRRORRRRROOOOROROOOROORORRORRORROROROOOOORROOOOOROOORROOOORORRRRRRROROOORRROOROROROROORORROOROORRRRROROORRORRRRROROOOORROOOOOOROOOOROORORROROROORRRRRRRORRRROOORROOROROOOORRORRRRRROORRRRORROROROORRRRRROROOROORRRORRRRORRRORRRRRRORRORRRRROORRRRORRORRROORRRRRRRRROROORRRRORRRRRRORRRRRRRRRRRRORORROROOOROOOORRORRRRRRORRORRRORRRRORRROORORROOOORRRROROOROORORORORRRRRORORROORORRRRRRRORROORORROOROORRRROOOORRORRRRORRORRORRRROOROORRRRROROOORRRRORORRROOOOOROORRRROORORRRRROOORORRRRRRRROORORRRORORRRROORRRROORRORRRRRORRROOOROOORORRRROOOOOROORRROORROOOORROROORORORRRORROORRRORORORRROROOROOORORRRORROOOOOOOOOROOORORRORRORRRORRRROROROORORORROOOOOROORORRORRRROROOROROROOORRRROOOORRORRRROOOOROOOROOOOOOROORRROORRRROOOOORROROROROOOROOROOOORRROOOOOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOROOOOROOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORRROOOOOOOOOOOOROOORORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORORORORROOOOOOOROOOORROOROOOOOROOOOOOOOOOORROOOOOOOOROORRROOOOOOOOROOROROOOOOOOROOOOOOOOROROOOORRROOROORRROOOOOROOOROROORRROOOOROOOROOROOOOROOROOOOROOOOROOOOOROOOOORORORROOORROOROORRORORROORORRROROOOOOORORROOOOOOOOROORRRORROROOOOOOOOOOOROOOROOOOOOOOROORORRORROOOOOOROOORROOOOORRRRRORROOOOOOOORRROOOORROOOROOOOOORRROROOORROOOOOOOOROOOOORRRRROOORORRRRRORORRORORROROOORRORRRROORORORRRORRRORRRRRRRRRRORRRORROOORRORRROORRRRROOORRRROROOROOOROOOOOROOOORRROROOROROROORROORORRRROOROORRRRRRRRRORROORRRORORRRRRRRRRRRROORROOOOORROORROROORORORRRRORRROROROROORORRORROORORROROROORORRORRRROORROROOORRORRRORORRRRORRRRORRRROROOORROOORROORORRROORORRRRRROORRROORROORRRRORRROROOOORROORORROROORORRRRROROOOOORRROROROROROORRORORROOOORRRRORROOOORRROORRRRORORROROORRORORRRRRRRRRORRRRRORRRRRROOORORRRROORRORRROOOORRROORRORRORORORORRRORROOOROOORRORROORRRRORRRRROORORORRORRRROOROORROROOOOOOORORORROOOOOOROORROOORROOOROROOROOOOOORORRRROOOOOOOORORORROORROROROOOORRRROOOOOOOOOORORORORRROOOORROROROOOROROROROOOOROOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOORROOOROOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOROOROOOOOOOROOOOOOOOOROOOOOOOOROOROOOORROOOOOOROOOOROOOOOOOROOOROOOOOOOOOORROOROOOOOOOORROOOORROOROORROOOOORROOOOOOOOOROOOOOOOOOOOOOOROOOROOROOOOROOROORRROOOROOORORRROOOROOOOORRRORORRRRORROOROOOOOROOOOOORRORROROOROOOOOOOOORRORROOROROORROOOOORORROOOOOORORORROORORROROORORRROOROORORORRROORRORRROOROOORRRRROROOOOROOOROORROORRRRORORRRORRRROORRORRRROROOOORRORROORROROROOOROOOORRRRRORRRROOORRRORROORRORORORRORRROOORRRRORRRROROROROOROOROORRRORRORROROORRROORRRRRRRROOROOORROORROORRRRROROOORRRORROORRRRRORRROORRRRROOORRRRORRRRRRRRROORRROORRORORRRRROOORORRRORORROOORRRRRRORORORRROOOROROROROOROOROROROORRRRRORRRROORORRRRRROOOROOOOORRROORRORRORRROOORRRRRORRRROROOOROOOOORROROROOROORORRORRRRRRORRRROROOORROOOORORRORRROROROROOOOOOOORRROORRROORORORRROORROROROORRROOORROROOROORRORORRRRRRROOROOOOOOOOORROROOOOOOOROROORORRROOOROOOOROOOOORROOOOOOOROROROOOROOOOOROROORRORRRRRORRROOOOOROROOOOOOROOOORRROOROOROOOORORORRROOOOOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOROOOOORROOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOORROROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOROOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOORROROOOOOOOOOOROOROOOOOOOOROOOOOOROOOROROOOOOOOOOOROORRROROROOOOOOOOOOOOORRORROOOORROROOOROROOOOOOOROROOOOROOOORROOROOOORROOOOORRRROOORROOOORROOOOOORRROROORRORRROOOORORORORROORROOOOOROOOOOOROOOORROORORROOOOORRROOROOORRROORRRROORROOORORRRORORORRRORRROOOORRROORROROOROOROORRRROROOORROOROORRORRROOROOORRORORRRRRORRRORRRRROORRROORROROROOOORRROORRRROROOOOOOOROORRRROORROOOORROOOORRRRROORORRRRRROORRROROROOORRORORRORRRRORORRRORRROROORRORRROORRORRRROORORORORRRRORROORRORRRROOORRORORORORROOOORRRORRORRRORRORROOORRRRORORRORRRRROOOORORRRROOROORRRRRRROROROOORRRORRORRRROORRRRRORROROOORRRRRRRORORRORRRRROOOOROORRRORRRORRRROORROORRROOOROORORORORORRORORROROROOOORROOROORORRORRORORRROORRORRRORRROOOOOOORRRROOROORROOOORRROOROORORRRROROOOOOORRRRORRRROORRRRROOOROROOORORRRORORORRROOORORORROOOROROOOOOOOROOOROROOOROOOORROOOOOOORORRRROROOORRRORROOOOROORROORRROOOOOOROROOOROOROOORRROORROORORORORORRROROOOROOOOOROOOOORROROROOOROOOOROOOOOOOOROOOOOOOOOOOROOOOORORORORROOOOOOOROOOOORROOROOROOROOROROROROOOOROOOROROOOROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROORROOROOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOROROOROROOOOOROOOOORROOOROOOOOOOOOOOOOOOOOORROROOROOOOROOOOOROOROOORRROOROORRROOROROOOOORRRRRRROOOOOOOORROROOOROOROOOOROROOROROOOOROOOOOOORROROOORORRROROOOOOOROORROOOOOOOROORRORROOROOOORRRRRORORORRRRRRRRORROOORROORROOOOORORORRRRRROROORRROOORRRRROOOROOOORROROOOOOOORRORRROROOROOOOOOORRROORROORRORROOORRRROROOOORORRRRRRROOOOORROORORROOOORRROOOOORORORRRORORRRRRRRRORRROROOORORROROORRRRROOORRRORRORRRRRORRROOOORRROORRRRORRORRRORORRORROOROORRROORRRRORROORRRRORROORRORRRORRRRROORORRRRRRRRRORRROORRRRROORRORROOOOORRRRRROOROORRRRORRROROORORRROORRORRRORRROORRRRRRRRRRORORRRRRRORORORRRRRRRORRRORROROORORRORROROOROROORORRRROORORRROORRRORORRORRRRRORRORORORRORRRORRRORORRRRROROOROOOORRROORORROOOOORROROROOROORRROOOOROOORRROOOROOOROROROORORROORORROROOROOOOOROROOROOROROROOORROOROORRRROROROOOROORRROOOOROORORRRORRORROOROROORROOOOOOOORRRRRORRORRROOOROOOOOOOORRORRRORRROOOOORROOROOOROOOOOOOOOROOROROOOOOOOORORRROOROROOOROROOOOROROOOOROROOOOOOOROOROROOOOOOOOOROOOOOROOORROOOROOORROOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOOOOOROOROROOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOROOOOOOOOOOROOOOOOOOROOOOOOROOOOOOROOOOOROOOOOOROOOOOOOOROOOOOOOOOROOROOOROOOROROOOOOOROOOOOOOROOOOOOORROOOOOOOOOOOROROOROOOOOOOOORROROOOROOROOOOROOOOOOOORROORROORROOOOOOROOOOOOROROOOOOOOROROOOOOOROOOROORRROOROOOOOOOOOOOORROOOOOOROOOROORRORROROROORRROORRORRROOORORRRRROOOOOOOOORORROROOOOOROOOOOORRORRORRROOOOOORRRRROOROOORRORROORROORORROROOOROORROORROOOROORROORRORROOOOOROORRORRRORRORRRRORORORORROORORRRROOORORORRORROORRORRORORROOORRORORRRRRRROOORORRRROOORORRROOORORORRROORRRROORROORORROROOROOROOROROOORROOOORORRORRRORROOORORRROOORORRRROORRORORRRORRRRRORORRRORRROORRRROROOROROORRORRRRORRRRRRORRRRRORRRRORORRRRORRRRROOOORRRROROORRRORRROOORRROOOORROORRRRRROOOORROOOOROORORROORORORROORRRORRROROOOORRRRRRRORRROROROORRRRORRRRORORORORRROOROORORRRORROROROROOOOORORROORORRROORRRRORORORORRORRRRRRRROROORRRRORRROOORRRRROOORORRRROOROOOROOROROOOOROORRRRORRORORROOOOOROROROROOORORRRRRRRRROOROOOORRROOROOROOOROROOROOORROOOOOOOOOOORORORRROOROOORROOOORROORROOORROROOOOOOOOROOOOOOOROROOOOOOOOOOROOOOROOOROOORRRORROROOROOOOOOOOORORRROOROROROOOOOROOROOOOROOOOOORORROOOOOROOOOOOOOOOOOOOOOOOOOROROROROOROOOORRROOOOROOOOOROROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOORROOOOOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOORRROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOROROOOROOOOOROOOROOROROOROOOROOORRRROOROROORROROOOOROOOOORROORORRROOOOROOOOROOORRROOORROOOOOOOOOORROORORRRRROOROOORRROROOORORRRORROOORROROOORRORROORROOROROOROOORROOROORRORRRORROOROORRRORRROOORORRRORROOOROROROOOOROOROOROORRRORRORRRRRORRRRROOOROORRRRRORRRRRRRROOOOOORRORROORRRORRROROOROOORRRROOOOORRRRRRRORROORORROROOORRRORROORROROROORRROROORRRORORRRROOROOROORRRRORORRRRRRRORRRROORRRRORRRRORRRORORRRROORRORORRRRORORRRRRRROOORRRRRORROOOROOORROOOOROORRRRRRROROOOOORRORRROOOOORRRRRROORRORRRORRRORRROOORRORRRRORORROOROOORRRRRORORRRORORORORRRRRORRORRRORRROOOOOORRORRORROOORRRORRRROORORRRRORROORRRRROORRRROORRRROORROORRRRORRRRROOORROOOOORROOROROOROROOORROOORRROOOOROORRORORORROOOOROOOORORRROROOORROOOROROOOORRORORORRORORRORRRROOORRROORRROOROOOOOOROROORRROOROORROOORORROOORRROORRORORORROOOOROOROOOROOOOROOOOOOOROORROROOOOOOOOORROOROORRROOORROOORORROOOOOOOORRORROOOROOOOORROOOOOOOOOOOROOOROORRROORRORRORROOOOOOORROOROOOOOOROOOOROOROOOROROOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORORROOOOOOOOOOOOROROOOOOOOOOROOOOROROOOOOROOOOOOOOOOOORROOOROOOOOOOOOOOOROOOOORROROOOROOOOOOOOOOOOOOOOOOOOROOOROOROOROOOOOOOOOOOOOOOROROOROOOOROOOOOOROOOROOOOOOOOOOOOOOROOOOOOROROORROOOOOOOOOOORROOOORRROOROROOOOOROOORROOROROOROORROROORORORRRRROOOOOROOORORROOOROOORROOOROOOOOOOOOOORRRRRRRRORRORORORORROOOORORORRORROOROOROROROROORRROROROORRORRRORORORRRRROOOORORROORORRRRROOROROOROOOORROORROOORORRROOOOORRRROOORROORROOOORRORROROORRROORROROORORRRRRRRRRORORORRRRRRORROORRRRORRROOORRORRRRROOORRRORORRRROOORRROORORRRROOOOROORORRRORROOOOOROORRORRROROROOORORRORRROOROOORRRRORROORRORORROOORRRRORRRORRRRRRORROROOOORRRRRRORRRORRRRRROOORRRRRRRRRRORORRORRRORROORRRORORROOORRRRRRRRROORROROROOORRROOORRORRRRROROROROOROOOOORROROORROROOOOOORRRRRRRROORRRRROORROROROROOORROOORORRROORRRORORRRROROORROOORROROORRORRORRROORROROORRORRRRROROORRORRORRRRRRRRORORORORROOORROOOOROROOROOORROORRROORRRORRRRORRORORRRORRORROROORRROOORROOORRRRORROROOOOOOOOOOOOROOOOORRRRRRROOROORRROORROOOORROROOOORRORORRRROORORROOROOROOOOOOOROOROROOOOROOOOOOOROROOOROORROOOOROOOORROROOROOOOOOROROROOROORRRROOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOROOOROOROOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOROOROOOOOROOROOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOORROOOOOOOOORORRROOOOROOOOOOOROORROOOOOOOROOOOOROOOOOROOOOOROOOOORORORROROORORROROOROOOOOOOOOOOOOOOOOOOROOROOOROOOOOROOOROOOOOROOOOOOOOOOORRRROOOOOOROORRRRORORORRRROOORRORRRROOOROOORRRRORRRRRRRRROOROOORROROOOROOOORRROROOROOOOOROORROROOORROROOROORRRROOOORRRROORORRROOOOOORORROOOROOOROROOORORROORORROOOOROORORRORRROOOROOORROOOROOROORRORORRRRRRROORRROOORROOORORORROOOOORRORRROROORRORRORRORRORRRRRORORRRROORRRRROOOROOORRORRRRROORRROROOOORRROOORRORRRROROORRRRRRROOROOROROOORRRRRORRRROORRRRRRORROROOORORRORRRRRORROOOORORRRORRRRORORROOOROROROROORRORRRRRRRRROROORRRORRRRRRRRORRRRORRRRRORRRRRRORRRRRROOROOOOOOORRRRORORORRRRROROOORRRORRORROORRRROOORRORROOORRRROOORORRORRRROORRRROOOOROROOORRRRORRORORROORRROOOROORROOOOOOOOOOORRRRROORORORORRROOROOROOORORRRRROORRROROOOROORROORROOORRROORRRRRORRORROROOOOROROROOOOOROOROORORORROOOOOOOORORROOOROOROROROOOOOOROOOORROOOROORROROROORRORRRRROOROROOOOOROOOORRROOROOOOOOOOOOOORROORROOORORORROOORORORRRRORROOROROOROOOOOOOOOROOROOORROROOROORROROOOOROOOOROOOOROOOOOOOOOORORRORRROOOROROOOOOOOOROOOROOOOOOOOOOOOROOOOOOROROOOOROOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOROOROROOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOORROOROROOOOOOORROOOOOOOROOOROROOROOROOOROOOOROOOOOOOOOOROOOOOOROOOOOOOOOOOOOROROOORORROOOOOOROOOOROROOOOOOOOROOOOROORRROOROORROOROOOOROROROOOOROOORROROOORROOOROOOROROOORORRRROROOROOORRROOOROROOOROROROOOOOOOOOROOROORORORORRROOOROOOROOOROOOOOOOOROOOROOOORORORROOOOOOROROOOOOOOOOOOOROROOOORRROOOROOOOOOOOORRRRRROORROROORORROROOORORRRORROROROOORRORROOROOORROROROORRORROORORORORROROORROOOORORROROROROOROROOOROORRORRROORRRROOORRRROOORORORORROORRORORROROOORORORROROOORORORRROORRROORORROORORROROORORROOROROOOOROORRRRORRRORRORRROROOROROOOROROORORORORRRRROOORRRRRRRORRORRROOORRRRRRRORORRROROROOOROROROORROROROROORORRORORRRORRROORORROOORROOOOOORRORRRRRORRROROOROOROORROORORORORRRRRROROORORROORROORROROORRORROORRROROORRORRRRRORRRRRRORRROOROOOOROROOROROROOOROOOOOOOOROORRRRORRORRRORRRRROOOOORROROOROROOOOORORORRRROROOROROROOROOOROOOROORORRROOOOOOROOOOORRORRROROORRRORROOOOORRROOOORRRROOOORRRRRRRROOOOROOORROOOROOOOROOOOORORROOORROOROOROOOOORRRORROOOOOORORORORRROOROOOROOOOOOORROROOOOOOOOROOOOOROROOOOORRROOOOOOOROORROOOROOOOOOOOOOROOROOOROROROOOOOOOOOOROOOROOOOOROOOOOOOOOOOROOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOOOOOOOORROOOOOOROOROOOOOOOROROOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOORROOOOOOOOOOORROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOROORRROOOOORROOROOOROROROOOOORROOOROOOOOOROORROOORRRROROOOOOOOORROOOOOOROOOOROOOOOOROOOOROOORROOOORRRORROOOOOORROOOORROOROORROOOROOROOORORORROOOOORORRRROOOORRORROOOORORRORROOROOROORRORORRRROROORRORORROROOROOROOOROOORROOOOOORORROORRROOROOROOOOOROOOORRRRRROOROORORRRROROORRRORORORRRRRORORROOROORRORORRRRRORORRRROOOORRRRRROOOOOROROORROROORORRROORORRRRORRRRORRRRRRORRRORRORORRORRORRRRRRORRRRRORRROOOOORRRORROOORRRORROROORORORORORORRROROROORRRROORRORRRRRORRORRRROORORRROORRRRRORRRROROORORORRRORROORRRRROORORORORRRRRRRRRRRORRRRRRORRRRRRRRRRRROORRRORRRORROORROROOORRRRORORRORRRORRORRORRROOORRRROOOOROROOORRRORRRRRRORORRRORRRRRRORRRRORRRORROOROOOORRRROOORROROOOORROORRROORORROORORROORORRROROROROOORRRROROROOOORRORROORRRORRRRRRRRRRRRRORRROROROOROOROOOORORRRROROORRROROOOROROOORRORRRRRRRORORROROOROOOROOROOROORROROROOORORRROROOOORRORRRROROOOOOOOORRORRROOOOOOROOOOOOOROOOROOORRRORROROOOORROOOOOOOORORROOORROROROOROROOOOOORROOOOOOORROOOOOOORORROOOORRROOOOOOOOOOOOOROOOORORROORROOOOOOROOOOROOOOOROOOOOOOOOOOOROOOOOROOORROOOOOOOOOOOOOOOOROORROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOOOORROOOOOOOOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOROOOOOOOOOOORROOOOOOOOOOOROOOOOROOOOORROROOOOOOROOOOOROOROOROOOOROOORORROOOOOROOOORROOOOOROOOROOOORORORRROOOOOOROOOROROROOROOOOOOOORROROROOORROOOORORROOOROOORROOOOOOOROORROOOOROOOOOOOOOOROOOOOROOORROOROOORRROOROOOROOOORORROOOORROOORRRRRRRRRROOROROOROORROOOROOROOROORRRORRORROROOOOOOOORRROROOOOOOROOORRORROORRORORROOROOOOORORRROOORRRORRORORRRRRRRORORRORORRORRORRRRROORROORORRRROORRROROROOOORROORRRRRRRORRRORROORRRRRORRRORRORORRRORRORRRRORRRROORORRRROOROORRRRORORORRRORRRRORRRORRRROROOORRRRRRRRRORRRRORORORRORROOROOROOORROROORRROORRRRORORORORORROORRRRORROROROORRROOOORRRRORRRRROORRORORRRRRORORRRORRRROORORRRRROROORRORORORRRRROROORRRRRRRRRRRROROOOORRROORRROROORRROROOOOROROORRRRROOROOORRORORRRORORRROORORRROORRRRORORROROOORRRRORORRROROOOORROORROOOOOROROOORROORRORORROOOOOROOOROORROROROOORRRRRROORORRRROOROROOOOOOOORORORRORROORROORORRRROOOROORROORRROORROORORROORROOORRROOOOOOOOOROOORRORRORRROORORORROOOORORROROOOOOOROROOOOORROROOOOORROROROOOOOROOOOOORROOROOORROOOOROOOOOOROOORROOOOOROOOROOOOOOOOOOOOOOOORROOROOOOROROOOOOOROROOOOOOOOOROOROOOOOOOOOROOOOROROOOOOOOROROOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOORORRROOOORROROOOOOOOOOOROOOOROOROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOROOOOOOOOROOOORROOOOOOROOOOOOOOOOOOOROOROROOORROOOROOROOOOOORROOOROOOOOOOOOOOOOROOOOOROORORROOROOORROOOROROOOROORROOOOOOOOOOOORROORROOORROOORRRRROROOOROOOROOORRRRORROOROOOOOORRORRRRROOROOORORROOORORROORROROROOROORRRROOORRRRROORRROOOOROOORORRRROROORROROOROORROROOROORRRROORRROROORROOOORORROOOORRRRRROORRRRRRORORROOORORRRRRROOROORRRROORRRRORORRRRROROORROROORORRROROOROORORROOORORRORRORORORRRRRRRROORRORORORORRRRORRRRRORORRROROORRRORRRRRORRORROOORRRRROROROROOORORROORRORRRORRORRRRRORORRRRORORRROORORORRRRORROORRRORRRRRRRORRORROROOORRRROORORROORROORRRORROOORRRORRORRRRORORRRRRRRROORROORORRRRROOROOROOOORRRORORRRROORRROOORRRORROOOOOORRORRRORORORROOORROOORRORROROORORRRRRROOORRRRORRRORRORORROORROORORORRRRRORRORRRORRORORRRRRRRRRORRRROOROOOROORORRRROROORORORROOROROORRROORROORRROROOOOOOOOORRRRROROORRROOOOROORRROOOOORRROROROOOORROOOOOOOROROOROORRRRROROORROOROORROORRRROOOOORROROROORROOOORORROOOOOOOOOOOOROOROOOOOOOORRROOOOOOROOROROROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOORORRROOROROROOROROOOORROOOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOORORORROORORROROROROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOROOOOROROOOORROOOOOOOOOOROOOOOROROOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOROOOOORROOOOROROORRRRROOOOOROOOOOROOOOOOORROOROOOOOOOOOOOROOOOORROOOOOOOOOOORRROOOOOORRRROOOOOOROOOROORROOOOOROOOOROOOOOROORRRROROROORROOORORROOOROROOOORRRROOROROOOOOOROOOOOOOROROROOROORROOOORRROOORORROROROROROROROOROOOOOROORORRRROROORRROOORRROOOOOOOROORRRRORROOOOROOORORORRRORRORORORRRROOROORRORRRORRRRROORROOROORROORRRRRRROORORRRROORRRRRRROOORROOORRORRORRRROOORRROOORRRRORORROOOOOORRROOROROORRRORRRORRRRRRORROORRRRRRORRRROOOOORROORRROROOOROORRRRRRRRRORORROOROOORORRRORROOOOOORROOORRRRRRRROORORRORRORRRRRRRROOORRROORRRRORRRRRROORRRRRORORRRORORRORORROROORORROROROORRRROORRRROORORRRRRRRROROOOOORORORRORORRROROROROORORROOORROROROORRRRROORROOOOROOROOORORRRROORROORROROOOROORROORRROORRRRRRORORRRRRROROORROOOOROOOOOORROOOOORORRROOROROROOOORRRORROOROOOROOORORRROOORORORRORRRRRRORROROOORORROORRRRROOROOOOOORROOROORORRRORRROOOOOOROOOROOOOOOROORROOOORROOOOOOROOOOORORRROOOOOORORROORROOOOOOOOOOOOOROOOOORORROOOOOROOOOOOROOOOOOOROOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOORROOORROOOOOOOOOOOOOORRROOOORROOROOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOOOORROOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOORROOOOOOOOORROOROOOOOOROOOROOOOOOORROOOORRROOOOOROOOOOOROOOOROOOOOOOROOOOOOOOOOOOOOORROOOOOOOOORRRROOROOOOOORROROOOROROOORROOOOROOOROROOOOOOOOOOOROROOOROOOORROORRORRROOORRRROOOROOORRORORROOROORROOOORRORRRRROOORORROOROOOOOORROROROORRRORROROOROROOOORROORROROOOROROOORROROOROOROROOORRRROROORROOORORORRRORROOORROOORROOORRRRORRRRRORRRORRROROOROOOROOORORRRORRROORRRROROROOROROROROOORROOOORRRRORROORRROORORROOROOORORRRORORRORRRRRORRROORRRORRROROORRRRROOROOOROORRRRRRORRROROORORROORRRRRRRRRRRRRRRRROORRRRORROOORRROORRRROORORRRROOORRRRRORRRRORRRRRRRRORRRORRROOROROORROORRRRRRRRROOORORROORRRORRROROROORROOORORORRRRRORRRRRORRRRRRRRRRROOORROOORRRRORRORORROORRRORORROORRRRRRORRRORRRROOROOOROORRORRRROOOROORRRROOORORRRROOOOOOORRROORRRRRORORROOROOROORORORRORORRROROORROOORRRORRRRROOOROROOROOROROORRRRORROOROOOROOOROOROOOROORRORRORORROOOOOOROROOOOOOROOROROOOOOROOOOROORRROOROOOROOORROOOROROOOOORORORROOOOORROOOOOOOOOROROOOROOROOOOOOOORORRROOOOOROOROOOOROOOOOROROOROOOOROROOOOOORROOOOOOROROOOOOOOROOOORROOOOOOROROOOOOOOROOOOROOOOOROORROOROOROOOROOROORROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROROOOOOOROROOROOOOOORROOOOOOOOOOOOOOOOROOROOOOOOOROOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOROOOROROOOOOOOOOROOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOORROOOOROOOOOOOOOOOOORROROROORROROROOOROOOROROOOOOOOOOOOROOOOOOOOOOOOOROOORROROOOROOOOOORROOOOOORROROOOORROOROOOOOOOORRRROOOOROORRORROOROOOORRRRROOOOOOOOOOORROOOROOOROOORROOROOOROOROROOOOOOROROOOOORORORRRORRRROOOROOOORRRORORORROOOOORROORROOOORRRORRRRRRORRORORRRRORROOOOORORROORROORRORRROOORRRROOOOORORROOOOOROORRORRRRRRRRROORROOROOORRORORRRROOOOORRRROORRRRORRRRRORRRRROROOORORROOORRRROORRRORRORRROROORROORORRORRORRORRRORRRRORRRRRORRRRRRORRRRRROORRRROROORRRRORRRRRORRRRRRRRORRRRRRRRRORRRRRRRROOOORRRRRORORORORORRRRRRROORORORRORORRRORRORRRRRROORRRRRORRORRROOOORRORRROORRRORORROOORRRRRROORORRORORRRORRRRORORROORRRROOORRRROROOOORRORRRORORRORROROORORORROOOOOOROORRORROROROOOORROORRRROROROOOROOOORRRROOORORRROOROROROORROOROROORROROORROOORRRRRRROROROORROOOOOOOORRRRRRRORRRRRROOORRRROOORRRORRORROOOOORROOORORROROOOOORRRORROOOOOROOOOOORROOROOORORRROORROORORRRROOOROROOOOOOROOOOOORORRROROOORROOORRROOOROOOROOOROOOROOOROOOOOOOOOOOOOOORROROOOOOOROOOOOOROOOOOOOROOOOOOOOOROOOROOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOROOROOROOOROOOOOOOORORROOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOROOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOROROROOOROOOOROOOROOROOOROOOROOOROOOOOOORROOOOOOOROOOOROROOROROOROOOROOROOOOROOOOOORROORRROROROOOOOOOOORROOROOORORRROROOOOOOOOROORROOOOOOOOOOOOOOROORRRORROOOOOOOORORROROOOOROOROROROOOOOROOOOROROOROROROROOOROOOOORROOROOOOOOOORRRRRORORROROOORRORRRORROOOROORROOROOOOOOROOOOOORRRRRROORRROOOOOROROORRRRRRROORORRRRRROORORRRROORROORRRORRRRRRRRRRRORROORRRORROORRROROOOROORROOORROOORORROOOOORRRORRORRORRRRRORRROROOOOROOOORRRRRRRORRORROOROOORRROROOROORRROROOOOORRRRORRRRORRRROORORRROROROORROORRRRORRRRRORRRRRORRRORROORRRRRRORROROOORRROOOROOOROOOROOOROOOORRRRRORRRRORROOORRRRRRRRORRORRRORRRORRRROOOOOROOORRRRRRROROORROROORRRROORROOOROORORORRORRRROOORRRRROORRRORRRRROORORRRROROOOOORRRROORORORROOOOOOOORRRRRRRRROORRROORRORORORRORORRORROOORROOROOROROROROROROORORROROROOOROROOROORROROOOORRRORRROORORRROORROOOROORROOROOOOOORRORRRORORRROOORRRROOROROROROOOROORROOOOROOORORORROOOOORROROOORROROOROOOOOROORROROOOOROOOOOOOORROOOROOOOOOOROOROOORROOOROOROROOOORROOOROOOOOOOOOOOOOOOOOOOROROOROOOROOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOROOOOORROOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOROOROOOOOOOOOOOOOOROOOROOOOOORROOOOOOOROOOOOOOOOOORROROOOOROOOROOOOOOOOOOROOOOORORRRROOORROOOOOOOOOROOROOOROOROOROORROOOORRROOOROROROOOOOOOROROROOROORRRRRROROOOORROOOROOOORROROOOOROOOOROOOORROOROROOOOOOOOOROOORRORORROOORROOORROROOORROOROROROROOOORROOROORRRORRORRRRORRRRRRORROORORORORROORORORRORRRROROOROOOROOOORRROOROOOORRORRRROORRRORRRROORRROORRRORRRORROOORRROOOROOORRORORROROOOROROOOORROORRRRRRORRRROORRROOROOOROOORRRROROROORRRORRORROORROOROORRRRRRORROOORRROROOORRORRRORRRORORRROOORROOORRORRRRRORRRRRROORROOROOROOROORORRRRROORORROOOORRRRRRRRRROOOORROROROOORRRRRORRROROROORRORRRORRORRRRORRRRORRRRORRRRRRRRRRRORORORRRRRROORROOOORORROORRRORRRRRORROROORROOOROORRRORRRORRROORRROORRRORRRRRRRRORRRROORRROOROORORROORORORORRORRROORRRORRRROOORORRRRRRORRRROROROROOROOORORROORRRROOOROOORROOOORROROOOROORRORRROORORRRRORROORRRRORORORROOOROORORRROOROOORROROOORROOOOROROORROOOROROOOOOOOORORORROORROORORROROROOROROOOOROOROOOOROOROOOOOOOROOOROROOOOOROOOOOOROORROOOOOOROOOROOOROROROOOOROOOROORRROOOOROOOOOOOOORROOOOOROOOOOOOOOOOOOOROOOOOOROOORRROORROOOOOOOOOROOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROROOOOOOOOROROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROROOOOOOOOOOROOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOROOOOOOOROORROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROROORROOOOOOOOOOOOOOOOOROOOORORROOROOOROROOOOOOOOOROOOOOOOOOOORORROROOOOOOOROOOORRRRROOORROROOOOORRRRROROOROORRRRORRROOOOOORRORORRROROORROORRORRRORORRRROOOOOOOROOORORROROORORROOOOOOORRRORRRRRROORORORROORRROROROOROOORROROOROORRRRROROOORORRRORRORRORORRRRORROOOOORROOOOORRRRORROROOORRRROORRRRRRRRORRROROOORROROOOOOOROOORRROORRRRRRORORROOORORROROORRROOOORRROOROOORORRROROORORRRRRRORRRRORRRRORRORROOOOROORORORRRRRORORROORROOORRRRRORRORRRRRROOOROROORROOORRROOOOOORORRRRRORRRRRRRRROROORORORORRRROROOORRRROORROOROORORROORRROORRRRORRRRRRORORRRORROORORRROOORRRRROOOOORRRROORRROORRRROORORRRRRRROROOORORROROROORORROORROORORORRORRRORRRRRRROOROORROROOORRRRROOROOOOORRRRRORRORROOOOROROROROOOOOORORRORORROROOORRRRORRRRRROOROOOORROOOOOORRROOORROORRORORRROOORORROOORORROORORROORORROOORORRORORORORRROORROORRRROOROOOROORROOOOOOORRROOROOOOORRROOOOROORROOOOOOROOROROOOROOOOOROOOOOOROOOOOROOOOOOROOOOOOROOROOOOOORRRROOORRROOORRROOORROOROOOOOOOROOROOOOOOROOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOROROROOOOOOORROOROROOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOROROOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOROOROOROOOOORROOROROOOORROOOOOOOOOORROOOROOOOOOOOOOOROOROOOOOORROOROOOOOOOROOOOOROROOOOOOOOROOROOOOOROOOROOOOOOOOOROOOORRRROROOROOOOOOOORROOROOROROOOROOOOOOROOOORORROOROOROORORROOOOOORRRORROROOOROOOORORRRRROROOOOOOOROOROOROOROROORRORRORRORROROOOOORORROOOROOOOOOOROROROROOROORRRROOROOOOROOORRORRORROOORORRRRORRRRRRRRRROOROORRRORRORORRRRRROOOROOOOROROROOROOROROROOOOORROORRROROORORRRROROOOROROORROOROOROROOOOORRRRRRROOOOROORROORORRROORRORRORROROOOOOORRRRRRRRRORRRRROOOOORRRRORRROORRRORRORORRRRORRRRRRROORRRORORRRRROOOORROOORRRRROOOOORROORROOROROORORORRRORRRORRRORORROROROORRRRRRORRROOROORRRRORRORROROORORRORRRROOORRORRRORRORROORRRRRROROOORRRRORORORROROROROOOOORORRRRORRRROROOOOORRORORROOOOROORORRRORORORRRRRRRRRORRRRROROROORROROOORORORORRORRROORORRORRRORORROORRROOORROORORROOROROORRORROROOROOROOOOOOROOROORRORRRRRRROROROOOOORRORORROROOOORROROOORROROOORORRRRORRRROROOOROROOOOOOORROROOOOOOOOOORRORORRROOOOOOOOROOOOROOOOOORROOOROROROROOROOOOROOOOOOOOOORROOORRROOROOOOOOROROOOOROORROOOOORROOOOOOOOOROROOROOOROOOOOOROOOOROOOORROOORROOOOOOOOOOOOROOOOOORRRORROOOOOOROOOOOOOOORROROOOROOOOOOOOROORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOORROOOOOOROOOOOROROOOOROOOOOROOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOROOOROOOOOOOORRROROOOOROROOROROOOOOORROOROROOROOOROOOOORORROROROOOROOOOOOOORROOOOROOOOOROOORROOOOOOROOROROOOROOOROROOOOOOOOOOORROORRRROOOOOOOOOOOOORROOOROROOOORORRORORROOROOOOROROOOOORROROOROOROOOOOORORRROOORORROOOOROROORRORRORORORORRRROORORORRRRROROORROORRORROOOOOROORRRROORROOOORRRROOOOORROORRORRRROORROORORROORORROOROORRORRRROOORORORORRRRORORRRRRRRRRROOOORRROOROOOORORRRRROORRORROORRORRROOOOROROOORORORROOOOORRRROORORRROOROORORRRRRORORRRRROORRRRRRRRRRRRRORRRRRROOORRROOROROOOROOOORROOORROORORROORRRRROROOOORRORRRRRRRORRRRRRORRRRROOROORORRRRROROORRRRROROROORRRRORRORRROROOORROROOORRORRORRRRRROOROOORRRRRROORORROORRORROORRROOOROORORORORORRORRROOOORORRRRRORORRORRORRORORORRROORRROROORROROORRRRRRRROORRROROORORORRORRROOOOOORRRROORROROOORROORORORRRRRORRRORRROOORRROORRRORROORROOROROORROROORORROOOOOOOOOORORORRRRRRORROOOOOOOOROOOOROORRROOOOOOOOOOORROROOOOOOROOORROROOOOOOROROROOOOOOOORRORRROOOORORORRROOOOOOOROOORROOROOORRRORROORROOOOOORORROOOOOOOOOOOOOOOOOOOORORRROOROOOOOROOOOOOOOOORROOOOOROOROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOROROOOOOOROOOROOOOOOOROOOROORRORROOOOOROROOOOOOOOOROOOROOOOOOROOOOOOOOOOOOROOOOOOORROROOOOOOOOOOROROOROOOOOOOROOOOOOROOOOOORROOOORRORORORORRORROROORORRROOOOORRORROOOORROOOOOOROROOROOOOOORRRROROROROOORROROROOORRORROOROOROROROROORORORROORROOOORORRRROOOOOROOOROORORROOORRROORRORROROOORORORORORRRORRRRROOROORRROORRRROOOORRRROROROOOORROOOOROOOORRRRORRORROORRRROROOOORROOOOORRORORRORRROOOOOROOOORROOORORRRORRORRROOROROOOOOOORRRROORRRRRORORRORRORRORRRRRRORORRORORRRRORORRRRORRRROROROROORORRORROOORRRROORRRORRORRRROOROOOORROOROORROOORORROROORORRROOROROROORRROOOORRRRRROORRROORRRRRROROOROOOORRROROOORORORRRRROORRRRROOROORORORRORRROORRRROROORORRRRROORORRRRRRORRRRRRRORRROROOOROROORRRRRORRORORORORORRRORRROOOORRRRRRROOOOOROOOOORROOROROOROOOOORRRROORROOOOORRROOROROOROOORROROOORRORORRRRROOOORRROROOOOOROROORROORROOOOOOOROOROOROORORORRRROROOOOROOOOOOROOORRORRRRORORORROOORRRRORROOOOROOROROOOOOOOOOOOORRROROOROROOOOROROOOOORRORORORORRROOOOOOOORORRROROOOORORORRROROORRROOOORROOOOOOOOOORRORORROORORORROOOORRROOOOOOORRORROOOROOOOOOROOROOROOOOOROOOOOOOOORRORORROOROOOOROOOROOROOROOOOOOOOOOOOOOROOOROOOROOOROOOOOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOORROOOOOROOOOOOOOOOROOOOOOOORROOOOOOOOROOOROOOOOROROOOOOOOOOOOOROOOOROOOOORROOROOROOOOOROOOOOOOROOROOOOOOOOOOORROOOOOOOORROOOROOOOOORROOORROOROOOOOROOOOORROOOROOOOOOOOOOOOOORROOOOROOOOOOROOROOOORRROORORORROOOOORORORRRROORRROOOORRROOOOROROOROOOOORROROOORRROORRROOOROOOROOOROORROOOOROOROORRORRRORROORRORORORRORORRROOROROORORRORORRROORRROORROROROOORROORROROROROORROOOOROROOORORRRRORROOORRROORRRRRORORRROOOROORRROOOORRORORROORRRROOROOOROORORRRROOORROORROORRRRRORRRRROORRRRRRRRRRRRRRORORRROORROOOOOOROOORRROROROROOOOORRORRRROOROORRORRRRRROROORRRRRROOROORRORORROOROORRRRRORORRRROORRRORRROOORROOROOOORRRROORRROORORRRRRRRRRROORRRRRRORRORRRROOOORRROROROROROORRRORORORROORORROROOOORRRROOROROOOORRRORORRRRORORRORORRORROOORROORORRRRROOROROOOOROOORORRRORORORRRROORORORORROORRROORROOOOORORORORORRORRORROOOORROOOROROOORRRRRORRROOOORRORRORROORROOROOROOOORORROROOOROOOOROOOOOROOORRORROORRRORROOOOOOORORROROOOOROOROROOOORORROORROOOOORORROROROOROORROOROORORROROOOOROROOOOOROROROOOOOOOROOROROOOROOOROOOOORROOOOOORORORORROOOOOOOOOOOOOOROROOOOROOROOROOOOROOROOOOROOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOROROOOOROOROOOROROOOROOROROOOOOOOOOORRORROOOOOOOOOROOOOOOROOOOOROOOOROOROORROOROOROROROOOROOOOOROOORRROOROOOROROOOOORROORRRRRRROOOROOOROOOOOOOROOOOORRORRRRRRORORRROORORRRROOORROOOOOOOORRRROROOROROOORRROOOROROORROOOROROROOOROOOOOOOOORRORROROORROROORROOOOROROROORRROROROORRRRORRRROROOOOOROOOORROOORROOOORRROORRORROORROOROROORORRROOROORRORORRRRRRRRRRROOORORRRRRORROOOOOOROOORROORROOORRROROOOOOORROORRRORROOROROORRORORRROROOOORRRORRRROOORRRRORRRRRRRORRORRRORORRRRORRROORRORROOORRRRRRORORRRRORRRRORROOROORRORRRRRRORRROORRRRRRRRRROOROORRRRORROROORRORRRRRRROOORROOOORRRORORRORRROORRRORRRORRORRORROOROROOORRRRRRRRRRRROOROORRRRRORRRRRRORRRRORRORORRROROORRROOOOOORORRRRROORRRRRRRORORRORRORRROOROORORORRORRRROROOROOOROORROOOOOORROOOOOORROOOORRRORORRORROOOOORROOOOORRRRRRRROOOROOOOOOOOOORRRRRRRORORROORROOORROROOOOOROORROOROORORRRROOOORORORRROOROOOROOOORORROOOOOORRROORRRROOOOOROOROOOOROOORROOOOROOOOOORROOOORRRROOOROOOOORROOROOOOOROOROOOOOROOOOORROOOOROORROOOROOOORRORRRROORORROOROROOOOOOOOORROOOOOOOOOOOOROOOROROOOROROOOOROOOOOOOROOOOOOROOOROOROOOROOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOROOOOOOOORROOOROOOOROOOOOOOOOOOOOOOROROORORRRRROOOOOOOOOOROOOOROOOOOOOROOROOOOOOROOOOOOOOORROOOOOOOOOOOROROROOOROORROOOORROROOOROROROOROROOROORRORRORROOROOORROOOOOOOOROOROOROOOROOROOOOOROORROOORROROROOOROOOROOOOORRRROOROOOORRORRRRRORROOROOOOOROOORRRRRRRORROOROOOORORORORRRORROORRRORROOORRRORROOROOOOORORRRROROORRRORROROOOORORORRRRRORROROORROOROOOORORRRRROOORRROROOORRRRRRORORORRRRORROORROORRRROORRRRRROROOOOROROORRRRORRROROROORROROROOROOORRRORRRROORORORORRRORROOROORORRRRRRRRROOOOORORORRROROORRORRROOROROOROORORRORRORRRROORROORRROROOORRRRRORORRORRRRRRORORRRRRORROORRRRRORORRRROROOORRROORRORRRROROROROORRRROORROOOORRORRRRROROROOORORRRORRRRORORROOOOORROOORORORRRRRORRROORORRRORRORRORRORRROROROORRROORRROOOOORRRRRRORORRRROORROOORRORORROORRRROOROOROOOOROOORORROOOROOROOROOORRRROOOOOORRRORORRORROOOORORROROORROOOOOOOOOROOOROORRORROROROOOROOROOOORRRROORRROOOOROORORRROOOOOOOORROROROOROOROROOOOOOROOOOOOOOOROROROOORROOOOOROOORROOROOOOROOROORORRRROOROOOOOOOOOOOROOOOOOORROROOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOROOOOOORORRROOOOOOOROOOOOOOOOROOOOOOOOOOOOOROORRROROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROORRORROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOORRROROOOOOOOROOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOROOROOOOROOORORROOOOOOOOOOOOORROOOOOOOOOOROOOOOOOROOROROOOROORRRRRROOOOOOOOOOOOOOOOOOOOOROOOOOROOROOORROOROOOOROROROOORORROOOOOOOROOOOOOOOOORRRRROROROROOOOORROORROORRRROROORORRRRORROOOOOOOORORORROROOROROOOORRRRRRORROOOROOORRRROOOOORORRORRORRROROOOORRORRORRORORRROOOOOORORRRRORORORRRRROOOORRRROOROOROORORRRORORRRORRRRRORORRORRROORRRRRRORRORRORRRORRRROOOOOORROORRROOORRORORRRRRRORRROROOROORRROORRRRRORRRROROROORROROROORRRROORRRORRRROOORROORRRRRROOOORROORROROORRRRRORORRRRRRRRORRRRRROORROORROORRRRRORORRORORORROROROORROOORORORRRORRRORROORRORRRROOOOROOROORORRORRRRRORORRRROORRORRROOROORRRRRRROOOORRORORROORORROORORRRRROROROORROOORORORRRROOROORORORORROORROOORROORRRORORRORRROOOROORRRRROOROOOROOOOOOROOROOORORRRROOOORRORRROORORORORROROOORRROORRRORRRORORRRROORRORROOORORRRROOOOROOORRRRROROOORROROOROOOOOORROOOOOOOOOOOOROROOROOORROOOOOOOOOOOROOOROOOROORORORROORROOOOOOORRROORROOOOOOOROROOOROORRROROOOOORRRROOORROORORROOOOOROOROOOOOROOOOROOOOROOROOOOROOOOOOOOOOOROORROROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOROROROOORORROOROOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROROROOOOOOOOOOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOROROOOOOOOOOOOORROOOOOOOOOOOROOROOROOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOORORROOOROOOOOROOOOOOOROORROOOORORROROORROOOOOOOROOORROOROOOOROORRROOOOOORROORORROROOOROOOOOOOOROOORRROORROROROOROROOROOOROOOROOOROOROOOOROOORROOROORROOOROORRROOOOROOOOOOOOORRRRORROORROOOOROORORRRROOOROOOOORORRRRORORRRROROOORORROOROROOOROOORORORORORORRRRRORROOOOORRRROROORRORROORORRROORRORRORORRRORRORROROOORRORORRROOOOROORORRROOOROORROOORRORROOOOOROORORRORRROROOOOOOOORRRRRRRRRRRROOOROROROORORRRRRRORORORRRRRRORROROOOOOORRROOOORRRRORRRORRRRRRORRRORROORRRRRRORRRRRRRRRRORRRRORORROROOOOORORRRRRROORRORRRRROOORRORRRRRRRRRRRRRRRRORRRROORRRRRRRORRROROROROROORORRORORRRROOOOORRRROROROOORRRRORRRRRRRRORRRRORRRRORROORRROOOROROOOORRRORRRRROOROOORRRROOROORROOROOROORRORORROOORRRORROOOOOORRORRRORORROORROROOOOORRRRROOOOORRRRORROROOROOOOROROOOROOROOORROROOROOORRRRRORORRRROORROROROOORROORROOORRRRRRORRRROORROOOOROOOORORORRRRORROOROOROORROOOOOOOOOOOOORORRROROROOOROOORROOOOOOOROOOROOROOROOOOOROOORRROOROOORROOOOOROOOOOROOOOOOROROOOROOOROOROOOOOOROOROROROOROOROOOORRROROOOOROOOOOOOOOOOOOOOOOOROOOOOOORORROOOOOOOOOOROOORROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORRRROOOROROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOORORROROROROOOROOOOOOOOOOOOOOORROOOOOOOOROROOOOOOOOOOOROORRROROOOOORROOORRROOOORRORORRROROOOOROOOROROOOROOORRORRRROOOROOOOOROROOROOORRROOOOROOOORRROORROOORORORRRRRRORORROOORROOROROOOOOOOROOROORRRORRROOOROOOOROOOORORORRRROROORROOROROORORRRRRORORORORORRRRRRORORRORORORORRRRRRRRRORRRROROORRORROOOORRROOORRORORRROORRROORRROOOOOOOOROOOROORRROOORRRRORRRRORROROROORORRRRRRRORRROOOROOOORROORRROORRRRRROOORRRROOROOORROOROOROROORRROORRORORORRRRORRRRRRRRORROROROOORRRROORORRRORORROORORRRRRORRRRORORRORORRRRRRRRRRRRRRRROORRRORRRORRRRRORRRRROROORROORRORRORRORROOOROORRORORRRRORRRRORRRORORRRROORROORRROROORRRORRRRRRRRRROORRRRROOOOOROORRRRROOROOOROROOOORORRROROORRRROOROOROORORRRRRRRRRRRORORRORRRRROOROOOOORRRROOOOOOORRRRRROOOOROOROOORROORRROROORROROORRORORRROORORROOROOROOOROOORROROORROOROOORRRRROROOORRROORORORROROOOOOOROROOROORROOORRROOORRROORRRROORRRROOORRORROOOOOOROOOOROOROOROOOORROORROROROOOORROOOOOOOROORROOROOOOOROOOOOOOOOROOOORROROOOOOOOOOOOOOOOOOOOROOROOOOOOOROOOOOROROROOOOOOOOROROOORRROOOOOROROOOOOOOOOROOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOORROOOROOROOOOOOORROOOOOOOOOOORORROOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOROROROOOROOOOROROOROOOROOOOOROOOOOOOOOORROOOOROOOOOOOOOROOOOROOOROOROOOOOOOROOROOOOROROOOOOOOROOROROROOOORRRRROOOOORORRRROOOOROOOOOOOOOOOOROORROORRRRRROOOROROROOROROORRRROROOORRORRROOORRRROOROORRRORROOROOOOOOORROOROORORRRORRORRORORROROOROOORROORROOROOROOORRRROOROOOOOROOOOOORRORROROROOORRRROROROOOOORORORRROOOROOORROROORRRRORRRROORRRRRRORRRRORRROORRORRRRRORRORRRRORRORRRRRRORRRRROORRROROROROORROOROROORRORRRRORRROROORRRRORRRRORRRRRRORRORRRRRRORRROOOOORRORROROROORRRRRORRORRORORRRORRRRROORRRRRRRRROORRORRROORRRRROORRRRORORROROROOROORRRRRRRRRORROORRROORORRRRRROOOOOOORORRRRROOROOOOOROORRRORRRRRROROORRRROORRRORORORRORRORRORRORRRRORRRRRRRRRROROORRROOROOORROORORROORROROROOROOOOOORORRRORROOOOOOOROORROOOOOORRRRROOROOROROOOOOORRRRROOROOOOOROOOORORRRRORROOOROROOOOOORRROROORRROROORROOORORORORROOROROOROROOORRORRROOORRROOOOROOOORROOORROOOORORROOOROOROOOOOOOOOOOOORRROOOORROROROOOOROOOOOOROOOOOOOROORORROOROOOOOOORROOOROOROROROOOOOROOOOROOOORRORORORROOROOROORORROOROOROOROOOORORROOOROROOORORROOOOOOROOROROOOOOOOOROOOOOOOOOOOOOOOOOROROOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOROROOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOORROOOROOORROOOOOOOOROOOOOOOROOOOOOOOOOOOOORROOOOROOOOOOOROOOOOOOOOOOOORRORROORROOOOOOROOROROOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOROROROOOROOOOOOOROOROOOROOOOOOOORRRRRROOROOORRORROROOROOOOORROOROROORORORORRROOROOOOROROROORROOOORRROROORROROOROOROOOOROOROORORROROROROOROORRRRORORORRROORROORORORRRORROOORORRRROOROOOROOOROOROOORORRORRORRRORRRROORRROOOROOOORRORORRROROORRRORRRORRROROOOROROORROOROORRRRRROORRRRRRRORROOOROOOOOOORRRRRRRORROROROROORRRROOOORRRRRORROORRRRRROROORRROOOORORRRORRRRRORRORORRORRORORRRORRRRORROOROROORROOORRORRRRROORRRRORRRROROOROOOOROORORORORRRORRRRRRROORRRRORORORROORRRROORRROORROORRROOOORROORRROORORRORORRRRRROORRRORRORRRRRRRRROROOOOORRRRRORROOORORRRRROOORRRRRRROOOOROROORRROROORORRRRRROROOOOROOOOROORRORORRORRORORRROOOROOROROOOOOOORRRROOOORORRRRRORRRRRRRRORROOROOROOROOROOROOOROROOOOORROROOOORORROOOROOORRORORORRORROROOROOORRROOORROORRROOOROORRRRROOROOOOOROROOOROOROOOOOOROOOOOOROROOOROOOROOORRORORROORRRROOOOOOOROORROROOOROOOOOOOROOOOORROOOOOROOOOROROROROOOROOOOOOOOROOROOOOOOOOORROOOROOORROOROOOOOOOOOOOOOROOOOOOOOOOOOROOORROORROOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOORROOOOOOOOOOOROOOOROOOOOOROOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOROOOOOOOOOOOOOOOOROOOOOOOOORROORROOOOOOOROOOROOOOOOOOROOOOOOOROORRROOOOOOOROOOOOOOOOOOOOROROOOOOOOOOOOOROOOROOROOOOROROOOORROOOROROOOOOOROOOOOROOOROOOOOOOORROROOORROOORROOOOOORORORROOOROOOROOOOOROOOOOOROOOORROOOORRROOROOROOORROOOROORRRROORRROOOOROOROORRORROORROOORORRROROORRRORROOOROROOORRORRRRRORRROOOOOROOORRROOORROORROOROOOOOOROOOROOOOOOROOORRORRRROORROOROORRORRORRRORRRROOOOOOOORRRRORORROOORRRRROOOORROOORORRORROORRRORRRRRRORORROROOROROROOROORRRRORORORRROORRROORORORORORRORRROOROORROROOROROORRORRORRORORORRRRRROOOOROROOROROOROOORRRRRORRROORROOORRROORRRORRORRORRROOROROOOOOOOORORRRRRRRORROORRRROROORORRROOROROORRRORRROOROORORRRRORORRRRRROORROOORRRORRROORORRORRRORORRROROROORRRRORORRROORRRRRORRRRRRRRRRORORORORRROOOORROORORORROOOORRRRRRRRRROOOROOOROOORRROOORRORORRORRRRORRRRRRORRRORORRROROROORRROORRROORRORRROOOROOOROORRORRORROOOOROORORORORROOORROROROOROOOOROOROROORROOROOORRRROOORRRROOROROOOOOROOORROOOOOORROOOOORRORRORROOOROOOOOOROOOOROOROOOROROOORROROOOOROROROOORRRROROORORRORORRROOOOOOROOOROROOROOOOOOOOOROOORROROOOOOOOOORROOOOROROROOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOROOROOOROOOOOORROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOROOOORROOOOROROOOOOOOROOOOOOROOROOOOOOOROOROOOOOROOOOROOOOOOOOOOOOOOOOOOROOOOROOORROROROOOOOOOROOOOOOOROOOOOOOOOOOOOOOORRROORROOOROROOOOROOOOOOOORROOROOOOOOORROOOORRRROOORROOROOOOOOROOOROOOOOORORROROROORROOROOOOOOOROROOOROOOROOOORRROROOOOOOOORRORORROORRROOORRROROOORROROROOROROOROORRRROOORRRORORRRROROOORROOOORRORRRRRORROOORRRRRROOROROOOOROOROROOOOORRRORRRROROORRRRORRORROOOOROORRORORORROOORROOORROORROOOOORRROORRRRORORROOORRRORRORRORRRORORRORRROOORRORROOOROORRRRRRORRRRRRRORRORORRORORROOOORRORRRRORRRRRROOROORORRRRRRORROROROOORRRRRROORRORRROORROOOOORRRRRRRORORORRROOOOOOROORRRORRORRRORRORRRRRRORRRRRRRRRORRRRRORRORORRRRRORRROROROROOROORRROOOOOORROOOORROROOORRRRORRRRROROROOOORRRRORRRRROORRROOORRRRRORRRRRRRRROOROOORRORRRRROORORRRRRORRORORORRRRORRROROOROOROORRRRROOOORORRORRRRORRRORROORRORRRRORRRRRRRRRRRORORORORRROOOORORRROOORRORROOOROOORRORRORRORROORRRRRORORORROORRROOROOOORORROOORRROOOORRORRROOORORRROOOOOOOOOOOROROOROOORORRROROOOOOROROORRROOROROROOOOOOOOROROOOOOOOROOOOOROROOOOROOOOOROOOOROOOOOOROROOOOOOOOOROOOROROROOOOOOOOROOOROOROROROOROROOOOOROOOOOOOROOOOOROOOOOOOOROORROOOOOOORROOROOOROOOOOOROROOOOOOOOOOOOOROOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOORROOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROROOOORROROOOROOOOOOOROOOOOOOOOOOOROOOOROOOROOOOOORROOOOOROROROOROROROOOOOOROOOOROOROOORORROORRORROOOOOROOOOORRROOROOROOORRORRRRROORROOOOOOOOOOOOORROOOROOOOORROOOROROOORROROROOOOOOORRRORROROOOROORRORROOOOORRROORRRRORROOORRROOROOORROOORROROOROORROORRROORRRRRRRRRROORORORORRRRORORORRORORRRRORROOROOOOROOORORRRRRROOROORROORORRRROROORORRRRORORRRORROOORRRRRRROOROOORRROOROORORRORORRRROOORROROOOROROORRRORROOOORORRRORRRRRRRRRROOOORRRORRRORRRRROORROROROOOOORORRRRRRORRRRROORORRRRRORRRRRRORRRORROORRRRRRRRORRRRRRRROORRRRORRRORROOOORRRRRRRORRORRORRRRRRROORRRORRRORRROORRRRRRRRRRRROOOORRRRORRORRORRRORORRORRRROOROORORRRRRRROOROOOROROOROROORROORROOORORRORRORROORRRRRRORRORRRRRORROORORRRRORORROOROOOOOORRROOOOORRRRRRRROOORRORORROOOOOROORROOROROOROROOORRRROOROORORRORRROOOOORRRORORRROOOORORRRORRORROROOORRROOOOROOOOORROOOROORORRORRORROORRROROORRROROOOROROORROOOOOOORORORROOROOROOOOORROOOOROOORORRRROOROOOOOOOOROOOROROOORORORRORROOROOORROOOOOOROOOROROOROORROOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOROOOROOOOROOROORORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOROOOOOOROROOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOROOROOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORRROROOROOOOOOOOOROROOOOOOROROORRORROOORORRRROORORROOOOROOOOOOOOROOOOROOROOOOOOOROOOOOOOROROOOOROOOROOOORROOOOOROOOOOOOORORROORRROOOROOROOOOOOROOORROROOOROOOROORROOOROOROOOOOOOOOOOOOROORROOORORORRRROROOROOOROORRRORRRORORRRORRRRRRRORROOOOORRORROOORRORORROROOORROORRROOOORROOORRROOOOORRROORRORRORRRRRRRRRROOORORROOROORROROOORRRRORROOOOOOORRRRRRRORRRORROORORRRORRRRRROORRORORORORROORRRRRRRORRRORROORROORRRRRRRRORRROORROORRORORRRROORRRROORRROROOORORRORRORORRORRRROOROOOORROROORRRRRORRORRRORROORROORRRRORORRRRROROOORROROOORORORRRROOORRORRROORRROOORORRRORRRRRRRRRRORRORROORORROORRRRROOORRORRRORRRRRRRRRRROROOORORRRRRORRROOORRRORRRORRORROROOROROORRROROORRRORRROROORORROORRRROOORRRRRROOROOOOOROORRROORRROORRRROORORRROORROOROOORRROORRROORRROOOOOOROOOOROOOOOROOOOROOOOOORORROROORORROOOROROROOOOOOROOOROOOOROOORROOOOROROOOORORRORORROROOOROOOOOORRROOOOOROOOORROOOROOOOOOROOORRORROROROOOOOOOORRRROOROOOOOOOOOOROORORROOOOROOOOOOOROOROOOOROOOOROROOROOOOOOOROROOOOOORRORRROOOORRROORROOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOROOROROOOOOOOOOROOOOOOOOOOOROOOOROROOROOOOOOORROROROOOOOOROOOOOOOOROOROOOOOOOOOOOOROOOOROOORROOROOOOOROROROOOORORROOOOOROOROOOOOOOOOOOROROOROOOOOROROOROOOOORROOOOROOOOOROOOOROOOROOOOORRRORROOOROOOROOROOROOOOROOOROOROOROROROOROOROOOOROOORORORROOORRORROOOOOOOOOORRROOOOOOOOOOOOROOOOROOORORRROOOROROOOOOROOOOROOROORROORRORORRROORROORROOOROORROOOOOOROOORRRRROROROORROOOOOOROOOORRROROORROROORRORORRRRRRRRORORRRORROROROOORRRRRRRRRORRRORORRRRROORORRRROORRRORRROORRRRORRRORRRRRRROORORRRORORORRRRRRRROORRRRORRRRRROROORRRROOROORRRORRRRRRRROROROORORRRORRRORRORORRRRORORRRRROOOROOROORRROORROOROROOOROROORORROORORROOROOROROORORRORORRRRORRRRRRRRRORRROORORRRRRORRORORRROOORORRRRRRORROORRRORRORORORORORROOROORRRORRROROORORRRROOORORRRROOROOOOOORRROOOORRRRORRORROROOORORROOROORROOROORRRRORROOORRRROORROORORORROORROOROORRRROROORRORRORORRROROORROOOROOOORORROROOOOOOOOROROROORORROOOORROROOOOROOOOOOROOOOORRRROROROROROOOOOOOROOOROROROROOOORRRORROOROOROOOROOROOOOROOOROOROOORRORROROROOROROOOOOOOORORORORROORROOOOORRORROOOOROORROOOROOROOOOOOOOOOOOOOOOROROROOROOOOROROROOOOROROOOROOOOOOROOOORRORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROROOROOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOROOOORROORRROOOOOOOROOOOOOOROOROROOOOOOOOOOOROOORROOOOOOOOOROOROOOOOOOOOOOOROOORROOOOORRROROOOOOOOOOORROOOOORROOOORRORROROROOOOOOORROOROOOOROOOOROROOOOOOROORROOROORROOROOROROOROOOOORROROOORRRRROROOOOORRROROOORORRRROORORRORORROORORORROOROROOROORRORORRORROROROORRRORRROOROOOOORORRRORRROORRRRORORRRRRORORRROOOORORRRRRORORRRROOROOORRROORRORORRORROOROORORROOOROORORROORRORRROORRORORRORRRRRRROOROOORORORORROOROORRORRRORRRRRORRORORORRRORORRORORROOOOROORRRRRRRRRORRORRORORRROOORRRRRRORORRRORRRROOORROORORRORRRRORRRRRRRRRROOOORRROOROORRRORROORRRORROOORRORRROOOORRRRRRORORRRORORORRORORRORRORRRORORRRRRORORRRRROOORRRORRRRRRORRRRORROORRRRRRRRRRRORORRRRROORRRRROORRRROOOORRROROORORRROOOROOORORORRROORRRORORRRORORRROOOROOORORRORRRROORROROORORROOOOORORRORORROOOOOORRRRRRRORRRORROOOOROROROROORORORORRRRORROORROOORROOOORROOOOOROOOOROOOORORROOROOOOORROOROORROOROOOROOROOOORORRROOOOROORROROOOOOORROOROROROROOOOROOORRORROOOOROROOROOOOOOROROOROROORRORROOOORROOOOROOORRORROOOOOROOOOROOOOOOOOOOROOOOOOOOOOOROOOORORRROOOROOOOOOOOOOOOROOROOOOROOOROOOROOOOROOOOOOOROOOOOOOROORORRROOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOROROOOOOOOORROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOROOOORORRROOOOOOOOOROOOOOROOOROOROROOROOROORROOROOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOORROOROOOOOOOOROOOROOOOROOOROOOROOOOOOROOROOOOOOOOROORROOOOOOOOOOOORROOROOOOOOORROROORRRROOOOOOROORROORROORORRRROROROOOOORROOORRROOOOORORROOOOORROOOROROOROROOORRRROOROORRROORROOOOOROORROOOORROORORORRROOOOORORORRRORROORORRRRRRORRRRRORRROROROOROORROORRROORROORRROROOROOROORRORRRROOORROOROORRORROOOOOORRRRORRORORRRORRRRROORRORRRROROOORRRRRRROOORRROOOORROOORORROOOOROOORRRORROOOORORRROOOORORRRRRRRRRRRRORORORRROORRRORRRRORRRRRORRRROOROROORORRORRORRORRORRRROOORORRRORRRORRRRRORROORROORRRORRROROOORROOORRRRROOOOORORRORRORRROROORROORORROROORORROROOROROORROOOORRRRRRRRRORORRRROOOOORRORRORRROORROORORRRRROROORRRRROROROOORRRROOORROOORRROORORRRROOOORORORORRRRRORORRRRRROROROOROOROOOROOORRRRROOORRROOROROOOROOORROOROOROOROROOORORORRRROORRORRORROOOOOROOROOOOOOOOOOOROOROROORORROOOOORORORORROOORRROOOOOORORRORORORRROROOROOOOOOOORORRRRRORROOOORRRROOOOOOORRRROOOOROOOOOOORROOOROOOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOORROOROOROOOOOOROOOOOROOOOROOOROOOOOOOOOOROROROROOOROROROOOOOOOOROOOROOOOOOOOROOOOOOROOOOOOROOROOOROORROOROOROOOOOOOOOOOOOOOOROROOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOORROOOOOOROOORROOORROOOOOOOOOOORROOROOOOORORROOOOOOOROOOOOOROROOOOOOROOOOOOOORRROOOOOROOOROOOOOOOROOOORRROOOOOOOOOOOORROROROROROOORRRROROOOOOOROOOOOOOOOROOORORORRRROOOROORRRROOOOOOOOROOOOOOROOROOOROROORORROORROOOROROORORROROORROORORRROOOOOROROROOROROROOROORRRORRRROOOOROOOORRORRRRRROOOOROOORRRROOORROOROORRRORROROORROROORROOORRROOROORRRRROROOROORRRORRRROOORRROROORRRROOROORRRROOROORRRRRRRRRRORROORRORORORORROROROROOROROROROROOORRRRRORROORRORROROOOOOORRRORRORROOROOORRROOROOORORRRRRRROROORRORORRRRROOORRORORRRROOORRROOOOOORORRRRRORRRRRORROORRRRORRRRRRRRRROORRRORRRRROOOORRROORRRROORRRORORORRRROORRRORRRRRRRRRRORROORORRRORORROORRRRRRROOORRROOROORRRROORRRRROROOOORRRRRORRRRRORRORORRRRORORRRRRRRROROORRORRRRRRROORROORRRORORORRROROROORRRROOROROOOORRRROOORRORRROOOROOOORROROOROOORRRRROOROOROROOROOOOROOOROORRORRORROOROORROOOROOORRRRROOOOOOORRROOROOORROOOOOOROROOOOORORROOOOORROORORROOOROOOOOROOROOOOOROROROORROOROOROOOROOOOOOOOROOOOORRROOROOOROORRORROOOOOOOOOOROOROORRRRRORROOOOOOOOROROROOOOOROOOROOOROORROOOOOOOOOROOOOOOOROOROOOOOROROOOOOOOOOOOOOOROOROOOOOOOOOROOOOOROROOOOOOROOOOROOOOOOOOROOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOORROOORORORROOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOROOOOOOORROROOOOOOOOOOOOORROORROOOROOOOOOOOROOOROROORROOROROOROROROROOOROORORORRROOROOOOROOOOOOROOOOORRROOOOOOOOOROORORROORORRROOOOROORRRROOROOOORRORORORRORROOORRORORRORRROOOROROOROOOROORRROOOOOOOOORORRROROOORROROOROROOROOORRRRORRROORRRRRORRRRRROORROOOROOROOORRRORRRROROOOOOORROOOORROORRORRRRRORORRROOOROORRROOOROOROORRRORRORORRRRRRRRROORROOOROORROOOORRRRRRRORORROOORROOOOORRRRORROROOORRORRRRROOORRRRORORRRRRROORROOOOOORRORRRRRORRORROORRRRRORROORRORRRRROROORRRORRRRRORROORORRORRROOOOORRORORROROORRRRORRRORRROORRORROROROORRROOORRRORRORRRRORRROORROORORORROOROORROOOORRROORORRORRRORRRROORRRRRORRRRORRORRRRRRRROORRROROOOROOORRRRRROROORRORORORORORRRORRROORROOROOOROOROOOROOOOROOOROORRROOOORROORORORROROORORRORROOORRRROROOROOORROOORORRORRRORROROORROOOOOOROOOORRROOOORRROOOOOOOOROOORRORORRRROOORRRRORRRROOROROORROOOROROOOORRROROORRRRORROOOROOORROOORROOOOOROROOROOOOOOOOORROOROOOOOOROOROOOOOROOOORORROROOOOORROOOOOOROORROOOOOROOORROROOORROOROOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOROOOROROOOOOROOROOOOOROOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOROROORROOOOOOOOOOOOOOOOOOOORROOROROOOOOOOROOOROOOOOOOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOORROOOOOOROOOOOROOOOOROOOOROOOOOOOOOOROOOOOOROROOOOOOOOOOORRRRORRROOOOROOOOROOOROOOOORROOOOROOROOOOORORROORROOOROROOOOORRRROORROOORRRRROROOORROOOOROOOROOOROOOOOOOOORROOOOROOROROORORRRROOROROROOOOROROROOROROORRROOOOOROOOOOROOOOOOORRORRROOROOORRRRRRORROORRRRORROOROOOROOOROROOROROORORORORRORRORORRORORROORRORRRORRORRORRORRRORRRROOOROORORRRRRRRRORORRRRRRORROROOROOOROOOORRRROORORRRROOORRRRROOOOOOROROOORORORRRORRRRROORRRORRRORROOOORRORRRORORRRRRRRRRRORRRRRRRRRRORRRORRRROOOORRROORRORRRRRORRORRRRORROROORROOOOOORRORRRROORRRRRORRORRRROOORRORROORORORRROOORORRRORORORRRROORRRRRRORRRROORORORORORROORORRORROORORRRRRRRRRRRRROORRORRORORORROOOROROROOORRRROORROROROORRORRRORRROOOROORRRROORORORRORRRROROROOORORORRRRROOOOROORRRRRRRORRORRORRRRRRROOOROROOOOOROOORRROOOOOROOOROROOOROOOOOOROORORROOORROOOOOOOOOOROOOROROROOOOOROOOOOORROOOROOOOOOOOORROROORRRROOOOROOOOOOOOROROOOOROORRRORROOROOOOOROOOOOROOROROOOOOOOOOROROROROOOOROORRORROOOOOOOOOROOROROORORORORORROOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROROOOOOOROOOOOOOROOROOOOOOROOOOOOOOOROOROOOORROROORROOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOROOOOOOOOORRROOOOOORROOOROOOOOOOOOOOOOOOROROOOOOOROOOROOOOORRROROOOOOOOOOOROOOOROOROOOOOROOORROOOROOOROOOOOROOORROOROOOOOOROOOOOOROORRROOOROOORROOROORRROOROOOROOOOOOOOOOOOOROOORRROROOOOOOOOOORRRRROOOOOOROORORROOROORROOROROROOOOORORRRROROOROOOROORROOOOOORROORRRORROROORROOOORORRRRRORORRRORRORORRORORORRRROOORORROROORRORRORRORRROROROOOOORORRORRORORRRORRRRROOORRROORORRRRROROOROOORRRRORORROOOOROROROORRROROORORRRRRRRRRRRRROORRRRORORRROORRRRORRROORRRORRORRRRRRRORRRRROOOROOORROOOOOOOORORORRRRRORRRRRORRORRORORRRRORRRRRRROROOOORRRRRROORROOORORRRROORROOORRRRRORORRRORRORRORROORRRROOORRRRORORRROORRORRORRRRRRROORRRRRORRRRORORORORROORRROOROORRROORORORRRRRORORRRORRRRRORRORRRRROOORORRORROOROOOOOOORROORROORRORROOOROORRROOROOOOROOORORRRROORORRRRRRORORROROROROOROOORRRRORROOROOORROORROOOOORRROORORRORORORORRROOORORRROROOORORROOROOOORRRORORORRROROORROOOOORROROOROORROORORRORROORROROOOOOROORRRRRORROROROOOORRRRORRRROOOOOORRORROOORORRROROORROOROOOOOOOOOOOORORORROOOOOOOOOOOOROROOOOOOOROROORROOOOOOOROROOOROOROOOOOOOROOOOOOOOOOOOORROOOOORORROROOOOOOOOOOOOROOOOOROOOOROOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROROOOOOORROOOOROROOOOOOOOOOOOORORROOOOOOOOOOOOOOOOORROOOOOOOOORORROOOOOROOROOOROOROOOOOOOOOROOOOROOOROOROOOOROOROORRROOOOOORROOROOOOOOOOOOOOROOOOOROOORRORORORRRROROORROOOOORROOOOOORRORRRROROOOORRORROOOOROOOROORROOOROORRRORORRORRORROOORROOORORRROROOOROROROOOOROORROOOORROROOOROORRRROOORROOROORROOORORRROROROROOORORRORORRORRRROORROROORRORORRRORRRROOORRORROOROORRRRRRRROOOORRRRORRRROORROROORORRORORRRRROOORORRROOOOROORORROORROORRRORORRRORRORORRRROROORORRRORORORORORRRORRROROOORRORRRROORRRROORORORRROORRRORRROORRROROORROOROOROORRRROOORORORROORORRRRROROROORROROORRORORRORRRRRROOOOOORROORRRRRROOOROOOORRROORRRRORORRRRROROOOROOORRRRRROROROOROORORRRORRRRRRROORRROOOORRORRORRROOOORRRRORRORRORRRRRRROOROOOORRROOORRRROOROOOORRRORRORRROROORRORRORRORROORROROORRRORROROORRRRRRRRROROROOORROORORRORORORROORORORORROROOORORROOOROOOOOOOROOOORROOROROOOROOOOOROORRRORROROOOROROOOOOORORRORORROOORRORRRORROROORORRRRROOOROROOOROOOOROROORORRROOOOOOOOROOORORROORROOOOOOROOORROOOORRRROROROOOOOORROORROOOROROOOOROOOROOOOOOROROOROOOOOOORROOOROOOOOOOOOROOROOOOOOOOOOOOOOROOROOROOOOOOOOOOOROOOOROOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOROOOOOOOOROOOOORROOOOOROOOOOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOORRROOROOROROROOROROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOORROROROOOROOOROROOOORORROROOOOROROOOOOOOORORROOOORROOOOOOORROROOOOORORORROOORROOROOORORORROOROOOORORROOOORRRRORROOOORRRORRROROROOROROOOOOOOOOOOROOORRROORORROOROOROOOOOROOOROORROORROOOROOOORORROOROROOOROOOOROOOROORRORRRORROOROOORORRORROORORRORORRORORRRRRROORRROOROORROROROOOOORRROORRRRRORRRROOOROROOORRRROOORRRRRRRRORRRRORRORRORRROOOROOROROORORRROOOOORRRROOOOOROORRRRRRROOROOORORRRRRORORRORRRRORRROORRRRRRRRROORRRRROOORORRORRRORRRRRORORRRORORRRRRORRORRRRRRORORRORRRRORRORRRORRRRROOROORRRRORRROOORORRRRRORRRORROROORORRORROORORROROROOOOROOOROORRORROORRRRRRROORRRORRRORRRRROOORRRORRRORRRROORORRRRROROORORROOOORORRORRRROOROORORRROOROORRROOROROOROORRRORROORRROORROORROOOOOROORORRRORROOORORROOOROROORROOOOOOROORRROROOOROOOOORROOOOOOOOORORRRROROOOROROORRORROOOOOOORROOOOOORRROOOOOOOOROORROROROOOROOOOOROOROORRROOOROORROORORRROROOOOOORROOOROOROOOOROOOOROOOOROOOROROOOOOOOOOORROOOOORRROOOOOOOOOOOOORORROOOOOOOOROOOOOOOOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOROORROOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOROOOOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOORROOOOOOOOOOROOOOOROOOOROOOOOOOOOROOOOROOOOOOOROOROROOOOOROOOOROOOOOOOOOOOOROOOOOOOOROOOROOOOORROOOOOORROOOOOROOOOROROOOORRROROOOROROOOOOOOOORROOROOOORORROOORROOOOOOOROOORRRROOOOOOOOOOOROOOOOOORROROROOROOROOOROOOORROROROOOOORORRRRROOOROOOOROROROROORROOORRROOROOOROOOORRRROORRROROOROOROORRRRRRORORORORORORRROOROORRRROOROROOOORORRRORORRRRRORORRRRRORRROOOOROORRORORROOORRROOOORRRORROROOORORRORORORRROOORORRRRRRROOROOOORRRRRORRORRRROORRRROORRRORRORORRROORRRRRORROORRRRORROORORRRRRROOORRRORORRRRRROOORRORORRROOROOROOORRRROOOOORRROOROOOORROOOROORRRRRRORRRORRRROORROOOROORROORRROOORRRRRORROROOROOOOORORORRRROORRRROOORRRORRRRRRRROOORROOORRRRROOOROORROROOORROROORRRRRORRRRRRRRRRORRROROOOOROOORRROOOOORORORROOOOORORRRRRRRRRRRROROOOOORORORRRROORRROOORORRORORRORROOOOOROROORROOOOOOROOROOOOOROORRRRRROORRRROOROOORROOORRORROOOROROOROROOOOOOROOOOOROOORRORRRRORRROOORROORRORORROROOORORROOOOOORRROOROOROOOROOROOOOOOOORRROOROROOOOROOROOOOOOOOOROORRRORORROOROOOOOOROOROOOOOORRRORROOROOOOOOOOOOROROORORORRRRRROOOROOROOOOOROOROOOOOOOOROOOOROOOOOROOOROOOOOOOROOORROOOROOOOROROOOROOOOOOOOROOOOOOOOOOOOORRROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOROOORROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOORROROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOORROOOOROORROROOOOOROOOOOROOOORRRROROORROOROOOORORROOOOOORRRRRRROOOOOOOROROOORORROROOORROOOROOROOOORROROOOOOOOOOOOOROOORORROOOORRRRRORROOOROOOROOOORROOROOOROROOROORRROOOOROOOROROOORROORRROOOROOROOORORROOROOOOOORRORORORORORORRRROOORRORRRORROOOOOOOOROORRORORORROROOOORRORORORROROOORRRORROOROROOOROROOROROOOOROROOORORRRRRRORRRORRRRRRORRRROORROOORORRRRORORRRROORROOORORROROORORROOOOORRORORROROOOOORORORRORRRORRORORORRRROOOROORORRRRRRORRRRROOOROROOOOOOOORRRRROOORROORRRORORRORORORRORRROOOOOOROOOROORORORRORRRORRROORRRRRRRROOORRRRRRORORRRROORRRROOORRRRRRROROROROOROORRORROORORROOROROORRORRORRRRRROROROOORRORRORORRORORORROORROORRRROROOROOORRRRROROORRRRRORRRORORRRRRROROOOOROROROORROOOOOOROROOORRRRORRORRORRORRROORRRORROOROOROORROOROORROORRROOROROORORRROOROOROOOROOOOOOOOOOORROOOOORROOROOROOOOORORRRORROOOOOOOOOROOOOOOROOOOORRROORROORRRRROOORRROOOOOOOORROROOOOOOORROORORRRORROROROOOOOOOOOOORROOOOROOOROOOOOROOROOOOOOOOORRROOOOOOOOOOROROOROORRROOOOOOOOOOOROOOROOOOOOOOOOOOROOROOOOOOORRRROOROOOROOOOROOROOROOROOOOROOOOROOROOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROOOOOROROOOROOOORROOOOOOOOROOOOROOOOOOOOOROOOOOOOOOOOROOOOOOROROOROROOOROROOOOROOOOOOOOOOROOOOOOOROOROROOOOOOOOOOOOOROOOOROOORROOROOOOOROOOOOOOOOOOOOOOOROORORORROOOOOOOOORRROOOORORROORROROOORRRORROOOOROROOORRORRRORROOOOOOOOOROOOORORROOOROOROOROROROROOOOOROORROROOORRRRROOROOOORROOORRROROORROOOOROORORRROORRORROORORRORRRORROOOORORRRROORORORRROOROOORRRRRROORRROROORROOOOROROOOROOOROORRRORRRRRRRRORORRRORRORROOOROORROOOOORRORROOOORORRROOROROOOOORRRORRRRRRRORRROOROORRRRRRRRRRORRRORRRRORORRRRROORROOORRRRRRRRRRRROORRRROORRRROROROORORRRORRROORRORROOOOROOOROORRORROROOORRORRRROORORRRRRROROOORRORRORRORRORORRRRORORROROORRORORRRRORROROORRRRORRRRORRORRROOOROOOROOOORRRROOROROORRRRROORRRORROOORORRROOOORORROROROROORORRORORRROOORRRRORROORRRRROOROOORRRRROOOORROROORRROOOROORORRRRRRRRORRRROOOOROROOORROROROROROORRROROOOOOORRROOOOORORROORRROORORROROOROOOOOROOORRORORORROOOOROOROROOOOROROORRROOROORROOROOOOOOORROOOOOOOORRRROROROOOROORROOOROOOOOOROOROORRROROROOOOOOROROOOOOOORRORROOORORRROROROOROOOOOOOOOORROORRORRRRRRRRROOROOOROOOROROOOROOOOROOROOOOOOROOOOROOOOOOOOROOOROOOROOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOROOOOROROROROOOOOOOOOOOOROOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOORORORROOOOOROOORROOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROROOOOOROOOOROOOOORROOOORROOOOROOOROOOOOROOOOOOOROOOOROOROOOROOOOOOOROOROROROOOOROROOOOOOOOOOORRROORRROOROOORRROROROOOOORRROOOOOOORROORORRROROOOOORROROOROROROORRORORROOOOROROROORROROROOORRORROROORORORROROORROOOROROORROROROORRORRRROROOOOORROORORORROOOOOROOORRORRORRRRORRRORRORROOOORORORRORROOORROOROOOOOORRORRRROOORORRRRORRORROORROORORRRRRRORORRORRROOROOOOOROROROORRORRRROOOROOOROROORORRROOORRRRRRRROROORRRRRRRORROORROOOORRRORORORRROORRRRRRORORRORRRORRROOORRRORRRRROORRRRRORRRORRRROROROOOROOOORRRORROROORRRRORRRORROORRRORRORRRRRRRRORORROORROORRRROORRRRORRRRRRRORRORRRROROORRORRORRRRROORRORRRRRRRRROOROORORORORROOORRRRRRORORRROORORORROROOORRRRRORRROOOORORROROROOOROOOROOORORRORORROORORROROORRRROROOORROROOOORROOOOORRRRRORRRORORRRROOORROOOOOOORRROROORRRORORRRROROROOROORRROOORRRRORORRORROORRRRRRROOOOOROOOROROROOOORRROROORRRRRRROOOOOOOOOOROOORROOORROROOROOOOOOOOROOOOOROROOOOOOOOOROOOROOOOOOORRRROOOOOROROOOORROOORROOOOROOOOOOROOROORROOOOOOOOROOOOOOROOOOORROOORROORRROOOORROORRROOROOOOROOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOORROOROOOOROROOOOOOROORRROOOOROOROOOOOOOOOROROOOOOOOROOROOOOOROOOOOROROOOOOOOROOOOOOOOOOOOOROOROORRRROOORRRORROOOOOOOROROOOOOOOROOOOROOROOOOOOOORROORROOOROOOROROOOOORROOOOOOOOOOOOOOOROOORROOOOOROOOOOOOROROROROROOOOOROOOROOOORRROOORROORRRRORRROORRROROOOOOROORRROORROOOOOOORROORRROROOORORRRROOOROROOOOOOROOOROORORROOOOOORRROOOORRROOORRROROORORRRRRORORRROORROROOOORROOROROORRORROOOORORRORORRRRROORORRORRRORROORORRRRRORRROROORRROROOORORORROOOORORRRORRRROOORRRORRORORRORRRRORRORRORORRRORORRRROOORRROROOOOOORRRORORRRRRRROORRROOORRRRRRRRORRRROORRROOORRRRRRORRROOORORROORORRORORRORORORRRORORROORRORRRRRRORRORROOROORRRRRRRROORORORRROORRROORRORROOORORRRRRORORROOOOOOROORORROROOOROOROOORRRRRRORROOORROOROOROOOORORRORRRORROORORRROORORORROROOROOORRORROOOOOROORRORRRROOROOOOOORROORRRRROOORROOOROOROORROROROOORRROORRORROOORRRROOOOOOOROOOORRROORRRROOROROORRORROOOORRRRORRROOOOOROOORRORRRROORORRROROOOOOOROOROOROOOOROOOOORROOROROOORROROOROROOORROOOOOORORORROOORRRRROOOOORROOOOOROOORROOOOOOOOOROOOOOROOOOOROOOORROOOOOOROOROOROOOOOOOOROOOOOOOOOOROOOOOOOORRROOOOOOROOOOROOOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOROOOORORORORROROOOOROOOORROOOOOOROOOOOOOOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOORROOOOROOOORROOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOROOROOOORRROOOOOORROOOOORRRRROOROOOOOOOOOORROOOROOOOOROOROOOOOOOOOOOOOROOOOORROOORORROOORROOORRRROOORRROOOOORROOROOOOROROOOOROORROOOOOROOOROOOOOOROOOOOORROROORRROOROOOOROOOOOORRROOORRORORRRRROROORORORRRROROORRRORROOOOROORRRORRROROORROORORROOROOOOROORRRRORRORRRROORORORORRRRRRRRROROOOOOORORRORRRROORRRROOROORRROROORROOORRORROROORORROORROOOORRRORRRORORRRRORORRORRROORRRRORRRRORRRRRORORRORROROOROORRROROOORROORORORRORORORRROROORRRROORORRRRRRORRRORRORROORORRORROORRORORRROOORRRRROOOOOOROOORRRROOROORRRRRORRORORRORRRORROROROORORROOROROOORORRORORRROORORRRRORRRROROORORRRORRORROOROOOORRORRRRRRRRRROORORRRRRRRRROOOOORORRORRRORORRRRORRRRRRRORRORRRRRROOORRROOORRRRRORRROOROROROOOORORRORRORRORRRRROOORROOOORRRRORROOORORRRROOORRRRORRROORORRRRRROOOOOOORRROOOOROOOORRORRRRRROOOORORROORORROOROOROOROROOOORROORRRORRRROOROOROROOOOROOOROOOORORROOOOOOOORRRRORROROOOOOOOROOOROOORRORORORROORROORROOOOOROOOOOROROOOOORRORRROROROOOROROOOROOOORRROOOOROOOOOOOROROOOOOOOOOOROOOOOOOOOOOOOROOOROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOROOOOOOOOOOOOOOROOOROOOROOOOOROOOOROROROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOOOOOROOOOOOROOOOOORROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROROROOOROOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOROOROOOOOROROROOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOROOROORROOOROROORROROROORRROOOOORROROORROOOOOROORRROOOOOOOOOOOROROOROOROROOOOROROROOOROOOORRORROOOOOORROOROOROOOOOOORRROORROORORROOOORRORRROORRROROORRORORORRROROOOOORRRROORORORRRROOOOROORRORROORRRORORROROOOORRRROOOROROORORRROROROROOOOOOORRORRORRROOOORROROOORROOOORORROOOORROROORRRRORRROORRROORRRRROORORRORORORRRRORRRRRRRORRORORRRORRRRRORRROOOROROOORRRORRORROROORRRORORORORROOORORORORORRORRORRORRORRROOORRORRRRORRROORROORRRRRRORRRRRRRORORORRRRROORROOORRROORROOORRORRROROORRRRORORRORRRRROROORRORRORORROROROROORRRRRRRRORRROROOORRROOOORROROOROOROOORORRROROOOROROORRROORRRORRRORRRROOORORORORRRORROOROOROROROOROROOROOOORROROOORROOORRRRORORORROOOOORORORORRRRROOORRRROORRRRRRORROOORORRRROOOOORROORRRRORROOOOOORROOOOORRRROOORROOOOOOOOOORORORRROOOOOROOROOOOOOOOROROOOOOROOOOOROOOOOOOROOOROORROOROOOORROROROOOOOOOOOOOOOOORROOOORROROOOOOOOOORROOROROOOOOOOOOOOOOOOOOOOOOROOOOROOOROORROOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOROOOROOORROOOROOOOOOOOOOOOOOOROOORROOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOROOOOROOOOOROOROOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROROROOOOOOOOOOOOROOOOOROOOOOROOOOOOROOOOOOOOORRROOOROOOOOOROOOROOOOOOROOOROOROOOOOOOOOOOOROROROROOROOOROOOROOOROROORROOOOOOOOOOOORRRORROOOOROOOOOOOOROOROOOROOOOOOOOOOROROROOOOOROOROOOOOOORROORROOROOORROROOOOOOROOROROOROOOOOOOOOOOOOOOORRROOOOORRROOOOOOOOOORRROOOOROROOORORROORORROOOOORRRRORORROOOORROROOORORRORORORORRORORRRROOOOORRRROROORORRRRRRRROROORRROORORRORRRROORORROROROOOOOROROOOROROOORROOOROROORROORRRORORRRRRORRRORORRRORRRROORORRRRRORORRRRRRRRRRRRRRORRRRRORRROROROOOORRRRRRRRORRRORRRROORROORRRRORRORRORRRROROOORRROOORRRRORRRRRROROOORRRRRRRROORRRRRRRRRRRORORORRORROORRRRRRROROROORROORROOOOORRRORRORROROROOORRRROOOORORRORORRRROORRRRRRRORRRRORRRRORRROORRROOORROROROOOOOOORORRORRRRRRROORRRROORRRRRRROOORRRORROORRORROOORROORORRRROROORROORRRRRRRRORORROOOOOOOROOROOORROOOROORRORORORRORRROROROOROOOOROOOOOOOOORORRROOROOOROROOROOROOOROOOOOOROOROOROORRORRROORORORRORORROROOORRORRROROOROOROROOOOOOROORROOOORRORRRROOROOORRROOOOOROOROOOOOOOOOOROOOOOOOOOOOOOOORRRORORROORROOOOOOOROOOORROROOOOOOOOOOROORROORROROOOROOOOOOOOROOOOOROOROOROOOOOOORRROOOOOROOOROOOOOOORROOOROOOOOOROROOOOOOOOROORROOOOOOROOOOOOOOOOOOOROROOOROOROOOOOOROOOROOOROOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOROROROOOOOOROOORROROOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROORROOOOOOOOOROOOOOOOOOROOOOOOOOOOROOOOORROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROORORORORORROROOROROORROROOORROOOOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOROROOOROOOROROOOOROOOOOOOOOOORORROOOOOOROORORROOROOOOOORROOORORROOOROOORROORORROOOORROOOROOROOORRROOOOOOOOOROROOOOOOORRROOORRRORRRROOROROORROROROORORRRRRORROOOOROOOROROROROOOOOOOOOROORRROOROOROORORRRRRRRRROOOOROOOORRRROROOOROROOOORORROORROOOROORRORROOROORRORRRRRRROOORRRRROOOOROROOROROROORRRROROROROROOROORORRROORORRORORROORRRORORRORRROOROOROORRRRRORORRRRROORRRRRROORORRRRRRORRRORORROORORRROORRRRRORRRROROOORROOORORRRRORRORROORRORRORRROORRRRRORORRRRRORRORRRORRRRRRRRRROOROORROOOROOORROORRORRRORORORRROORRRRROOOOORRORROROOOROOOOOOROORRRRRRRORRRORRRRORRORRRRRROROOOOORROOOOOOORROORORRORORRORRORRROROROROROORRORRORRRROORROORROOOOORROOORORORRRRORRRRRROROROORRORRRRORROOOOOOOOOORORROOOORROORROOOOROORORORORRORORRORRROROROOOOOORORORORORRRROROROORORRRORROOOOROOOOOOOOOROOOOOOOOROOROOOOOOOROROORORRROROOOOOOORROOOOOROOORROOROOOOOOOOOOOOROOROOOOOROROOOOROOOOORROOOROOOOOROOOOORORROOOOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOORROOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOROROOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOROROOOROOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOORROOOOOOORROOOOOOOOROOOOROROOOOOOOOOOOROOOOOROOOOROOOOOOOOROOOOOOROOOOOROOOROOOOOOOROOOOOOOOOROROOOOROOROOROORROOROOORORRRROOOOOROOOOOORORRRRRORORORORRORROOOORROOOROOOOOOOOOORROOROOORROOOORROORRROOORRRROOOOROORROOROORRORRORRORORRRRRORRRRRROORROOORORROROOORRORROORROOOOOOOOORRRORROROROORROOOORRRORORRRORRORRROOROOOROORRROORRRRORORORRORORORRRRORRORORRROORRRRRORRRORRRRORRORRROORORORROOROROOORORORORRRRRRRORRRRRRORRRRORRROOOORROORORORRROORRORORROORROROORRRRORRRRRRRORRRRRROROROOORRRORORORRRROOOOROORRRRRRROOORROROOORRRRROOOROOORRRRRRORRORRRRRRRRRRROOROORRORRROROOOORRRROOORRORRRRRROOORRRRROOORROROROOORORORRRORRORRRRROROORRRORRRRRRRRRRRRRRROOORORRRORRRRRORROOORRORROOOROOOORRORORRORORORRRRROROOOOOOOOOROROORRRRORRRRROORROROROORRRORORORRORRORORORROOORROROROORRRRROORROOOOOROOOOOOOOOOROOROOORORROOOOOROROORRROOOROORORRROOORROROOOOROROOOOOOOOOOOORORROROOROOOORORORRROOORROOOROOOOOORRROORROOOROOORRROROROOOOROOOOOOORORROROROOROOOROOOORROROOORROOOOOROOOOOOOOOOOOOOOROOOOORROOOOROROOOOOOROOOOOOOOOOOOOOOOOOOROROOOOOOORROOORROOOOOOORROOOOOOOOOOOOOROOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOORRROOOOOOOROOOOOOOOOOORROOOOROOROOOOOOOOOORROOOOOOOOROOORROROOROROOOOOOOOOROOOOORRRROOOROORRROORORROOOOOOOROOOOOOOOOROOOOOOOROROOROROROOROROROOOOOOORROOOOOROROOROORROOROOOOOROOORROROORRORROOOOOROORROOROOOOORRROOROOOOOORROOOROOOOROOROOROOOOOROROROOROOOOOORRRORRROOROOOOROORROROOOOROORRRROOROOROOORRRRROOOOOOORRORORROROROORORRRORROOORRRRORORRRRRROROROOORRORORORRROORRORRORORORRRRROROORRORORRORROOOROROROORROOORRRRROORORROROROOOOOOORRORROOROROOOOORRRORRRRROOROOOORRRRRRRROOOOROOORRRRORRORRRRRROORRROROOROORRROOORROOORORRORRRRRROORROORRORRRRRRRRORRRORROOORRRRRORRORRRROROOOORRORRRRORRORRRRORRRRRORROROORRRRRRROROOOORRRROORRRORORRRRRRRRRRRROOOOOROORORROORORRROOOOORRROORRORORORRORORRORRROOORRORRORRRROOOOORORRRRROROOORROROROORRROOROORORRRRROROOORROOORORRRROOOOOOROROORRROOOROROOOOORRRRORROOOOOOROOORORROOOROORORROORRRORROOOOORRORORROROROOOOROOORROOOROOOOROOOROROOOOROROORRROOOROROOOOORORORROROROOOOOOOOOOOOROROOOROOOOOORRRRRORORROOOORRROOROOROROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOORROROOROOOORROOOOOOROOOOOOOROOORROROROOOOOORROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROROOROOOOOOOOOOOOOORRROOOOOROOROOOOORROOOOOOOOOOOOOOOOOOOROROOOOOOOOOROOROOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROROOORROOOOOOOOOROROROOOOOORROROOOORROOOOOOOOOOOOOOOROOOOOOOROOOOOOOROROOROOOROOROOOOOORRORROOOROOROOROROOORROOROOOOROORRRROOROOORRRROOOOROOOOOROROOOOROOOOOOOOOOROOORROORROOROORRRROOOOOOROORRRRRROROORORRRROORRRORORROORROORRRRROOOOORORROORRRROROORROORRROOOOORRRRRRORORROOROROOROOOORRROOOROROORORORRRROORORORRORRRRROORRRORRORRORROOROORRORORRRRRRORRRRRRROOOOORORRRROOOOROORORORRORROORRRRRRRORROROORRRRRRROOOOOORRROORORRORROORRRORORRRRORRORORRROOOOOORORROOOORRRRORRRRRRORRROOORRORRRRROORRRROORORORRROOOROROOORORRORRRORRRROROOROORORRRRROROORRRRRRRRRRROOROOORRROROOORROORRRORRROORORRORRRROOORRORROORRORORRRORRRROOROOORROOORRORRRROROROROROORRRROOOOORRROORRROOROOROROOOROOROOOOOOOROOOORORROORRORRORRRROROOOOOOORRROORRORRROOOOORRORORRORROROOOOORORRRRRORRRRORRRROOOOOOOOROROOOORRROROOOOROOROOORORRORRRROORRRROOROROROOROORROOOORORROROOOOOROOORRORROOOROOOOOOOOOOOOOORORROROORRROOOOOROOOOOORRROROOOOROROORORROOOOROOOOROOORROOOOOROOROOROOOOORORROOROOOOOROROOOOOOOOOOOROOROOORRROROORORROOROOOROOOOOOOROOROOROOROOOORROOORROOOOOROOOROOOOROOORROOOOOOOOOOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOORROOOROOOOOOOOOOOOOOORROOOOROOOOOROROOOOOOROOROOROROOROOOOOOOOOOOOROROOOOROOROOOOOOROOOOROOOOOOORORRORORROOOOOOOORROOOOOOROOORROOORROOOOROROOOOROOORRROOOOORROROOROOORRORROOOROOOOOOROOOOOOORORROROOOOOORROOOROOROORROOOOORORRRROOOOOOOOOOOOROOOORORROOOOOORROOOOROOOOOOOORRRROROORROOOORORROOORRRRRROORRRRRORROOROORRROROOORORRRRRRRRORORORRROOORROOORRRROOOORRRORRRRRORRRRROORRRORORRRRROROROOOROORRRRRRRORRROROROROROOORROOROORRORORRRRROORORORRRORORORROORROORRROORRRRRRRORRRRRORRRRRRORORORRRORRRORRROORORROOORRRRRRROROORRROOROORROORORRORRORROOOROROOROROOORORRRRRRROORROOOORRORRROROORROOORRRORRRROORORRRRORRORRORRROORORORRRRORORRRRORORORRORORRORORRRORORORORORROOORORRORORRRRRRROOORROOOROOOROOROOROOOROROROOOORROOROOROOOROORRRRRROROORRORRRROOORRORRROROOOOOROROOROOORROOOOROOORROOORORROROOROOOOOOORRROOROORROORRRRRROORROORORRRRORRRRRROORROORROORRROOOOROROOROOOOOOOROOORRRORROOOOOROROORROOOROORORRROOOROROROROOOOOORRRROOOOROOOOOROOOOROOROOOOOORRORORORROOOROROOOOROOOOOOOOOOOOOOOOORROOOOORROOROOROOOOOOROOOROOOOROOOROOOOOOOOROOOOROOOOOROOOOOORROOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOOOOOOROOOROOOROOOOOOOROOOOORROOOROOOOROOOOOOOOOROOOOOOOOOOROOOROOOOOOORROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOROOOOROOOOOOOROORORORROOOOOOOOOOOROOROOOOROOOOOOROOROOOOOOORROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOORRROORORROOOOOOOOOOOOROOOOROOOOOROROOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOROOOOORRROOOOOOOROOOOROOOOOOOOOOOOOOROOROOOOOOOOROOOOOOOOOROROOORRRROOORROORRORORRROORROOORRORORROOOORROOOOOOOROOOOOORRRORROROOOORRRRROOROOOOOOOROOOOOORRROOROROOOOROOOOOOORROORROOROOOOOROOROORRORRORRROOROOORORRROROOOOOOROORRRRRORRRRRRRORRORRORRRRRRORRRRRROOOOROORROORROORRROOORROOORRORORRRRRROOOOROORRROORRRRORRRRORRRORRROROORORORORORRRRRROOORRROROOOROOROOOORRROORRORRRRRRROOORRORRORRRROORORRRRRORORORORRRRRRROROROOORRRRRRRORROOORRRRROORROROROROOROROORORRRRRORORROORRRRRRRRROOOOOROOOORROROOORRRRRRORRROORRRROROROOORORRRORORRRORROOOOORROOROOROOORROOOORROORORRRROROOOORRRRRRORRROROROROOORORRORRORORRRORRROOORRRRORRROORORRRRORRRRORRORORROOROROOROOROOORRRRRRRROROOOOOORRORRRROROOORORRORORORRRROROOOORRROORORORRROOOOOROOOOROOOROORROORROOOROROOORROOOROROOROORROORROOOOOOROOOOROOROROOOOOORORRROOOOORROOROROROOROOOOOROROOOOORRROOOOOOORROOORROOROOOOOOROORROOOOOOROOOOOROOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOROOOOROOOOOOOOOOOOOROOOOOOOOROORROOROROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOROOROOOOOOOROOROOROOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOORRROOOOOOROOOOROOOOOROOOROOOOORORROOORORROOOOOOOOOORRORROOROOOOOORROROOROOOROOOORROROOOOOOOROOORRORROROOORRROOOOROOOORORORRRROOROOOROOOORROOOORRROOOOROOOOOOOROORRRRROOROOOORRRORRRRROOOOROROOROORORRRORROROORRORROOROOOORRRORROOOOORORRRRROOROOOOOORRORRORRROORRORORRRRORRRRRROOOOOORRRRRRORRORRRRRRRORRRRORROOROOOROOORRRRRRORROOOROOOORROOROROOOROOORRRRRRROOROORRORROOROOROOOOORORRORORORRORRRRRRROROOROOOROORRROORROROOOORORRRRRRORROORORORORRROORRRRRRRORRROROOOOOROORROROORRROOORRRROOORORRRRRRRRRROOORORRRORRRRRORRRORRROOOORORRORRRRORORORRRORROORORORRROROORRROORRORROORORRRRRRROOOOOROORRRORRRRRORORRRROOOROORORRORORROOORROORROORROOOORRRRRROOORORORROOOOOOORRRRORORRRRRROOORRRROORROROROORORORORRRRROORRRROORORRRRRORRORORROOOOOORROROORORRRRROROOORRRROOORORRRROROOOOROORROOORROOOORROROOOORORORROROOOROOROORORROOOORORRRRRRORROOORORORROOOROOOROOROOOROOOOROROROOOOORRROOROOOROORRROOOOOOOROOOOOOOOOOOOORRROROOOOOOROOOORROOOOOROOOROROOOOOOORROOROOOOOOOOOOOOOOOOOOOORROOOOOOROOOROOROROOOOOOOROOOOOOOOOOROOOOORROOROOOOOOOOROOOROOOOOOOOROOOROROOOOOOOOOOROOOOOOOROROOORORROOROOOOOROROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOROOROOOOOOOOOOOOOOROOOOOOOOOOROORROOOOOOOROOOROROOROOROROOOROOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOROOOOOROOOOOROOOOOOROOOOORRROORROOOOOOROOOOROOOROOROOOOOROOORRROROOOOROOOOOROORORORRRROROORRORORROOOORORORORROOORROORROORROROOROOORRROOORRRROOORRROROORORROORRRORRORRORRORORROOROROORRRROROOOORORROROOORORORORROOOROROROROROOORORRROORRORRORRRORRROROROOOROOOORROOOOORORROORROOROOOOOOOROROORROOROOROOORORRORRROORRRORORRORRROROORRROORORRRRRORROORRORORRRORRORORRRRROOOORRRRORORORRRRORRRORRRRRRRRRRRORORROROROOORORRRRORORRRRORROORORRROORRRORRRRRRROOROOOORRRRRRORROROORRORRROOORRRRRRORORRROORORRORRROORRRRRORRRORROROORRRRRRRROORRRRORORRORRRROROORRROORRRORROROORROORRORRRRRRRRORORROORORRRRROOOROOROOOROOOORRORROOOROOOROOOOOOOORRORRORRRRRROORORROROOROORROORRROOROOOOOORROOORRRRRROROORORRRRROROOOROOROROORROOROORRRORROOOROOOOOOORORROORROOORORROOORROOORROOOROOOOOOOOOOOOOORRROORRROORROOOOOORRRORROROOOOROOROOOOOROOROORROOROORRRORRROOOOROOOROOOOOOORROOOROOOOOOOOOORROORORRROOOOOOROOOROOOROOOOORRROOOOOOOOOORROOOOOROOOROOORROOOOORROOOOOROROOOOOOORROROOOOORROOOOOOROOROOROOOOOOOOOOROROROOOOOORROOOOOOOOOOROROOROOOROOOOOOOOROROOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOOOOOOROOOOOOOOOORROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROROOORROOOOOOOOOOORRRRORROOOOOOROOOOOOORORROOOOOOOOOOOOOOOOOOOROROROROOOOOOOOOOROROROOOROORORROROOORROOROOORRRROROOORORORRRROORRRORRORROOOROORRRRRRRORROROOOROORORRORORORORROOROORRROROOOROORRROOOROROORROOOOOORROROOOOOOOOOROOORROROROORROORROOOOROOOROORRORRORORORRORRRRORRRORRROOORRRROROROOOOORRRROROROOOOOROORRORORROORROORRORORORORROROORRROORORORRORRRROOROORORRRRROOORRROROORROOORRRRORRROORORORRRRRRRRRROORRROROORORRRORORRRRRRORRROORROROOORORRRRRRRROROORRROOOROORRROOORORRRRRROORRRRRRRROORRRRRRRRORORRRRRROOROORRROORRRRRORROOOORROORORRRRRRORORORORRRROOROROORRORRRORRORORRORROORORRRRORRRROOROORORORRROOOOORRORRORRORORORORRRRRROORRRROOOOORRRORRRRORRORRROOROOOOOOOOOOORRROORRRRRROOOOORORRRRRRRRORROOORROOROOOROROOROORRROROOROORRRRORORORROORRRRROOOORRROOROOOROROORORRORORRRORRRRRORRROOROORRORRRROROROOOOORROROORORRORROOOOROOOOOOOORRRROROORROROOOOOOOOOROOROOOROOOOOOROROROOORRRROOOOOORRROROOOROROOOOOROROOOOOOOOROOOROOOOOOOOOOOOOROROOOOOOOROOROOROOROROOOOOROOROOOOOROOOOORRROOOOROOOOOROOOROOOOOOROOOOROORROOOOROOOROOOOOROROOOOOOROROOOOOOOOOOOROOOOOOOOORORROOOOROOOOOOROOOOROOOOROOROOOOOOOROOORROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOORRROOOOROOOOOOOOOROORROROOROOOOOOORROOROOOROOOOOORRORRROOROOOOOOOOOOROROOROOOOOOOROOROOOOROOOOOOROOOROROOROOOROOROROROROOOOOOOOOOROOOOROOOOOOOOROROOOOOOOROROOROROROROOOOOOOOOROOOORROROOOOOOOROOROOOROOOROOOORORRROOROROOROORROROORRROORROORRORRRROROORRROOROOOOROOROROORRRRRRRROOORORROOROOOROORRROOROOROORROOOORORRRRRRRRROOROORORRRRORRRRRORORRRRRROORROROOROROROORRRROOROORORRROORRRRRRRRRORRRRRRORRORRROORORORORORRROORROORORORRRROROROROORORRRRORORRROORROROOOORROROORRORRRRRORORRRORRORORRORRRRRRRROORORRRRRORORORRORROOROOORRRROORRORORRRORORRRRRRRRRRORROROROOORROROOORRRORRRRRORORORRRRORROORORORRRORRORRROROROOOORRRRRROOROORROROORRRORORRORROOOORORRRORRRRROORORROOOOORROORRRRRORRORRRRORORRROOROORROOORRROOOOROOROOORRORORROROROROOOOORRROOORROORORRRRRRROOOORROROROORORRORROOOOORROROOOOOORRRORRORRRRROOORRORRRRORRRROROOROROROORORRROOOORRORRRORRRRORROOROOOROORORROOOOROOORORROOOOOOOOOROOORRORROORORROOOOROORRROOROOROROROOOOOOROROOOORRROOROOOORORRROOORRROOOOORRRORROROOOOOOOOOOOOOOROOOROOOOOOOROOOOOOOOOOOOOROOOOOOOOORROOOOOOOOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOOROOROOOOROOOOOOROOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOROOROOOOOOOOOOOOOOOOOOOROOOOROORORROOOOOOOOOOOROOOOORROOROORORROOOOROOOOOOOOOOOOOOOROROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOORROOOOOROORRROOOOOOROORROROROOOOOOROROOOROOOORROROOOROOOOOOOROOOORROOOOOORRRRROROOOOOOOOOROOOOOOOOROOORROOOOOORROROOROOOOOOOROOROROROOOOROOOOOOOROORROORRROORRORORRROOOOORORROORORROROOORRROOOORROOOOOOROORRROROROORROOORRROOORROORRRRRROORROOOORORORRRORORRRORRRRRORRRRRRROORRROOOROOORRROOOOORRRRORRRROROORROROROORROOOROORRRRRROOORRRRRROOORORORRRRORRROROORRRRROOORRRRORRRORRRRROROOORRORORRRRRORROOROORRROROOORRROOORRRORORROORROROORRORORROORORRORRRRROROORRRRROORORRRRRROOOORRRROOORRRRRRORRRRRRORRRRRRRRRRROROORORRORROOORRORROOOORRRRROROOOOROOOROOOOOOOOORRORRRRROROOORRRRORRROORORRORORORROROORRRRROORRRORRRRRRRRROORRRORRROOOROORROOROOORORRRRROOORORRRRRRRRROROROOOORORROOOOOOOORORROROROOOORRRRROORORORORROOORORRRRORRRRORRRRRRRROORRORROOROOROOOOOOROOORROROROOOROROOOOOOORRRROROOROOOOOORORORRORROROOOOROOROOORROOOOOOOORORROOOOOOORRRROOOOORROOROOOROOOOOORORRROORROOOOOOROOOOOOROOROROOOORRRROOOOOOOOOOOOOROOORORROROOOOOROOOOOOROOOOOOOOROROOOOOORROROOROORROORROOOROOROOROOROROOROOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOROOOOROOROOOOOOOOOOOOOOOROOOOOROROOOOROROOOOOROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOROOOOOOOOOROOOROOOOORRRROOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOROOROOOOROOOOOOOROOROOROORROOOOOOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROOOOOOOOOOOROOOROROOOOOOOOOOOROOORORORORROROROOOROOORROOOROOROOOOOORRORRRRORROORRRRRROOOOOOOROOOROORRRORRRROOOORRORRORRRORRROOOORORROOOROOOOOROOOOROORRORROOOOOOOORROOOOORROROOOROOROOOROOORRRROORROROOOOORRROROROORROORRRROOOOOOROROROOORRORRRORROORRORORROOORRROORORROORROOORORRRROROOROROOORROORORRROROOROROOORRORORROOOORROROOOOROORRRROOROROOROORRORRRORRORRRORRORRRRROORRORRROROORORORRORORORROROOOROORRROOOOORRRRRORORRRRROORORORORRROOORRRROORRRROOORRRRORRORRRRORRORRRRRRRROORORORRRORORROOOOOORRRRRORORROOROOOORRORROROORORORORRRROROOOOORORORORRORRRORROORRRRROORRORRRORORRROROORRORRRORRRRORRROOOOORORRRROROROROORRORRRORORRRRRRRORORRRORRRORRORORRRORRORRRRRRROROORROORRRRRRORROROOOORRRRROOOROOORROROOROROOOROORROORORORROROOOROOROOORRROOOROORORRRRRRROOOOROOROORRORRORRRRORRROOOOOORRROROROOOROOOROORROOOROROOORRRROROOORROOOOOOOOROOROOROOOORORRROOOROROOOROROOOOOROROOORORORRORORROORROOOOOOOOOOOOOOROOOROOOOOOOOOROROOOROOOOORROOOOOOOOOOOROOOOOOOORROOOOOOOOOOROROOROOOOOROOOOROOOROOROROROOOOOOROOROOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOROROOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOROROOOOOOOOOOOOORROOOOOOOOOOOOOOOROOOOOOOROOOROOROOOOROOROOOOOOOOOOOOOOORROORROROROOOOOOOOOOOROROOOROOOROOOOOOOOOORRROOOOOOOOOOROROOOROOOOOOOOOROOROOOOOOOOOOOOOOOORROOOROOOOOOOOOOOROOROROOOOOROORORROROOOOOROOORORROOOOORROOOOOOROORRROOOORORROROOOORROOROROROROOOORROROORRROORROOROOORRORRRRRORRORRROROORROROOORORROROROOOOORRORORRRRRROROOORRROOOOORROOOROOOOORORRRRRORORRRRORRROORORRROORORRORRORRROORRRROORORORRRROOORRORRRRORORRROORRORROORRROORROROOORRROORROOOORRORRROORRORROOOROOOOOORRRORRRRRRRORRRROORRRRORRRORRROORRRRRRRROORROOOOOROOROORRRRRRRRRRRORRRRRRRORRROORROORRRROOORRRROORRRRRRROORRRRRROOOORRRRRRRORRRRRORRROORRRROROORRORRRRRRRROOORRRRRRORRROOOORRORORRRROOORROORROORRRROOORRORRROORRRRORRRRRRRORROORRRROOORROOOROORRRRRROROORRORRORRORROORROROROROOOOROROORRRROROROOROORRORROROROOOORORRRRRROROORRROOROOORRRRROOOROROORRROROOORRROOROOROORROROORRORRRORORORROORRORRORRROROOOOOOORROOORRRRRRROOROORRORROOOORRRORORRROOROOOROOOORORROOOORRROOOOOROOORRORRRROOROOOOOOORROOOORROOOOOOROOROOOOROOOOOOROOOOOROOROOOOOOOOOOOROOOROROOOOROROOROOOOORROOOOOOOOORORROOOOOOROOOOOOOOOROOROOOOROOOOOOOOOOROOOOORRORROOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOROOROOOORROOOOOOOROROOOOOOROOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOOOOOROOOOOROOOOROOOOOROOROOOOOOOOOOOOORRORROOROOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOORORROOROOOOOROOOROOROOOOOOOOOORRRRRROOOOROOOROROOOOOOORROOOOOOORRRROOOROOOROOROOROROOROOOOOOOROORROORRROROROOROOOROROOORRORRORROROOOOORRORORROOOOROROORRRRROOROORORROOROOOORROOOOOOOOROOOOORROOORROOOOOOOOOOOOOORORORROOOOORROOOOROOROORRRROOORROOROOORORRROOOORRRROOOORRORROORRRORRRRRORROROROROROOORORRROOORRROOORROOOOROOORRORORRRROORRORRROROORORRRRORRRORRRRRRORRRRRRRORROORRORRROORRRRORROORORORRRRORRRORRROORRORRRRROOOOORRRORRRORRRRRRRRRRRROOOORRORRROROORRRRORROOORRRROROOROORRROROOORRROORRRRRRORROORRROORRRRORORORORORRRRRRRRRORORRRORRRRROROOORROOORRRRRROORRORORRRRROOOOORROROROROOORROORORRRORRROOOROORROORORRRROOORRRORROROROROORRRORROROROORROROOORRROROOORORROOROROROOOORRROROOOROOORROOORRRROOORRROOOOROOOROOOOOOOOOROOOOOOOOOOOROOORROOOOOOORORRORRRROOROOOROORROROOROORROOOOROOOOOOOOOOOOOORRROOOROROROOOOOROROOOOROOORROROORRRRRROORORROORROROOOORROOOOOOOOOOOOROORROROOORROOOROROOOOOROOOROOROOOOOOOOOOOOOOOOOOOOROOROOROOROOOORROOOROOOROOROOOOROOOOOOOOOORRRROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOORROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOORROROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOORORROOOOROOOOORROOORORROORRROOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOROOOOOORROOOOOOROORRROROOOROOOOROROOOROOOOOOOOOOOOOOROOOOOOOOROOOORROROOOOROOORORORROOOOOOOOOORRRROOROOOOOORROOORROROOOORORRRRORORROOOOROROORORRORRORRRROOROROOOORRRRROOOROOOOOORRRRROOORORROROROROORRRRROOROROOROROOORORRRROORRROOOORORORROOROROOOORORORRRRRROORRRROORRRORROORORRROROOOROOORRRROORROOOORORRRROORROOORRORRRRROORRRROOROROOORRRROORRRROROOOOROORRORRORORROOORRRORRRRORRRROROOOOOOOORORORRROROOROOORRRRORRRROROOOORROORORRRORRROROROOOOROORORRRROORRORRROROROOROORROORRORRORRRRRRRRRRRRROROORORORRRORROOOORRRRRRRORRROOROROORRORRRROORROOROOORRRORRORRORROROOOORRRRORRRORRRORRROROORROOORORROROOROORRRRRORROROOROORORRROOORORORORRRORRRROROOROOOOROORRORROORROOOROOOROOORRRRRRROROORRRORRRORRRRRROORRRROOOOROROOROORRRORROORRORORRRORRRRORRRRORROOOOOROORORORORROROORROORORROOOORRRROROOOROOORRRRRRORRORROORRROOOOOOOOOOORRROOOOOOROROORROROOOORORRROOOOOOORROOORROROROOOOROOOOOROOROOOOOOOOOOROOORROOROORROROOOOOOOOOOOOOOOOROOOROOOOROOOOORORROOOROOOOOOOOOOOOOOOOOROROOOOOROROOOOOOORORROOOOROOOOOOOOOOOROORRRORRROROOOOOOOOOOOOOOOOOOOOOOOORROROOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROROOOROROOOOOOROOOOOOROOROOOORORROOROOROOOROOOOOOOOOROOROOOOOOORORROOOORORROOORROOOOOROOOOOOOOOOOOOOROOROOOROORRROOOOOOOOOOOROROOOOOOOOOOORRORRORRRROOOOOOOOORORROORORRORROOORRORROROOORROOORRRRROOOOOROOROOROROOOOOROORORROOOOORRORORROOORORRORRRORRROOOROROROROOROOORROOROOORRROORRRRORORROORORORRRROOOROOOOOOORROORORORROOORRRROORRRROORRORRRORRRRRRRROOORORROOORRROORRRORRROOORROORRRRRROROORORRRORRORRROORRRRORRRRRRRORROOOOOOOORRORRORORORRRRRRROROOORRRORRORRORORRORRRRORRROOOORRRROORORORRRRRROOORROOORRRRRORRRRORRROORRORRORRORRORRORRRROORRROORROROOOORRORRRRRRRORRRRRRRRRRRRORORRORRORORRRRRRROORRORRRROROORRORRORROORORRRRORRRRORORRRORROORROORRRORRRROOORRROOROORRRRRRRRROOROORRRORORORRRORORROOROROORORORRORORRRROORRRRRRRORORORRRRRRORRROOORRRRRORORRROOOOROOORRROROROOOROORRRORRRRORORROOORORROOROOOOOROOOOOROROOOOOORROOORROOOROORROOOOOROOOOOORORROROOOOOOOORRRORROOORRROOOORRORROOROOOOOOOROROOROOOOOORROOOOOORRORRROOOROROOOOROORORRROOOOOOOOOOOROOOOOOOOROROOOOOROOOOOOROROOOOORROOOOOORROORORROOOROOOOOOOROOOOOOOOOROOORROOOOOROOOOOOOOOOROOOORROOOOOOROOOROROOOROOOOROORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOOOOOOOROOOOORROORROROOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOROOOOROROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOROOOOOOROOOROOOOOOROOOOOOOOOOOROOOORROROOOROOOOOOROOOOOOOOORROOOROOOOOOROOOOOOOOOOOOOOROOOOROOOROOOOROOOROOOROOOROOOORROOOOOOOOROOOOOOROOOOORROOOOROORRROOORROROOOOROROOORROROROOORRORROROORORRRORROROROOROOROOOROORRRORORORRORRRROROOOORRROROROOROORRROROOOOROORRORROORROORORRORORRORROROOORRRRORRORRRROOOOOORORORRRRRORORROORRRORROROOOROORRORROROORROOORORRRORRORRORROOOORRRRROOORROROOORROOORORRRRRRORRRRRRRRRRRRRRRRRRORRORROOOORRORROOORRRRORRRORORORRRROROOROORRRORRORROORROOORRRRRRRRRRRRRORORRORRROORORRORRRRRRROORROORRORRRORORRORRROORROORRRROOOROOORRRRRRRRROOORRRRORRRRRRORRORRRRRORORORRRROOORRROORRRRORRRORRRORORROROORRORRROROROROOOORORORROOROROORORROROORROORRRORRROORRROOROORRRRORRRRRROORORROROORRRRROROOORRROOROROOOROOROROOOORRORRORRRRORRRROOROORRRORRROROORORRRROOORRORRRRRROOROORRRRORRORORORROOOOROOOOOORORORRORROROROOORORRORRRROROOOOOOOROOORROOOOOROOOOOOORRRORRRROOOROOROORORORORROOOROOROROORROOOOOOROOOORROOROOOOOOOOOOOOOOROOOOROOOOOOOOOOORRROOOOOOOOOOROOOOROROOOOOOOOOOROOOOROROOOOROROOOOOOOROOOOOOROOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOROOOOOOOOROOOOOOOOOOROOOOORORORROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOORROROOOOOOOOOOOOOROOROOROOOOROORROROROROROOOOOOOOOOOOROOOOOOOOOOOROOOROOOOOORROOOOOOOOORROROOOOOORROROOORRROOOROOORRROOROOOROOOOROORROOROROOOOOOOOOOOOORORRROOOORRROORORRROROOOROOOROOOOOOOOOOOOROOOROOROORORROOORROOOROROOOORRORRRROOROOOROOOOROOOORRRRROROOROOOOOOORRORRROOOROORRORORRRRRROORROOOORORROOROORRRRROOOOORROROOROORRROROORRROORRRROORROOOOOOOORRROORRORRRRRORRORORROORORRRROOORRRORROOROOOORORROOOOOORRROOOOROOOORRRORROROORRRORRRRRORRROORRORORROORRRRRROORRRORRORORRRORRROROROOOROORRORRRRRROORRRRRORRRRRORROORROORRORROOORORRORRRORORRRROORRORRORRRRORRRRORORRORRRRRORORROOOROOORROROORROOOROOORORRRRROOOROORROOORORRROOROORRORROOORROROROOOOOOORRRROORRRRROOORORROROORRRRRRRORRRRRRORORRRORORORRORROORRRORRORRRROORRROORORRORROROOORRROORRROORRRROORRROORORRORRORRRRORRRROORRROROROOROOOORRRRORORROORRROOOOORROOROOOROOOOORRRRORRORORRRORORRORROOROORROOOORRRROORORRRROROROOORORORROROOROORORORROROOOORROOOROROOROOOOOORRORROROOOROOOOROOOOOORRROROROROOROOROOOOROOOOOOORROROORROOORROOOOOOROOOORRROOOOOOOOROOROOOOOOROOORROOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOORROOOOROOOOOROOOROOOOOOOOROOOOOOROROROOROOOOROOOOOOOOOOOOROORORRORORORROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROOOOOOOOORROOOOROOOOOOOOOROOROOOOOOOORRORRROROOOOOOOOOOOOOROOOORROOOOROOROOROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOROROOORROOOOOOROOOOOOOOROOOORORROROORROOORORROROOOOOROOOOOOOOOOROOOOROOORRRROROOOOROROOOOROOOOOROOOOOOOOROOOOOROOOROROOOOROROROROROORRRRORROOOOROOOROROOORORRRRROROOROOORROOOOOOOOORRROOOROOOORROOOROOROOORRRROORRORORORORORRRRRORRROOORRROROOOOOOROROOROOROOORROROOOOORRORORRORRRORORROROROOORROOROOROOORORROOOOROROROORROOOORORROORRORRRROROOORRRRORRRROORRRROROOORRRRORRORROOOORRORORORRROORRRORRRRRRORRROORROROOOROOORRORRORRRRROROROORRORRRRRROORORRORORRRRRRRORRRRRORORORRROROORRRORRRRRROOOORORRORRORRRRROOROORROORORORRROROOOOOOROOOORRORRROOORORRRORRRRORRRRRROORROOORORROROROORRORORROROROORRRORRRORRRRRRRRRRORRORRRORRROOORRRRRRRORRRROOORRORROOOROOROOORRROORORRROOOOOOOOORORROROOOROOOOORORRROOOROORRROROOROOOORRROOOOOROROOOROROORROROOOOORORORRORRRORROOROROORROORORROOOROROOOROOOOROOOOROOOOROOOOOOOOOOROROOOOROORORROORRORROOORRRROOOOOROOOROOORRROOOOOROOORORROROOORORORORRROOOROROOOROOOOROROROOROOROOOOROOOOOOOOOROOOOOOOOOOROOOROOOOOROROOOOROOORRROOOOOOROROOROORROROOOOOOOORROOROOORROOOOROOOOOOOOOOOROROOOOOOOROOROOOROOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOROOOOOOOOOOOOROOROOOOOOOOOOOROOROOOROOORROOOROOROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOROROOOOOOOOROOOROOOOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOROOROROOOOOOOOOORROOROOOOOOOOROOOROOROOOROOOROOOOROOOROORROORROORRROOOOOOOOOORRROOOROOOOORROROROOOORRROOOROOROOOOOOROROOROORORORORROOOOOOROORROOOROORROOROOORROOOOOOORROROOOOOOOROROOOOOOOOOORORROOOORRROOOOOOOOROROORORORROOOOOROORORROORROOOROROOORRROORRRORROOORROOOOORRRRORORORRROROORRRORRRRROROROROOOORRROROORRRRRRORORORRRORRRROORROOORROORRRROROOOOOOOOORRROOOORRROOOROORROOORRRRRRRRRRRRRRROORRRRORROOOOORORORRORRORRROOORROOOROORORRRROOOROOROORRRORRROROOORRRRRRRORRRORROORROROOOOORORROORORORRRRRORRRROOROOROORORROORROORRROROOROROORROORRRRRRRORORRRRROROROORRRORRRRORORRRRRRORORRRRROORROOORRRRROORORRORRRRRORRORORRORRRRROROOORRORORRRRROORORRRORRORORROOORRRRORRORORORORRORRORORRROROOORRRORRRORORRRROOORRRROORORROOOORRRRRRORRRRRRORRROORRRROROORROOOORRRROROOORRROOROROOOROOORRRRORRRRORORROOROORRRORRROOOORROOOOOOORRROOROROROOORROOOOOOOOORRRRRROROOOOROROOOORROROORORORORRRRRRRRORROOOOOOOROOROOORROOROROOOOOOOROROOOOROOROOOORROROOOOOOOROOOOOROOOOORROOOOOOOOOOOOROOOOOOORORROORROOROOROOOOOOROOROOOOOOROOROOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOROROOOOOOOOOOOOOOROOOOOOOOOROOOOOROOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOROOROOOOOROOOOORROOOOOROOOROOROOOOOOOROOROROOOOROOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOOROOOOROOOORRORROOOOOOOORROROOOOOOOOOOROOORROROOOOROOOORORRROOOROOOOOOOOOOOOOROOOOOOOOOROOROOOOOROOOOROOOOOOOOROROROROOOOOORORROOOORRORROROOOOROORROROOOOORRRRORROOROOROOROOROROOOORORORRRROROOOROOROROORROORROOOOORROOOOORROOOOOOOROOORROOROOROORRRROOOROROORRRORRORRRROROOOOROOOOOROORROOORRROOOOOOORROORORORRRROROOOROOOORRROOROROOOOROROOOOOOORORROOOOROOOORORRORRROROROORORRORROORORROORORRRRRRROROOORROROROORORROORRRRRRORORORRORORORROOROOOORRROROROROORORRRRORRRRRRORORORROORRRRORRROORORRRRORRORORRROOOOOORROOOORROROORROROROORRRORRORRRRRRORROROORRRORRORRRROORORRROROOOROOOORRRORRROORRRORRRROOORRRORORROOROROORORORROOOROROORROOOORRORRRRRORROORRRRRORRORRRRORRROROORRRRRORRRROROORORRRRROOOOOROOOORROOROOORROROROROORRRRORRORRORORROOOROOOOROROOORORRORRORRROORORRRROOOOROORRROORROOROORRRRORROROOOOOOROROORROOORORORROOROORRRORORORORRROOOROOOOOORROORROOORORRORORRRRROROOOROORRRORROROOOROORRRRORROOROOROOOROOOOOORROOOOOOOROOOOOOOROORROOOOOOOROOOOOROOOROOOOROOOOOOROROROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOORROOROOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOORRORROORROOOORROOOOOOOOOOOOOOOOOOOOROOROROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOORROOOOOOOOOOOOOOOROOROROOOROROOROOOOOOOOROOOOOOOOOROOOOOOOOOROOOOROOOOOOOOROROOOOOOOOOOOOOROOOOOOOOOROOOOOROOOROOOROOOOROOOOOORORORROOORROOOOOOROOOORROROOOOOOOOOROROOROROROOOOROROROORROOOROOOOOROROOOORRROOOOOROOOROOOOROROROROOOOROOOOORROROOOOROOOOOOOROOOOROOOOORROOOOOORROORROROOOROORROROORROOORORORROROOOOROOOORRRRROOOOOOOROOOOOOOOROROOOORORRORORRROOOOORROOOROOORRROOORROORRRRRRRRROOOROROOROOROOOOOORORORROROROOROOROORRRORRRROOOORRRRROORRORORORROOORRRRORRORROOOORRRORROORORRRRROORROORRRRROOOROOOOOROORRRRRROORORROOROORORROROOOORRORRROOORORRRRRRRRRROROOOOOOOORORORRRORROORRRRRROORRORRORRROOOORROORORRROROOORROOOROOOOOOROORRRRRRRRROORRRRRRRORRORRRRORRRRROOORORRRRRORRRRRORRROORROOORRRRRORRORORRORORRRRRRRRROOOOOOORORROOOOOORRORORORORRORORORRRRRRROOROROOROOORORROOORROROROROORROOORRROOROORRRRRROROROOORRORRRRROORRRORROOOORRROROORORRRORRORRORRRORROOOORORRRROOOORRRRORROOOOOOOOOORORRORORROOOOOROOROOOROOOORRRROOOROOOORORROROOOOROOOORROOOOOOORORROOOOROOOROOOOOOOROROROROOOOOOOORROOROOOOOOOOOOOROROOOOROOOOOOOOOOOOOROOORROOROOOOOOOORRROOOOOOOOROROOOOOOOOORROOORRRROROOOROOROOOOOROOORROROOOOOOROOOOORROOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOROOORROOOOOOOOOOOOOOOOOOOOOOOOOOOROOORROOOOOOROOOOOOOOOOROOOOOOOOOOOOOROROOORROOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOROOROOROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOROOORORROOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOROOOOOROOOOROOOROOOOOOOROOOOOOOORORORROOOOOOOOOROOROOOORROOORORRORORRROROOOOOROOOOOOOROOOOOOROROOOROROROOOROOOOOOORROOROOOOOOOOROOROOOROOROOOOORROOOROOOOOROOORROOOOOOROOOROROORRRROOORRRRROOROOOORORROOOORROOROORROOOOROORRRROOOOOOROROOORRRORROROOOROOROOROOOORRRRRORRRORRRRROOOOORRRRRRRRORORRROOOOOOORRORRRRROOOROORRORORRROROROORORROOORRORORORRORROOROOORRROOOORRRROOROROOOOORRRORRRORORROOROOORROOORORROROORRROOROORROOROORORRORROORRRORRORRORRROORROROROORRRRROOOOOOOOORRRRRORORORROOROOORRORORRRRRRRROROORRRRORROORRORRRRRRROOOOOORRORORRROOOOROORROROOOORROOOROOOORROOROORROORORORORRRRORRORORRRRRRRRRORRRRROOROROROROROOORRRROOORRRRRROORORRORROORRRRRRRROOOROROORRROOORORORRRRRRRROOORRRROORROOOOOORORROOORRRRRRORRROROOOROOROOOORRRORRRRORRROOOROROOROOOOOOOROOOORRROOORRORORRRRORROOOOOOROOOOOOORRRROOROOROORRORRORRRROOOOOOORROOOORRROOROOROROROOOOORROOORORORORRRRROROOOORRROROROROROORRORORROOROOORRROOORORROOROOOOOOOROROROOROOOOOROROOOORROOOOOOOOOOOORORROOOOOOOOOOOOOORORROROOOROROROOROOOROOOOOOOOOOOOOOOORORROOOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOROOOOOOROOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOROOOOROOOOOOOOOOOOOOOROORROOROORROOOOOOOROOOOOOOOOROOOOROOOOOOOOOROOOOROOROOORROROORROROOOOOOOOROOOROOOOOOOROOOOROOOOORROOOROOOROROOORROOOOROOOROOOROOOROROROOORROOOOOOOOOOOOOOORROOORROROOOOROOOOOORRROOOOOORROROORROOORRROOROROROOROOOOOOROOORORRORORRROROOOOROOOOORORRRRROORRRRRORROOORROOROOOOOOORORRORROROROOOROOOOOORORROOOROORROORORRRRORRRRORRORRRRRROROOORROROROORRRROOORRORRRRRRRRORRRORRORRORRROOORRRRORORRORRROOROORRRRORRROOORRRRRRRRRRORRORRRORRRRROOROROOOOORRRORROOOORRRRORRRROOROOOORRORROORRRRROORORORROOORRRRRRRRROORRORRRRRORRRRROROOROOORRRORRORRRRRRRROORRRRRORORRORRORRORRRRROROORRRORRORORORORROORRRORRROOORRORRRRRRRRRORRRORORRROROROOROOOORORRRRORORROROOORRORRRRORRROOOOROOORROOROROOOORRRROROOROOROOORRORROOORORRORRRORORRROOROOORROORRRRORRRROOOORROORRORROOORRRROROROOOOORRRRRRROROOROORRRRROOORORROOROOOOROROOOOORRRROROOOROROORORRRORROOOORORROOROOOROOOORORORROROOROOOOROROOORROROOOORROOROOOOROOOORRORROORORRRRROOOOROOOOOOOOOOROOOOROOROOOOOORROOOOOOOOROOORORROORRROROOOOORROOOOROORROORROORROOROOROOOROROOROOOROOOOOOOOOOORROOOOOOOOOOOORROOROOOROORROOOOROROOOOOOOOROOROOOOOOROOROOOOOOOOOOOOOOOROOOOOROOOOOOOROROOOOOORROOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOOOROOROOOOOOROROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOROOOOOROOOOOOROOOROOOROOOOOOORRORORORRROOOROOOROOOROOOOORROOOOOOOROOOOOOOROROOOOOOROOOOOOOOROOOOOOROOROORRRROOORORORRRROOORROORRROROOOOROORRORRROROOROOROOOOOOOOROOROORROORROORROOORRRRRROOOOOOORRROOORRRRROROROORORORROORROORRRROORRRORRORRORROOOORROROOORROOOORRRRROOOOORORRRORORRRRRROOORORRRORORRRROORROORORROOORRRRROORRRRRRORORRROOOOORORRORRRORRORRORRRRRRORRRORRORORORROOOORORRRRRRRROORROOROORRRRROOOORRRRROOROROOORORORRRRORRROOORRORRRROORRRRRRRRRRRORRORORRRRROOOROROROOORROORROROOORROOORRORRRRORRRORRRORRRRORORRRRORROOORRRROORRRRRRORRROOORRRROORRRORRRRRRORRRRRRRROORRRROORRRRROORORORRRRORROORRRRORORRROOORRROROOROOORORORROOROOORROOOOOROOOORRORROOROROORORORORRRRORROOOROORRROROORRORORORORRROOOOOOROOORRRROOORRROROOOOOROOORRORRRROROROOORORRORRRROOORORROOOROOOOOOOROOOOROOORROROOORORRRROOOOROORROOORRORROOOORRRRRORRORROROOOORRROOOROOOOOOROROORRROOOOOOORRRROOOORRRROOOOROOOROOOROOOOOOOOOOROOORROROOOOOROOOROOOOOOOOOORORROROOROORRROOROOORROOOOOOOOOOOOOOOOORROOOOOROOOOORROOOOOROOOROOROOOOOOROOOOOOOOOROOROOOOOOOROOROROOOOOOOOOROOOOOOOORROOOOOROOOOOOOOOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOROOOROOROOOOOOOROOOOOOOOOROOOROOOOOOROOOROOOOOOOROOOOROOROOOOOOROOOOORROOOOROOOOOOOOORROOOOOROOOOROOROORRORROOROROROOROOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOROOOROOOOOROOOROOROOOOOOOOOOOOOORROOROROOOROOOOOOOROOORRRORRROROROORRRROOROROOOOORRRORRRROOROOOOOOOOOOORRORRORORRRORRORRROOOORROORRRROOOOOOOOOOOOROORRROOORRRORRROOROROOOORRRORRRORRORRORRRORRORRROORORRROOOROROORRORRROOORRRRRRORRROORRRRROOROORORRROOORRRROROROROOORRRROORORORRRRRORROORRRRROORRROROORROORRRORRRORORRRRRORRROOOROORRRORRRRROORRORORRRRRRORROORRRRROORRORORRORROORROOORORRRORORROOROORRRRRRRRROROROOORRRORROORRORRRRRORRRROROOOOOORORRRORROOOOORRRRORRRROROOOROORRORRORRRORRORRRRRORORORRRROROORORORRRORRRRROORRRROORRRRRRRRORRORRRROROOOROROROOOROOOOROOOROROORRROOROOROORORROORRORORRORRORRRRROROOOROORRRROOORRROROOOORRORORRORRRRORORORRRRRORORRRRRROOOOOOROROROOOOOOOOROROROORROORRRRROROOROOOROOOOROOORRROROROOOROOOOOOORRORROORROROORRORRRRRROOOOROROOOOROROOOROOOROOOOOOROOROOOOOROOOORRORRORORROOOOOOOROOOOORROOOOOROOOOROOOOROOOROOOOOOOORROROOOOOOOOOOOOOOOOOOORROOOOOOROORORROOOORROROOOOOOOOOOORROOOOOOOOOOOOOROOROOOROOOOOOOOOOROOOOOOOOOOOOOOORROOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOROOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOROROOOOROOOOOROOOOOOORROOOOOOOOOOOOOOOORRROORROOOOOOOORROOOOOOOOOOOOOORROOOOOOOOOOOROOOOOOOROOOOOOOOROOOOOORROOOOOOROOOOOOROOOOORROOOORROORROOOOOOROOOOOROOOOROORROOOROOOOOOOOOROOROOOROOOOOORROOROOROROOOOROROROOOOROORROOROOOROOROROROROOOOROOOORORRROOOOOROOORORRROOORORRRRROORORROORROORRORROOOOROROROOROORROORRORROORROOROROOORRROOORORRRORORORROOOORRRRRORORROOORRRRORRRORRRRORRRRRORORRRORRORROOORRROOOORROORRRRROOROOOORRRRRRORRRROOOOOOROROORROORRORRORROOROOOOOOOOROOORRRRRRORRRORRORROROROOROOROROOORORRRORRRRRRORORRORROROOOOROOROORRRRRRORRRROORROOOROORRRRORORRRRRORRRRORORRRRORRRROROROORRRRRORROOORRRORRROORRROORORRRRRRRRORORRRORORROOROOOOORROROROORRRRORORORORRRRROOOROORORRROROORRORRRORRRRROROOROOORRRRRRORORROOROOOORORRRORRORRROOOORRROOORRRRRRORRRORRRRROOOORRORROOROORROORRORRORRRRORORRRROOROROORORRRORRROORORRROOORRROOOOOOOORRRRORROORROORORORORORROOOROORRORORORRRROOOROROROROROOOOORRRROOORORRRRRROOOORRROOORRRRORRORORRRORROORRORRRORROOOOROOROOORRROOROOROROOOOOOOORROOOOOOROOOROOOOOORORRROOOOOROOOOOROOOOROOOOORRROROOROOROOOOOOOOOROOORROROROOOOOOOOOOROOOOOOOROOOOOOOROOOROOOOOOOOROOOOOOOROOOOROOOOOROOROOOOOROOOOOROOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROROOOOOOOROOOOOROOOOOOOOOOROOOOOOOOROROOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOORROOOOOROOOOOOOOROOOOOOROOOOOROOOOOOOOOROOOOOOROOOOOOOORROOOOROOOOOOROOOROOOOOOOOOROROORROOOOROOOOOROOOOOOROOOROOORORRRROOOOOROORROOOOROOROOORROOOOOOOOORORROOOOOORORRRRRRRRROOOOOORROORRROOOOOOROROROOROROOOOOOOOOORORROORRROROORROORORORRROOOOROORROOOOORRRROOORRROROROOROORROOOROOOOROROOORORORORRRRRROOOORORORROORRRRORORRROROOORROOOOROOROORRRRRROORRORRRRORRRRRRRROORRORORRROOOOOROORROOORRRORRORRRRRRRRORRRRRRRRROORORRRRRORORROORRRRRRORORRRRRRRRORORRRRORRRRRROOOORROROOOORRRRRORROORROOORRROORRORRRRRRORRRRORORORRROROORORRRRRROOOORORRRRRRRRROOOOOORORROROOOROOORRRORORORORORRRRRRROOOROOROORRRRROROOOOORROORROORRRRRORORRORORORORROROOORROOOORRROROOOORORORRORROORROORORORRROROOORRRRORRRRORRRRORRRRRROROOOROORRROORRROOOROOROROROOOOOOOROORRROOOROORRORORORRROOOORORRRRRRRRROOOROOOROOOOORROOORRRRORROROROOROOOOOOORROROOOOOOOOOOORRRROOROOROOOORROOORROOOROOORORROOOOROOROOORROORRORORRORORROOOOORROROOOOOROORORROROROOOOOOOOORRORORROOOOOOOOOORORROOOROROROOROOOROOROOROOOOOOOOOOOORORORROOOOROOORORROOOOOOOOOOOORROROOOROOOOOOOOROOROOOOOOOOROOROOROOOOOOROROOOOOOOOOOOROOOOOOOOROROOOOROOROOOROOOROOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROORROOOOOOOOOROOOROOOOOOOOOOROOOOOOOOOOOOOORROOOOOROOOOOOROROROROOROOOOOOOOOOOOOROROOROOROORORROOROROOOOOOOOOROOORRORRROOOOOOOOOOOROROOOOOOOOORROOROOORROOOOROROORROOOROROROOORRORRROORORORROROROROOOOOROROOORROOOOROROOOORORROORRRROORRRRRORROOOROOOROOROOROOOOOOOROOOOROOROROORROROROOROOOOOOORROOROORRRORRROOROOOOROOOOOORRRRRRROOOROROORORRROOROOOOORRRRRROORRORRORRROOORORROROORRRROOOROORROOOORORRRRRORROOOROOROROORROORRROORRRRORRRORORRRRORRORORORRRRRORRRROORORRROORRRRRORRRRRORORORORRRROORROORRORORROOOOOORORRRRRRRRRRROROOOORRRORRRRRRRRORRORORRORRRORRRORROROORRRRRORORRRRORROOORRORRRORRORRORRRRRROOORRRRROOOOORRRRRROROORORORRORRRORORROORORROORRRRRRRRRORROOORRRORRROROORROOORROROORORRRRRORRRORORRRRRRRRRROROOOROROOOORROORRRORROROOOORRROROOROROORROOOORROOOORORORRRRRRRRRROORRROORROOOORRRRROOOROROOOROOROOORORRROOOROROOROOOOOROOOOOORROOOOORRORORROOOROOROROROORROROOORROOOOOOOORROOOOOOOOOOOROOORROOOOOROOOROORORROOORRROROORROROOROROROOOROOROOOROORRROROOROOORROROOOORROOOOOOOOOOROOOROOOROOOOOOROOOOROOROOOOOOOOOOOOOOOOROOOORROROOOOOORROOOOOOROROOOOOOOOOROROOOOOOOOORROOOOOOROOROOROOOROOROOOOOROOOOOOOROOROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOROORRROOOOOOROOOOOOROROOOOOOOOOOOOOOOOOOOROOOOORROROOOORROOOOOROROOOOOOOOOOOROORROOOOOOOROOROROOOORRRROOOOROOOOOORROOOOOOOOOOOOOOROOROOOOORRRROOROROOOROOOOOROOOOOOOROOOOOOOOOROOROORORORROROROOOOROROROOOORROROOOORROOROOOOORROOORORROOORORROROROROOROOORRORRRRORROOORORROROORRORORRRORROOOOOORROROORROOORROOROOORRRORRRRROOOROOROROOROROROROOROORORORROROOROORRRROOOROOOOORRORRRORRROOOORRRORRROROOOORRRROORRORRRRRORRROROORRORRROORRRRRRORRRORRRRRRORRORRRRORORRORRORRRRORORORRRRROORORRRRRRRROORROROORRRROORRROROOROOOORORRRRRORROOORRRRORRRRRRRRORORORRRRRRRRRRORRROOROROOORRRRORRRORROOOOROROOORORRRROORRRRRROORORORRRRROOOROORRRRRRRROROORRROORRRROOROORORRRROOORROORRROORRRRRORRRRORRRRRROOORRROROORROORORRROORRRORRRRORRROROORRORROOOROROOOORORRRORORROORROROORORRORRRRRROROOOOORROOORRROOOROOOOOORRORRRROOOROOORRROOORRRORRRRROORROROORROROOORRRRROORORORROROOOOORROROORORRROROORRRRROOROOROOROOOOOORORORRRORORRROORRRRROOOOOROOOORRORRORORORROOOROOOOOOOOROOOOOOORORRROORROOORRROROORRROROOOOOOOOOOROROOROROOOOOOOOOOOOOROOOOOOROORROOOOOOOOROOOROOOORROOOORROOOOOOROOOOROROOROOOOOROOROROOROOOOROOOROROOROOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOROOOROROOOOOOOOOOOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROORORROOOOOROOOOOOOOOOOOOOOOOOROOROOROOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOROOOROOOOROOOOROOOOOROOOOOOOROROROOROOOOOOOOROOOROOOROOOROROOROOROOORORROOOOOROOOOOOOOOOOOROOOOOROOOOOOOOOORRROOROOOOORORROOOOOROOORROOOOROROOOOOORRRROROORROROROOROOROOORORROOOOOOORORRORORRRRRRROOOROOOROOOORORRRRRROOOOOROOROROOORRROOROROROROROOOORROOROORRORORRRORORORROORRRRROORRORRROOOOOOROORRRRORRORORRORROORROOOORROOOOOROORROORRORRROOROROORROROOOROORRROOORROORRRRRROORORORROOORRRROOOORRRRRRORRORRORRRROOORORRRRROOORRRORRORORRROORORORRROORORRRRROORRROOROORRRROOORRRORRORROOROOROORRRRRRRORRRRORORROOORRRROORRRORORRRRRRRORRRRRRRROORROROORORROOOOOORRRRROORRRORRRRROROROORRRRRORRORRRROORRRRORRROORORORRRORROROORRRRRORRRROOOORRRRRROORRORRRRRRORORROOOORRORRROOROORORRRRORORRORROORORROROORORRRRRORORORRORRROOROROROOROOOROROROROROROOORROOORROOOOOOOOROROROOROOROROOOROROOORROORRRROOOORRORRORORROROOOROOROOOOOOROOOOOROROROOOROOROORRRORRROROORORRROROOORORRRROROOORRORORROROROOROOOOOROORROROORORROROOOOROROOROOOROOROOOOOOOOOORRRROOOROROOROROOOROOOOOOOOOOOROOROROOOOOOROOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOROOOOOOOOOOOOOOOOOOROOOORROROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOROOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOROOOOROOOOROOOOORROOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOORROOOOROOOOORROOOOROOROROROOOROOOROOOOOOOROORORROROOORROOOOOORORRROOOOOROROOROOOOOOROORROOOROOOOOOROOOOOORROOOOOOROOOOORROOORORORORRRRORRORROORROOOOOOORRROOROROROOOOROROORRRRORRROORROROOOOORROOORORROOOORRRORROORORRROORRRRORROROORRORROROOROOORROROOROORRORRROROROOORROORRROORROORROORRRORORROROOORORORROOROROOROOOOROORRRRORRRRROORORRRRRROOROOORRRRORORROROROROROROOORRRORRROROORRORRRRRORRRROORROOROORRROOOOOORROOROOOOOORROORRRRRROROORRORRORRRORROOOOROORORRRRRORRRRRRORRROOOORRRORRRRRORRRROOROOORRORRRRRRROROROOORRRORRRRROORRRRORRRRORORRORRORORRORRRROROROROORRRRORORRRRORRORRORRORROORRORRRRROOROOORRROORORRRRRROOROORRRRORORRRRRRORRORRROOOORROOOROORORRRRORORROOORRROOOOOOORROOOROORRRROOOROORROOOROOORRORORRROOOOORORORORROOORRROORRRORRRRORORRORRRRROORORRROOOROOOORORRRORRROORROORRROOOOOORROOOOOOROOOOROOOROORORROORRORORROOROORRRROOOOOOOOOOOOROOOOROOOORORRRRROORRROOOOOOOOOORRROOOOROOOOOOOROOOROROOOOOOOOOOOOOROOROOOOOROORORRRRRROOOORORRRROOOOOOORROOOOOOOOOOOOOROOOOOOOOROOOOOROORROOOOOOROOORROOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOROOOOORROOOOOOROOOORROOOOOOORROROOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOROOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOROOOOOROOOOOOOROOOOOROOOROOROOOOOOOOOOROOOOROOOROOOOOOOOROOOROOOOOOROOOORROOOOOOROROOOOOOOORRROOROOORRORROORRROOOOOOROORORRRROOROOOOOOOOROOOOOOOROOORROOROROOOOOROOORRROOROROOOOORROOOOOOORROORORROOOOOOOOROROROOOOROOROORORRORRROOOROORROORRRRROOROOOROORRRRRROORRROROOOORRORRRROOORROORORORRRRORRROORRRORROORRRRRRRORRORORORRRRRRRRRROOOOORRRRRRORROOOOORRORRROORROOOOOOOORORRRROROORRRROROROROOROORORRRRRROOROOORRRROOORRROROOORRROORROOORRRRRRORRORRORROOOOROROOORRRRROORRRRRRORROOOROORORRRRRRROOOROORROROROROORRORRRRRORRRRRRROROOORROOOORRRROORROROORORRROORRRORORRRRRRORORRRRRRORRRRORORRORRORROORRRROOROOROROOORORRROOROORRRORRORRRRRRRROROOOORRORRORRRRRRROOOORRORRRORRORRROROOORROORORRRRORORROORORRORRROOROROROOOOROROOOOOOORRRRORROOROORRRRRRORRRRRRRROOROOORRRORRORRRRRROOROOROOOOOOOROOROORROORRORRROORRROOORORRORRRROROOOOROROROROROOOOROOORORORRORORORROOOORORROORRRROOOROOROORROROOOORRRRORROOOOROOOOOORROOORROOOORROOOOROROOROOROOORROROORROOOROROOOOROOOOROOOOOOROOOOOOOOROOOOOORROOORRROOOOROOOOROOOORROOOOOOOOOORRORRROROOORROOOOOOOOOROOOROOORROOROOOOOOOOOOOOROOOOROOOOOOOOOOOROOOOROOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOORROOOOOROROOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOORROOROROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOROOROOOROOOOROOOOROOOROOOOROROROOOOOOOROOOOOROOOROOOOOOROROOOORROORORROOOOOROOROOORORROOOOOOOOORORROOOOOORORROROROOROROOOROROOROORORORORRRROOOROOOOOOOROOROROOOORRROROOORROOOROROOORROORRROORRORROOOOOOOOORROROROROORRRROOROOOOROOORRRORRROORRROOOOOROROORRRRRROOORRROORRRRRORRRRRRRRROOORORRRRRRRORRRORORORROOOOOORROORORRROROOORROORRRROOOORROROORORRRORORORRROOROOROORORROORRORRROROROORORRROORROORRRRROROORORRRORRRROROOROORRRRORORROOROOORRROOROORORRRORRRRORRORRROROORRRRORORROROOOROOOORRRRRRORRRRORRRRRRRRRRORRRROROOORORORORROORRRORRROORRRORRRROOORRORRORORRRRRORORROROOROROOORRROORRRROORORRRRROROROORRROOORRRRRRRROOOORORROROORRROROOROORRRORRRRORROORRRORRORRRRRRRRORRRRRRROOOROOROROORRROROROORRRRRRRROOOORRRRRROOOOOROORROORRRORROOOORRRORRROOORORROROOOOOOOOORRROORROORRORROOORROROORRROROOOOROOOROOORROROORROOORORRRRRROOOORORRORROROROROOROROOROORRORROOOORROOOROOOOROROOOOOOOOROOOOOOOOOOOOOROROOOROROROOOORROROOORROOOOOOROROORROOOOOOOOOROORROOOOORROOOOOROOOOOOOOOROOOOOROOOOOOOOORROROOOOOOOOOOOOOROROOOOROROOOROOORROOOOOROROOOOROROOOOOOOOOOOOOOOOOOOOOOROOROOOOOROOOROOOOOOOOOOOOOOOROOOOOOOROOOOOROOOROOROOOOORROOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOROORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOORROOOROOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOROOOORROROOOOOOROROOOOOROROROOOOOOOOOROOOOROROOOOROOROROOOOROOOOOORROOOOOOOORROOOROORORRRORROOOROOOOOORORORORROOOOOOROOROOOROOOOOROORROOOOROOROROROOOROORROOROOOOOOOORRORROORORORROROROOOOOORROOORRORORRROROOOOOORORRORRROORORRORORORRROORRRROOOOORRORRROOOORORRROROORROOROOOOOOROORRORRRROOOROROROORORORRRRROOROROOORRRRRORRORRORRRRRRROROORRORRROROROORRRRROORROORROOOOOOROORRRRRORROOORRRORRRORRRORRRROOORRROROROORRRRORROOROOORRRRRRRRRORRROOORORRRROOOROOROORROOOROORRORORRORRORORORRRRROROROOORORRORRRRROOOROOORORRROORRRRORORRRROORRORRRORRORORRROROORRRRORROOOORRRRRROROOOOORROROOORRRRRROOOOORRORRROOOORORORROOROORORRRRROOROOORROOROROROOORRRRRRRRRORRRRRRORRRORORORORRRORORRROORROOOOORRORRORRRRROROORORRRORORORRROORRRORRROOOORRORRROROOOROROORRORROROROROOOORRORROOOROOROORORORROROOOROORORROORRORROOOROORROOOROOORORRRRRROOROROOOOORORORROROOOOORROOROOOROOOOOORROOOORRROROORORROOOOOROOOROOOOOORRORRRRROROOORORROROOOOOOOOOROOOOOOOOORROROOOROOOOOOOOOOOOORROOOROOOOOOOOOOOOOORRROOOROOOOORROOOOOROOOROROOOROOROOOOOOORORRROOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOROROROROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOROOROOOOOOROROOOOOOOROOROOOOOOROOOOROOOOOOOOOOOOOOROOOOOROROOOOORROOOOOOOOOOOOOOOOOROOOOOOOOROOROOOOOOROOOROOOOOOOOOOOROROOROOROOOOOOOROOROOROROOOROROORROOOOORORORROROOOOOOOOOROOOORROROROOOOROOOOOOORRROOOOROROOOOROOOOOOORORORRROOROOORROROOOOROORROOOROOOOOOOORROOROROROROROROORRRROROORRROOORRRRRRROROOOROOOOOOOROROOROORROROOROROORRRRRRRROOROROROOOROOORORRRORRRRROOOROORORROORRROROROOROOOOOOORROOORROROORRRRRROOORROORRRORRORRORROROOROOOORRRRORRRORRRORROOOORRROOOOORROROOOORRROORRRRRROORORRORROORRROOROOOROROOOOOOORROORRRRRRRRORORROROORRORRRRRRRRORRRRORORROROOOROORRRRROOOOORORRRORROOORRORRROOROORRROOROORRORROROOOOORRORORRORRRRROOROOROROROOOROORROOROORRROROOOOORRORROROORRROOOROORRROORROOROOOORORROORRORRRRRROOORRRRROORRRORROOORRRRROOORRROOOORRRRROROROORROOOORRRORRORROROOOROOOROOOOORROOOOORRRORRRORROROORRORRRRORORRORROOROORROROOOORRRRRROOOOOOOORROOROROOROOOORRORROOORRROROOOOOOOOOOOOROOOROORORROROOORROOOROOROROOOOOOOOOOOOOORORROOOORROOROOOOORORROOOOOROORRORROOORRROORROOOOOORRRRRROROROOROROROOOOORROOOOOOOOOROOROROOOOOROROOOOOROOOOROOOOOOOOOOOOOOOOOOROOOROROOOOROOOOROOOOROORROOOOROORRROROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOORROOOOOOOOOOOOOROOOROOORRRROOOOOOOOROOOOOOOROOOROOROOOOOOOOROOOOOOOOOOROOOORORROOROOOOOOROOOOOOOOOOROOOOOOOOOOOOROROOOOORRRROOOOOOOOROOORROOOROOROOOORORORROOROOOROOOOROOROOROORORORROOOOOORORORRROOROOOOOOOOORROOORROROOORROORRRORRROROOOORROOROOOOOOOOROOROOORRORORRROOOORORROROORROOORRRROORRROORORROOOORRRRRROROROROOOOORRROOOROORROORROORRRRROORROROORROROOORRORORRRORORRROOOOORRRRRRRRRRORRRORORRORROROORROORRROROORRROORRRROOOROOOORROROORROOORRORRRRRORRORRRRRRORRROORORRRORRORRRORORRRRROORORRRRORRRORORRROROORRRRORROORRRORORRORROORORROORRORORORORRRROORRORORRRRRRRRRRRRORRROORRRRRRRORROOORRROROORRRROOOORORRRORROORROORORROOOROOOORRRRROOORRRRRRRRRORRRRORRRORRRRRORORRROORRRORRRRRROROROOOOOORORRRORORROOROOOOOOORRROORRORRORRORROOOROORRRRRRORROOOORRRRROORROORROROOORRRRRROROOROOROOOORRROOROROORROROOROORRORRROOOOROOOOOROROORORORORRRROOOORRROROROOOORROOOROOROOOORROOOOOOROOROORROOOOOROOROOOOOROORORROOROOORROOOOROROROOOORROROOOROOOOOOROOOORROOOOOOOOOROOROROORROROOOOOOROOOOOOROOOOROROOROOOOOOOROOOOOROOOOOROOOOROROOROROROROOOOOROOROOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOROOROOOOOOOROOOOOOOOOROOOROOOOOOOOOOOOROOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROROROOOOOOOOOOOOROOOOOOOOOOOOOOOORROOOOOOOROOOOOOROOROOOOOOOOOOOOOOORROOOOOROOOOOOOROOOOOROOOROOORROOOOROOOOOOROOOOORROOOOOOOOOOOOOROOROOORORORROROOOROOOROOOROOOROOOOOROOOOOOOOORORROOORRRRRROROOROOOROROROROOOOROOOOORORRRROROOROROOROROORRRRORROROOROOROORORORORORROROROOROOOOROROOORRRORORROOROROROROROOORROOROROOOROOROOOORRROOOROOROOROROORRORORROOORRROORRROOOOOORROROROOOOORRRRROROORRRRORORORRRORORRORRRROOROOOORRROOROOORRRROOORRRORRRRORORORRRORORRRRROORRRROOROOOORRORRORRRRRROOOROORRRRORRORRRRROOORORRRRRRORORRORORRRORRORRRRRRRRROORORRRROOORRRRRRRRORRRORRRRROORRRRORRRRRORRORRROORRORRROOORORORRORRORRRROOORORRRROROORRORORORORRORRRORRORRRORRRRRRORORORRROORRROOROROORORRRROORORROOOORORRORROORRORRRRORORRRRRRROORRRRRRRRROORORORRRORORROOORORRRROOORRRROORROOOOOROORORRORORRRORRRRRORORRRRRORROOOORORORRORROROORORRRORORROOOOORRRORRRRRROOOOORRORRRROORORRRROOOOOORRRORRROORRROOORROOROROORROOOOROORORRORRROORRRROOOORORROORROOOOOOOOOOOROROROORROOOOORROOOORRROOOOOOOOOOOOORROROOROOOOOROOOOOOOORROOOROROROOOOOOORRRROOOORROOOROOOROOOOOORROOOOOOOROOOOROOOOOOOROOORRROOOOOOOOROOROOOOOOOOORROOOOOOORROOOOOOOOROORROOOROOOOOOOOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOROOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOORROOOOOOOOOOOROOOOROROOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOOORROOROOOOOOROROOOOOOOORROOOROROOROROOOOOOOOOORORRROOOOOOOROORROOOOOOOOOOOROOROROOOOOOOORROOROROOORROORORROROOROROOOOOOOOOOOOOROOOROOROROOROOOORRROOOROOOROOOOOROOOOROROOROOOROOOOOOOROORROROROOROORROOOOROOOOOOOOOROOROOORRROORRRRROOROROOORROROROROORRORROOOOORROOROOROROOOORROOOOOOORRRROROORRRRRROOORROORROOOOOOROORORRORORRRRRROORORRRRRRRROOORROORORROORRORRROROOOORROOOROOOOROORRORRRRRRROORRRRRRRORRRRORRORORRRROROOORROOOORRRROORORRORRRRRORRORORRROORORRRORRRRORRRORORROOORORRRRORROOORORRRORORRORORRRRRRORROROOOOOROORRRRORRRORRROORRRORRORROOOORRRRRRRRRORRORORROOOORORRRRRORORRRORRRRORRROORRROROORRRRRORRORRRRORRRRORORRRRRORORORRORORRRRORORRRRRORORRRROOOORROORROOORRRRRRRRROORROORRORROROROORRRRRORORRRROOROOROOORORRRRRRROOORRORROROOOORRORORORORORORRRRRROOROROORRRRROOOORROOORRORRROOROORROROROROOROORORRROROROOOROROOOOOROOORORROOORROROOOROOOROOOROROOORRORORROOROROROOOOOROOOROOOORORRORORROOROOROOORROORROORRRROOOOOOORROOORORORORROOROOOOROOROOORROOOOOROOOOOOOOOOOOROOOOOOOROORORRROROOROROOOOOOOROOOOOORROOOOOOOROOOOOROROOROOOOOROOOROOOOROOOOOOOOORROOOOOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOORROOOOOOOOROOOOROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOROOOOROOOORROOOOROOOOOOOOOOOOOOOOROORORROOROROOOOOROOOROOOORRRORRROOOROOOOOOROOROOOOOOOROOROROORROOROOORROOROOOOOOOOOOROOROORROOOROOOOOORORROOOROORRRRROOOOOOORROOOOOOOOOOOOROOOOORROROROOORORROOOOORRRROOORORRORROOORRRORRORROOROOOROOROROROOOORROORROORORORRROROROOOOORRORROOROORROORROROOOORROOORORORRORORROROORRORORORROROOOORRRORRRORORRRRRRRORORORROROOOORROROOOOORROOOOORRRROOORRORORRRORRRRRROOROOROOOOORROOOROOOORRRRRRRRRORRRROROROORROROORORRORROROORRRORRORRORROOROOOORROOORRROOOOOORRRORRRRORROOOOOORRROORRORRRRORRRRRORORROROOROROORRORRORROORORRRORRRRRRORROOORRRORRRRRRRRRROORROOROOOOORROOOORROOOROOROORROOOORORROORRRRRRRRRRORROORRORRROROOORORROROOROORRRRRRRRRRRRORRRRORRRORROORORRRRROORRORRRORRROORROOOORRROROOORRRRORROOORORROORRRORRRRROROOOORRORRROROROOOROOROROORRROOROOROORROORROROOOOOROOROOOROOOORORRROOOORORROOOOORRROROORORROOROORROOORORRORROOOOORORORROOROROOROOOORRORROOOOROORORROOOOOORRRORROROORRROOOOOOOROOOOROOOOROROOOOOORROOOROOOOOOOOROOOOOROOROORROOOROROOOROOOOOOOOOROOOOOOOOROOOROOOOROOOOROOOOOOOOOOOOOROOROROOOORROOOOOROOOROOOOOOOOROOOOROOOOOOROOROOOOOOOOOOOOOORROOOOOROOROORROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOOOOOROOROOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROORORROOOROROOROROOOOOOOOOOOROOOROOROOROOOOROROOOOOOOROOOROOOOOOOOROOROROOROOOOOOROORRROOOORRORRORORROOROOORORROROOROOORRORROOOROOOOROORRRRRRROROOROOROOORRROOOOROROROOROOOROOROOROOORORORROOOOOROROOOOOOROOOOROROOOOOOROOOROOOORRROORORROORROOROOOROOOOROOOROOROOROOROROOROORROORROOOROOROOORRRRROROORRROOORROORROORRRORRROROROORORORORRRRRRORORORRRORROORRRRORRRORRRRRRRORROOROOOORORRRRRRRORORROORRROROOORRRRRRROORORRROORRORRRORRORROOORRRRRRORRRORRRORRRRRRRRORRORROORORORRORRORORROOROOORRRORRORORROROORRRORRORROORRRORORRORRRROROORRRRROOORRORRRRORRROOORROORRRRRRROOOORRORRROOOROROORRRRRROOROOORORORORRORORRORRROORRRORRRRRRRRRRRRRRRORRRROROORROROORRRRORORRRRORRRRRRROOOOROROOOOOORORORRORRRRRRRRORRORRRROORRROROROROOROROOORRORRRRORRRORORORRORRORROOORROOOROOORROOOORROOOROOROOOORROROOOOROOOORRROROORRORORROOOORRORRRROOOOOROORRROROROOROROOROORRROROROROOORRROORORRRORRORROORROOORRRROROROORROROOOROOOOOOOOOOROOOROOOROOOOOOOROROOORRRROOORORRRORRROROROOOOROOOOOROOORORROOROOOROOOROOOOOOOOORROOOOOROORROOOOOOOROOOOROOROOROOOROOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOORROOOOOOOOOOOROROORRROROOOOOOOOOOOOOOROOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOORROOOOOROOOOOOOROOOOOOROOOOOROOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOROOOROOOROOOOOOROOOOROROROOOOOROOOOOOROOOOOROOOOROOOOOOOOOOROOROOOOOOOOOOOROROOOOOOOROOOOOOROOOOOOORRORROOOOOOROOROOOOORORRRROROROOOROOOROOROROOROOOORRRORROOORRROOROROROOROOOOROROOOOORRROROOOOOROOOOOROOROOOOOROOOROOOROOORRORORORRRRORORORORRRRRORORRRROOOOOROOROOROOOORROOOROOORORRORROROORORROOOROOROORORRORROOROOOOROOOORRROORROORRORROOOROROORRRROROORROROORORRROOROOROOOOORRORRORRRORRRRROORORRORORRRRRROOOOORORRRORROORROOROOOROROROOOOORORORRORRROORRRORORROORRROORROORRROROORRRRRRRRRORRRRRRRRRROOOOORRRORRORRORRRORROROORRRORRRRRRORRRRRRRRORORRRORROORRRROROROOORRROOORORROORRRRRRRRRRRRRORORRORRORRRROROORRRRORRROOOORRORORRRRORRROOOROOOROOORRORROOOOORORORROROORRRRRRRRORRRORROOROROOOORRRROROOORROROORORRRRRRORRRRORRRROROOOORRRRRORRORORRRRRRORORRROOROOOORROOOROOORRRRRROROROOOOOROOROOORROROOORROROROORROOOROOROROOROOOORORORORRROOROORRORRRRROOROOOROOORRRRORORORROROOROORORRRORORRRRORROORRROROOOORROOROORROORROOORRORROOOOOOROROOOOROOOOOOORROOOOOOOROROOROOOROROROOOOOOOOORROOOOOOOROOOOOOOOOOOROOOOROOOOOROROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOORROROOROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOROOOROOROOORROOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOROOOOORROOOOOOOOOOOOOOOOOOOROROOOOOOOOROROOOROOOROORROOOOOOOOOOOOOOOOROOOROOOOOROOROOOOROROOOROOROORROOOOROOOOOOOOROOOOOOROOOOOOOOOOROOOROOOOOOOOOROOOOROOOROOOOOROORRRRROOROOOORROOOOOOOOOROOOROROOOOROROOOROROORROOORRORRRORROROOOOOROOOROROROORRRRRROOOORORORORORORORRROROOROORROOOORRRRROORROROORROROROOROOROROROOOOOORRORORORROOORRRRRRORRORRROOOOORORORORORROORRRRRROORRORROORROORRRROOORORRORRORRORRRRORRRROOOORROOORRRRRRRORRRORRRRRRROORORRRORORRRORORRROOROORRORROORORORRRORRRRROORRRROOORRRRRRORORRRRRRROORRRORRRRRROORRRROOOOROORORRORROORRRRRRRRRRRROOORRRRORRRORRORORRRRRRRRRORROORORORRORRORRORORRRRRROORROORROROROROOROROORORRRORROOROORORORROOORRRRRRROROOROORORROORRRORRRROORRORORRRROOORRRRROORROORROOORRRRORROOROOOOROROROOOROOORRRROROROOORRRRRROROORRRRRRRROORRRORORROOROROORROROOORORRRRRRRORORROOORRRROROORORRORRORROOOORORRORROROOOOOOOROROORRROOOORRROOOROORRRORORORORRRRRORRROROROOOROORRROORORRORRROORORROROROOOOOOROOOOORRRROROOROOROOOOOOOOOOOROOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOORORROOOOOOROOROROOORROOOROROROROOOOOROOOOOROOROOOOOOOOOROOOROOOOOOROOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOROROOOOOOOOROROROOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOROOOOOOOOOROORROOOOOOOOROOOROOOOOROOOOOOROOOOOOOOROOOOOOOOOROOOOOOOOOROOOOROOOOOOOOOROOOOROROOOOOOROOOROOORROOOOORORROOOOROROOORROROORROORROOOOOROOROOOOOOOROOOOROROOROOOOOROOOOROOROOOOOOOOOOOOROROOOORROOORRROOOOOROROOOOROOOOOROOOROOOROOOORRROOOOROROORORRRORORROOORRRROOROROOOROOOOOORRROOORROROORROOOOOOOORRRROOROOOOOROROOOOORROROROROORRORROOORRROORORRROOOORROOOORRRORROORRRRORROOROORROORORROOORORORORORRORORRRORRRRRRORRRORORRROROOOROORRRRRORROORRORORRRRROROORRRRORORRROOOOOORRRROOORRORRRROOOROORROORRRRRRROORRORORRORROORROORRRORRROROOORORRRRRRROOOROOORROOOORROOOROOROROOORRORRORORORORRRRRORRORRROORRRRRRRROOOORROORRRORROORRORORROORRRRRRORRORRRRRORRRROOORRRRRRRRORROORORRRROROROROOOOORRRORROOOOROOORRORRRORRROOROOORROOORROROORORRRRRRRRRRORROOORRRRRRRORRRROROROROORORRRRRROORRRROOOOOOROOOROROORRRORROOORRRRRROORROORORROOORRRRORRROOORROORRRRRROROORROOOORROOOROOROOOOOOROOORORROOROORORORRRROROROOOOOROOOROORRRROROORROROOORORROOOROROOORROOOOOOOOOOOROOOOOOOOOOORROROORRROOOOOROROOOOORROOOOOOOOOROOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOROOOOOROOOOROOOOOOOOOOOOOOROOOOOOORORRROOROOOOOROOROROOOOOOOOOOROOORROOOOOROOROOOOOOOOOOOROOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOORROOOOOOOROOROOOORORORROOOOOOOROOOOOROOOROOROOOOOOOOOOOROROOROOOOOOOOROOOROROOROOORRRORORORROOOORROOROOOOROOROROOOOOOOOORROROOOOOOOORROROROORRROOORORRROROOOROOORROROROOOROOROOOROOOOORROORORORRROOORROOROOORRROROROORRRORORROORORORRRRORORORORRRRRRORRORRORRROROOROOORROROOOOORRROOROOROROOOROROROOORORORRORRROROORRRORRRRORRRORRORROOORRRRRRRRRORRORORORRORROORRRRRRRRROORROORROORROROORRRROOORRRRRROORRRRRRRRROOOOOROROOROORRORORRROOOORRRRRORROROROOORRRRROOORRROOOOORORRRRROOROORROOORORRORRRRRORRORROROORROORRROROORORRRRRORROOORORRRORRRORRRRRORORORORRORORORRRRRRORRROROROOOROOOOORRRRROOOROORRROORROOOROORROORRROORORRORRORRRRORORRORRROOOORORORRRRROOROORROOOOORRRRRORRRRRRRRROROORORRRORORRORRORORRRROROOORROOOORRORROORRRRROROROOORRRRORROOOOROORRRORORRRROROROOORORRORRORRRORROOROOROORRROORORRORROOOROOOOROORORORROOOOORORORORRORROOOORROOROOROOOORRRROORRRORRORROOOROROOROROOOROOORORRRRRRROROOOOOOROOROORROOOOOOOOROOROOOOOOROOOROROOOOOOOOOROOOROOOOROOOOOOORROOORRRORROOOOOOOOROOOOROORRROOOROOROOOOORROOOOROOORROOOROOOORORRROOOOOOOOOOROOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROROOROOOOOOOROOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOORORROOOOROOOOOROOOOOOOROROOOROOROOOOOOROOOOROOOOROOOOOOOOOOOOOOOOOOOOORROOOROOROOOOOORRROROOOOOOOOROOOORROOOOOOOOOOROORROOOOOOOOOOOOROORRROOOROROORROORROOOOOROOOOORROROOOOOOROROOROROROOOOOROORRRROOROROOOOOOOOOROOOOOROROOOROORRRORROROOOOOOORORORORROORRRORROROOOOOORROROROOOOROOORROROROOROROROOOOOORRRROOOOOOORORROORORORRORRRROOOORROOOROOORRORROOORROOORRORRRRORROOROROROORORORRORRRRRRRRORORROORROORRRRROOORROOORRORRORRRROROROROORROOORORORROOROOORRROORRRROORORRRROROORORORORRRRRRROORRORROOOROOROORORROROORRRRRRORRORORROOROOORRROROOOORRRRRROOROORROORRORRRROOORORRORRRRRORORRRRRRROORORRROORRRRROORROOROOORRRRROORRRRRRRORRRRRRRRORRROORRROOORRRORRRROROOORRROORRRORORRRORRROROOORROOROORRROORRRRORORORORRRROOORORRORROOROROOORRROORRRROROORROOROORROORROORRRRRRORORRROOOORRROOOOORORROROOOORRRRRROOOOOORORROORRROROOOOOORRRROROOOOOOOROORRRROOOROROORROOOOROROOROROROROORROOOROOOOOORROOOORROORROOOOROROORRORRROOOOOOOOOROROOOOOROROROOOOROOROOOOOOORRORROOOROOOOOOOROOOORROOOOOOOOOOROOOOOOORRROOOOOOOROOOOOOOROOOOOOORORRRRRRRROROROOOROOOROOOROOOOOOOOOOOOORROROOOOOOOOOOOROOOOOOOROOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOORROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOROROOOOOOOORROORROOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOROROOOOOOOOOOOORRRROOOOOOOOORRROOROOOOORROOOOOROOROOOOROORORROOOORROOOOOOOORROROOOOOOOOOOROOOROOOOOROORORROOOOROROOOOOORORROOORROOROOOOOORRRRORRRORORORRRROOROOOOORRROOOORROORROOOORRRORRRORROORRRROORROOROROORRRROORROROOOOOORROROOORRRROOOOORROROORRROOOOOOOORROORORRROOROOOORORRRRROOROROORRRRRRRRRRRROOORRRORROROOROOROOOROORORORROORRORRORRRROOROORROORORRRRROOORROOORROORRRRRORORRORRROOOOOOOOROROOOOOORORRORRORORRROOROORRRORRRRRRRORRORRRROROORORRORORRRORORORRRRRRRORRRORRRORROOORORORRRRRORRRROOROORORRRORORRORRRROORROOORRRRROOOORORORROORORORRRROOROORRRRORRRRRRRRRRORRRRRRRRRORROOORRRRORRROROROOOORRRRRRRRORRORRORRORRRORRRORRORROOROOORRRORROROOORROOROOROROROROROORRROROOORRRROOROORRROROORRORORROOOORRROOORORROROROROORRRORORORRRORROOOORROORROOORRRRROROORRRROROORORRRORORORRROOOROOORORRROROOROROOOROOROOOROOOOORRRRROORROROOOROOOOROORRRRROOOORRORROOOOROOROOOOOROROOOROOROOOOORROOOORROORROOOOOOROOOOOOOROOOROORROOOOROOOOORRROROOOOOROOORRROOROOOROOROOOOOOOROOROOOOROOROOOOOOROOROROOOORROOOOOOOOROOOOOROOOOOROOOORROOOOOOOOROOROOOOOOOOOOOOOROOOOOOOOOROROROOROOOOOROROOOORROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOROOOROOROOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOROOOOROOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOROROOOROOROOOOOOOOOOROOOOOOOORROROOOOOOOOROORROOOROOROOOOOOOOOROROOOOOOROOROORRRRROROOORROOOROOOOOORORROOOOOOOOOOOOOOOOOOOOOOORROOOROOOOOROOROOOOOOOROOOROORORROOOOORORROOOOOOOROROOOOOOOROORRRROOORROROOOORORRORROOOROROOOOROOOOORORROORRRORROORROORROOOOROOROOOORRRRRRRROOROROOOROORROROOROOOORROOROORROORRRROOOORRORROORRRRRORORROROOROROOOORRRORRROOORRRRROOORROOROOOORORRRORRRRRORRRRRRRRRRRROROOOORRRRROOOOORRORRORRRORORRRRROORORRRROORRRRRRROOORORORRRORRORORRRRRRROROROROORRORRRRRRROORRRRORRRROORRORORRORRROORROORRRROORROOORRRRORRORORROORRRRRRORRRRRRORROOORRRRRRRRROORRRORRORRRRROOROROOOOORRRROROORROOORROORRROORRORORRORORRROORRRRRRROROOROROORRRORORRRORRORRRROROORORRRRRORROROORRROOOOROOOORRRRRORORORORRORORRRORROOOOOORORORROOOORROORRROROOOOOOOOORORORRORRRRORROORROOOOOORORRROORRRROOORORORRRRORROORROOORORROOORRORORRRROOORORRRORORORRORRROOORORROROOOOORORROORRORRRRRRRRRRORRROOOOORORROOOOOOROOOOROROOOOOOOORORRRROOOOROOOOOOROOOOOOOROROORRRRROOOOOROOOORROOROOOROROOOROOROOOOOROOROOOOOOOORROOOROORROOOROOOOOOROOOOOOOOOOOOROROROOROOOOOOOOOOOOOOOOROOOOROOOOOOOROROOORRRRROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOROOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOROOOROOOOROOOROOOOOOOOROOOOROOOOOOROOOOOOOOOOORRROOOOOOOOOROOOOOROROROOOOOOOOROOOOOROOROOROOOOOOOOOOORROOOOOOROOOOOOOOROOOROOOOROROOROOOORROROOORROOOOORROOOOROOROORROOOOOROOOOOROOOROOOOOROOOOOROOOORROORRRRORRROOOROOOROROOORROOOROOOROOOOROOOOOOROOOOOOROOOORRRRRORRROORORRRRORRRROROORORORRROORRORORRORROOROOORORROOOOOROROROOOORRRRRROROROOOROOROOORRROOOROOORORRROOOOOOORRORRROOOORRORRROOORORROORRORRRRORORRRORRRRRRORRORRROORRRRRRORORORROORRRORRRRORORRRORRRRORRROOOORRRRRORORORRORRORRROOOORRROORRORRROOORROORRROORRRORORRRRRRROROROROROROORRRRROOORROROORRRRROORRRRRORRORRRRORRRRRRORROORRROORRORRRRORRORROROOOOOOOROOOROROOROOOROROORORRRRRRRRRRRROORRORORROOOROOORROORRRORROOROORORRRRRORRORRRRROROOOORRRORORROORORRRRROOOROORROOOROOORRRORROOROORRRORORRRRROROORRRORORRRROROOROROOORORRRROOOOROROOROROORORRROORROROORROOOOOROORORORRRROOOORRRORROORROOOORRORORRRRROOORRROORRROOROORROROOOORORROROOORROOOOORROOROOORRRROOORORORRRROORORROROOOOORROOROOROOOOOOROROOOORROORRROOOOOOOORRROOOOROOOOROOOOOOROORRORRROOROOROOOROOOOOOOOOORROOOOROOROOOOOOORORROOOOOOOROROOOROORROOOOROOOOOOOOOOOORORRRROROOOROOOOOOROOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOORORROOOOOROOOOOROOOOOROROORROOOOOOROOOOOOOOOOROOOOOROOROORROOOOROOOROOOOOOOOROROROOOOOOOOOOOOROOOROROOOROOOOORROOOOOOROOOOOOOOOOOOOOOOOOOOOOORORORORROOOORROOOROOROOOOOOOORROOOOOOOORROROOORROOOROOORORRRORRROOOOOOOORROOOROOROOOOORROROROOORORORROOROOOORORRRRRROROORROOOROOOOOOROROROOROOOOOOOROROOROORRROROORORROOORRROOROROOOROOOORRRROROORORRROROOORROROORROOOROORRRRRRRORRRROORORORROOOORROOOOORORRRRRRROROOORRROORRRORRRRROORORRROOOORRRRRORRRORRRRROORORRORRROROORRORRORROOROOORROOROOOORRRRROROROORRRROROROOORRRROROORRRRORORROORORRROORROROOORRRRORRROORRORORRORRRORRORRRRRORRRRRORRRORORORRORORORRRRORORORRROORORORORORORROOROOORORRRORRRORROOOOROROOORORROORRRRROOORRROOOORRRROROROOOORRRORORRRRRRRRORORRRORRROROROOROOOOOORRRRROOORRORRORORRRRROROORROORORROOORRROOOROORRRRORRRORRORROROOOOORRROOOROORORRROOORROOORROOOOROROORRROORRORRORROROOOOOROROORRRROORORRRRORRROORRORROOOORROOROOROOOOOORROROOOROROORORORRRRORROOOROOOROOOORRORROROOOROOOORORRRORROOROROOOROROOOOOOROOOORRRORROOOOROOOORROOOROOOOOOOOOROOROOOROOOOROOOOOOOOOOOOOOROROOOOOOOOOOOOOROOOROOOOOOOOOORROOOOOOORROOOOROOROOOOOROORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORORORROOOROOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOROROOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRROOOROOORROOOOOORROOOOOOOOROOOOOOOOOOOROOOOOORROROOOOOOORROOOOOOOOOOOOOOOOOOOROOROORROOROROOOOOOOOOOROROORROOOOOOOOORROOOOOOROOOOROOROOOOOOROOOOOROOOOOORROROROOOOROROROOOROOOOROOROROROOOOOOOORROOROORORRROOOROORROOOOORRRROOORORRORRRROOOORRRRROORRROOOOOOOROOOOOOROOOROROOOORRORORRROOROOROOORRRRORRROROOOOORROOROOOOOOORRRRRRRORRORRRROOOOROOORROORORRRORROOOOORRRRRRRRRORRRRRORORRRRRORROOOROOOORRRROORRORORROORORROOOROORRRRORRROOORORROOROORRRRRRRROROORORORRRRRRROROORRRORORRRRRRRRORRORRRRORROORRRORORORRRRRRORORROOOORORORRRORORRORRORROOORRRROROOROORRORRROORROORRORORRROOOOOOORRORRRRRRRRRRRORRRRRORRRRRRRORORROOROOORRROOOORRORRROOOROOROORRRROOOOOROOROOOORRRRORRORROOORRRORRRROOOROOROORORRRORROOOROROOOOROORROROOORRRRRRRRRRORRORORROOROOORRORORRRORRRROOROOORRRORRRRRRORROROOOORORRORROORRRRORORORRRORORRROROORORORRORROOOOROORORORORRORROOROOOORROORROOORROROORROORROOOOROOOORROOORROOOORRROOROOROOROOOOOOROOROOROOOOROORORROOOOOOORROOOOOOOOOROROOOOOOROOORORRROORROORRROROROORRORRROOOROOOROOROOOORORROOROOROROOOOOOOOOOOROOROOOOOROROOOOOOOOOOROOOOOOOROOORRROOOROOOOOOOOOROOOOOOOORRRROOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOROOROOOOOOOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOROROROOOROROOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOROOROOROOOROROROOOOROOOOORROOROORRROOROOROOROOOROOOOOROOOOOROOROOROROROOOROROROOOOROOOOROOOOROOOOOROROROOORORORORORROOOOOOROOROROOORORORROOROROOOOROOOROOOOOORROROOORORROORRRROORRROOORRRORORRROROOOROOOOROORORRRRROOOROOROOOOOOORRRORRROROORORRROORROORRRROROORRRROROROOROORRORORRRRRRROOORRRRRRORORROROROORRRRORORORROORORORRRRORRROOORRROOOOOROOOOORRRRRORORRORROROOROROOOORORRORRRORRRRORRRORRORORROOROOROOORRRROORRROORRRRRRORRRRRRROROOOOOROORORRORRRRRRORRROORRRRORRORORRORRROORRORROORRRORORRRRRRRORRROOORRORROROROORROROOROOORRRORRRRRORRRRORRORRORORRRROROOROORRRRRRRRRORRRRROROORRRORRRROORROOOROOOORRRRORRRRRRRRORROROORORORORRROORRRORORORRRRRROOORRORRORRORRRRROROOROOROOORROROORRRRRROORRORRRRRROOORRRROORRORROORROOOOOOROROOOOOOROOORROROOOOORROROOORORRROROOOORORROOORORORORRORORORRROROOROOOORROOOOOROOOOOOROOOOOOOOOOORRROOOOOROORRROOOORROOOROOROOOOOOROOOROORRRROROROOOROROOOOROROORRRROOOOOROOOOROOOOOORRROORRORRROOROOROOROOOORRORROOROORRROROOROOOOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOOOOROORROOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOROOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOORRROOOOOOROOOOOOOOOOOOOOROOOOOOOOOROROOOOOOOOOOOOOROOOOOOOORROOOROORRROOOOOOOOROOROOOOOORROROOROOOOOOOORROOOOOOROROOOOOOOOOROROROOOOROOOROOOOOOOOOORRRROOROOROOOOOOOOROROORROROROROOROOOOOOORRROOORROOOROOROORORRROOOOROROOOORRRORORRORORRROOROORORRROOOROOOOOORRRRRRROROOROOOOROOOORRRRORORRORRRORROOOROOROOOORRRRRROORORRRROROROOOORORROOOOORORRRROOROROOORRRROORRROOOORRRRRRROOOORRROORRRORRORRORROORRRRROORRRROORRRROORROOOORORROROORRRRORRRORRRORRRROOOROOROORRRRROOROOORORORORRRRROORROROORORRRROORRROORRRORORROOOOROORRRRRRRRORRRRORORRRRRRRRRORRRRORORROORRRROOROORRRORROOROOROOOORRROROOORRORRROROORRROROOOROOORORORORRRRORRORRRRORRRRRRRRRORRRORRRROOROROORRRRRORRROOROOOORORORRRRROORRRRRORORORRRROOROROORROROROOOOORRROORRRRORRORRORORROOORRORROOROOROOROORRRORRROOOROORORORRRRRORRROROOORRRORORRROROOOOORRRRROOROOROROOROORROOROROOORRORRROOORRORROORORROORROROROORORRRROORRRRROORROOROOOOOORORORROROOOOOOROROROOOROOORROORORROOROOOOOOOORROOOOORRROOORORRORROOOROOORRROOORRRRORROOROROORRRROOOOOROOROROOROOOOROROOOOROROOOOORORROOOOORRRRROORORRRRROOROOOOOOROOOROOOOOOOOOOOROOOOOOOOROOOOROOOOROORORROOOOOOOOOOOROORROOOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOORROOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOROOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOROOOORROROOOOOOOOOROOOOOROOOOOOOROOOOROOOOROOOOOROOOOOOOOOOOOOROOROOROOOOOOOOOROOROROOOROOOROOOOOOOOROOROOOOROOOOROOOOOOOROOOOROOOOORROROROOOROOROORRRROOOOOOORRROOOROOORRORROOORROROOROOOROOROORORROOROOOOROOOOROOOOORROOOOORRORORRORRORROOOORRROOOORROOOROROORROOORORRORORORORRRRRRROORRRROOOOOOOOROORRORRRORRRRORORROROOOORORRRROROORORRORORRROOORRROORRORRRRRRROROORRRRRORROROORROROROOROOORRRORROORRORRRORRROOOORROORRRROOROORROOROOROORRRRORRRRORRRRRRRRORORRRORROOROORRRRORRRRORROOOOOOOOOOROROROORRRRRROOOORRRRRORROORORORRROOOOOROOOROOOOORORRORRRRRRRRROORRRRRRRRRRORRRORRROORRRORORRRRRRROOOROORORRRORRRRRRROOOORRRORRRORROROROOOROOORRRRRRRRRORORRRROROOORRROROROORRRRORRORRRRRRRRRRROORORRORRORRRORRRRRRORORRRRORORORROOORROROOROOOORRRRRORORORRROROROORRORROORRORRRRRRORORRROOOOOOOORRRORROROOOORRROOOORRROOOORORROROOROROOOOROORROORRRROOORRRROOOOROROOOROOOOOROROOOROROOORROOOOOOROOROOOOORROOOOOOOOOORROOOORORROOOOOOOOOOROOOOOOOROOOOOOOORRRROOOOOROOROOORROOOOOOORORRRRRRRRRROROOOROROOROOOOOOOOOROOOOROOROOOOOOOOOOOOOOROROOOOOOOOROOOOOOOOORROOOOOROOOOOOOOOOROOROOOOOROOOOOROOOOOOOROROOOOROOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOORORORROOOROOOOOOROORROOOOROROOROOOOOOOOOROROROROROOORRROOOOOROOORROORROROOOOOROROROOOOROROOOOOROORROROOOOOOOOROROOORROROOOORRROOROOOOOORROOORRROROOOOORROORRRRROOORRROORRRROOOROORORROOROOROORRORROROOOOORROOOORORRROORROROOOOOORRROOROORRRROOROOOOROOOORROORROOORROROROOOROOORORORROOOOROROORRORRROROOROOOORRROORRORRRROOROORRROORRORRRRRRRRRRRORROORRRORROORRORROORRRRORRRORORRORRRROROORORRRRORRROOORROOORORRRROOOOOOOORRROROROOOORRORROOOOORROORRORRORROROORORRRRRRROORRORRRORORROROROOOORRRRORRRROORRRRRORORRRROORRORRRORRORRRRRRRORORRROROOORORORROROOROOOORRRRRRRRROOORROORORRORRRROROOROORROORROOORORORORRORRRRRRROROOOORROOROOROROORRRRRRORRRRORROROORROORROOROROOORRRRROOORROORRRRRRRORRRORRRORRORROOOORROOOOORORRRRRROORROORROOROOORRROROOOOROOOORRRRORORRRROOOOOOROOROROORRROOROORRROOOOOOOOORRROOOOOROOROOOOOORROOOORORRROOOOOROOOOORORROROOOOOOOROOOOOOOOROORROROOOOOOROROOROOORROOOOORROOOROOROOORORRRROROOOROOOOOROOOOOROOOOOOORROOOOROOOOOOOORROOOOOOOOOOROROOOOOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOROOOOOOOOOROOOOOOOORROOOOOROOOOROOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOROOOOOOOOOOOOROOOOOOROROOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOORROOOOOOOOOOOOOOROOOOOOOOROORROORROOOOOOOOROOROOOOOROOOOOOROOOOOROROOOROOOOROOORROROOROOOORROOOROOROORRROOOROROOOOOOORRRRRORRRRORROOOOOROROOOOOROOORORRROOROOOOROOOOOROOORORORORRROOOOROORRRORRORORRROOOOROOORROOOORRORORRROOROOROOORRRRORRROROROORRRRORORRRRORORRRORRRRORRRORRROOOOROROORRROOOROOOORROORROORRRROORORRRROOROROOOOOOROOORROOOOOOROORRRORORRRORROROOROOROOORRRRRORORRROROROROORORRRROORRORORORRORRORRRORORRORRRRRRRORORRRRROORROORRROORRRROROROOORORRRRROORRRRRORORRORROORRRORRRORRROORRRRRORRORROOORROOORRRROORRRRRROORROORRRRRRORRRORROOOROORRROROORRROOORRORRORORRRRRORROROORORRRRRORROROOORRROOOORROORRORRRRROOORROORRRORRRORROROORRROORRRRORRROORRRRORORRRROROROROROORROOORROOORRROORRROOORRRORRORRRORROOROORORROORORRRROORROROOROOROROOOOOORORRORROROOROORRRROOOOOOOOORRRRORROOORROOORROOOOOOOORRRROROOROOOOORROOROOOORRRRROOOOORROROOORRRROROOOOOOOOOOOROOOOOOOORORORROOOOOOROORRROROOROROROOOOOOOOOOORROORROORROOROOOROOOOOROOOOROOOOOOOOOROOROOOROOROOOOOOOOOOOOOOROOOOOORROOOROOOOOOOOOROOOOORORROOOOOOOOROORRROOOOOOOOOOOROROOOOOOOOOOROOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOORROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOORROOOOOOOORROOOOOOOOOOOOOOOROOOOOROROOROORORROOOOOOOOOROOOOOORORROROOOROOOOOOOOOOORROROOOOOOOOOOOROOOORORORROROOOOOOROOOOROOOOROOOORRORORROROOORRRORRRROROROOROOOROROOORROROROOROROOOOOOOORROOOOOOOORRORROORROOOOOOROOOORROROOOOOOOROORORRRROORROOORRRRRRROROOOOROORORRORRROORROOOOROOORORROOOROROROOROROROOROROOORROOOOOORRRRRRORRORRORROOROORRORORRRROORORRRRRRRROOROOOORRRRORORROOROROROOOORRRRRORROROOOORRRRORROOORRROROROOOROOROROORROOOOOORORRRRRORORORRRORRRROOORRRORRRRRRRRORORROORRRROOORRROORRRROOOORRRRORRRRORRROOOROORRORRROOOORRORORRORORRROROORRRRORRRRRRORORRRRRORRRORRROORRORORRRRRRRRRRRROORORRRRORORRRROROOROORRROOOOORORRORRORRORRRRRORRRORRRROOOOOOORRRRRROROORRRROOOORORORRORROOROROOORRORROORORRORRRORRRORRRRRROOROORRRRRROORROORRRRRORRORROOROROROORROORORRORRROOROROORRRROOOORROORRORROOOORROOORORORRORRRORRRRROOROOORROOROROORRORORORRRROOROORROOOROOORROOORORRRRROROROOOOOROOOOORROOOOOROORORRRROOOOROOOROOROOOOORORORORRORRORROOOOOOOOOOOOROOOROROROOOOROOORRROROOOOOOOOOOOROROOOOROOOOROOROOROOOOROOROOOOOOORRRROOORROOOOOOOROOOROORORROOOOOOOOROROOOROOOOROROOROROOROOOOOOOOROOOOROOOOOOOOOOOOROOOOORROROOOOROOROOOROROOOOOOROOOOORROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOROOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOROROOOROOOORROOOOOOOOOOOOOOOOOOOROOOOOROOOOOROOOOOOOOOROOOOOROOROOOOROROOOOOOOOOOROOOOOOOOOOOOORROOROOOOOORROOOOOROOROOOOOOOOOOOOOOOOOOOOOROROOOOOROROOOOROOOOROOROROORRORROOORROOOOROROOOORORORROROOROOROOOOOOORORRRROOROROOORROROROOOOOROROOORORRORROOROOOOORROOORRRROOORORROORRRRROORORRRORROROOORRROOOOOOOOOOROROOOOROOOROOROOOOORORORROOOOOOROORRRROORROORRRRRRRRROOOORORROOOORROROOOROROROORRROOORROOOROOOOROORROOOOORRORRROOORRRRRORROORRRROROORORORORRROROORROOOORRRORROORRORRRRORRROOORRORORRORRORRRORRRRRRRRORORROORORORRRRRRRROOORORORRRRRORRROORRRORRRRORORORORRRROORRROOOORRRROOOORRRORORRRORRRORRRRROROORRROROOOOOOOROOORRROOORORORORRRORORRRRRRRROROORORRRRRORRRRRRRORORORORRORROORROROROORRRRORRRORORROORORROORRRORRRRRRRROORRRRORORORRRRORORORORRROORRROOORRRRORRRROOOORROOORRRORORORORRRRRROROORRRORRRRRORRRROORRRRRORRRROOOOROROORRROROOOROOROORRRRROROOORRRRORRORRRORRRROOROOOOOOORROOORRRROROROOOROORRORRROROOOOOROOROOROOOORRROOROORROOROOOROOOORROOOROOORRROOOOOOROOOOROOOROOROOOOORRRORROOROOOOOROROOOOROOORORROOROOOOROORROOROOOOORROOROOOROOOOOOOOOOROOOOOOROOOOROROOOROOOOOOROOOOOOOROROOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOROOROOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOROOOROOOOOOOROOOOOOOOROOOROOOOOOOOOROOOOOOOOROOROOOOOOOROOOOOOOOROOOROOOOOOROOROOOROOOORORRROOROOOOOOOOOOOOOOOROOOOOOOORRORORROOROOOROOOOOOOOOOOROOOOROOOROOROOOOOOOOOOOOROOROORORORROOOOOROORROOROORROOOOOOOOOOOOORROOOOOOOOOROROOOOORORRRROOROOROOOROORORROROOOORORROOOOOROOOOOOROORROORRRROOOROORROOORORORRRROOOROOROORORORRRRORRRRROORORRROOORRORRRORORRORRRROORRORORRROROOOOOORRORORRORRRROOOROORORRROOOORORROOOORRRRORRRRRRRRORRRORRROOOORRROORRRRRROOROORORRRRRROROORORROORORRRRRRRRRORRORORORRORRRRRROOROORROOOOORRORRROROORRRORORORRRRRROROORORRORRRORORORORRRRORROOOROORORROOORRRRRROORRRRRORRROROORRRRROORORRRRRROROOORRRRRRRRRRORRRROROORRRRRROORRORORRROORORRROROORRORRRRORORRROROOORORRRRRRORRRRRRRRORORROOOORRRROOORORORRRROOOORORRRRRRORROORROROOOORRORORRRROORRORRRRRRROOROORORORRRRROORROROOROROOROROROORORRRROOOOOROOORORRRROOOOROOOORRROOORRROROOORORRRORRRROROOOORROOOOROOOORROROROORRRRORROOORORRORRRORROOORROORROROOOOROOOOOOORROORROORRORROOOORORORROOOOROOROOOOORRRRRROOOROROOOOOOOOOOORROROOOOOOOROOOROOOOOOROOROOORROROOOOOOROOOOOOOOOOOOROOROOOOOOROOROOORROOOROROOOOOOOROOOORROOOROOOOOOOOOROOROROOOOOOOOOOOOOROROOOOROOOOOOOOROROOOOOOOROOOOOOOOOOOOOOOOOROROOOROOOOOOOOOROOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOOOOOOOROOOOROOOOOOROROOOROOROOOOOOORROOOOOOOOOROOOOOOOOOOOOOOOOOOOORROOOROOROOOOOOROOOROROOOROOOROOROOOOOROOOOOOOROROOOORROROORROOORROOOOOOOOOOOORRROOOOOOOOOOORORROOROOROOOOOOOOOOORORRROOOOOOOOOOOOOOROROOOOORRROROOROOROROROOOROOOOOOOROOOOORRRROROOOOROOOORROORRROORRRORRORROOROORROOROOORRROROORRRRRORRROOOOOOOORRRRRRORRROROOROOORROOORRORORROOROOOOOOOOORROROROROOORRORRRRROOOOORRRRRORRROORROROOORORRROOOOORRROOOORORROORORRROOORRRROORROOORRRRRRRORORRORRORRORORRRORRRRRORRRRRORRROOOOORORORRRRORRROOROORRRROOORROOORORRRORROORRRRORROORROOORORRRORORRORRRORRRRRRRRORRRRORRRORORORORROOROORORORRRRRRRORRRRRRORRORRROORROOOOROROORRORORORORRRRRRRORORRRRRORRORRRRRRRRRORRORRROORRRROORRRRRORRRROROOORORRORORROORORROOORROORRRRRRORROORROOOOORORROORRRRORRRRRRORRROOORROOORRRROOOROROROORRRRRRORRORRORORRRRORRORRORROROORRRORRROOOORRRROOOOORRRROROOOROROORROOORRROOOOORORRORRRROOORRRRORORRROOORRROORROROOOROOOOOROROOORROROOOOOROOROOROROOROOOOOOOROROOOOOOROORRORRROOOOROROOOROOOROOOROOOOOORROORROOOOOOOOOROOORORROOOOOOOOOOOROOROOOOOORORORORORROOROROOORROOROOOOOOOOOOOOOOOROOOOOOOOOOORROOORROOOOOROOOOOOOOOOROROOOROROOOOOOOOROOROOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOROOOOOOOROOOOOROOOOOOROOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOOOOROOOOOOOROOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOROOOOOOOROOOOOOOOOOOOOOOOOROOOROORROOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOORROOROOOOOOOOOOOOOOOOROOROOOOROOOOOOOOOOOOOOOOOOOOROROOROOOOOOORROOOOOORROOOOOROOOROOOOOOOROROOROROOOOOOROOOOORRROOROOOOROOROOOROROROOOROOOOOOROROORRROOROOOOROOOOOROOORORROORRRRRRRROOORRORROOOROOROROROOOROROOROROOOOOROROORROOROOOROOOOROOOOOORRRRRRRROOOORRORRROROORORRRRORORORROROOOOOOOORRORRRRORORORRRROOOOOOROOORRROOROOOOOROROOROORROOOROOORRRRRORRRRORROROOOOROORROORRROORRROOOOORRORRRRRORORRORRRORRRRRORRRRRRRRRORRRORRRRRRRROORRRRRROOOROORRROOORRRORRRROORRROOOORROORROROORROROOORRRORROORRRRRRRORRRRRRRRORRRROROORORRRRORORORRRRRRROORORROOOOOOORRRRORRRORORORORRORRORORRRROROOORORROORORRRRRORORRORRROROORRORRRORROROOOOOOROROROORRRROOORRORRRRRRRRROROOOORROROROOROOROOOORRORRRRORROOROOOOORRROROORROORRRRORRROORRORRORRRORRROROOORROROOORROOROORROORROOOOOOOROROOORORRRORRRRORORRRRRORROOROOOOOOORORROOOORROOOOOOOROOROORRORROOOORRRRRRRORORORRORROROROOROOOROROORROOROOOORROROOOOOOOOORROORRRROOOOOOOOOOOOOOOOOOROORROROOOOOOOOOROOOOOORORROOOOOOOOROROROROOOOOOOOROOOORORROOROOOOOOOROOOOOROOOOOORROROOOOROOOOORRROOOROROORROOOOOOROROOOOOORORROROROOOROOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOROOOOOOOOROOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOORROOOOOOOOROOOOOOOOOOOROROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOROOOOOOOOOROOOOOOROOOROOOROOOOROROOOOOROOROOOOROOOOOORRRROOOOOOORROOOOOOROOOOOOOOOOOOOOOOROOOOOOOROOROOROOOOOOROORRROOOORROOOOOOOOROOOORROOROROORRRROOOOOOOOOORROOOOROOROOROOROOROOROOROOOROOOORRORROOOOOOORORRROORROOOROROOOORORRORRROOOROOOOOROROROOOOOOORROORROORRROOOOORORROROOORROOORRRRRROOOOOROOORROOORRROROROORROROROOOOOROROROOOOOOROOOOORRROORRRRORORRRORRRRORRORRORRROROORORRRRORRRORRRRORRRORROORRRRORROORORROORRRORORRROROROOOROORRRRRRRRRORORRRRORORROOOORRRORRRRRROROOOOOOORRRRRORRRORRROORORRROORRROOROORRORRRRRRORORORRORRRROOORROROROOORROROROOOROOORRRROORORRRORRRRRRRRRORROORROORORRRRRRRRORRRRORROOOOOORROOOORRRORORORRORRRRORRRRRORRORRORRRRORRROROROORRRORRRRRRRORRRRORORORRROROORROOORROROORRROOROROOORRRORROOORROROOOORRRROROOOOORRROORRRRRRRORRRROORRRORORROOORRRRORORRROROOOOOROOROOOOOORORROOOROOROOOORRRRRRROOORORRORRROORRRRORROOORRRORRROORROROROORROROOROORRRROOOOOOROROOROOOOOORRRROOOROORORROORRRROOOOOOOORORRORROOOOROOOOOOROOOOOROROOROROOROOOORROOOOOROOROOOOOORROROORROOROOOOOOOROOOROORRROROOOOROOOOOOOOORRRROOOOORORROOOOROOOOOORROOOORROOOOOROOOOOOOOOOROROOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOROOOOOROOOOROROOOROOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOORROOOOOOORROOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOROROOROOOOROOOOOOOOOOROOOOOROOOOOOOOOOOOOOROROOOOOROOOOOOOOOOOOOOOOROOOOROOROOOROOROOOOOROROORROOOOOOOROROOOOOOOOOOOORROOOOOOOOROOOOOOROORROOOOROROROOOOOROROOOOROOOROOOOOROOOORRRROOOOOOOOOROROOOROOOOOOOORORRORROOOOROROOOOOOOORROOORRROOOOOOROORORRORRROOROROOORRROOORROROOOORORROOOOOROOOOORRORORRROROROOORORORRRORRROOOOOORRROOROOOROOORROOOROOORROROOORRROOROROROROORRORRORRRRROORRORORROORRRROROOOROORORROORRRRROROORRORORRROORRORRRRROORRRROOOOOROORRRRROORROOORORRRORRRORRROORRORORRRROOORRRRRRRORRRRORORROROOOORORRRRRRROORRRORORRRORROROOORRRORRRRRORORRRRRRRORORRRRRRORRRORRRRORORROORORROORRORRROOOOOORRRORRRRRRROOROROORRROORRORORORORORRRRRORROROORRRRORRRRRRRROROOOORORRRORRORORORORRROORROOOORROOROORRORRRRORRORRRRRRRORRRROROORRRRRRRORRORRROORRRRRRROOOOOROROOOORRORRRORRRORRRROROOROORROOROOORORRORROROOROORROOOOOORRORORRORRRRORROOOOOORORRRORROOOOROOOOOOROOOROOORRORORRORROROOOOOOOOORRRRORROORRROROORRORRRROROORORORROROOOOOOOOROOOROOORROORORROOROOOOOOOROOOOROROOROOROROOORROOOOOOOORROOROOORORROOOOOOOOOOOORRROOOOOROOROOOOROOOOOOROROROOOOOOOROROOOROOOOOOOOOOOOOOOOROOOROOOOOOOOOOOROOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOROOOOOOORROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOROOROOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOROOOOROROOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROROOOOOOOOOOOROOOOOOORROOOOOOOOOOOOOOROOOOOOOROROOOOOOOOOOOOOOOOOOOOOOORROOOOOOOORROOOROOOOOROORRROORROROROROOOOORROOROOOORROOOOOOOOOOOOOOOROOOROOOROOOOOOROROROOOOOOROOOOOOOOOOROORROOOORROORORROOOOOOORROOORRROOROOROOROROOOOROOOORRORORRRRRROOROOOROOORROROOORRORRRROOROOOROORRRORROORORRROROOOORRROOROROOOOROOROOOOOROROOOORROOOOOROOOORRROROOORRORRROOORORORRROOOORRRRROORORRROORORORRROOOOOORRROROROOROROROOOOOROOORRROORROOOROROROOROOORRRORRRORRRROORORROORROROOOOROORRRRRRRRORRRRRORROOORRRRORRORRRORRROOORRRRORRRRRRRRORRRRRORROOORRRROORRORRROOORRRROORRROORORRRORRORRRRROORORRRRRORRORRROORRRORRRRRORRORORORORORORRORRRRRORRROORRRORRORRRRORRRRRRRROORORRRRRRRORORORRRROORORORRRORROOROORRROORRRROOORROORROROROROORROORRRRRRRORRRRRORORORRRROORROROORORORROORROORORROORRRRRRRRORORORROOORRRRRRRORORRRRRORRRROOORORORRROOORRROORRRRROOROOOORRRROROROOOROOORRRRRRROOOROORORROOROROROORROOORRRRRROOORRORRORORROOROROOROOOOOOOORRRRRORROROROOROOOOOOROOOORROORROORRORROROOROROROOORROOOOORROORRROOOOOROROOOOOOOOOOOROROOOOOORRROOOOROOROOOORROOOROORROOOROOOOOOROOROOOROOOOOOOOOOROROOOOOOROROOOOORORROOOOOOROOOOOROOOOROOOOORROOROROOORROORROROROOOOOOOOOROROOOOROOOOOROOOOOOOOOOROOOOROOOOOOOOROOROOROOOOOOOOROOOOOOOOOOOOROOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOROOOOOOOOOOROOROOOOOOOOOOOOOOOOOOOOOOOOORROOOOOOOOOOOOOOOOOOOOOOROOOOOROOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOROOROOOROROOOOOOOOROOROOOOOOOOOORROOOOOOOOORROOOORORROOROROOOORORORROROROORORROOROOOOOOOOROORORROROOROOOOOOORRRRROOORORORORRRRROOOROROOOORRORORRROOOOOROOOOOOROROOOROOOOOROOOOROOOOROORRRROORORRRRRROOOORRRORROORRORORRRRORORROOOOOROROOORRORORORROOROROORORRRORRRROORRRROROORROOOOROROORROOORORORORRRORRORRRRRORRORRROROROORROORORORORRORROORRRORROOOOOOORRRRRRRRRRRROORRORORRRRRRRRRORORROOORRRROORRORRRRRRRROOOROORORRRRRORRRROORRRRRORRRORROOROOROROORRORRRRRORRRRRRORRORRORRRRORRORROORRRRORRORORRRORRRORRRRRRROOORORRRORRORORRRROOOROORROOORRRRRROOORRORRRRRRRRRRRRRROORRRROORORRROROOROROOORRORORORRRRRORROOROOOOROOOOORORRRROROORORRRROOORRORRRRORROORRROROROOROORRORROROOOORRRORROROOORROORRRRRRRROOORROORORROOORORROOOROROOROROORROORRORROOORRRROROORRRRORRRORRRROOORROOROROROOOOORROOORROORORORRROROOORRRORORROOOORRROOROOROROOORROOOORRRROOROROOOROOOROOOOORRORRRRRORROORROOOOOROOOOOORORROOOOOOROOOOOOROORROOORRROOOORROOOOOOOOOOROOROROORROOOOOOOOOOOOOOOROROOOROOOOOROOOROOOROOOROOOORROOROOROOOOOOOOROOOOOOOOOOOORROROOOOOOOOOOOROOROROORORROOOOOOOROOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOORROOOO\n"
  },
  {
    "path": "challenge1/tests/mon9a.out",
    "content": "11859\n"
  },
  {
    "path": "challenge1/tests/mon9b.in",
    "content": "853212 41329\nOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROOOOORRRROOOOROOROOROROROORRORRRORORRORORRRORORRORORRRROOOORORRORRORORORRRORORORRRORROORRORROOOOORORRORRORORRRORRRRROORRROROROROORORORRRRORROOROORROOROROOOORRRORROORROROOROORRRRROOOROROOROOROORRRRRORRRROORORRROROROOOROOORRRRRROOOOORRROROOOOOORORRROOOROOORROOOORRORRROORROOOOROORRORORORROOORRRRORRRORROOORRORROROOOOOORROOOOOOORROOROOOROOOOORRRROROOROROROORRORORRROORORORRRRRRRROORROROROOORORROORROOROOROROORORORRRROROROOOROROORRROORORRRORROORROROOOROROOORRORROOROOROOROOOROOOOOORORRRORROOOORROROROOROROOROOORRRORROORRROOOROOROOORORRRRROOROORRORRRORRROORRRROORORRRORRRORRRRROORORROROOOROOOOOOORORROORRORROROROORORRRORORORRRRRORROOROROOROORRRRORROORORRORRORRRROOORRRORORROOROOOROOOOOOORRORROORRORRRROORORRROORRORORORROORROORORRRORORRRRRROROROOOORRROORORRORROROOOOORORROROOORRRRRRRROOROORORRORRRORROROORRRRROOOOOORROOORORRRRRRORROOOROOOORRROOORRROOOORORROROOOORRORORORROOOOROORORRROOROOORRRRRROROOROROROROOOORROROOORRRORRORRRROORROROORRRRORROROROORORROOROORROOOROROOROOOOORRRRORRORRRRRROORRROOOORRORROOOOORRORRRRORRORRRORRROORRRORRROOROORRORRRORROORORORRRORRORRORRORORROROORROROROORROORROOROOORORRROOOORRORRORRROORRRORORROOROOROOORORROOOOOORORORROORROOOROROOROORROOOOROROOOOROOOROOOROROOOOORRRROORROORRRROROROROROROOOOORRORRRRORRROOROOOORORRORROROROROORORROORRROORRRROROOOROOOORRROORORROROORORORROROOORRROOOOROOOROROOOOORORRRRRORORROORRROOROOOORORRROORRORRRRORORRROROORRROOORROORORORORROROOOROOORRRORROOROORRRROOOOROROROROOORRORROROROOOOOOOOORRRRORROORROROOOORRROOORRRORRRORROOOROOOOORORRORROROROOORRORRRRROOOORRORROORORRORRRRROORORRORRORROORORRORRRORROROOOOOROROOROOOOORORROROOROOORROOORRROOORROOOROOOROOOORORRRORRROOOORRRORRROORRRORORROOOOOOROORRROOROOOOOOORROOORRRROOORRRROOOOORRRROOORORRORORRRRROOOROORRROOOROORROORRROORRORRRRROORORRORROORROROROOROROOOROOROORROORRRRRORRROROOOROOORRRRROOOOORRRRRRORRORRRROORORORRORROROOOROORORORROOOOOORROORRRRRROORRROOOOOOOROOOORRRRROORORRRRROOOORRROORRRRRRRORRORORRORRORROOORROOOOROOOOOOORORRRORRRRRORRROOORORORRROOOOROOROORRRRRRROORORORRRROROORROOORROOROOROOROROOORRRRORROOOORRROROROOOROROOOOOROOROOOOOOOOROOORRRROOORROOORORRROROORRROOOORORRORRROORORROROOROOORRORRRRRORORORRORROOOOORRRRROOOOOROOROORRRRORRRORORROOROOROROOORORRRRORRRRORROOOOOORROOORROOORROOROOOOOOORROOORROOROOOOORRROORRRROORRROOROOOOORRORORRROROOORRRRROORROROOORRRRRROOROORROOOROORORRRRRORORRRORROOOROROORROOOROOROOROORRORROOROOORORRORROOORORROOOROORORROOROROORROROOROROORROOOOORROORRRORROOOOOROORORRRORRORRRORRORROROORRROOORRRRORROROROORORROOROROROOROOOOOOOORROORROOOORRROORRROROORORORORORROOOORORORROROOOOOROROOOORORRORRRRRRROROOOORRROROOOOOOOROROROORRORROOROOORORRRROOORRROORRRROOROOOORRROOOOROORORROOROROOROOROROROOROOROROOROROORRRRROROOOOOROORRROOOORORROOROOROORORRORRROROROORRROOOOOOROOOROOOORRRORROORRROORORRROORROOOOORRRORRORROORRRROOROOROROOROROROORRORRRRORRORROOOORORROOORRROROORORORROORORROORORRRRRORRORROOOROORRORRROOROOOORORRRRORRORRRORROORORROROORORORRRRRROORORORRRRROOROOOROROOOORRORROOOOOOOROROORRROOORRRROOROORRORRRRORORRRROOORORORRORROORRRRROORROORRRRRRROORROOROORRRORROORRRORORROROOOORRORRRROOROOORORORROOOROOORRROORORROORORRRROROOOOORRRRRRORROORORROROOOROORRROOOOOROOROORORORROORRORRRROORROOOORRORROOOOOOOOORRRRORRORRORRROOORRRRRROOORORRRRRRORROORORROORORROOROOORRROORRORRRRORROORROORRRROORRRORROROORORROROOROOOORRORROOOOOORORROOOORORRROORRROORRRRROORRROOROOOOROOROORROROORRRRORRRRRORRRROORROOROROORRRORRRRRORROROROOROROOOORORRRROORRORROROOROROOORRROORRRROOOOORROROOORORROOROOOOOORROROROROOOOOROOOROROOORORORRRRROOORORRROOOOOORROORROOORRROROORRRORRRRROORRRORRRRROOOROORROOOROROOROORORRORORRRRROOROROOOOORORRRRRROOORORROROOROROOOROROROOORRORROOOROOORROOORROORROORRORRRRRORROOROOOROORRRRROOROOOOOROOROOROROORRROOOROOROOORRROOOORORRRRRRROORROOOROROOORRORRORORRRRROROORRRRROOOORORORROROOOOOOOOOORRROROOOORROOORORORROOORRROORRRRRORORORORRROOOORROROROORRRORRORORRRRRRRRRRORORROORROOOOOORORRRORROOROOROOROORORROOOORORRORRORORRROOOROROORRROORORORRRRRRRROROOOORRRROOROOROROOOORORORRORORORRRRRRROOOORROOOORRRORRRROORROOROORROOOORROOOORRORORRORRROORORORROROROROORROORORRROOROORORORORROOORRROOROOORORROOOROORORRRRORRRROORRROROROOOOORROOOROOROORORRORRRRRROROOORRRRROOOROROOROOOOOROOOOOOROOOROOOOORROROORROOORROOORRRRORORORRROOOORROORORORORRROOOOOORORORRORORRRRRRRRORRRORRRORORORROROOORRROROOROOOROOROOOORORRRRRORROOROROOOOORRRRROOORRRRORROROORORROOROROROORRORORORROROOOOORRRORRROROOOORRRRORRRRRRORROOOROORRORORRROOROORRORRORRORROORROOORRRROROOOROOROOORORROOROOOOOOOOOOOORRROOOORORORRRROOOOORORRROOORRRRRORRROROORORROORRROOOOOOORRORORORROROOORORRROOROROROROOOOOORROORORRROOROOOORRORRRRRRROROROOORROORROROOOORROOOOOOROORROOORORROOORORRORORROOOROOOORROORRRROROOOROOOORORROOOOORRRORRROROOOROROORRROORRORRROOOROOOORROROROOROOOROOOOORRORORORRRRRORRRROORROOOROOOORROROOOORRRRRRORRRROORORRORORORROORRRRORRORRORRORRROOROOOOROROOOROOOOROORROOROORROOOORRROROOORRRROOOOROORRORRRRROOOOOOOROOOOOOOORRORRROORRORRRRROOOORROROOOORRROROOROROROOROOOORRROOOOORRRORRRORORROOROROOORROROORRROOOOOROOROOROOORORRRORRROOOROOORRROORRROOOOORRORRRROROOORROOOROORRRORRRROOORORRORRRROROORORROOORORORRORRROROORRRRRRRRROOORORORROROOOROORROOOOOOORRORROOOOROROROOORRROORORROOOROORRRROOORROOOORRROORRROROOORROORRRRROORROOORROORRROORROOORROOOOOOOROOROROROOORORRRORRRRORROOOROOROROOOORORORRRRROOOOOOOOORORRROROOORROROOORRORRRROROROOOORROROROOOOOROORROROORRORRORORRRRROROOORORROOOOORORORRORRRRORRORRORRROROOROROROOROORRRRRRRRROORORROOORRRRORRROORRRRRRRORRORORROORRRORROOROORRRROOROORRRRORRROOOOOOOROROORRORROOOOOOOOOROORORORRROORROOROOORROOORRRRROROORROOROOORROROOOOOOORORROORORRRORROORROOOOOORRROORROOORRRRRRORROOOOOOROROROORRORROOOROORROOOROROROROOORROORROOROROROOROOORROORROROOORORRRRRROROOORRRRROOROORROORRROOOOOROORROORROROORROORRORORRROOORORRRORORROROOOORRRORRRRORROOORRRRROOOROOORRROOROOOOOOOOROROOOOOORROORRRORRRRRROOROOORRORROOORROROROOROOOROOROROOORORRRROOORROORRORRROOOORROOROORORRRRROROORRORORRORRROOROOORRRRORROORROOROOOORORORROOOOOROOROORROOOORRRROOORRRRORRORRROROROOOOORRRORROROROORRRRRRORROOOOORRROOROOORORRROROOROORRRORRROOROORRRORORRRORRRROOROOOOOROORORRROOOORORROROORORROROROROOOORROROOORROOORROOOROORRROROOOORROOROROORORORRORRRRORROROOORRRROOOOOORROORRROORORRRRROROROORROOOORRRRRRRORRRRRORRORRRRORORROORORROOOROOOOOOOOROOOOOOOROOROROOORROOOORRROOOORORORRROORRRROOOOROOORRRRRRROOOORORROROOROOROROROOOROOOROORROOOORORROOOOORORORRROOROROOOOOORRROROORROOORRRRORROROOOOORRROOROOOORORRROOROORROROOOORRRRRROORRRORRRRRROORORROOROOOROORRORORRRRORRRRRROOOROOROROROOOOOOROOOOOORORRORORRROOOORORROORRROROROROORROOOORROROOOROORRRORROORRRRROORRROOOOOOORRORORROROORRORRORRROORORRORORORRRROROORRRROOOOROROOOOROOOOOOOOOOOORRRRORORRROROOORROORRROORRRORRRRRRROOOOOOOOOROOORRORORROORROROOOOORROROROOOORORROORRRROOORROOORRROOOORRROOOORRORORRORRRORROOOOORRROOOOOROOROOOORORRRRRORORORRRRRORRROORRRRROROROOROOROOOORROORRRRRRRORRROROOROROOROROROROORRRRRRRRROROOOOOROROORORRRROROOROOROORORRROOORRRROOOOROORORROOORRORRRORROOOOOROOORRRROOROORROOROOROOROOORRRRROOOOROOORORRRROOORROROOOROROOROOOORORROOOOOORROORORRORROORRRRROOOROORRROOOOOORRROORRORRRRRRRRRROROOROOORORRRRRRROORRORRROOROOROOOROROROROOOOOOOORRORRRROORORORORRROORRROOOORRROOROOOOORROORROOOOOROOROOORRORROOORRROOROOROOORROORRRROOOOOOORROOROOOOORROOOOORRRRRROORRROOOOORROROROORORORORROROOORRORRRRRRORRORROOORROOOORORRRRORRROOOOOOROOOROOORORRROORROOOOROROROROROROROORROROORRRORROOORROROOOOOOROORRRROOORRORROOORRRRROOOORRRRROOOOOOROROOROROROOOOOOOROROORORORORORORORROORRROOORRROOOOROOOORORORRROOROROORORORRROROROOOORROORROORRRROORROOROROOOOROROOOOOORROOORRORORRRRRRORORORRROOORROOROOOROOOOORRORROOROOOOOORROORRRROOOORORRRRRORRROROROOOROOOROOOORROOORRORROOOOOROOORRRRORRROOOORORORROORRROOORORORROOOOOOORRROROORROOOOORRROORRRRRROOORRROORROOROOOOOOROOORROROOOOORROORRRROOOOOORRROROOOOORRRROOOOORROORORROOOROOROOOROROORROOOROOOORRRRRROOOORROOORORROROOORRROOOOROOROOORRRRROROOORORRROOOROROROOORORORROROOOOORROROORRRORRRRROORROROOOORRROOORORRRORORRORROROOROROOORRORROORORROORORROOROORORORRROOROORRROROORRRRORRORRROOOORRORORROOROOOORRORORROROOOORROORORRRORORRRROOROOOROORORORORRRORORRROROORROOOROROOOROOROOOORRRROROOOOOORORORRROORROOOOROOOOORORRRRRROORROORRROORROOORRROOOROOOROOROROORRORRORROROROORROROOORROROOOOROOORROORORRRROROOOOORROOROROORRROOROROOROOROORRROOORROORROOOOOOORORORROOOOORROOOOROOORORRROORORRROOOORRRROORORORROORORROROORROOORRROORROROOOOROOOROORORROOOOORRORROOOOROROROROROORROOOORRRRORROOORRROOOORORRRRRORRRROORRRRORORORRRROOORORRRROROOROORRRRRROOORRORRORORROROORROOOOROOOOOOOOROOOROOROORRROOOOOROROOOORRRRROROROOROOORROROROROOORROOOORRORORORORRRRORROROOOOOROOORRRORRORROORRRROROORRROROROROROOROOORROROOROORROORORRRROROOROROORRRRRRROORORROOOOROOROORRRROOROOROOOOORROOROOORRORROOORRORORRROORRROORRRRROORROOROOOROOROORROROOROOROOROORRORROROROROORRRRROROOORROROOORORROROOOOOORRORRROORRROORROORRRORRORORRROOROOROOOOOROOOROROOROOOORORRORROROROOORRRROOOOOOORRROORORRRROROOOORRRORRORROOORROROOOORRORRRRORRRRRROOROORRROROOORRRORRROROOOOOOOROOORRRRRRRROOOOORRORORORRROORROOOROORROORRROORROROROROOROROOOOORORRRROOROOOOOORROROOOOOOORRROOOOROORRROROROOROOORRROOOROOOOORRRROOORORRRROORRROROORRRROROOOROOROROOOOOORRORROROROOORORROOOOORORROOORRRRROOROOOORRRRROROROROOOOORRROROORRROOOROROORORORORRRRORORRROOOROOORORORRROOORROOROORRORRRROOORRROOOORORROOOOORROOOROORROROROOROROORORROOORRRRROOROOOOORORRRRRRRROROOROOOOOORROORRROROOORORRORROOOOROROOOOROOOOORORROOOOROOOOOORRRORRROOOOOROROOOOORRRORRRRORORROOROOOROOOOROOOORROOROOROORORRROORRRROOOROORRRORRROROOOOROROORRROORORRRROOROOOOOROOORRRROOORORRROOOOOOORRROOORROOROORORRRORROORRRROOOOORORORRRRRROORROROOOORROOROROOORORRRORRORRRROROOORRRORRRRORORROORORORRRRORRRORORRROOROOORRRORRRRORROORRRORRRROROOORRRROORORRORROORRRORRRORROORROROOROROOOOOORORORROOOOOROOOROROOORRRROOROROOOOROOORRRORORRORROOOOOORORRRROOOROOORORROROORROROOOORROOROORRRRROOOOROOORROROROROROROROOOOROOROOOORORRORRROORRRRROROROOOROOROROROOORORRRROOOOOOROOOORRROOOORRRROOROORROOORROROOORRRRORORRRORROOROOORORORROORRROROORRRRRRROROOOORRRRORORRROORRRROROOROOROORRROORROOOOROROOOOOORROOOORROOOOROOOROOORRORRROORRORRROOROOOROORRRRROOOOOOOROROORROROROOOORRRORRORORORROOOOORRRRORORRROROOROORRROOOROOOORRRRORORRRROROORROOOOORRROORRROROOORORRRRRORORROOROROOORRRRRROROROOOOOOOORRRRRRORORRRORRORROOROORRRORROOROROORRRORROORORROROOOROOROORROOOORRORRRORORRROROOORROROROOROROROORRROROOOORORRRORROOROOORRRROROOOOOROROROOORROOROOORROORORRRROOORROOROORRRRROORRRRRRORRRRRRRORROROROROOOOOORRROOROOOOROORORROROROROROROOOROORRRRRROORRORROROORORRRRORORORRORROORORROOORORRRORRORRRROORROROROOOOROORRRRORRROOROOROOORRRRROROROOORROOOOROORORRRROOOROORORROORRROOORRROROOOROOROROOOORORRORRRRROOOROOOROROORRROOORRROOOOOOOOORROORRORRRROORROROOROOORROOORRORORROROOOORRRRRRROOORRROOORRROORROROROOOROOOORORORORROOOOOROROORORROOORRROOOOROORRORRRROORRROORROROOOOOOORORRRORORRORRRRRRRRORROORRROORROOOOOROROOOOROOROOROROROOROROOORRRORRRROOROOORRORRRRORORRROORRORRRRRROROOOOROOOOOOOOOROOORROROOROROOOOORRRROOROROROOOORROOORRRRRROOORRORRRROROROOORRRORRRORRRRRRRRRRROOOOORORROORORRRRRRRROROOROORORRROOOOOORROROORROOROOOORORORRORROOROOOROOOORRORRROORROROORROORRRRROOORRROORRROROROORROROORORROORORORRORRRRROORROOORRRRORRRRROOORRRRRRRRRORORRORRRRROROORROROOORORRORORRRRRROORORROORRRRROORRRRORROROOOOOORRRROROROOOOROOOOOOOORRRROOOORROOOOROROORRRROOOOORRRRRROROROOORRROOORRRRROROROROOOOROOOORORRRRRRRORRORROOROROOORRORRROOOOROORORRORRRRRRRRORORORORROORRRORORORROORRRORROOOORORRROOORORRRROROOOOOOOOROOORRROOOORRROROOROROROROROROROOOROOORORRORRRRRRROROOOORROOOORRORRROROORROOOOOOORORRRRRROORRORORRROOOOORRRORORORORRORRRORROOROOOOORRRORRROROORORRORRRRORRROROOORROOROOROOORROROOOOOOOROOROORRORRROROORRROORROOORRRRORORORROROOROOROROORRRROORRRRORROORRRROROOOORORRRORORRRORROOOOOOOOOOROOORRRRRRRRRRORROOORORORORORRRRORRORROROOOOOROORRRRORORORORRRRORRRROOORRROORRRRRORRORROROOROOOOROROROOROROORORRRRRRRRORRRROOOOORORRROROOOROORROOROOORRORRRRROORRROROOOOORRRRROOOOOROOOROOROOOROOOROROROOROROOORRRROOOOOROROOROROOORROORROROROORROOORORRROROOOROROORORROORROROORROORRRRRORRROROOORRROROROOROROORRRRRROOOOOROOORRRROOORORROOROROORORORORRRROOROORRROOOROORROORRRRRRORORRORORRORRORORORORROROOROORROOOOOOOOORRORORROORRRRORORRROORRRROOOORRORROOROROOROOOOROROOOOOOOORRROOOOOROORORORROOOOOORRRROOORRRROOORRROOROOOOORRORORROORORRORRROOOROOOROROOOOORROORROORRRRORROROORRRORRRROOOROOROORRORROOOOOOOOROORORRORORORRRROORORROOOROOORROROROORRORRRRRRRORRRRRORRROOOOOOORORROROOOROOROOROOOROOROROROROORRORRRROORORRROORORRROROOOOROOOOOOROORORRRRRRROROORORRROOORRRORRRROORRORRRRORROOORRRRROROORRORROROORRRRRROOROOOROOROOROOORORROROROORORORORRRORRROOROOORROOORROORRROORROORRORRRROORRRRRROOOOORRRROOROOOOOOROORROOROORRRROOOORRORORRRORORORRORRRRROOOOOOOORROROOOORRRROROORRRRRROROROOORRORORORORRORROORRORRROROOROROROOOOROOROOORROOOORRRRROOORORRRROOROOOROROROORRROROOOORROROOOORRRROOOORROOOROOORRRROORORORRRORRORRROORORORORRRORROOOORRRRRRORORRORORROORORROROORRRORRORROOOOROOOOOORRRRORRORRRRRORROOORORORRORORORROORROOORORROORRRROROOROOOORORRROORROOOOROORRRROROOORORORRORRORRORRRROORORRORRRROROOORRRRORRORRRRRRRROOOOORRROROORORRORRORRRROROOROOORRRRORRROOOOROORROOROOORORROOORRRRROORORORORORROOORRROOOOORRRRRRRROORRORRRRRRROOOORORORORRRRRRORORROOOOOROOROORRRROOOOROOROOORRROROROOOORORRRRRRRROOORRORORORROOROORRROROOROOOROOORRORORRRORROOORRORRRRRROOOROOOOOORRORRORROOOROOOOOROORROORRROORORRRRRORRROOORRROOROORORRRRRORRRRRRRROORRROOOOORORORRORRORORROORROOROROORRROROROOOORROROOORROOROROOOORRROROOROROOOOORROOOOORRROROOROOROROROORORORRRRRORORORROOOORORROORROROOORRRRORRRROOROOOORROOROOOROOROROOOOORRORRRORROROORROORRRROORRROOOOROOOOORORRRROOROROORROROOROORRRROORORRRRRRROOORRRRRRORROOORORROOOOROORRORRRROORRORRRORORROORORORRRRORROOROORROROORRROOROOOORRRORROOOORROROORRORORRROORRRROORORRROOORROORRORRRRORROORRORRRORRORRROORORRORORROROROOOOOOOOOOOOROOORRORROORRORRRRROOORRROORRROOOOROOOOROOROROOROOOROOROOOOOOORRRROOROOORRRRORORORRRRRROOORRRORROORORORROOORORRRRRORROOORROOOOOROOROORRROOOROOOORRRROOROOORROROROOOROOOORROOOROORORORROROORROORORRORORORRROROROOOOORORROOROORRRRROROROORROROORROOOOOOOROOOROORROOROORRRROROORORROOORROOOROOROOOOORROOROROROOROOORROROORRRORRROOOROOORROOOORORRROROORRORORRORORROOOROORRROOOOOOROOROOOORROOROORROOOROOOORROOORRRORROOOOOOORRRRRORORORORROORRRRRORRRORROOOOOOOOOOOORORORORRORRORRRRORRROOOROOORRROORORRRRROORRORROORRROOOORROROOORORRORROOOORRORROORORORRROORRRRRRRROORORRRRRRORORRRRRRRROORORROROOORRRRROORORORRORROROORRRORRORORRORRRROOORORROOROOORROORROOORRRRRRRRORORRRROOOORRROOOROROROOOOOORROORRORROOOROOOORROROORRROORORROOOOOROOOORORORORRRRRORRRROROORRROOOORRROROOOROORORRORROROOOROORRROOOOORORRORORORROOORROOOORRRRRORORORROORROORRRORORRROOORORORRRRRRORRROOROROORRORROROOORROORRORRORRORRROOORRORROROOOROOORRORORRRRORROROROOROORRORROROROOOORROROOOOOROORORORROROORRROOOORROROOORORROROROOOOOROORRORORORRROOOORRROROOOORRROROROORRORORRORRRROORORRROOROORROORRROOOORROORORRROROORRROROORORROORRRRORROORROOORORORROORRROOOOOROOROORORORROOOORRORRRROORRROOOOROORROOROORRRROORROROOORRORORROOOROORROOROOROROOOORRRORRORROROROOORORORROORRRRROOROOOORRORRRORORRRRRORRRRRORROOOOROROOOROORRORRORROOOOROROORRRROROOORROOOROORORRRROOOORORORROROOOOROOOROOORORRORROORROOOROOOOORRRROORORORROOOROOOOORROOORRRROOROOROOOOORRROORRRRORRROOOOOOOORRRRROOOOROORRROORORROROROOOORROROORROROOORRRROOOROOOROOORRRROROROORRORRORROOORROOOROROOROOORORROOOOOOOROOORRORORRORRROORRRRRROOORRRORRROOORROOOOOOROROORORROOORORORROROOOOOOORRROROOOORRORORRROROORROOOOOORRORROOORRRROOOROORROOOORORORORRORROOOOOROROOOORRROOORROOROOROOOORORORROORRROROORRRORRORRROROOROOOOROORRORORRRORRORROORRORRROROROORRRRORORRORRRRORROOOOROORRRRROORROOOOROROOROOOOORRROROOOOOOORRRROOOOOROROORRRORORRRRROOORROOROORROOOOROOOOOOOOROROORROOOORRROORORORRORORORORRROROORORORORROOROORROROOOOOROOROORRRROROROOROORRROOOOROORROOOORRORROORRORRROOROOORROOOROOORORROORRRORRORROOOOOROOORRRROROOOOORRORROORROOOORRROOORORROORROOORRORROOOROOORRORRRROROOOOOOOROORORROROORRRORRROROOOORORORRORORRRROORRRROROORRRROORRROOOOORORROROROOORRRROOOOROROOOORROOOORORROORRRORROOROROOORROOROOOORROORORORRROORORRRRROOROROORRROROROOROOROOORORRRRRRORRORORROOOORRRORORRROOOOROORRORROORROOORRRRRRRRORRORRRORRRRRORRRORROOOORORRORORROOROROORORRRRRRRRRORORRRRROROOOOOOROORORROOROOROROOORORRROOOORRROOOROROOOROROROOOOOORORRROROORORORORRROOROOOOOORRRRROROOOOORORROOOOOOOOORROOOROOROROOORRRORORORORRRROOOORRROROOROOORRROROOOORRROROOORRRRORROOORRROORORROOORROOOORRRRRROOROORRORRRORROROOOOOORRRRROORORRROORORRORROROOORROOOOORROOORRORRROROOOROOORRROORRRRRRRROOOOORORRRROOOOORROORRRRORRORROROROOROOROOOOORRORORRORRROOOOOROORORRROROROROOROOOOOORROOOORROROROORORORORORROOOOOOROOORRRRRRRRROORRROOORROROOORRRROOROORORRRRROOORORORRORRROROORORROOORRORROORORRRROOOROORROOOROORRRORROOORROORORRROORRORRRRORORRORRRROOOOOROOOOOOROORRRRRROOOOOROOROROORROOOORORRRRRRRRRROOOROOORRROOOORORORRRRRRRRRRROROROOOORRORORRRRORRORRORORRORRROOORRRORRRROOROOOOORORROORORROOORRRRROROROROORROOROOROROORORORORROROOORORRRORRRRRROROOOOOOOOORORROOORORRORRRRRROROORROORRROORROROROROOROOROROOOORRORORROROOOOROOOOORROORRRROOOROORRORRROROROROROROOOOOOOOORORRRORRROOORORRRROOORROOORRROORROOOROOORRRRORRRORORROOOOOOOORROOORORRRORRORORRRRORRRROOORORRORORRRRROOOOOOROOROROORORRRROORROOROORRRRORORRROOOORROOROORRRRROOROROOOORORRORORORROOOOOOOOOORORRRROOORORRORRRRORORORORORROORRORRRROORRROOROOROOOORROOOOOROORRORROORRORORRRORORROORRROOORRRROOOOOROORORRORRRRRROOROOORROORRRROOOOORORRRRRRRRRRORRROOORORRORRROOOROOOOOOROOROOROOROROOOOORORROOROOORRROROROROORROOOORRROOROOOOORRRORRROOORRROROROROORRRORROOOROOOROOORORROROOORROOOROOOOORRRORORROOOOROROROROOROOOORORRRORORRRROOORORROORRRORRROROOOROOORROROOORRRORRRRROROORRRROOOOOOROOOORROOOOROOOOORORORRORRRROOORRRORORORORRROORROORROOORORRROORRORRRROROOOORRORRORRRORRRRROOOOOOOOOORRROOROOOOORRROORORRROOORORRRROORRRORRROORROROORRORRRORRRRRORRRRRRORRRORROORRRROOROOOORRRRORROORORRRRRRROORRRROORRORRORROORRROROROOROOOROORORORRRORRRRRRORRORRORORRRROOOOOROOROORRORRORROROOOROROROOORRRORORROOROROOOOOOROROORORRROORORROORRRRROROOROROOOOROOOOOROORRORRROROORROROOORRRORRROOROOORROOROOOORRRORRROORRORRORORRRRORROORRORRORRRRROROORROROROORRORROORROORORROOOOROROOROOOOROORROORRORRRRORROOOROROOOORROOORRORRRRRORRORRROOOROOORRRRROOOROOOOORRRORROORORORROOOOOROOORROORROOROORORORRRRRROORRRORROORORROOOOORROORRRORROOORORRRRROROOROROROORRROROOOORRROROOORROORRRROOROROOROOORRRRRORRORORROROORRRROROOOORRROOROOOROORORRORROOOOOOROROROOOORRRROORRRRRROORORRROOOOOROOORROOROOORORRRRROOORROOORROORRORROOORRRORRORROROOOOORRROOOROOOOROROORRRRRRRROOORRROOORRROROOROOOORRRRRRRRORRRORRRROOROOORRRROOOOROOROOORRORROROORRRRRORRORRORORRROROROOOOOORRROROOOOROOOOORORROROROROOORRRRROOORRRORORRRORROOOORORROOOORRRROOOORORRRRROOOORRRORROOOORRORROORORRRRROROROROORORRORORORORROORORROOORROOROOOROROOROORROOROOOORRRROOROROOORRRORORRROORRRRROOOROORRRROOORRORRROOROORROROORRORRRORORRROOOORORRROOROORROORRRORROOOROOORORROORRROORRRROOROORROROOORROOOROOOROORRRRORORROOOOOOORRORRROORRROOOOOROROROORRROOORROROROOOROROOORRRROROOOROOROROOOORROORROORRROORRORROOROOORRROOOROOORORRORRORORRORRRORORRORROROOORORROROORRORROORRORRRRRROROOORRRORRRROROOOORORROOROOORORRROROORRRROROOORRRROROROORORRRRROORRORROROOOROROORRROOOOOROOORORORRRRROORORRRROOOROROOOROOORORRRRROOORROOROOOOORORRRORROOOORORRRROOOROROORORORRRRORRORORORRRRRRORORRROORORRRRORORROORROOROOOORROOROROORRORRROROORRRRROORROOROOORRORORRROORORORRORRRRROORRRRORRRROROOOORRRRRORRROOROORRORORRORROORRRORRORRROORORORORRRRRORRRRROOOOOROORORRRORRORRRRRRRROROORORORRROOROOROOOOOROORROORRROORORROORORROOOORRRORROOOOOROORRRRRROOOOROORRRORORROROROROOORRRRRROOOROORROROOOROOOOROOROROOROROOORROOROROROROOORRORORRRROROORRRORORRORRRROOORROROOOOORRRROOROROOOOOROORORORRRORORROORORRROROOORRRRRROOORRRRROORROOOOROOROOORROOROORORROOROOOROOORORRRORORORROOORROOOORROROORORROORRRRRORROOORROOOOROORROOORRRRRORRORROORRROORORORRROROOORORRORRORORRROOOORROORROROORRROROOOROOOOROROROROORRORORRRORROORROORRRRROORRRORORRRORORROOROOOOOROROOROROORORRORRORRRRROORRRRORRRRORRRROOOOOORRRORROROROORROORRRRORRRROOOROOROOOOORORRRRRRORRORRORRORRRRROOORRROOORROORROORRORRRROOROOROOOROOOOOROOOROORROROOROOORRRRRRORRROOOROOOOORROORORORROORORROROORROROOORORROOOROOOROOORORRRRROOOOROORROOOORROOORROOOOORORRORROOOORROORRROORRRORRROOOOOOORROROOOOORRRRORORRRRORRRROOORRRROORRRRORRRRROOOOOOOOROORRROROOORROROOROOROOORORRROORRRRRROROROOOORRRRORRROOOROOORRORRRRRORRRROOOOOOOROOROROOORRORRORROOOROORRROROROOROROOORORORROROOORROOROORROROOOOROROORROOOORORORRRROROORRRROORROORORROORROROORRRRRORORROOORRORRRROOORROOOOROOROORRORORORORRRRRROOORRROOORORRROORROROORORRORRRROOROORRROORRORORROOORROOROOROOOORORROORRRRRORROOOORROOORRRROOORRRORORRRROROORRRRORROOOOOROOOOOOOROORROROOORRROROORROOOROOOOROROORRRROROOROORROOROROROORROORROROOROORRRORRRRROORROOROORORORRORORRORROROOROOORRORROOORORRORRRRORORROOOORORORORROROROOROOOROORROOORORORORRROOROORROOOOORROOOOOOORORORRRRRROROROORROORRORORRRROORROOROORRRRROROROOOROORRRRROROROORROOROOROOORROOROOOROOORORRRROORRRRRROROOOOORROOROROROORORROORRORROROORRRORORORRRROOOOOROORRORRRROROORRORRRROORROOOORROOOOROOROOOOORRORRORRRORROOORROOOOOORROOROROORRORORROORRRRORROROROOROROOOORORRRROROOROOROROOOOOORROORRORROORRORORORROORRROROROORORROOOOORRORRORRORRRRRRRRROROROROORRROORRROROORRORROROOROOOOOROROOROOOOOOROOOOOOORROORRROOOROOORROOOORRROOORROOOORORRORORROOOROORROOROOOOOROROOOOROOOOROORRRRORROOOOROOOROORRRORRROOORRORROROOORRROOORROOOORORRORORROROORRROROOROOOOORROOROOROROROORORORROORROORRROORORROOORROOORRORRRRRROORRRRRROROORORRRRROOORORROORROOOORORROORRROOOOOOOOOOOROORROROROORROOOROROROROOOORRROOOROROOOORRRROOORROOOOORRROROOOROOOORRROROORRROROOORRRRRORRROORRROOROROOOOOOORRROOROROOOOOORROORRRRORRROOOOROOOORORRRROOORRROOROOORRORORORROOORRORRORRORRORRRROOORORRORROOOOROOOOOORORRRORRORORRORRROORRROORRRROROOOOOOROOOROORRORRROROOORROOROOORRRRRROOOORROORROROROOOROOOORRRRRRRRRRROOROOOOOORROOOROROROOROROOROORORRRROOORROROORRRROOROOOOROORRROOROOOOROOROOOOOORRRRORORRRRRORRRROOORORROOORORRORRORRRROORORRORROOOOROORORRRRROOOROORORORROROOORRRROROOOROORRROORRRRRORROORROOOORORRROOROROORRRRORROORORROOOORROOOOORRRORORRORRROROROROORRRORRROOORROROOOROOROOOOORROOOOOORORRROOROROOOROROOOOOOROOOROOORORRRRROROROROROROOORRRRORROOORORRRRRRRRORRROROOORORROROORRRORRRRRRRRROOROOROOORORRRROOOORRORROOROORRROROORRRROOROORRORROROORRRRORRORORRRRRRROROOOOOROOOOROOROOROOOROORORRRRRROOOORRRRORRROOROOORROOROORRORROROROOROORORROORRRRRRORROOROROOOOROROROOROORRRORRORRRROOOOROROROOROORORRRORROORORROOORRRRORRRRRRROORRORRRORORRROOORRRRRRORRRORRORORRRROROOORROOOROOROOROROOOOORORRRROORRRORRROORRRORROORRROROOOOROOOROOORROROORROOROOOOOORORROORRROOORROROORRORROROROOOROOROROOROROROOOOOROOOOOROORRRRROOROOOROROORRROOOOOOORRORORROROOOORROROOORROOOORORORRROROOOOORRRORRRRRRRRROOORRRROROOROOORRORRORRRRRRRRRRRRRRRROOOROOORRRRORRORROOROOOOROOROORROORRRRRORRRRROORRRROOOOORRORRRROOOOROOOOOOOOOROOROOROROOROORORORORRROOOROROROROORROORORORROOROOOOROOORORROROOROORRROOOROOORORRRRROOOORROOROORRRORORRRROOORRRRRRROOOROOOORRRRRROOOOOOORRORRORRORORROOOOROORRROOORORRRRROOOROOOROORROOOOOOROOORROORORRROOOROROOOOORRROOOROROROORROORRORORRROOORRRRRORRRROORRRORROOOOOOROOORRROOOOOROORROOROOOORRROOORROOOOOORRRRRROOOORROORORROOOOROOORROOOORRORROOORRRRORORRROOOORRORRROROOROORRORRORRRRORRROOOOORRORRRRORRROORROOOOOROOROORRROOROROORORRROROORRRRORRRORORRORORORRROROROOOORROROOOOOORRRRRORROOROORROROROROOOOROOORROROOORROROOOOOORORRRRORRORORROROROOORORRROOOOOOROROROORROOROROORRROROOROORORORRRRORRRRRROOORRRRRRROOOOORORRRROOOROOOROOORROROROORROOORRORRORORORRRORRRORROOOOROORRRORRRRORRRRRRRRORRORORORORRRORROORRRROROOROROOOOROOOORORROOOOOORRORRRROOORORROORROOOORORORORRRRROOROORORRRRRORROOORRORRRRRRRRORRROOOORROORRRRRRORRRORRRORROOOROOOROROOOROORRRROROOOORORRRROORROOORORORRRRRRRORRROOOOORRORORRROOOORORROOROORRORRORRRORRRRRRRRROOOORROOORRRROROOOOOORORRORRORRROROOROROOROOOORORORRORROORRORROORORRRROORORRROOOROOROOOOOORORORRRRORRRORORRROOOOOROROOORROOROOOOORROROORORRROORROOORRRROROOORRRORRROROOOOORORROOOROROOOORRRROROOOORORORRRRORRRORORRROOOOOOORORRRORORRRRRROOOOROROORRRORORORRRRRORRORROORRRORRRROOORORROOOOOOOOOOORRORORROOROROOOROORORORORRRROOOOOOORORORRORORROOORROORRRRRROOOOORROORORORRRRRROOROROORORROOROROOOROOOOROOOOROROOORRORROOORORORRRROORRROOOOOROOOOOOROOOROOOOROORRRRRRROROROORRROOOOOOROROOORRORRORRRRRRORORRRROORRRORRORORROORROOROOROOOROORRORRORORRRRORRORROOOOROROROOORROOROORROOROROOOOORRORRRROROROOROORRROOORORRRORORROOROORROOOOOORRRRROOOOOOOOROORRRRRROOROROROOROORORRROOORRORORRRRRROORRRRROORORORROOORRORRORRORRRROORRORROOORORROOORORROROOROOROOORRORRROROOOOOOROOOOOROOROROOOOROOROORROOOORORRROOOOORROORORORRRORRRRRROROOOOOORRRORROOOORORROOORORRORROOORROOROOROOOOROOOOROROOOOOOOORROORRROOROOORRROOOOOROOOORORRRRROOOORROROROOROOOOROOORORRRRRROORRRORRRRORRRROORROOROOOOOORROOOOOOOROORRRRRRRRRROORRRORRRRRROOORRRROROOROOROOORORROOROOROORRRRORROORRRRROOOORORRROORORRROOOOOROOORRRRRRROOOOOOROROOOROROROOOOROROOROOROORRROORRRROORROOORRROOORRRROROOOOOORORRORORRORORRRORORROORROOORROORROROOOOOOOOORORRRORORROOROORRRORROOOORORRRORORROORRORORRROORORROOOORRRRRRRRORRRORRRRORORORRRRORORORRORRORRRRRRORROOOORORRROROOOORORORRRROROORRRRROOOOOROOOORRRORROORROROOORORROROROROOORRRRRORROOOOOROROOOROOOOORROORORRORORROOROROORROOOORROOOOOORORRROOOROROOOROOROROROORRRROOOROORORORRORRRRROORROORRROORORORRROOOORORORRRRROORRRORROOOORRRRROOORORROOROOROOOOOOROOOOOROORROOOORRORORRRRROOORRRROOORRORORROOOROROOOOOROOORRRRRRRRRRRORROROORORRRROOOOOOOOOORRORRORROORROOOORRORRORORORORRRRRRRROORRROOORROORROROORRRROORRORRRROOORORORROOORRORORROOOOROOOROORRROROOORROOOOOROOORRROORRROROOORORRORRORORORRROOOOOOROOOOROOOROOOOROOOORORRORRROORRROOORRROOORRRRROOORRORRRORORROORRRORRORRRRRRROORRORORRROOOOORRORORROORORORROOROOOOOORORORRRRROROORORORRRROOOOOORRRRROROOROOOROROOORRRRRRORRROOOOOORROOOROROOOOOROOOOOOOOOOORRRROOROOORORRRROOORRROOORORRRRRORRRRRRORRRRORRROORROOOORROROORRRORROROOOORRORRRRORORRRRRRROOOOORROORROOOOOROROOOOOOOORROROOOOROOROORRORORRRROROOOORRORROROOOORROOORORRROROOROOORRORORRRROOOORORORROOROROROOORROROROORROROROOOOORRROROOORRROOROOROOOOOOORORROROORORRRORRORRROOROROROROOROORROOOORORORROORORORRRROOROROOORROROROROOOOORORROOROROROOOORRORRRRRORRROOROOOOORRROROOORRORRRROROOOOORRRROOOROOOOROROORORRORRRROORRRRORRRROOORRRRORORRRRRORRROROORROORORRROOROORROOOOOOORRRRORRRRRORRRRORORRRRRROOOORORRORORROROOOOOOOROROOROORRRRORORRRRORORRROOOORROORRRROORROROOOOOOROOOOOOORRRRROORRORORROOOORRRRRROOOROROORORROOROORROOROROOROORRRROOORRRRRROORORORRROROOOOOORROORRRORROORRROROOOORORROORROOROROORORORORRORROOOROOROROOROROOOOORORRRROROORORRROORORRROROOORRRORORRRRRROOOROOORROOROORORORORRRROROOOORRROOORRRROORROROORORROORROORRRRORORRORROOOOORRRRRORRRORRORRORRROORORROOOROROOROOOOOOOORRORORORORRROOORROOORROOOOORRRRRROOOORORRRROOOROOORORROOORRORRRROOOOOOOOOROROOORRRRRROROORRORROOORRRORRRRORORRRRRROROOOROOOORRRORORRORROOOROOROORROOOROROROORROOOOOROOORROOORRRROORROOOORRRRROOORROORRORRRRRORRRRRRORORRRORRRRRORORRRRORROROOROOOROOOOOOROROORRRORROROOORORRRROORRROROORROOROORRRRRRROORORRORRRRRROROROOORORROORRORRRRRORORRORROROROROOOORROROORRRRRRRRRORRRORROOROOORORRORRRORRORROOROROOOROOOOORRRRORORRORRRROROOOORRRRORORRROROOOROROROOROROROROROOOORORROOORRRORROORRORROORRROROOOROORRROORORORRRORORROOOOOORRROOROROOORRORRORROORRRROORROOOORRRROOORRROORORRRRORROOROORRROORROOORRRRRORRRRRRRROOOROROOROOOROOOROORRRORRRROROOORROOORROROORRROOOROOROOOORROOOOOORRRORROROORORORROROROROORRROOORROOORORRROROOROOOOROORRRRROORRRRROORRORRRROORRROROROOROROROOOOOORROROOROOORRRROROROORROOORRRROOROROROOOROORORROORRRRRORORRORRRROROROOORROROORRRRROORRORROOROROORRORORROORRROROORRROROOOORORRROOOROROORRORORORRORRRRROOOROOROOOROROROOOOORORRORRRRRRRRORORRROROORRORORORRRORRORROOROOOORORRORORROORRROORRROROORRRRROOOOROROOOOROOROORRORRRRORRRRRRROOOOOOORORRROOORORRORRORROROORORORORRROOOOORRROOROROOOORROOOORORROOROROROROROROOORRROORRROOOOORRROROORRRROROORORROROOOOOROORRORRRROOROOORRROROOROROROOOORROROORORORROROORRORORRRRORORRORRRRRRRORRRRORRRRRORORRRRORRRROROOOOOOROORRRRRORRRRORROORRORRRROOOROOORRORORRRRRROROOOROOOORORORORORORORRRROROORROOOOOORRRRORRRRROROOOOROROOORROROROOOOORRORRORRROORRRRRROOOOOROOORRRRORRROROORRROROORORORORRRROOROORRRROORRRRROORROROOOORRORRROROOOROOORRORRRORROOORRRRRROORRROOORORORRORORRRRRROORORRORRRORORORROOOOOOOROOOOROROOOORRRROORROORORORROOOOROROOOORORROOROROORRRROOROOOORROOOORRROOOORROORRRRRORORRROOOOROOOROORROOOOOROOROORRRORRROROORRROROROROROORRROROOORORRORROROORORORORRRRRORRORROOOORROOROORRROOORRRRRRRRROROOORRRORROOORROOORRRRRRROROORRRROOROOROROROOORRROOROORRRROROOROROOORORRRRORORROOOOROOROROOORORRROOOOOOOROOOORORORRRRORRROOOOOOORORORRORORRRRORRORROORORRROOORRROOORORRRORROOROORRRRRRRRROORORROOOORRORORRRORRRRRORROROOOROOROROOOOORORRORRORRRRORORORRRROOOOORRRROOOOOOOORRRRROOORRORRROROROORROOOORRRRRRRRORORROROOROORRORRRROOORRORROORORRORRRRRRROOORRORROORRRRORROORROROOOROORRROORORRRORRORRRRRORRROROOOORROROROORORRRRRORRRRRORRORROORRORRROROOROOROOROOROORRRRRROOOOOROORORRRROOORROOORRRROROORRROOORROROOROOORRRRROORRRROROROORRROROROROOROOROOOORRORRROOOOROOROOOROROOOORROOORORORRORRRROROOORRROORRROORRRROOOORORORRRROROROORORRORROOOORORORROORRORROOORRRRRRRROOORRROROROORRRRORROOORROORRORRROOORORRRRRORRRRORROOROOOROOORRROOOOOORORRORROOROOORORROOORRORROROROORROROOORROORRRORRROOOROORRORRROOORORORORORRORORRROROOORRORROROROORRRRORRORORRORROROROORRORRRORORROOOROORRRRRRRROOOORRRORRORROORROOOOOROOROORROOOROORORROOROORROOORRRRROROROOORROORRRRRRROOOOORRORRORRORROOOORRRORRRRORRROOOOOOROOOORRRRROOOOOOOOROROORORRROOOOORORRORRORRROORROROOOROROORROORROORRRORRORRRRROORRROOOOROORRRRRRORRRORRROROOORRORROOORORRRRRRRRRORRRORORRROOROORORRRROOROOORRORORROORRORRRRROOOROORORORROORORRRRROORRRRRRROOORORORROOROROOOOOOROOOOORRORRRRRROROOROORROOROOOROOORRRRRROOROOORORRROORRRRROOORRROROROORRRROOOOOROOOROOOOORRORRORORRRRRRRRORRRORRROROOOORROORROROOROORORORROROORORORORORROOOORORRROORROORORRROOORRROROOOROROOOOOORORRRORRRORORRORROROROROOOOOORROORRRRRRROROOROORRRRRORROOORRORROOROOROOROROROOROORRRRROROORRRROORRROOOOOOROOOORRRRORRRRORORROOORROOORRRORORROOROOOORRROROORROORORORROOORRRROORRRRRRRRRROOROROROOOROOOROOROOOOOROOROORORRORRRRROORRROOOROROOROOOROORRRRRRRRRRRRRRRROORRORORRROROROOROORORORRORRRROOROOOOOORORRRROOOROORORRORRRRROORROOORROOROROROROROOOROOROORORORRROORRORRRROOOORROOOORROOOORORROOROORRORROROOOOORRRORORORORRRROORRRRRROOOORRRROORRROOORORROROOOOORRRROOORORROOOROROROORORORORORRORROOOOORORRRORROORRRRRRRRORORRORRRROOORROROOROROOOORORROORROOORORROOOOROOORORRROOOOROOOORRROORROROORROOORORROROOROOORORROOORORRROORRROORRRRORORRRRROOROROOROOROROORORRORROOROROOROROOROOOORRROROROORORROROOOORROOOROOORRORROORROOOORROORROOROOOORRROORORROOORRROOOROROORRRRRRRORROROOOROOOROORROORRORRORRRRRROORROOOROROORRRROOOORRORRRRRRORRRRROOROOROROORORRORROOROOROROOROORRORRROORRRROORRORRRROROORRRRRRRROOROROORROOORRRRRROORRRRRORROOORROORORROOOROORROROOOOOOORRROOOOORROORORRRRORROOORRROROOROORRROORRRRRORRRORROOORRRRORRRROORRORORRRRROROOOOOOROORORRORROORROOROOROORRRORORORORROORORRRRORROORRORORRORRORROROOROORRORRORROOROOOORORORRORRRRROOOROORRRORROORRRORROROORRORRORRRORRORRORROOOROOOOOROROOORRORRORRRRORRRRROOOOOROROORROOOOORORRRRRROROOOORROROOORORROOOROORRORROROROROROORRORRRROORRRORORRROORROORROOROOOOROOOORRORRRRROORRRROOROROORRRORRROOORORRROORRRRRRROOROORRRRRORRRRRORORROOOOOOOOOROORRRRRRORRORROROOROROROOOORORRROORRORRRRRRRROOROOOORRROOORRRRROOROORRORROOOOROROROOROOROOROOOROORRRRORROOORORRROOROROOORRROOORRORROROOOROOROORRRRRROOROOROROOORROORROOORROOOORORROOOOOORROOORROROORRRORRRRORRRRRROOORRORRORROORROOOOROROOOOOROORROOOOOOOROROORORORORROOOOROOOROOORROORROORRRORRRRRRROORROOORORROORRRRRRRORRRROROOOORROORRRRROROROOROORORORROOORRRRRROORRROROOOORROROROROORRROOROOORRRRRROROOOROOROOROOOROOOORORORRROOROROOOROOROROOORRRORORRROROORRRROOORRRROROROOOOOORORORORRRORRRROORRORROROOORRRRRROROOOOOOOOOORORROORORRROOOROORORRORRROOOOORORROORORRORRRORORRROROORRRROOORRORORRRROOROORORROOOORRRRORRRORORRRROORRRRORRRROOORRRORRRRRROROOOROROOROROORORORORROOOROOROOOORRORRROROOOORROORRORRROROORORORROOROOROROROORROROROOOROROOOOOORRRRRORORRROORRROOORRRRORRRROOOORRRROROOROORROROROOROOOROOROOOROOROOORROROORRRORORROOOOOOORRRRORORORROOROOROOORROROORRROORORRRROROORROOOROOOOOOROOOOOOROOOOROOOORORRRORRROOORRROOOOOOORROORRRRRRORROOROOOROOROORRROOOORRRRORROROORRROOORORRROORROOORROORRRRRORRRRRRORORORROOOOORRORRRORRORORROROORRORRORRROOROORRROROOOORRORORORRRRRROROORROORROROOORRRRRROORRRRRROOOORRORRRRROROOROORRRROOROOOROROROOOOOOOROORRRROOOOOORORRRORROORRROOOROOORRORROOOROOOROORROROROORROOORORRORROOOOORRRROOOORORRRORORRRRORRRRROORRORROOOORROORRRRRORROOOOOORROORORRRROOOORRORROROROOORORORROOROORROROROORRROROOOORORRRRRROOROOOOORRRROOOOORRROOORRORRRROORORORORRORROROROORROROOROOOORRRROROOOOOOOOROOROROOOORROORRRRRRRORORRROOOOOORORRROROOROOROORRRRORORROOOORRRRRROROORROOORRORROORORRRROOORRORROORRRRRRORRRORRRORORRORROORORROOROORROROORORORRRRRROOROROOOOORRORORROROROOOROOROOOROOOOORORROOOOROOOROROROOORORRROORRROOOOOORRRORRRROROOORRRORRROORROOOORRRORRRRRRROOORRORROOROROORORORRORORROROROROROORORORRROROOOOOOOROORORORRROORROROOOROOOORRROOOORRRRRROROOORROORORRORORORRRORORRRRRRORRRORROORRRRROROORORROROORORROORRORROOOOORROOROORROROOROOOOOORROORORORRORRRRROOORROOOORROOOROOOROROOROROOROORRRRRROOORORORROROOOORRRORORORRORRORRRORRRRRROORRRRRORRROOOROOOOORORRRRORRORORORROROORRROORRROOOORORROORRRROROORRORRORRROORORORRORROOOOOOROOORORROROORRRORORRRRORROOORORRRORRRRRRRRORRRRRORRORROROOOORORRRRRRRORRORRORROORRORRRROOORORRORRROROORROOOOORORRRRRROORRROOROOOORORRRROOOORORRRRORRRRRRRROROOOROOROORORORRRRORRRORROOROOROROORRRRROROOOOOOORROROORRROOOOROROOROORROOORROROORRRORRORORRRRORROOORORROORORRORROROORRRRRRROOOORRROORORRORRRORRRRRRORROORORORORROORRRRRORROOORRORRRRROOROOOORORRRRRRRRROROROOROORORROORROROOOOOROORRORORROOORRORROOOROOOOROORROOROOORRORROORORROOORROOORRROROROORORRORROOOORRRROORORROORORRROOOORRORROOOROOROORRROORRRRRRRROORRRRORRROOORROORORROOROOROORROOROOROOROOOROOROOOOORROROOOROOOOOORORROOORRRRROOORORRRROROROOORRRORROORRRRRRRROORROOOOROORRRRORRRROOROOROOROOORRRROOOORRRRRROOROOOROROOOOORROOROOORROROOROORROOROROOOOORROOOROROORRRROOORROOORORRRRROORRROOOORRRRRROOORROOORORORRORRRRRRROOOORORROORROROROOOOROOOOOORORROOORORRROORORRRROORRROOOOOOOROOORRRRRRRORRRRRROOOOOORROOORRROOOOOOOORORRORRORORRROOORRROROOOROORRRORRRROROOOROOOORROORROORORORRORORRORRROOORRROOROROOOOOORORROORROORROROROORORROOROOORRRRORRRRRROORORROROROROORROOOOOOOORRORROOOOOOORRRORORORRROOORROROORRRROOORRRRRRRROORRORRROROOOORRORROOORRRORRORRRORORROROOORRRROORORROORORROORRROROOORORROOROOOOROORRRRORRRRRRROOORROORORORROOOORROROOOOOROORORORROROROROORROOOOORRROORROOOROOOOOOOOOOORROOORROOOORRRRORORRRRORORORORORORORROORRRROORROORORRRRROORRRRROROOOOOOOOORRORORORROORORRRRRROORRROOOROOOOORROOOOORRRRRRRORRRORRORRORORRRORRROORORROROORRORRRRRORRROORORRORRORRRROORRRRRORRORRROOORROOROROROOROOOROOROOOOORORORORROOOROROOOROOOOORRROROROROOORRORRRRROROROORRRORROROOOOOORRRROOOOROOOORRROROOOOORORRROOROORRRROORRROOROOOORRROOOROOORROROORROOOOORORRRORRRRRORORORORRRRRORROOORROORRRORRORRORRORRRRORROOROROROORRORRRRRRROOOOROORORROOOORRROOOOORORRORROOORROORORROORORROROROROOOORRRRRORRRORRORRRRRORORORRRORRROROOROOROOROOOROORROROOOORRRRROORROROROROORRRROORORRRRRRRRRRROORORRRROOOROOROORORROOROOROOROORORRROOORRRORRROROOORROROROORORRRRORORRORRRRRROOOORROOROOORRRRROROOROOORORRRRROROORRRROROORRORORRRROROOOORORRRROORORRORORRORRRRRORROOOROOROORORRORROORRORRORROOOOORORORROOOORROOROROORRORRROOORORORRRRROORRORRRROROOROROORROORROORRORRRORORRORRRROORORORROORROOOOOOORORRRROORORROOORORRRRRRROOOOORROROORORRRRRROOOOOROOROORORORORRRRORRORRORROOROROORROOOORORROROORROOORORRRRRRORORROORRRRORORORRORORRORRRRRRROROOORRORROOORRRRROOOROOROORROROOOOROOOOROROORORRRORRRORORROOROROROROROOORROROOORRORRROOROOORROORRROOOOROOOROROORRORRRRRROOROROOOORROORRORRRROOOOROOOOOORROOORRRRORORROORROOORROOORROROORROOROORROOORORRORORROOOORORRRORRRROROOROOOORROOROORROROOOOOROOROOOOOORRROOROROOORRROROROOOOROROROOOROORRRRROOORROROORROOORORRRORORRRROOROOOORRORRRORRRORORROOOORRRORORRROROORROROOOOORORORRROOROOOORORORRRRROORRROORROROORORROROOORROOOOOOORRRROOROOOORRRORRORORROROROORRRRORORROOORRRRRORRRORROOORRRORORRRRORRRORRORRROORRRRROROORROROOROORORRRROOROOORRORRROROORORRROOORORRORRRRRRORROOORORROOOROOORRROOOOOOROOROORRRROROOORORORORORRROOOROORRROORORRRRRROROOOOOORORRROROROOOORRRRRRRORRROORROORORRRROROROROOOOOOROOORROOOOORRORROROORROOORRROOOOORRORRRROORRORRRROORRRRORRORRROORRRORROOOOORRROROROOOOROOOOOOORROROORRRRORROROROROOOROROOROROORRROOROOROOORORROROROOORORRROOOOOOORRROROOORRRRORROROORRORRRORRROOROOOROROOOOORRORROORORRROOROOOROOORORORORRORRRRROORORROOOORRRROOOORRROOROROOOOOROOOOORRRORRRROOORROOOOORORORRROOORRRORRRRRRROROORORORROORRRRROOOOOOROOOOOOOROOOORRRRROOROOOORRRRROROROOOOROROOROOROOROOORROOOOOOOOROOOORRRROOROROROOOORROOORORORORORORROOOORORORRRORORROOOOROORRORORRORORORROOROOROORORORORORRRORORORRROOROROOOOOORORROOOORROROROOOROOORRRROORROORRORORRRORROOROOOORRRORROROORRROORORROOOOOOOORRRORROOOOOORROOORRORROOOOORRRORROORRRROOOROOORRRROROOORRRORRRRRROOROOORROOORRRRRORORRRRROROOROOORORORROORORRORRROROOROOORRRRRRRRORRROOOOROOOROROOORORORRROOROORRORRRRRORORRORRROOROORORRRORORRROORROROORROORORORRRRRRRRRORROORRRRROORRORRRRORORORRORRRRORRRORROOORROOOOOOORRRRORRRRRROOOOORRRROOROROROROROOROROROORORRRROOROOORORROROOOORORROORRRRRORROROOORRRRRRORRROOOROORROROORRROORRROOROORRRRRROOORORROORROOROROOROROORRORROROOOROROORRORORORRROORRROROORORRROOORRRORRORROORRRRORROORRRRRORRROOOOORORORROOROORROROORRORRRRRORRROOROOROOORRRRRROOOROORRORRRORROROROORRRORROROORRRRORROOORORRORRORORRORORORRRORROOOOOOOROROOROROOOOOOORORRORORRRORRROOOROROOOORROOOROOOOORRRRRRORRROOOOOOORRROROROOORROOOOOOOOORROOOROROROORRORRRORRROOORRROOOOOROORROORRRRROROOROORRRORROOROOOORRRRRORRRROOOROOOROOOROOOROROOROOROOOOROROOOORRRROOOORORRROROOOOOORRRRRROOOROOROROOOORRRRORRROOOROOOROOORORORROORRRORROROOROOOROORROORRROROOORRORORROROOOORROORRORORRORORROORORORRORRRORRORORROOORROOROORRROORRROOROROORRROORRRORROOOROORORORROORORRRRRORORRORROOORROOOOORRORRRRORRRRROROOOROOORRRROORRRRRORROORRORRROOORRROOOROORRORRORROOORROROOOORRORROOORORRRRORRRORORORRRROOOOOOROOOORORRORRRORORORRRRROOORRRRRROOORROORROOORORRRRROORRRRRRRRRORRRRROORROOOOOOROORRRORROOOOOOROOORORORRROORRRRRRRRROOORRRROOROOOORRRRRORRORRORROOOORRORROOORRROOOOROROORRRROROROROOROORROORORROOOORORRORRROROOROOOOROORRROORORORORROROORORRRRROORROOOOORRRROORRRRRRROORORROROOOOORROOOOROOOROOOOOOOORORRRORORORROROOOROROROORRROORROORRORRRRRRROROROOORORORRORORRRORROORRRORROOOORRROROOOOORRORRORROORROROORROOOORRRRORROOROROOOORORRORRRORRRRRORRRRORRROOORROOOOROOOOOOOOROOROOROROORRROORORRRORRRROOOROORROORORROOROORRROORRRRRORORRROORROORRORORRROROORRORRRRORORROOROOOROOOOOOROORRRRRRRORRRRRROOROOOROOOORRRRROORROORRRRRRRROORORORRRORORRRRROOOOOROOROORRROORRROORORROROOOORRRRORORROROORRRRORORORROOORRRRORRORORROORRRROORROORRRRROORRORORORRRRRORORROOOROOOOOOOOOORORRRRORROROORROOORROOOORORORORRROORORRRROOOOORRRROROROOOORROORORORORROROROOOOORORRROOORROROROORRORROOROROROROOOROOORROORRRROOOORORRRRORRORRRORROOOORORROORRROOOROOORROROOROORRRROORRRROOROORORRROOROORRROROOROOOOOROOORROORRRRROROOOOOOROOROROOOOORRRRRORROROROOORRRROOOROOORRROOOROOROOORORROOOOOROROOORRRRRRROORRORORORRORORRRORRROOOOOOOOOOROORRRRRORROROORRORROOORRROROROOOOOOOORRORORRORRROROROOOORORRRORORORROOORRORORROORROOORROORRROROOOROOOOOOROOROROOOORRORRORROORRRORRROOOOORRRORORORRRRRRORRRORRROORRROOORRORORRRORROROOOOOOOOROOOOOORRORRRORRORROROROOOORORROOORRRORRRROOOOOROOROORORORRRRROOOOOOOOROOORORROOOORROOROOOOOOORORORORROROOOOORROROOORRRROROROROOORORRRRROOOOORROOOOOOOOROOORORRRROROOROROROOROROOOORORORORORROOOROROROOOOORRROOORRROOORROOOORRRROROOOROOOOORRROOOORRRRROOOOOOOOORRROOORROORORRROOOOROOOOORRRRRORRROOORRRORRORRRROOROOORRRRRRRRROROROORROORROROORROOOOOOOORORROORROORROOOOORRRRROOORRRROORRORORRRRORROOORROROORROOROOROORORROOROOROOORROROROORORRROORRROROOORRROROROORROORORORRORRRORORRROOROOOOROROOOORORORROOOORRRORROOROOORRROOORRRROROROOORRORRRROOOORRRRORORRORRROOOORRORORROORRROOORROOROORROORRRRRRROROORORROOOOROOOROROROROOOOOOORROOOORROROROORRRROORORRROOOORRORORRROROOORRRRRRROOROOOOOROROOOOOOOOROOOROOROOOOORRRROOOORORRRROOORROOOOROROROOOOOOOROROOOROORROOOORRRROORRROOORRORRRRRORROORORORORORRRORROOROORROORROOROROORRRROROOROORRROROOROROORROROORROROROOOORORRORROROOOOOORORROOROORRORRROROORROROOOOOORROORORORRRRRORRRORORORROOOORRRRRORRRRRRRROOROOROROOOOOROOOOOORRRRRORROOORROROOOORRRRROOORRRRRRRROOOOORROROOORROOOOOORRRORROOOOORORORRROROORROOORRROORORRROOOROOOORORRORRRRROOORROOOOOOOORORRROROOOORRRRRRRRRORRROOORRROROORORRORRRRRRROOROOOOOORRRORRRRRRRORORROOROORRRROOORRRORRRRORROROROROOORRRORORORORORORRORORROOORRRROOOOORRROROORORRRRRRROROORRORRROOOROORORORROOROROOROORRRRRORROOROOORRROOROROOOORRORORROROOOORROORRRRROORRORORORRORROROOORROOORROOROOORROOROOOOOROOOOOOOOORRRROOOOROOROROOORRRROOORORORRORROROOROOORRRROORRORRRROOORROROOROORROOOROOROOOOOOROORRRORORRROOOROORRORORORORRROROORROORROOORRRRORROOORORRORRORROOROROOORRRRRROORORORROROROOOORRRRORROOROOORRRORORRRROROOOORROOROROOORROROORORRRRRROOORRROOORRORRROROOOORROORORORRROORRRROORORROORORORORRROOOORORROOROORRROOOORRORROROOOORRRRRRRROORROOROROROOROORRROOOROOOOOOOOROORRRRORORRRROROORRROOORROOORROOOOOROORRORROORRRRORORROROROORRORORRRORRRORRROROOOOOOORORORROROOOOOOOROOOROOORRROROOORRROORROOROROROORORRRRORRORROOROORRRRRROROOROOOORRORRRORROOOROROORRORRROOOORRRRRROORRROROROOOORROROORORORORORROROROORROORRROOOORORRROROORORRORROROROORRORORRROROOROROORORRORROOOOORRORRRORRORROOORRRORORRRROOORRRRORRORROROORROOOOORORRORRRRORRRRORORRORRRORORRROORRRORRORROOOOOROROOOOORROOOOOROOOOROORORORORROORRRROORRROORROOORRROOROOOOROORRRRRRRORROOOOORRRORRRRROOOORRRRRRRRRRORROOORRROOOOOOOROOORORROROOOORRRROORRRROOORRRRROORORRRORORORRRROOROOROROROORORRRRORROORRORORROOOOROOOORORROOROOROORRRRORRRRROOROOORRROOOORRORROOOOORORRRRRRROROROORRROOOOOROOORORRORROROORORORRRORRROOORORRRORORRRROORRRROROORRRRRRORRRORROOROOOOOROORORORORRORORORROROORRROORROORROROOOORORROORRORORORROOOOOORROROOORROOOOOOROOOOOOROROROROORRRRORRRROORRROROROROOROOOORROORORORRORRRORROORRRORORRRORRRROORROORORORRRRRRRRRRROORORRORROOOROOOORRRRROOOOOOOOORRRRRRORROOOORRRRORROOORRROORROROOROORROOORRRORRRORORRRRROORRROOOORRORORRRRROORORRRRRRROROORRROORORORORRORRROROORROORORROORORORROROOROOOROROOOOOORRRRRRORORRRRROOOROOORORRROROOOROORRROROOROOROROOOROROORRORORROOOOOOROROOROOOOOROOOOOOOORRRRRROOOOORROORORORRROORRROOOROOROOROORRRRROORORRORRROROOORRORRROORRRRRRRORROORORRROORRRRRRORRORRRRRROOOROOOROOROOOROORORRORORROROOORRRROOOORRROOOOOOOROOOORRROROOOOOOOORRRRORORRROOORROOOOOOORRROOOORROOORROORORRRORRRORROOOOROROROROOOROOOROOROORORRORRROOOOROOOOORRRROOOORRRRRRORRRROROROOOORRRORRORORORRRRRRRRRORRROORRROOROOOOORORROOOOOOOROOOROOOROOOOOORRORROORRROOOORRORORRROOORRROOORRRRRRORRRROOOORROOROROROOOOORROROOROROORORRRORROORROOORRROORRROOOORRROROORORROOROROROROOOROOORRRRRRROORROOORORRRROOOORRORRRORORROROOOOOORROOOOROROOROOOOOOORRORROOOORRROOORRRRORORRRROROOOOORROOORRROROROORORORORRRRRROOOOROORRRROROOOOOOOROORROOROORRROORRRROOOROROORRROOOROOORRROROORRRROROROOORORRORORORROORORROOOOOORRROROORORROOOORRORORRRRRROROOOOOOORORRRRRROOOORROORRRORRRROOROOORORROOROOOOROORRRRRROORROROOOROOOOORROROROOORORRRROOOOOOOORROOOOOROOOOORRRORROORRROOOOROROOOROROOROOORORRRRRRORROROOORROOOROROORORORRRRRROORRORRORORROOORRROOOORORRORORRROORRORROORORRROROROROOROOOOROORRROOROOOOOOOOORORRROOOOROROORORROOOORROORROOOOORROOOORRRROORROORRROOORRORORROOROOORRORRORORROOROORRRROOORROOOORRROROORRORRROORROROOORORROORRRROROOOORORRRROOOORORRRROROROOROOOOOORRORRORORORORORRRROROORROOROOOROOOOORORROROOROORRRROORRRRROOOORRRRORORRRRRORORROROOOOOROOORROOROOORRORORRRRROOOORROOOOORRORORROOROROOOORORRROORORORORORRORROOOOORORORROOROROORROORRORROOOORRROORRORROOROORRRRROOOOROROROOROORRRROROOOORROOROOORROROOOORRRORRORRRROOORRROORRRRROORRRRRRRRORRRRRRRRRRRRRRORROROROOOOOOORORROROOOOOOOROORRRRORORROOORROROOORRROOOOROOOROOROROORORORROOORORRORRROORRROOORORRROOOORRRROORROOOOOORROORRROROOORORORRORROOOORROOORROROORORORORRRRROROOORORROROOOOOROROROOOOROROORROOORRRRRRROOORRORRRROOORRRROORORRROROOROROROOROOROOOOROORRRORORROORRRROROOROOORORRRORRRORRRROROOOOORRORORRRROOOROROORRRRRORROOOOOROOOORRROROROOOOOROOOOORROOORRROOORORROORRORRROOROROROOROOROORRORORROOORORRORORRRRROROOORORRROORROROROOOOOOOOOOORORROROOOOOORROROOROROOOORRROROOORORRRROROORRROOROORRRRORROOROORORROORROROORRRORORRRRROROOROROOOORRRRRORRORRORRORROOOROROOOORORRORROORROORORROOOORRROORRORROORORORORROOORROROOOROOOROOOROOOROORRORROOOROOORRROORORRROOROROORRRRORORORRORRORRROROOOOOROROOOOOOOOOROOORROROOROOOORRRORROOOORRRRORROOOOORORROOORROROOOORRROORRORROOOORROORORORORROOORROORORROOROROROORORRROOOROOORRRROORROOORORRORRRROORORRRROOOROOROROOOROOOORRRRORORORROORRRORROOOORROROROORROROOOORROOOORORROOOROOORORROOOORORROORORRROROOROORORORROORRROOOOOORROOROOOORRROOROOOOORRRROOORRRORRRORRROOOROROOOOOOROORRRRORRROORRRORORORRORRRROOOOORROORRORROOOORROORROOOOOROROROROOORORORRROOOOORRROOORORRRRROORRORRRRORRRRROOORROOORORRRORRRRRRORROROROOROOOROORROROOOOROORORRRRRRORRROROROOOOOORROOORRRRRRRORROROOROORRORROOOROOORRRROROORRORORROROROROORRROOOOROORRRROOROOOROOOORORROOROORRROORRORORORRROORRRRROORORRRRORRROOROORROOOOOROOOOOOROOROOROORROOOORROOORROORRROORRRORRRORRRRROOOROROROORRRORORROORRORRRRRORRRORORRROORORRRROORRRRROROORORRROORRRRROORROOORRRROROOOORRRRORRRRRRRRROOOOORRORROORROORORROOROOROOROOOORORROOORRRROOROOROROORRROORORRROORORORROOORROOOORRRRRRROORRORRRORRRORROOOORROOOOOOOOOOORRORRRRRRRRRORORRRRRORROOOROORROROORORRRRRROOOROOROORORRORORROORROOROORORROOOORROOOROORRRORRROORRRROOROORRROORRRROROOROOOOOORRRORRRROOOOORORROORROOORRROORORROOOOOORORRRROOORROROOROOROORROOORRROOOROOORRRORRRROOROOORROROROOROROROOOROORRORRRORRROOROORROOOROOOORRORORRORRRRRRRROROROORROORRRROORROROROOROOROOORORRROROROORRORORRRROROROOOORORORROORRRROOOOOOROOOOOOROROORRRROROROOROOROROROROOORRRROORRORROOORORORROROOOOOORRRRRORORRRORRROOOORROROOOORRRRRRRRROROOOOROROOORROROORRRORRORROORORORRRRROROROORORORROOORORRROORRRORRORRORROROROOOOOORRORROROOROORROOROROOROORRROORRRROROORRRRRORRRRROROORRRRRRRRRRRORRRORRORRRORROOOORRRORROOROOOOROORROOOROOOROROROOOORORRRROROORRRORRROROROOOORRRRORRRRRORROROOROROORRORORORORRRRORRRROORORRROOORRORRRROORRRRRRRRRRRROOOROORRRRRROOOOORROROOOOOORROROROROOROORRROOOOROORRROORORROORRORRROOOROOROROROOOOORRRRORRRORORRORORORROROORORORORRRRRORRROOOOOROOOROOOOROOOOROORRORRRROROROROROROROROORRROROROORRRORRRORRRRORRROROOORORORRROOOOOORORRRRRORRORRORORRRRRORROOORORROORRRRRORRROROORRORROORORRRRORRRRRRRROOOOORROOROOROROOROOROROROOROOORRRRORRRORORRROOROROOORROOORRROOROOROORROROORRRRORRROROOOROOORROOOORRRRORORRORORROORORORRROORROOORORROORORORRROOORORRRRRRORROOOOORORORRRROOOORRRRORRORRORROOORROROOORORROOOROOOOROOORORRROOOORROOOOOOORRROROOOROOOOOROORORRRRRRRROOOROOROOOROOORRRORRROOROOOOOOORRRRROROOOORRRRROOOOORROOORROORORRRRRROORRORROOORRRORRROROOORORRRRRROOOOOROROROORRRRRROROOORRRRRRORORORRORRRROOOOOORRORORRORRROROOROORORROOOORRRRORRROOROOOOOROROOORROORRROORORRORROORRROOOROORRROORRROORRRRRROOOORRORORORRRORORRRRRROORRRRRROOOOORRROOOOOROROOROOROOROOROORORRRORROOOOROOOORROOROROOOROROROORORRRROOOORROOROROORORORROROORROOOOOOROROORRORROOOORRORRRRRORRRROOORORRRRROORORORROROOOORORRORROORORRRRRROOORRRORROOORROORRORRROROOOOOOROOOOOOROORRORRRRRROROOOORRRRORRROORRRRORROOOOOOORROOORROROOOOORRRRROROOORRROOOROOORROOOORORORROORORORORROROROORRRRROOORORRROOORORRRRORRRRORORROROOOROORORRRORRRRROOOOOOROROOROROROROOROORORRRRORORROOOORORRROROROOORORORRORRROROORROROOOROOOOOOOROOROORORRORRRRORRRRRRRROOOOROROROOOROOOOROOROOOROOROOROOORORRRROORRROORORORRRORRRRORRROORRRRORRRRROOOOOOROOOROORORROOOOOROROORORRROOORRROROOORRORRROROORROORORROOORRRRROROOROOOROOOOOROOOROROOOROORORORRRORRRORROOORROOOOORRROROOOROROORRRROORORRRRROROOOOOOOROROOOORROORRRRRORROOROORRROOORORRRROORROOROORORORRRROOROORRRRROORORROROOORROOOROORRRORORROOOORRRORRROOORORORORRRRRRRRORORORRORRRRROOORORROROOROOROOORRROOROOROORORRROORORROOOROORRRRRRORRROROROROORRRROOORRROOOORRORROROOOOORROOORORRROOOOOROOOOOROOORROORRORORROORRROOOROOORRRORRRRROOOOOOOROOROORORORORORROOOOOROOORRROOOROORRRROOOORRRRROORRRRROORRORORRRORRRROOOROOROROORRORROORORRRRRORRORROOROROROOOROOROOORRRRRROOOOOOORRRROROOOOORRRRRRORROOROROOOORRORROORROOORORRORRRRROOOOORRRORRRRROORRRROROOOOOOORROOOROOROORRORROOOORORRRROOOOOOORORRRORORRORRROOORORRRRRORRROOOOROOROOROOOOOORRRRRROROOOOORROOOOORRROROROOOOOOOROROOORORROROROROORORRORRROOORRORRROOOROOOORRRROOOOOOROORRROOOOOOORORORORRORRRRROOOROOROORRROOOOORROOROORRRORROOORRROROOROOROOOROOOROROROOOOORORRORROOOOORORORRROORORROOORROROORRRROOOORRRROORRRRRORRRORROOROROOROORORROROROORROOOOORRORRROOORROOOORORORORORROROOOOORRORORORROOROORRORRRRRRRORRRROOROORROORRRRROORRRRRRRRROROORORROOOORRRRRRRRROOROOROROROOORORROOORROORRORRRRROROROORROOORORROROOROROOROOOORORRRROOOORRRRROROOOROROOOOROROOOOOROOORRROOROROROROROROROOORRROOROOOOOOORROORRROOORROORRORRORROROROROOOROOOROOORROROOORROROORRRRRORRRRRROORROOOOOOORROROOOORRORRRRRORROOROROROROROOORORROORORROORRRORORRRRORORRROOOROORROROORRRRRROOOROORORRORRROORRRRROROORROORRROOROOOROOOOOORRRORROROOOOORROROORORORRROOORRORRROORORORORRROOORORRRORRROOORROROROOOOROORROOORRRRRROORRROORORORORORROROORROOROOROORROROROOOORRROOOOOORRORORRRORRRRROROOOOROORORRROOOOOROOROOOROORRROOORRRORRORROROOOOOORRROOROOOOORROROOROOOORROOOORORRORRROOORRORRRROORRRORRRORORRRROOOORRRORRRRRRRROORRRRRRRRRRORORRRORROORORRORRORORRRRRRRORORORROROORRRRORRRORRORRORRORORORRRRRORORRORRRORORROORORROOORRRRRRROORRORRORRRROROROOOOROOOOOOROORRROOOOORROOROOOOOOOROROROROORRRRROOORRORRROORRROOOOROOROOOROORROOORRRRRRROORROOOOORRRROORROOROORRORRORRRRORROROROORORRRRROORRRRORROOOROOORORRRRORORRORROROORRRORROOOOORROOOORORRRRRORRRROROORROROORRRROORRRRORRRRRORRROORRORRRRRORROOOROOROOROOROROORRRRRORRROROOOORROORRRORORORRROORRORORROOOORRRORORROOORROOOROROORRORROOORRRRROOROOOROOORRRROROROROORORROORROOOORROOORRRORRRRROORRRROORORROOORORRRORROROORROROOROOOORORRROROOOOOOROOOOORRORRROOORRROOROOOOORRRROOOOROROOOOOORRRRROOROOOORROOOORROORROOORRROROROOOROROOOROOORROROOOORRROOORORRROOOORRROROROROORRRORRRROOORROROORRRRRROOORROOOROOOOROROROOOORRRRRRRRROOOOROROOROROORORRORORRORRORRRROOOOOROOOORROORROROOROOOOOOOOOOORORROOOOOOORROROOROOOROORRROORROORORRROOOROOOOOOORRORORRORRRRRROOOROROROROOORRRRROORROOROORRORORROOROOOORRROROORRRORORRROORROROOORORROORORORORROROOOORRRORORRRRRRORRRRORRRROORROROOOOORROOOROORORRROROOROOOROOROOOORROOORROOOORORRRROOOORRORROOORRORORROROROOOOOOOOOORROOOOOOOROOORORRRROORRROOOROROORORRROOOOROORRORROROORORROOOORRROORRROORORORRRROORROOROOORRRORRRORRRORROROOOOORRRROOROROORRRRROROORRORORORORRORROROROOOROOOORROOOOOOOOORORROOOORORRRORRROOROOOROORRROOOROORRROROROOOORRRORROORRRRROOORRRORRROROOOOOROOOROOOROOORORORROROOROOOORRROOORROOOORRRORRORROOOROORRROROORRRRRORORROOORORROOORORRORRROOOOOOOOOOROORRRRORROOOOORORRROOORRORRROOOROOOOORROOORORRROORRRRROOROOORRROOOOROOOORRRORRROORRORORORORRRRROOORORORRORORROOOOORRRRORROORROOORORRORRRRRROORROOOORORROOOOOROORRORORORRORORRRORORRRRRRRROORRROORORRRRROORROROOOROORRORRORRORORROOROOOOROORORORROOOOOOOROOORORRROOORRROOOORRRRROOORROORRORRRROROROORRROOOOOROROROROROOOROORORRRRRRRRROORROROOORROOOORRORORORRRRRRORRRRROORRRRRROOORRORROROOROOOOROROORRRORROOORRRORROROORROOORORROOOOORROROROROROORRROORORORORROOORORROROORROORRORROOOOROROROOOROROOROOORRROOROROOORRROOORRROORRORRROOOOOOROROOOROORORORRORROORRORRRRROOOORORRRRORRRROOOOOORROROROORORORORRORROOROOOORRRRORRRRRROORRRROOROORORORRROOOOOOROOROOOOOOOOORROOOOORROROROROROOORORRROOROROOROORRRROORROORROOORORROORROORRROOOOROOOROOOROOORROOOOOROOORROOOORRORORRRORRROORRROOOROORROROROROOOOROORRORROOROORRRROOROORROOORRRORRORRRROOOORRORORORRROOOORROOROORRRORRRRRORROOOORROOORRRORRRROOOOORORRORORRROROOROROORRRRRROORRROROOROOOORRRROORRRORROROOORRORRRRRRROOOROOROOOOOOOORRROROORROOROORORRRRORROOORROORORRRROOROROOORRRRRRRORRRORORORRRRRRROOOROROROOROORROORORRRROOROOROROROOOOOORRORRRROORROOORRRRROOOORRRROROORORRORRROOOORRORRORORROOROOOORRROOROOOOORRRRRORRROROOORORORROORRRROOOOROORORORRROROROOORRORORRORRORRRROOOOORORRRRORRRORRRROOROORRORRRROOOOORORROOROROOROORROORROOROORRROORORROROOOORORRRRRRORRRRROOOORRORROROOOOOOOROORORRRRRRROORRRRRORRORRROOORROORRRRRRROROROORROROOOROOORRRORRRRRORROOORROOOOORROOOORRRRROOROROOOOORRORRRROROORRRORROROOORORRROORORRRRORRRRRRRRRORORORORROOOORROORROOOROOROOORRRROOOORROOOROOOROORRRORROOORRORRROOORRORORRRROOOOOOOOROROOROROORROROOOORROORORORORORRORORORRRROROOORRRRRROROOOOORRORORROORROROOOROOROROOOOROOOROROOOOOORROORRORRROROOOOOOORROROOORROROORRORRRRRRROOORRRORROORRRROROORROROOOOROORROOOORRORRRORROOORROROOROROOROORRROORROORORRROROORROROOORORRRORRORORRRORRORRRROOOORORRRRORROOOORORROOOOOROORRROOORRORRRORRROOOORORORORORRRRRRROOROOROOOOOOROROOOOOROOOOOROORORROOOORRROOOOROOROROOORRRRRROOOROOORRRROOORORRRRORORRORROORORROOOROORORRROOROORROOROORRROROORRROOOOOROOORROOOROOOORRRROOOROOOOOROROOOORROROORORORRRROORROOORRRRORROROORROOOOROOOROOOROOORRROORROROOOOORROOROOORORRRROOOROOORRORROORRORRROROROROOROOOROORRRRRRROOROOOOOORRROORRORRRRROORRRORROOOORRROOOROROOROROORORRRRRRORRORORROORORRRROOORORRRORRORRRRRRORROOOROROOOORRRRRRRRORROOROOROROOOROROOORRRROOROOOOOOORROOOORORROROOORROOROROROOORRROROROROORROORRRRORORRORROOOROORROORRROOROOOROORROORORROOORORORRRORRORROOOROROOOROOROROOORRRORRRROROOROROORROOOORRORROOROORRRRRROOOROROOROOORRRORROOOROROOROOOOOROOOORROOORROOORORORRRROOROROROOOOOOOOROOOORRRROROOROOOROROOORRROOOOORRROOROOOROROORRRROOORRRORORRRORROOORRROROOOROOORRROORORRORRORRROOOOORROORRROOOOROOOOROOOOROOROORRROROOROORROOROROROOORORRRROOOOOORRROROORRROROOOORRRROROORRROOROOROORORROROOORRRRRRRRROOOORRRRORROORROROOORRORRORRORRORORRROROORRRRROROROORRORORRRRRORRRRRORORRRRRRORROOOOOOOROOOOORRORROOOOOOOORORROORORORORORORROROROOORROOORORORRRROOOORORORRORORRROOROROROOOROORORORORROORORRRRRRRRRORRROOOORRROROOOOORRRORRROOROOOROORORORROROORRRORRRRRRRROORRROORROOROORRRORRRROROORORROORORROOROROROORRORRORRRRORRRRROOROOORROOOOORRRRORRRRORRRRRORRRROOOROROOORRORRRORRORORRRRROOOOORORRRROOORRORROROOOOOORORRROOORORROOOORROROOORORROOORORRRROOOOORRROOOOORROROOOOORRRORRORROORRRRROOORROORROOORROOOOROROORRRROOROROORRRORRRROORRRORRRROORRROOOOROOOOOOOOOOOORROROORRORORROOORROOOOORRRRROOORORROROOOOROORRRROORRROOOOOORRRRRROORRRRORORRRROOOOORRROOORORRRRROOOOOORORRRRROOOROOROROORRORROOORRROORRORRRROOROROORRROROROOOROORORORRRRORORRORRRORRROOOORRRROOROOOOROOORROROORROORORORRORRORROOORRORORRRRROOROROROROORORRRRRRORROORRRRRRRROOORROOROORROOROORROOOOOOORRORRROORRORRROORRRROOOOORRROOOOORROROOOORORRRORROROROROOROOORRORRROROROOOOOOROOORRROROOROROORRROOOORORRRROORORRORRRROORROORRRROOORORRORROOOROOOOOOOROOORRORROOOROORRRRROOOORRROORRROOOOORRROOOOOROOOOORRORROROOROOORROOROOOROROOORRRROROORROOORRRORRROROOORROOORRRRRORORROOOOOOOOOROORORRORORORRORRROOROORORORORROROROORROORROORROROOORROORRROOROOOORRORORROROOROROROORRORROOOORRRORRRROOORORROORROOOOOROOOOOROORORRORORORORRRORROORRRRRORORRRROOROOROOROOROOOORRRRORROORRRORRRRROORRRROORROROOROOOOORORROOOOOOORROORRRRROORRRORORORORROOORRROOOOORRORROOORROORROORRRORORRRORORORROOROORRORORROOORROOROORORRRRROROROOOOOROORORRRRRROROORROORROORRROOORORORRRRROORORRROORORROOROOROOOOROORRORRROOOROOORORRROOROORRROORORRORRORRRRRROOROROOOROROORORROORORRRRORRORRROOOORROROORRROORORRROORORROORROROOOOOROOROORORRRORRROOOOORRRRRROOORRRROROORRORRRRORRROOORRORROROOROOROORROROOORORRORROOROORORRROOOROROORRRROOROORRORORRROOOROOORORROOORRORORRROROROROOORRRRRRRRORRRORROORORROOORRROOORORRRRRRROROROORORORROORRRRROORORRORRRRROROORRROOOOORROOROOOROROOROORRROROORROOORRRROROOOOORROOROROOROOOOROOOOROORORRORRRORRRORRORORORORRROOOORORROROORORROOOROORROOORROROOROOOOORORRRORROOROROOORRRRRORRRRORORORORROORRRRROROROOOOOOOOOORROOROOROOORROORORRRORORORORRORROOORRORORORROORROOORORRROROOOOORRRROORRRRRROOOOORROOORORRROOORORRRORRORRRROOOOROORRRRRRRROORORRRRORORRORRORRRROORRRRRRRRRORORROROOOROORRRRRROOOOOORORRRRRROROORRRRRROOROORORORRORRRRRRRROORRROROOOORROOOORRRRRORRRRRRROOROORRROOOROOORRRRROORRORRROORRRRORORRROOOORROROROROORRROROROORORRRRROROROORRROROOORRRROROOOROOOROORRORRROOOORORROOROOOOOROOORROORRRORRROOOORRORORRRROROOORROORRORRRRORORORRRRRORRRROROROROROORROORORORRROOROORORRROROROOOORRORORORRRROROROROOROOROOOOROROORRROOOOOOOROORROROOOROROOOOROROOOORRROOOORORROOROORORROORROOOOORROROOORROORROORRRROOORROORRROOROORRROORORROOOOORROOOOORRORRRRRRORROROOOROROROOROROROORRROROOOOROOOOORROORROROROOORORROOOORRRORRROOOORRRRORRRRRRORORRROROORRRORRRORRORRRORRRRRRRROROOOORRORRRRRORROOOOORRRRRRRROORRROOOOROOORRRRROOORORROROOOORRRROOOROROROOROOORORRRROOORRROOROOOOOOROORRROORROOROOORRRRRRROROORRROROROOORRORORRROOOOOOOOOORORROROROROROORROOROOOORRRRORORRRRRRROROOOORRORORRRROORORRORRORRRRRRORROOOOOORROROORRRORRRRRRRORRORRRROORROORORORROORROROROORROOOOOORRORRROOOORROOOOORRRROOOORRRRORROOROOORRRRRROOOOROORROOOOORORROOOOORROROROOORRRRRRORORRRRRRRROROOOOORORRRORORRORRRROORRORROROOORRRRORRORROORRORRORRROROORORORORORRRRRORRORROOROROOOROROOOOOROOOOOOOOROROORRRORORORRORORROORRROOORROROOROORORRRRRRROOROOOOOOORRORRRROORRROROOROOORRRRROOORRRRRORRORORORORRROROOOOOOOORRRRRORRRRRRORRRRORROORORRRRORORRRROOOOOORORRRRRORRORRRRRRRRRRRORRROOOROOROORROORORRRROROOROORROORRRROOOOOOOORRORORROORRRORROROROROOORRROOORRORRRRRRORROOROOOOOROROROORROOOOROOOOOOROOOOROROROOORROOOOORRRORORORORRORRRROROOORRORORORRRRRORRRRRORORRORRRROOROOOORRORRORRRRRRRORORROOOROOOROOOOROOOOOROOOOROROOOORRRORORROROROOOROROOORRRRRROOORORRRROORROORROORROOORORORROOOOROOROORRRROOOORRORRRRRRRORROOORORORRRRRRRRROORROOROOROOROOOORORORRORROOOOOROORRRROOOOROROROROROORROOORROORROOROOOORROOOOORORRROOROROORRORRROROORRORROOORRRORRROROOOOORRRRROOORORROROOOOOOROOOOORRRORROROOOROROORROOORRROORRROOROOROROOOOOOROROORRRRRRROOROOORROORROORRROORROOOROOROORROOORROROORRRRROROROORRRRRORORRROOORROROROOROOOORRROROORORRRORRRRRRROOOOROOOROROOORORROOROOOORRORROOOORORORRROOORRRRROORRRRRRRORROORROORORROOROOROORORRORROOROOOROORRRRORROORRRROORROORROOORRRORORRRRROOORRORORRRRRRORROROOROROOROORRROOORROOROOORORROORRRORRROROROORRROROOOORORRROORRORORRORORROOOROROROROROROOORRORROORROOOOOORROORROOOORROOOROROOROOROROROROOORROOROROORRROOOORROOORROOORRROOORRRRORORROROROOORRROROORRORROOOOOOOOOROOOROROROOROOORROROOORRROORRRORRORRRROROORRROORROOORROOOOORORROOROOROOORRRROORRROOOOOROROOOOOOORRRRORRORROOOOOOOORRRROROROORRRRORRRRRRRROROOOORRORRRRRORRRRRRROOOROORRRORORORRRRORROOOOORRORROOOOOOOOOROROROOROROOORROOROROOOROROROROROOORRRROOORROOORORORRROOORORORRROORRROOORROROORROOOORRROROOOORROOROOORRRRRROORRRRORROROORROORORROOOORRORROROOROOOOORRROROROOOROOOOROOORORRROROOOOROOORORORORROORROOORORRORROOORROOORRRROOROOOOOORORORRORROOORRRROOROROROORRROROOOOROOROOOORRORRRRRRRORORROROOOORROROOOROROOOOOROOROORROORRROOORROROROROROROROOROOORRROOROOOOOOORORRORROORRRRRROOOOOORRORROOORRORROOOORRRRRRRRORRROORRORRROORORRROOOOOOORRORRRRRRRRRROOROROORORRROOOORROROOOOROORORRROROOOOOROORRRROORRORRRORROROORRRROOOROOOROROOORRRORRRORRRROOROOROOOORROROOOOROOROORORROORRRRRRROOOROOOOOROROROOORRRRROOORRORRROOOOROOORORRROORROROORROOROOROOORROROROOORORORROORRORORROOORRRORRRRRROOROORRORRORRRRORROOOOOOROROOROROORRORROROOOORRORORRROOOROROOOOOOOORRORRROOOORRRORRROOOOOORRRROOOORORRROOOROOOOOOOOORRROOOROOOORROROORRROROOORROOORROROROOOROROOOORROROROROROOORRORORROOOORROORORROOOROROORRRRROOOROOROROOORROOROOORORRROORROOORROROOOORRRORORROOOOOOROOORORORROORROOOOORROOOORRRRORROOOORORROOORORORRORRRRORRRRRORRROOOOROORROROOORORRROROOOOOOORROOOOORRRROORROORRROROORRROORRORROOOROORORROOOOOOORRRRRRROORRORRRRORORROORRROOOORRORRORRRROROOROOOOORORORROORRRRROORROOOOROROROOORRORRRRROORRROROROROROORROORORROROORROOOOOOORRRRORROOOORRRROOROORRRRROOOROROOROROOORRRROROROOOOOROORROORROOOOOORRROORORRRRRRROORRORRRORRRROOORRORORRRRROOROOOROOOOOORRORRROORORRROROOORROOOOORROORRORRORROOOROOORRRRORRRORORRRORRRORRORRROORROOOOOOROORRORORRRRRRORRRROROROOORRRROROOORROOROORORRORROOORRROORRRRORRROROROOORRRRROORRRORRORRRRRRORRRRRORORRRRRRRROORRRORRORRORRROOROOOOOROORROORORROROORRRRORORORRRORRRROOROOOORORORORRRROOORORRROORORRRORRRROROOOOORROROROORRORORRRRRRRRRRRRORORORROOORRRORRRROOROORRORRROROORORRRRRORRORRRRROOROORORRORORORROOROORROROORORROORRRROOORORROORRROOOOORRRRRRROOOOORRROORROOOROORRRORORRRRRRROOOOROORRRROOORRORRORRORRORRRRROOOROOOOOOOROOOOROOOOOOOOROOROORRORORRROORRROOOOROROROORRRORRORRRORRORORROOORRRROORRRORROOOORORRRRRORRROOORROORORROROOOORRROORORRROORORORROROROORRRROOOOOORRRRRRRROROOORROROOOOOOOORRROORRORRRRRRRROOOOOROOORROOOROOOOROOOOOOOOOOOOORRRORORROORRROOOROROOORRRORRROOOOOROORRRRRORORORROOORROROORRROOROOOROOROOOOORROROROORRRRRRRRRORORROOOOOOORROOOORORRRRRRRRROROOOOORRORORORRROOOOROOROORRRRORORRRRROORROOROOORROROROOROORRRRORRRROOOOOROROROOORRROOOORRORRORORROOOORROORORRRORROOOORROORROROORRROORRORRRRRROOORRROOROROOOORRRRROROOOOROORORORRROROOOORRORRORRROROOOROROOROOROOOOROROORRORROOROOOROOOORROOORRRORRRRRROROORORRRRORORORROROORROORRRRRROROOOROOROORROOOROOOROOOROORRORORRRORRROOOOROOOORRRROROOOORORRORROOOORROOOORRRORRRRORRROOROOORROOOROORROROOROOOOOOROORRROORROROOORRORRRROOORRROOOOROOOORRORROROORORRORORORRRROOORRROORROOROORRRRORORRRRORROROOOOORORROOOOORRORROROORORROROORROOOOROOOOROROOOOORRORRRRRRRRORRRRRORORRROORRRROORORRRORROORROOOOORRROROROOROOORROOROROOORROOOROROORROORROROROORRROORROOROOORORRRORRRRRROROORORROORROOOORRRRRORRRROOROOOROORRORORROOOOROOROOOORRROORRRRROOROROOROROOOOROORROOROOORRRRRRROOOORROOORRROOORORORRRRRRRRORROOORROOOOROORRRRRORRRRRRRORRRROOOROORRROROROOOOOROORORRRORRORORORORRRROROOORRRROOOOOORORROOOOOROOOOOOROOOOOROOOOORRRROOORRRORRROOOROOOROROORORORRORORORRRRRRRRORROOOROROROOOOROROROOOOOOOOOORROROROROROROROOROOOORRROORROOOOROOOOROORRORRRORORORROOOOOORRRORORROROROROOROROORRORRROOORORRRRRRRORROORRRRORORRRRRRROORORRRRRRROORORRORROOOOROORRORORRORROROORRRRORRRROOORROOOOORRORRRROORRRRRROOROORRROROORRROORROORRRORROOROROOORORRORORRRRROORRRORRRORRRROROOOOROOOROORORRROOROROORRORRORRROOOOOROOORORRRROOOROROORRRRORROOORRROOORROOROORRRRORRRRRRRRRROORRRROOROOORRRRRRRROOROOORRORRRRRRROOOOOOROOROORROOORRRORRROOROOOORRROOOOOROROOROROOORRORRROROOOROROOORRROROROOOROROORROROOORRROORRRRROROOORROORRROORRROOOROORROOROOOROROORRRRRRRRORROOOOORRROOOOORROOOOROOROOROOOROOORROORORRROORRROOORRRRRROOOROOOOOORRRORROROOROROOROOOOOROORRRROOOORORROORRRRROOOOORRRRROOOROOORRORROOOOORORRROORROROOORRRROORROOROROOOOOOOOORROOORROOROOOOROOOROORORRROOORRORRRORRROORRROROROOORORROROROOOOOOOOOROROORORRRROORRRRRRORRROOOOROROOOOROOOOOORORRORROROOORORORORRROORORORROORRORORRRRRROROROOOROOOROOOOOOROORROOROOOOORORROOOOROROROROOOORRORORORRRROROROROROROROROOORRORRROOOROORORROROORROROOOORROORRORRROORRRRROOOORROROORRROORRRRRORORORRROORRROOROOOOROOORROORRORRRRRORRRORROOORRROOORORROOOROORRORRRRRRRRROOROORROORROOOOROROOROORORRRRRROOROOOORRRRROOOOOOORRRRROROOROROORRRORRRRRROOORRROOROOOOORROORRROORRORRORRRRORRRROROROROOOROOOORRROORORORROOROORORROOROOOOROROORORORROOROROROORRORRROOORROOOOOOROOROROOROORORROOOOORRORORRROOORRRRROROOORORROROROORRROOROORRRRRORRRRRORRRROORRRRORROOORRRRRRROOROOOORORROORRORRORRRRORROROORROOORROOOOORROROORRRROROORRRORROOOOOORRROROOOOROROORROROOROORRROOOOOOOOROROORRRROORORRROORROROOORRRRORRORRRRRRROOOROORRRRORRRORRORRRROOOOOOOORRRORORRROOOOOOROOORROROOORROOROORRORRORORORRRROOOOOORRRORRROROROOOOROOOORRORROORROOROORRORORRROOOROROOROOOOORROOOROOOOOORRORRRORRORORRRORORROROORORRROORORRRRRRROROOOORORROORORORROROROOROOROORROOORROORROORRRORRRRRROORORRROROROROORROROOROOROORROOORORRROORRRRROOROOROROROORRORRRORRRORORRORROORROORROORRRRRRRRRRORRRROROROOOROOORROOORORRRRORROOOOOORRRROROOOOORORORROROORROOOORRRORRRROROOORROORORORRROORRROOROROOROOROROOOORROORROORRRRORORRRROOOORORORORORRROOOOROORRRROORROOORRROOOORORROORRRORORROORORROORRRRROOOORRORRRRRROORROOORRORORRRRORRRRORRROROOOOOROOOOROOOROOROROORROORROORROORROOOORORRRROOOROROOROROORROROORORRRORORROROOOORRORRRROORRROOOOOROOOROORRRROOORORRRRROOOORROOOROOOOORROORORROROOROROOORROROOOORROOOORORRROROOROROOORROORORORROOOORROOOORRROORROOORRROORROOOORRRORORRRRRRROORROOOOOOOROORRROORRROOOOOOOOORRORORRORORROORORRRRROOORRROOORROOROORRORRROORRORORRROORROOOROORRROOROOROOORORRRORROOROOORORORROROROROOOROOROORROROORRRRRORORRRROROORORRROROOROROROORROROOOOOORROOOORORRORORORRRRRORROROROORRORRRROOOOORROROOOORORROOORRRORORROORRRRRORRROORRRRORRRRORRRRRORRROOROOROOROROOROOORRORORRORRRRRRROOORORRRRROOOOOROORORRORRORROORORROOROORROROROOORORROORORORORRRRRROOOOOORORRRROROOOORORRRRORORRORRROOROOOOORORROOOROOROOORRRRRORRRROROROROOROROROOORORRRORRORRRORRRROOOOROORORRROROOROOOOROORORROORRROORROROOOROOOROROOOORROOOORRORROOROROORROOORORRROOROOORRORRRRROROORRRRROOOOROOOOROROROROORRROORRRRRROROROROROROOOROOOOOROORRRRROORORROROOOROOORROORRROORRORRROOOOOORROOOOORROOORROOORROROORORRRROOROOORROORRRORRROORORRORORROORRRROOROOORROROOORORRROOOORROOOROORRORORORRRRRRORORROOOOROOORROOORORROOROOROOROOOORORORROOOOOOOROROOORORORRORORRRRORROROROROROOORROORRRRRROOOOOORROROOOOROROOORORORRRRRRROOOORROROOORRROORRRRRORRRRRRORORRROROROROROOOROOROOROORORROOOROOOOORORROOORROOOOOORRRROROROROOORRRROORRRROROROOOROOOOROROORRRORRRROORROROOROROOORRROOORRRRRRRRRRRRORRROOOORORORRRROOROORROOROOROOOOOORRROOOORRORROORRRORORRROROOOORROORORRRRRROROROOORRRRROOORRROOOORORRORROROROROOOOOOOORRROOORRROROORORRRRRRRROOORRROOORRROOROOROROOOOORRORRORORROORRRRRROORRRROORRROOROOOOROROOORORRORRRRRRROOOOORRORRROORRROROOOOOOROORRRROORRORRRRRRRRRRRRROOROOOORRORROOROOOORORRORRORROOROOORRRRROOORRORRROROORROOOROOOORRRRRRRROOORRRRRROROOROROORORORROOROORROROORRORRRRRORORRRRORRORORROROOOORROROOOOOOOOROOOOROORRORRRROOOROOORRROROROORRROOOOOOOROORROOOOROOROOOOOORRRRROROROROOROORRROORRRORRROORRORROOROROOOROROOROORROROOROOOOOROOROROOORRRROOOOOROORRRORORROORROROOORRRORRRROOORORROROOORORORORRRORORRRRRRROOOOROOOOOOOORORRROOORORROROOROROORRROORRROOORROOORROORRRROORRROOROROORROOOROORRRRRRRRRRRORRORROROOOROORRORORRROOROOOOOOROROORROOOORRRRRORRRORORRROOOROOROROOOORRRRORROROORROORROOOROROOOOORRROORORRROROOROROORRRRROROORORRORORRORROROROOOOORRORRRORORRRRORRRRROOORORRROOOROOROOROROORRRORRRROOORRRRRRORRROOROORROOOOOOOOROROROORROORRORRRRROORORROOORROROOORRRRROOORROROOORRORROOROORRRROORORRROROORRRORORRRROROOOROORORROORROORROROORORRORRRROOOOORRRRRRRRROORRRROORRORORRRROORORROOOOOOOORROROOORRORROROORRRROOORRROOORROOORRRORRORORRROOROORRRRRRROOROOOROOORROORROORRROROORROORORRRROORROOROOROOORRRRORRRRROORORRORORROORRRORRRORROOOOOOROOOOROROOOOROOROOOOOORRRROOOROOORORRRRORRRROORROOORRORROOROOORROOOORORRORRRRRROOOOOORRROROOOROROROOROOOOOROORRRRRRORROOROROORORRRRROORRORRRRRORROOROORORRROROOOOOOROORRORRROORORRROORRORRROOORROORROORRORRRRORRORRRRROROOORROOOOOORRORRRORRRRRORRORORORORROROOOOROOROORRRRRRROOORORRRROOROORRRORORRRRRORROROOOROORRORORRRORROOORROORRRRRORORROROORROOORRRRRRRORROOROOROOROORROOROROOOOOOROORORRROROORRRROOORORRRROOOOROORROOROOROROOROORRRROORROOOORRRORRROOORORRROROOROORORRORRRORRORRORORROOROORRRORRROOOOROORRROORORROORRRORRORRRRRROOOOORRRRROORRROOOORORROORRORRRRROOOROORRRRROROROORRORRORRRORRORRRRROORORRROROOORRRRRROORORRROOROORRRRRROROOOOOROOROOORORRORORRROROROORRORORORRRORORORORRORROOROOOORROROORRRRRRRORRRRRRROORRROOORRRORRRORRROORORRORROOORROORRROOOORORRRRORORORRORRROOOROROOOOORRRRORRROORROOOOOORORORROROROOOOOROORROOOOROOORRRRORROOOOROOOOROORROROOOROROROORORROOORORRROORRRRRORORRROROOOOOOORROOOROORORROROROOOROOOROOORRRORORRRROORROORORRROOROORORORROOORRRRRROOORRRRORROOORRRRORORRRORRORRORRRORROROORROORORROROOORROROOOROOROORROOROOORRRRROORRRRROROROOOROROOORROORRRRRRRRORRORORORRRRROORROOOORRORROOORORRORORRROOROOOROROOOOOORRRROORROROOORROOORRROROORRRORRORROOOOORRRRORROOOOOORRRRROROORRORRROOOROORORRROOOOROOROOORRRRROORORRRRORRRRRROOOROOORRRORRROOOROOROOOOOOOORROOOOOROOOORORRRORRROORRROROROORRORRRROOOROORROORRROOROOOOROORROOROORRRROOOOOROOROROORRROOOROORROOORRORORORROOORRROORROOOORRRRRROORORRRROORRRRRORRRRRROOOOOOOOOORORROORRROOROOOOOROORRRORORORRRROOROROORRRRORRROROOROOOOOOOOOORORRRROORORORROROOOROORRROOOROORROORRRORROOROROOOROROORRRROOOROORRORORRORROORRRRORRROORRORORRRORORRRROORORROORORRRRROORROOROOORRORROOORRRRROROOOOOORRORORROOOORRORRORRORROOROROROROROOOORROOOOROORROROORORRRRRRRRORROOOORRROORRORRRRRRROROOOOOOOOOORROOROORORRRROROOROROROROROOORROROROORORRORRRROOOOORORROOORRORRORRROROOROOOOORORORROORRRORRRRRRROROORRROOOROOOOORRRORRORRORRRROOORROORRROROORORROROORRORORROROROROROOROOOORORROORRRRRRRORRORRORRRROROROROOOOORROROOROOOOOROOROORRRROOOORRRRORRRROORRROORROORRORROOORRROORORROORORROOROORRRRROROOOROROROOOORORRROOOROROOROOOOORROROOORROOOORRORORROORRROOORRORRRRRORROOORRRRORORRROORRRRORRRRORROOROROROOROOOOOOORRRRRRRRRRROOORROOOORRRROOORROROORORRORRRORORROORRRRRORRRRROORRRRORROOOORORROOOORRORORROROROORORRRROOORORROROROOROROOROOOOROROOROOOROOOOOROROORORROORRRROROOOROOOROROORROOORRORROOOOOOORORRORORRRORORRRRRORRRROOORRRRROORORORRORRORRRRRROOROOORORRORRROOORRRRORRRRORRORORORRRRORORROORRRRRRROOORORRROOORRRRRROOOOOOROOOOROROROORORRROOROOROROROORROORRORROORROROORORRROORROROOOOORROOOOOROORRROOROORORROROOORRRROOORROOORRORROOORROORORRORRORROOOOORRRORORROOOROORROOOOROOROROOORRORORRRORORORRRRROOOORRRRRROORROORRROROOROOROORROOORORROROOOOORROORROOROOOORROROORORRRRROOORRORORORRRROOOORORROORRRRRRROOOOOORROOROOROOOROORORRRRRRORORORRRORROOORROOOOORRRRRRRRRRORORORROOROROROORROOROOROOROORROROOOOOROOOORRROROROORROOOOOROOOORRRRORORORROORORRRORRRROOORRROORROROOORRRRROROOORRORRORORROROROOOOOROOROORRRROORORRORRRRROORORORORRROROOOOOORROORORRRRORORRRRRRORRRROOOROROORROROOOORRRORRRRRROOOOORORRRROORORRRRORROROOROOOROROROOOOOOOROOOOOOOOOOROORRROORROOORRROORROOORRRRROOORORROOOROROOOOOOROORRROOOOOOORROOOORRRRORORORRORORROOORROOORROOORRRRRRRORRRRROOOROOOOOORORROOORRORROORROOOOORRORRROOORORROORRRRORRROOORRRRORRRORRRORORROOROORORRRORORRORRRROOOOOROOOORRORRRROORORRRROORORRRORRRRORORROORORROORROOOORROOROROORROORRORROROORRRROOORROROOORORRORORRRORRRROORROOORRORROOORRROROOOORORROOOOROORRRROOOORRRORRRROORROORROOORRROROORRROORROOROOOROORRRRROROORRRROOROORRRROORROORRRRRORORRRRRRRROROROOROOOOOOROOROORRROORROOROORORROOORRRORROOOOROROOOROOORRRRRRRROROORRORRROORRRROOOOOOROOROORROOROOROROORRRRRORORRROOROROROORRORORORRRORRROOOOROOOORORRRROROROOOORROROOOORRRRRROOOROOROORORRRROOROROORRRRRORRORRRROORRRRRORRORROORRRRROORROOOOOOORRRRRRROOOROORROROROROORRROROROORORRRRROORRRRRROORROOOOORROOROORROOROOOOOOORROOOOOORRRRROOROROROROOORORORRORORROOOOROORRORROORROOROOOOROORRORRRROORROROROOORORRRROOORORRORORRORORRROROOOROROOROOORROOROOOROOOOOROOOOROORROOOORRRRROOROROOOOORROOOROOOROOORRRRRRRROOORRRROOORORORRRORRROORRORROROORRORROORROOROROOOORRRORROOOROROOROORRORORROORROOOOORRRROOORROORORORORRRORORRROROROOOORRROROORORRRROOOOROORRORRRROROORROORRRROOORORORROROORRORRRORORRORRRRRRROOROROORROOOOOOOOOORRORRORRRORRRRROROORORORRROOORROORROOROOOOOROOOORROOORRORORRROOOOORRROROROOROOOOOOOROOORRRRROOOROORORRRORROOORRROOOORROOROOOROOORRRORORROOORORROOORRROORRRRROORROROROORRRRRORORORROROROOOORRRRRRRORRRRRRRORRRRRROOORRRROOROORROROORRRORRRROROORRRORRORORRORROOOROOROROORORRROORRRORRORRRORRRROROOORORORORRROORORORRORROOOOOOOORRRROROORORROORRORROORRROOORRRRRRRRROOOOOOOROORROORRORROOROOROOOROOORRROROOORROROORROOOROOOORRRROOORROORROOOORORRORORRROOOOOROROOOOOOOOORRROROOROOROORORORROORORORORORRORRROROOOOORROOOOOOROOOORROOOOOOROOOOORRRRORORORRROOORRRROOROROOORROOROORRRROORORORORRORRRRORORRRROORROOOOORROOROOROOOOORRRRORROROOORRROOOOORRROORRRORRORRROOROORRRRRROOORRRRROORRORROORROOORRRRRORROOOOOROORRROROORORRORRRRRRROOROOOORROOOOOORRRORORORRORROORRRRROOOOORRRORORROOROOOOORROROOROOROROROOOOOOROORROOROROOROOORRORRRRRRROOORRROORROORROOORROOOOROOROOOOOROOOOOROOOROOOROOOROROOORRRROROOORRROOORROORRROROOOORRRRRRROROOOROOORRROOOORORRROOOOOOORRRORORROROORROOORRORRORORRRRORRORORORRORORROOROORROORRRRROROOROORORROORRORRRROROOOROORROOROROROOOROROOROOROROOOOOORRORROOOOROOORORRROROROORRROOORRRRRROOORORORRRRROORRROORRRROOROORROOORROROORRRROOOOORORRORRRROROOORORRRRROOROOOORRROORORROOOOORRRROROOOOORORORORRRORRRRORORORROOROOORRRORORROORROORROROORORROROOOOOOOOOROORRRRRRORRROORORROOROROROOOOROROOROOOOROOORROOROOORRRORORORROROROORRRRORORRROORRRRRRORRRRRROOROROOROROOOORROOROORRRORRORRROOROOORORRORRRRROORORROROOROROOORORRROORORROOROROOORORRORORRROORRRRRORRRROROOOROOOORROORRORRROOROORROOORROOOROROOOROOOOOOORORORRRRRROOROROOOOORRORORRROOOORORROOOROROORRROOOROOORRORROOOROOORRROROORRORRRORORORRRRRROOROOOROORRROOROORROORROOOROORRRRROOORRRRRRRORORROROOROOOORRORRORRRORRRRRRRRORROOROOORRROROROOROOROOOOROORORRRRRROOOOORROORRRRRROOORROOORORRORROOOORRORRRRRRORRRORROOOOOROROORORRRRRORROROOOOROOROROOOOOROOOOROOROROORRROOOOOORORROORRORORRRRORRORORRORRRROROOOOOROORRRORRRRORRRROORRORROORRRRRRROOOOOROOROOROORRRORROROOOROOROOOORRROORORORORROOOOOOORRRROOROOOROORRRRRRORORRROROROOROOOROOOROOORRRORRORRORROOROOORORORORRRRORRORRRRRRRRORRROOORROROORRORRRORRORROOROORRRROOORRRRROOROROORRRRORROORROROOORRRRRRRROOORRRRRRRORROORROORRRORRROOROORORRORROORROORRORORRRRRRRROOROORROOOROROROROORROOROORORROORRRORRROOROROOOORROROORRRRRRRORRORORORORRRRROOOOOOORROOROOORRORRORRRROORROROOROROROORROOOROOOROOROORORROROROOOORRRORRROOOOOROROOROOOOORORRRORRORRRROOORRRORORRRROOOROOROOROORROOOORRORRORRORROROOORRRROORROOORRRRRRORRRRROROORRRORROROOORRRORRORROOROROOOORRROROORORRRORROOROROOORORRRORRRRROOORORROROORRROORRRORROOROOROORRRRRRROOOROOOORRRROOOOORORORORROOROOORRROOORORROROROROORORRROROROOOROORROORROOORROOOOOOROOORORRROOROORORRRROOOOORORORORORORRORROROROOOOOOOORRRRRORRORROROORROOOOROROOOORRRORROOROOOOORRRORROORROOOORRROORRORORRRORRRRRRRROOROOORRROORRRRROOOROOOOORRORRROORRROOORRRRRROROROOOROOROOOOOOOROOROROOROORORRORORRROORRROROOOORROOOORORRRRRROOROORORROROOORRROOORRROOOOOOORRRROORRORROOORRRROOROORRROORRORRORRORRRRRRORROROROORRORRORROORRRRRORRRRORROROOORRRRRRRROROROORRRROROOOROOORRRORRRRRROROOOOOOROORROORROOORORRORROOROROROROROOORRRRORROOROORRRRROOORORROROOROOROORROOOROOOOOOOORORRRRROOROOORORORRRORRRORORORORORRRROOOORRRRRRORROORROORROOROORORROOOORRORRORROROROOOROORORORRRRROOOROOROROOROROOOOOORROORRRRRRRRRRROOROORROOROROROORRRRROROOROORORRORORROROROROOOROOOORROOORRORROROOOOROOOOROROOOORRRRRROORRRRROOOORROORRRRROROROORORROOOOORROOORROOOOOROORROORRRRRRRORROOROOOROROROROOROORRROOOOOORROROORRROROORRORORRRROORRROOOOOOROOOOOOORORROORRROORRRRRRROOOOROROOROROOOOOROOOORRORRORROROROOROOOOROROORROOORRRRORRRORROORROROROOROOOROOORRRRRROOORROROORORORRROROOOORROOROOOOORRORROOOORORROORORORRORORRRROOOORRORORORRROOORORRRRRORORRORROOOOOOORORRRROOOORORROROOROOOOORROOORROORROROROORROROORROOROOOOOROORORRRRORRRRORRROROORORRROROORRRORRORORRORRROORROOOORORRORRRRRRORRRROOOROORRRRROROOROOOROOROORORRORRRORROOROOOOORRROOOORROOOORORRRRRORRROORORORRORRROOROOOORRRRRRRRROORRRRORORRRRRRRRROORRORORRORROOORROROORORRRRORROOOOROOOOORORROOROORRRRRRORORROOOOOORRRORORROOOORROOOROOOOROORRROORORRRRORRRROORROOOORRROOOROOOROOOOOOOOOOOORORRROOORROOORRROORRROOORRROOROROORORRRRROROOROROOOORRRROOORORRROOOROORORRROROOORRRROORRROROROOORROOORRORRROOOROROOOROORROORRRRRROOOOORROROROOOORRRROORROOROORROROROORORRRORRROROROROORROORRORROOROROROOOROOROOOORRRRROOOOOOOORRROOORRRORRRROORRRRRRROORRROORORROOOOOOROOROROOROOOORRRROOORORROOORRROROOROORRROROOROORRROOOOOROOROORROORRRRRRRROORORROOORROROROOOROOORROORRORROOORROOOORORRRROROOOOOROROORRROOOROOOORRORRORRRRRORORRROOOOOOROORRRROORROOOOOOROORRORRRORRROROROROOORORORORRORORRRORRRORRRRROROOOROORORRROROORORRORROROOROOOOOOOORROOORORROORRORORORRROROOORRROORROOOOOOORRRRRRRRORRORRROOOORRRRRORORORROOROOROORROORORORORRORORROORRRROORRROROORRRROROOOOROOOOORRRRRROOOOOROROOROOORROOOORORORRRRRROORRRORRROORRORROORORRRRRRRRORRRORRORROROORORRROORRORROROORROORRORROROOORRRRRRRRRROOOOORRRRRORRRRRRRROOROOORRORROOORROROORORRORRRRRRROROOOOOROOROOROROROOOOROOROROORROOOOORORROOOROOOORROORRROORRRRRORRRORROROOOORRROROROORRRORROOOOOOOROOORORORRRORRRRROORRRRRROOORRRRRRRROROOOORORRORRRRRORRORRRRRRORROROOROROOOOROOROORRRRORROROROORRRRRRORORRORORRRRRORORRORRRRRRRRRRRROOORORRROOROOOORRORRORRORRRRORRRORRRRORORORORORRRRRRRROOOOORRRRORORRRRRRORORRORROORRORORORROROORROOROOROOOOOOORRRRRRRORRROORRRORORROORRROORRRROOROOOOOOORRORORRRRROORORRRRRORORROOORRROOORORORRORROOOOOROOOOOOORRORROOOROORROOROOORRROROOORRRORRRRORORRROOORRORORRORRROOOOORROROOOORRORORORRRRORRORROOORRRROOORRRORRRORORROOROORRROOOROROROROOOORORRRROORORRRORROOOORROORROOOROOROOROOOOROOROORROOOOORRRROOORRRRORRROROOORORROOORRROOROOOOOOOOOOORORROOOORROOOROORORRRRROOOORORROORORRRRRROROROORROOOOORRROOOOOROOOOORORRORROOOORRROROORROOORRROROOOOROROORROOROORRORORRROOORORROOORRORORRROORRORRRRRRRRRRORORRROOOOROOOROROOOROOOROORROROOROOROOOROOOROROROROOOROOOOOORRRRRRROOROROOORORROROROOORORORRRRRRROOOORRROOROORRORRROOORORRRRORROOOORRORORRROORRORRROOOOROORROOROROORRRRRRROOOOROOOOORROOOORRRROOOOOOOOOORROOOORRROORORRRRRORRROOOORRRORROOORRRROOROOROOROROOORRROROROORRRRRRROOOOORORRRRROOOORROROORRORROORORROOOOROOROROOOOOOROROORRRRROOOOORRRRROOOOORROOORORORROORROOORRRORRORORORRRROOOOORRORRRRROOOROOOOORORROOROOOROOOOOOOOOOOORROOORRRROORRROOORRROOOORRRROROORRRRRRRRRORROORORROOOORROOROOOROOOOOOROOOOROORROROROROORROOORORORRRRROOOOORROROOROORRRRRROORORRORRORROOORRORRROROROROOROORORROORRORRROORORRRRRROROOOORRRRRRROORORROROROOROOROORROOORORRORROOOOORORROOOROOORRRRROOROORORROROOOROOOORROROROOROOOOOORRORROORRRROOOROORROORROROROROROOOORRRROORRRORORROOOOORROOOORRRROORRRROOOOOROOOORRRRRORORORROORORROROROROORRROORRORRRRORROOOROROROOOOOORRORROOROOOOOORROOOORROOROROROROOROOOORRROOOROORRROROROOOROROOOOORRRORROOOORRRROOOOROOOOORORRROORRRRRRORRRRROROROORRROOORRORROOOOOOORROROORRORRROROOORROOOOOROROROORRRROROOOOORROOOROORRRORORRROROORRROROROROORRRORRRRRRRROROROOOOOOORORRORORROOOOOOROORROROORRROORROORORRRORORORORRRORRROOOOORRRRROORRRRROROOORRORRROOORRRORRORRORRORROOOORRRRROORORORRROORORRRORRRORORORROROOORORROOROROOOOOORROROOOOROOOORRRRRRROORROOOORRRRRRROOORRRROORROORROOOROOORRRRRRORORRROROOOROORRORRROROROOROROROOOOOOROROOOOROOROORROROOOORORRRROROOROORRRORORRRROOOORRROORRORROROROROORRROORORRROROORRRORRORRRORRRROOOOOROOOORRRROOROORORORROOROOORRRRORORORRORROOORRORRRROOOORRRRRRROROOROROORRROOOROORORORRORRRROROORROOROOOOORRROORORRORRRRORRROOOORORRROOOORROOOORRRORRROOROOOOOROROORROOOOOORORRORROORRRRRRROORROOOORRROORROOORRORORRRORROROROOORRRRORRRRRROOROOROORORROOORORORROROROOOOOOOOORROOOORROOOROORROORRRROOORRROOOROROOOROOOROOOROOOOOORRRORRRRROROROROOORORRROROROOOROORRRRRRRRRRROROORRRRRROROROROOOOOROORORRORRRRRORRORRORROROOOROROOORORRRORRROROORORRRRROROOOORRROOORROROROOOOORRRRRRRORRRORRORRROOROOOOORRROOROOORROORROORORRRROOROROROOROORRROOROROORORRRRRRRRROORRORROOOOOOORRROORORRROOROORORORORROROROOOROOOROOROORRRRRROORROOOOROORRRROOORRRORRRRRORROOROROOOOORRRRRROOOOORROROORRROOOOROROROOROOOOORORRRRRRROOOOORROOOROROOOORRRROOOROOROOOOORRRROOORRRROORRRRORRRORORRRROOOOROOOOROOOORRORRRORROORRRRORRROORROOOORRRRROOOOORROROOROROORRRORORRRRRORROORROOOOOORRORROORORROOROORRRORRRRROROROROORORORRRRROOOOOOOOROOORRRROOORRRROROOOORORORORRRRRROORORROOOOOOORRROOOOROOOOOOOOOOOOOROOORRROROORORORRORORORORROROROOOOOOOOROOOOROROORORRRORROORRORORORORROROROOORROROORORRROORORROROOORORRRRORROROORRROORORRRRRROORRRRRORROOROOORROORRRORRORRORORRRORRRRROROOOROOORROROOOROOORORROOOOOOORORORROROOROROROORRRRORRROOOROOOROROROOOOOROROROOROORROROORRROORROORORRROROOOORROROORORORRORORRORRRORRORRRORORRRRRRROROOROOOOOROORRRROROOOOROOOOOOOROOOORRRORROOOOOOOORROOORORRROOORRROROOROOORRRRROORRRROOOOOORRRROOOORROOOROROORRORROROROROORRORORORROROOROOOROROORORROOROROORORRORORRROOORRROROOOROORROOORRORROORROOOORRORROORRRROOROROROOOOOORROOORROOROOOROORRRORORRROOORORRORORRROORROOORRORROOOOOORROROORROORROOOORRROORRORORRROORRRRORRRORROOROOROOORRORRORRORRRRRROROORORORRRORROORORROOOROOROORORORROORRRROOROROOOOROOOORROOOOROROOORORROORORRRORROOORRORORORROOORRRRRROOROOOOOOORRROROOOOOORRROROORORRORORORORRRRRORRROOOOOOOORRRRRRROOOORROOROORRRRRORRROORRORORRORORROORRRROOROOOOOOOOROOORRRRROORROOOOOOORROORRROORRROROORORRRORRROOORRRROOOORRRORROORRRROROROOROORRORRRORORROROOOOROOOROOOOOROROOOOROOOORRORROOORROOOORRROORORRROORRRRRRRORRRRRRRORORRORROROORORORRORRRRRRRRRROROOOOOOOORRRORRORROORRORRRRRROOORRRRROOOOORRRRORROOROOROOROOOORROOROROOROOROOROOOROROOORORROOROOOORRRORORRROROROROOORRRRORORRRORORROORORROOOORROORRRRRROROROOOOROOOOOROORRRORORRORROOROOOORRRORRROOORRORROOOROOOOOORORRRORRORRORORROROOORRROOOROROOOOOORRORROORRRRRROOORROOORORROROROROOOOORRRORROORRRRRRORRRROORRRROOORROOROROOOROORORRRROORRRORROOORROOORROORROOOOOOROOORROOOOOROORORRRRROORORRRRORRROOOORRROORRROOOOOOOROROORROOROOORRORRORRRRROROROOORROOOOOORORROORROOOOOORORRORORROROOOORROROOORROOORORROORORORRORRROROOROOORROROOORROROORROORRRRROORROOORRRORRRORROORRRORRRRROORRRORORRRRRORROORRRRRRRORRROROROORRORRORROOORRRRROROOORROROROOOROOROOOOOORROOOOORRROOOORORROOOOOROROORORROOORRORRORORORRRROORRRRROROOOOORROORROOOORRORROOOROOOOOROROROROOORROOOOOOORROOOROROROOROOOOORRRORROROROOOOORRRRORORORRRRRRORROOORROORRROOOOOOOROOROOOOOOORORRROROROORROOORRORRROOORRORORRRRRROROOROORRRORRRROOORRRRORORROROOROOOOROOROORROOORROORORRRROOORROOOROOOROOOROOOROOORRRORROOOROOOOORRRORRRRROOOORRRORRRORORORROOOROOROOROORORORORORROROROROORROORRROOOOOORROORROORROROOROROOORROORRRRROOROROROOOOORRRORRROOORRROROOROOOORRRROORRRRRORRORRRORROOORROOOORROORRRRROOOROOOOOORORORORORORORRROOROOORRRROOOROORRORORRRRORROORRRORORRRROOORRRORORRRRRRORROOOORORRORRORORRRRROOOROORROORRROOROOROROROOOOOORROOOOROORRORRORROOOROOOORRRORROROROROROOORRORROOOROROROOOROORROOOROROROROOOOOOROOROOROROOOROROROROOOORORRROOORRORRRRORRRRRORROORRROORRRRRORROROOROROOROORRORORROROOOOOORRORRROORROROOOORRRROOOOORRRRORROOROOOORORRRROORORROOORRRROROORRRRRROORRORROOROORRROOROORROOOOOROORRRRRRROOOOOROORRRRORRROOOOOORROOOOOOORROOOORRRRORROORRROOOORRROORRROORRRRRORROOROROOORORORRORORRRRROOROORRORROOOORORRRORROOROROOROROOORRRRRROOORRRORRRRRORORRROROORRORROROOORRRROOOOOORROOOOORRRRRRORORORORRORORORRROROOORRRRRRRRROOOORORRRROORRORORRROORRORROOORRRORRORROROROROOOOROOOOOOOORRRRORROROOORRRRORORORRROROROOROORRROROOOOROOOORORROROOROORRRROOOORROOORRROOORORRROOOOORRORRROOOOOOROROORROOORROROROROOROOROORRROORROORRROOOOORROOOORORORRRORRORORROOROOORROROOORRRRORRROROOOOORORORRRRROROOORRORRRRORRRROOOROROOORORROORRRRRROOROOOOOORROOOROROORRORRRORROORRRRROROROORROORRROORRRORRRRROOROOOOROORRROOORORROOOORRORROOOOORRRROOOOROROOOROOORRRRROORORORORRRROOOOORORORORRROROOORROOROORORROOORRORRORRRRROOORORROORRROROORROOROROORORROROOOOROROOROOOOOOOOROROOOOOROROOOROORROROOOOROROROOOOOORRRRORRRRROOORROOORROORORRROOORROORROROOORRRRROROOROOOROORRRROROROROOOOROORRROROORRROROROOOORORRRRRROOROROORROROOROOORORRRORROORRORORORRROORRORROOORRRRROOROOOOORRRROOOORROOOOOROROOROOOOORROROOROROROROOORROORROOOOOROROORROORORRROORRRRRROORORRROORROORORORRORROOOROOROOORORRORRRRROORRORROOOORRRRRORORORROROORROOOOORRORRROOORROROROROORORORROROOOOOOROOOOOROOOORORRORRRRRRRORRROOOOOORRRORORRROORORRRRRROOOOORORORORRRRRRORROORRORROOOORRROORRORRRROROOOROOROORRRROOOROORRROOOOORORRROOOOOORRORROOOOORROOORRROOROROOORRROORRRRRRORORRORORROOROOOORRROOORROROROOOORROORORRRORORORORORORROOOROROOOOOROOOOORRROROROOOORORRRORRORORORRRORORRORORROOOROROORRRRROROOROORRORROOOOOORORORRRORROORROOOORRRRRROOORROOORORRRROROROOROOOROORROROOROOORROOROOORRRROORRROORRORRROORRROROROOOOROORORROORRRRRORROOOOORROOROROROROOOOORRRRRROROOOROOROOORRRROROROOOORRORRROORROORRRRORRORROOOOORROOROOOOOROORRRRROOOOOROOORRRRORORORORORRRORRRRROOORROOROOROOORRROROORROROOOOOOROOROROOOOROROOOOROOOOORRROORRRROOOORRROORRRROOOORRRRORRROORROROOOROROROOOOORROROOROOOOORROROORROROOORROORROROOOORRROOOOORROORORROORORORROOROORRORRRROOOOORRORORORRRRORRROOOROOOOOOOROOORORROORRORRRORROROORRRRRROORRRRORROOOORRORRROOOORROOOOOOOROOOOROOORRRROOOOORROOOORRRROOOOORRROORRRROROROOROOORRROROOORROOROROORROROOROOOORRROOOROROORORROORORROORROROROORROOORORRROOOOOOOOROOOOOORRRROOROORROOORRROORRROORRROOOROOOOORRROROOOROORRORROOORROOORROROROOROORRRRROOOOROORORROOOROOOORRRRRROOROOORRROOORORROOORRRRORRORRRROOORRRRRROOOORROOORROOROORROORRROOOOOOROOORRRRRORROOOORRROROOROOORRRRROOROORROORROOORRRRORORROOOOROORRRRORROOROOOOOOOORROORORRRRROORORORROROOOORRRROORORORORRORRROROOOOOOOOROROOROOOORORRRRRORROROROROOOORRRROORRROOOROORRRORRRRORRROOOROORORRORRROOROOROOOOOOROORORORORROORORORRRORORRROORORRROROOOOROORRROROOROOROOROOOOROORROOORRRORROROOOOORROOOOORRRRORROOOORROOROORRROOROOOOOOROORRORRRRRORRRORORRROOOOROROROOOORORRRRRRRRRRRRRRRROOOROROORRRROROOOOROORRORRORRORRRRRRROOOROOORROOROROOROORRRORRORROROOOROOOROOORORROOOROORORROOOROOOROOORROOOOOOOORORRRRRORORRRROOOORRRRROORRRORROOROORORORRORORRROROOOORROOOROOORORORROORORORROOOORRROROOOROROORROORORORROOROROROORROOORROOORRORROOOOROORRRORORRORRROORRROORRRRROOOORORRORORRORORROOOOOORROROORROROOORORRRRRRRORRROOOORROORROOORORORRRROROOROORROROOOROROOORRRROROOOORRROORRRORRORORRRROOORRORORROOOOOORRRROOOORORRORRRORROOOOOORRROORORROOORROORORROOOOOOORRRORORORRRRROOOROROOOROROORRROORORRRROOROORROORRORRRROOOROORRRROORROOORRRROOROROORROOORRRRRRROOOOOOOROOOORRORROOROORRORRORRROOOOORROOORORORROOORRRRRRRRORRORROOOOORORORRRRRORRORROOROORRRORRROORROORROOROOROOORROORRRRRRRRRROOROOORORORRRROROORRRROOOOOORROOOROROORRRRRRROROORROOORRRRORRRRORORRRRRRRRRROOOROORRRRROROORRORRRRRRRRRRRORRROROORROORRORRRRORRRRORROORRRRRROROROORRRRORRORRORROOROOOOOOOOOOOOORRORRRRRRORROORRRORORORROOOROROOOOROORROORRROROROOORRRROOOORRORORRRORRROORRROORRRRRRRRRORORRRRORROORRROOROOORRRRRROROOOOROOOOROOOOOOOORORROOROORORRROOORORORRRRROOORRRRORORRRORORRROOOORRROROORRRROORORRRRRROROOROOOORROOOORRRRRROORRORRORRORRRROOORROOOROOROOOOOROOROROORROROORRRRRRRORORORRROORRRRORRROROOORORRRRRRROORRORRRORRROOROOOOROORRORROORORORRRRRRRRRROORRRRRROORORORORRORRORROROOROORORRORRROORROOROOOROOOOORORRRROROORROORRROORROORROOOROORRORRORRROOOOROORRRROROORRRRROOORRORROORORORROORORORRRORORROOORORRRROORRORROORORRRORORRRROORRRORROROROROORRRRRRRROROROORRORROROOOORRRROOOROORRRRORROOORORRRORORRROROOORRORRORRRORROROOOROOORRRROORRROROORORRORROROORROROROOOOORROROORRROOROROOOOROORRORROOOROOORORORROOORROORRRROROOOORRROOOORRRRORROOOORRRRRRRRROORROROOORRORROROOORRRRRRROROOORROOROROOROROORORORORRORRROROROOORRORRROOOORROOOOOROOOOOOOOROORROROOOORRRRROOORRRROOOOROROOORORRROOOOROORORORRRRROORROORRRRORRORORORRRRRORROOROOORORORROORROROORRRRRRROOOORROOOROORROOORORORORRORRRROOORROROROOORROROORRORRRRRROOROROORORRROOORRORRRORORRORORRROROOOROROORRRRRRORRROOOOORRRRRROORRRROOOROOOOROORRORORORROOOROROOOORRROOROROOOROOOOROOORRROROOOOROOOORROOROROOROOOORRRROROOROOOORRRORRORRRRRORORRROROOOOOOORRRORRROORROOROORRRRRROROORORORROOOOOORRROOOOOROORROROORROORRORORRRROORORRROORORROOORROORRORORRRRRROOROOROOORROROROOORRORRORRORRRROORROORRRRRRRORRROROROOROOOOOOOROOORROROOROOOOOOORROOOORROOORRROOOORROOOORRRORRRRRROROORRRRORRROOROOORRORRORRORRRRORRRRRRRORRRRORORORRRRORROOOROOOOORRRRROOOOOROROOROOOROORORRRROROORORROOORRRRROOORRROROOOROORROOROORRROOROORORORORRRRROORRRRRRORORROROOORROROORROOROOOROOROORRRROROORRRRORRROORRRROOOORROOOROORRRORRRRROROOOROOROROROOROROOOOORORRORROOORRRRORRRRORRRRORRRROORRORORRROOORROORRRRORRROOROORRRRRRROROOORRORRORROOOOOORORORROOOOOORORRRORRORORRROROROROOORROOORRROOOOOROOORRORRRRRORRROOROROROOORRRORRROORROOROORROROORORROOORROORROROROORRRORRORORORROORRRRRROORRRROOORORORRORRRRRORORRORRORRORROROROORORROORRRRROROOOROOOOOROORORRRRRRROOROORROORRROROORRRRORRRRORRORORROROORORRORRROOROORROORRRRROOORORRROROOROOROROOOOOORRORRRORORRRORRRRRRROOORRROOORORORROROOOROOOOROOROROOOOOORROROOOROORORROROROOOOOOORRROOOOORROOOOOROROOOOOORRRORORRORRRRORROOROROOOORORORORROORORORROORROORROORRROOORORRRROORORRRORORORORROOOOOORRROOOOOORROROORRRRROROORRROOOROOORRRROOROORRRORROROOOROORRRORRRORROROOOOROORRROORRRROOOOORORROORROOORRRRORRRROORRRROORROROORORROOOROOOOOOROOOROORRRRROORRRRORRRRROOOROROOORRRORRORROOOOROOORRRRROOOORRROORROORRORRRRRRROOOOOOOOROOOOOOOROOROORRORRORRORROOOROOORRROORROOOORRORRROOROORORROROROORRRORORORRROOROOORROORROROROOOROOOROROOROOORORROORRRRRRORRROOOOORORRRORORRRRRROORORROROORROOORROOOORROOOOOOROROOOORROOROOOOROOORRRRORRROOOOOOORRRRRRRROOORRRROORROOROOOORORORRORORRORRRRRRRRROORORRRROORRORRROOOOORRORRRORROROOOROORRORORRORRROOROOOROOORRRROOOORRORORORRORRORROOOOOORRORROROROORORROORORRRRRROROROROROORRORROOOROOOOOROORORRORROORRORRRRORORORROOORRROOROOOROOOOORRORRRORORRORORRORRROROOOORROOROROORORORROOOROOOOOOOOORORROORORROORRROORRRORRROOOORORRRROOROORORRORROORORRRRROORRRORROOOROROOOOOOROROROOROOROOROOOROROOOROROORORRRROROOROROROOOROORORORRROROOOOOOORROORRROROOORROROOORROORORORORROROOOOORORORROOROOOOOORORRRRORRROOORRRROORROOORRROOORORROROROOORORROORORROORROROORROOOROOOORRRROORORORROOOOOORRRROOORORORRRORRROOOOROOOROORRORROOOROOOOOOOROOOORRRRRRRROOROROOORROROROOOROOORRRORRORROOORROOORORROORRRRRRORROROORRRORORRRROORRORROOROOOOROROOORORRRRRORROOOOOOROROROROORROOORORRRORRRRROOORORRRRORROOOOORRRRROORRORRRROOOORRROROOROOORROOOROROORRORROORRRRRROOROOOROORRROROOOROROORRRROOOOORROORROORRORORROORRORRRRRROOOOOROROOOOROORORROOORRORRORRORROOOORORRRORORROORRRRRRORRROOOOORRRORORRROOOROROROORORORROOORRRORRRRRRORRROROROOORORRRROOORROOOOOOROROOROORROORROORRROOOROORRRORROORRORORRROOROROOROROOOOROOOROOROORRORRORORRRROOOORRROORROORRRROOOOROOOOROORRRROOROOOOROROORRRROOORROOOOORRORRRRROOORORROOOOOORRRRROROOOOORRORROOORRORRROOOOROOORRRROOOOROOOOORRRRROROORRROORRRRRRRRROORRRROOROOOROOOROOORROOROOOOOORRORROOORROORRRORROOROROROOORRRROOROOOOORRRRRRRRRORORRRRROORROOOOORROOOOOOOOOORRRROOROOROOOORRROORORRROOOOOOROOOORROOORRROOOOORRRRORRRORORORORORRORORRROOORRORROROOORROOORORRROROOOROOOROORRORORRRORRROORORROOROROOOOROROORROOROOOOOOOOOROOORORROOORORRROROROORROOORRRRROOROORORRRRORRRORORORROOORRRORRRORRROORORRRRRRRRORORRROOOOORORRORROORRRRROROOROOROORORRRROROOORROROORRORORORROOORROOOOROORRROOROORRORROOROORROOROOORROOORRROORRRROOROROOOOOOROOORORRRORRORRRRRROOOORROOOROORRROROORRORRRRROOOORROOOORRRROORORROOORORRROORRROORRROOORORROOOROORORRRORRROOROROORROOOOOOORORRRORORRROOROROORRRORRRRROOOOOROOOORRORRROOORRRRRROOOROOORRROORRRORRROORRRORROROORRRROOOORRRORROOOOORRORRROOOORROROOORORROROORRROROORRRORORORRORRROOOROOOOOROOROOORROROOOORRORROROROROOORRROORROROOOOROOOOOROOORROORRRRRRRORRRORORRRROOORRORORRROORORRORRRROROOOOOROROROROOOOOORRRORRROOOOROOOOROORORRRRROROROROOOORRROOROROROOOROOOROOROOOOOORRORRORORRRROORORRROOROORRRROOORRRRRORROORRRORORRRORRROOROORORROORORRORORRROROOROORROOORORRRRROORRRRRRRRRROROOROROOORROOROORORROORRORRORRRROORROOOOROROOROROORORROORORROORRRRORRRORROOOOROORORROORORROOOOORRRRROORORORRRROROORORRRRORORORROOROROOOROOROOOOORORRRRROROORORORRORRROROORRROOOOOOOORORRROROORRRORRORROOROOOOORRROORROORROOROORRRRRRROORRROOOOORRRRROORROORROROOROORRRRRRORRRORRRRRORROOOOOROROOOROORORORROROOROOROORRRRRRRORRORRROORORROOOOROROROORRORROOORORROOOROOROROROORRORORROOOOOROOOOORRROOOOOROOOROOOOOORROORROOORRRRORORROORROORRORRRORRRORRROORRORORROROOROROORRORROROOOOROOOOOORROROOORORRROOOOOORRROOROOOORRRRROROROROOROOORRORRORORROOORRORROOOOORORROOOORORROORROOOOROOROOORRROOOOOOORROOROROORRRROOOROORROROOORRROOROROOOOROROORRROOORORROOOOOOOOORROOROORROOOORRROOOROOORRRRORORROROOORROOORRORORRRROORRORRRROORRORRRRROROOROROORORORROOROROROOOROORROORRRRORROROORROOOOOORORRRROOROROOORRRRROOOROOOROOOROOOOOOOORROORRORORRROOORORRRORROOORROOOORORRORRRRROOORORRORROOORROOOORROOOOOOOOOORRRROOOROORRRROOORRROOORRROORRRRROOORROOOOROROROOOORROROOOROOORORORROROROOOOROORRRROOORORRRROROOORORROROROOOOROORORRRROOOOORRRRORORRRRROROROOOROROOOORRRROOROOORRORORRRROROROORORORRRRRROOROROOOOORORROORRROORRROOROOROORORROOORROORORRORRROROOOROOORRRRRRROORORORRORRRRROORRORRROORORRORORROORROROOOROOOORORRORORORRORORROOROROOOORORRROROORRROOOOORORORORRRRORRRROORRRRORRRROOOORORORRROROOROOROOORORRRRORRROOORRROOROROROOOOOOROOOOOOORROOORRORRROORORROORRRORORORORORRRORROOORRRORRORORROROORORRORROORROOORRORRRRROOOOORROORRORORRROORRRRRROORROOORROROOOROOROORROOOROOROOOROORRORORRROORRORORROOOROROORRORRRRROOOOOORORRRRRROOORROOOROROORRRROOROROOOORORROOOOOORROROOROOROOORORRORRRRORROOOROORORROORRRROOROORORRORROORRRRROOROORRRORROOOORRRORROOORRORRORRRROOROOOOOORORRORORORORROOROOROORROOORRRRORORRRRRROROOOROORRROORRROOORROORROORROOOORORORRORRRORRRRRORRRORROORORORRROROORRORROOOOOOROORROROORROROORRRORROOOORRROOOORRORRORORRRRORRRRORRROOOROROROORRRORROOROOROOROOOORORORRORRORORROOROROOORORROOORROOOORORROORRORRRROROORRRRRRRORRORORRORRROOOOOOORRROORORRORRORORRRRRORORORORORRORRORRRRRRROORROOROORORRRROOROOOOOROOOOOOORRRROOORROOOOOORROOOORROROROOOOOOORRRORRROOOOOOORROOROOROORROOORROORRORROROROROORROORROOOOORRRORRRRROOORORRROROORRRRRRORORRROOROOOOORROOORORRROROROORROOOROROROOORROOORROOROOORROOROOOORORRORORORRROOROOOORORROROOOOOROROROOOOOOOORORORORRROOROROROROOORORORRRRORRRRRRORORORRRROORRROORROORORROROOROROOOOOOOOOOROORRRRROROORORRROROOOOROROROOORRRROROOROROOROORRORRROROORRROORORORRRRRORORRROOOROORROROORORORROORRORRRORROROROOOROOROROORRORRRORRROORROROOOROROOOOOOOOROOOOORRORRRORRRRRROROOORORRRRORORROORORRRORROROORROOROROOROOOOOOORROORROORROROROORROORRRROROOORRORRRORRRRRORORORRRRORROOROROROOOOORROROORRROROOROOORROORROOORRRRRRROROORROORROORRRRROORRROOOROORROOROROOORORORRRORRROORORORROOROORORRRORORRRORRRRORORORRROOOROROORORRRROORRRRRRROROOOORRROOORRRRRRRRRRRORRORRORRROOOROOOROROOROOROOOOOROOROROOROROOROROOOORRROORROOORRRRRORORRORORORRRRRRRRRRRRRORRORRORROOROROORROOROORRORROORRORROOOOOOROROROOROROROORORRROOOROOORRROOROROOOORROOOORORRRROOOORRROORRROORROROORORORROROORRRRRRRROOORRRORRRRROOOOROROOOROOROOORRROOROORRORROROROROOORRRRRROOOOORORRRORROOORORORRRRRORRORRRRRRORORROOORRROOOORORRORORRRRRORRORRRROOORORRROORORRORRORRORRROOOOOOORORRRRROOOORRORROORORROOORRRRROROROORORROORORROOOORROROOROOROOORORROORORRRORRRRRORROROROROORRRRORRORORRORROOROORROORROORROROOORROORRRRORROOORROROROOORROORROOOOOROOROOORRRORORORRRRORRRRROORRRORORORORROROROOOROORROROORRRRRROROROROORORROOOROOOOORORRRRRRRORORRRRORORROOOROOORROOROORRORRRROORRORRRRROROROROROROORROROORRRRORRRRROORROORRRRRORORROOROROOROROOROOORORORRRRRROOROOORRROOOORORORRROROORORRRRROOROOROORRRRRROROOROOORROOROOOOORRRORORRRRRRRRROOORRRROOROROROROORRORORRORRRRRORORRORORRORRORRROOOOOROOOOOOROOROORROROROORROROOORRRROOORRORRRROOOORORRRRRROOORROROOORORORROROROROOORRORROOOORRRRORROORROROOOOROOOROOOORORORRORORROROORROROOOORROOORRRROOROOORRRRORRRRRRRROROORRRROOROROOROOROOROOROOOORORRRRRORRROOORRORORROORRROOOROOOOOOORRRRROOROROOOOORRRRROROOOORRRORRRRORORRORORRRRRRROROORRRORROORRORORRORORRORROROOOORRORRRRORROROROORRRORRRRRROOORORORROOOROORORRRRRRROOROORORROOOOROOORRROORRRRRRRORORRRORRRROOOROOORORROOROORROROOOOORRRRRROORORORORROORROOROOORRRORRORRRROORRROOOROROORROOORRORRRRORROROOOOOOORROROROOORRRRRROORORRRORORRRROORRRROORRRROROORRROOROORRRRROROROOOORROORRRROOOORRRRORROROOOOORRROROOOROOROROROORRRRRROROORORROROOOROOOROROOORRORROROOORROOROORRRRROOOROOORRORRROORRRORRRRROOOOOOOORROORRORORROORROROOOROOORROROROROROOROOOORORROORRRORRORROOROOOOROROOOOORORROOOOORORRRRROOORRROORRROOORRRRROOROORRORRORORORRROOROROOORORROOROROORRORORROOROOOOOOOORROORORRORRROOROOOOORRORROOORRRRROOOOOOROOOORORROOOOOOOORRORROROOORRRORRROOOOOORRROOOOOOOROROOORROROROORRROOOROOOORRROROOOOOOROOORROOOROOOORRROOOROOOOOOORRROOORORRRORROOOOOOOROORRROOORROROORORROOOOORORRROOORROORRRROROOOROOOORROROOOOOORRRORORORROOORRRORORORRRRORORORRROORROORRROOORORROROORROORROOROOOORRRORRRROOROORROOOOORROROORRRRORRRRRRRRRORORROORRRORRORORRORROOROOOOOOORRRRROOROOROOOOROROORRROOORORORROORRRORRRROOOOOROOROORRORRRRRROOOOORORROROORRRROOROOOORORRORRRORROROORROOOORRROORRRORRRRRRROROORROOOORORORRORROORORRRORROROORRRROORROOOOOORROOOROOROROOOOOOOOORORRORORORROROOOOROROOORORORROORROROOORRORRROOOOORORRRRORRORORROORROOROOROORRROOOROORRRRROOOOORRRROOOOROROOORRRORRRRRROROROROOROOROROOROOORORORROROORROORROOOOOROROROORRRROROOOROROORRRRROOOORRRROORRORROROOOROORORROORRROOORORRRORRROOOORRRRRORORRRORROOROOOORRRRRROOOROROORROOROOOOROORRROOROOOROROROORRRRRROOOOROOOROORRRORORRRROOOROOORROOORROOOOORRROOOOROOOORROOORROROOOOOOOORRORRROOORRROROOORRORRROOORRROORROORORRORROORRROROOROOORRRROOROOORRROROOROOOOORRRORORROORRROROOOROOOOOROROROOOOORROORRRRRROROROOOORRRORRRROOOOOROROOROOOOROROORRRROROORROOOORROORRROOORRRORORRORORRRORRORRRRROROORRRRRRRORORORRROORROOOOOORORRRORRORRORRRORORROOOOOORORORROORORORRORORROORROOORROROOOROORRROOOROOORRORROORRRROROORRRROOROROOOORRORRRORORORROORRRRRRRROOOORRRROROOOOROORROROROORORRRROOOOOROOORRROROROOORRRRORRRRRRROOOROORRRROOOORORORROORROROOROOOORRRRRRRROOORORROORRRROORRRROORRORRORORRROOOOOORRRRRROOOOOOOROOROROOOOOOORRRRRRRRRORRROORORRRRRRRROOOORROOROORROOOOOOORORORRORRORRRRORRROORROROROOORRRRRORRRROOOOOOROORORRORRORORRRRRRRORRORORORORRRROOROORRROOROOROORRORORROORRRORRRRROOOOOROOORORROROOOOORORROOROORORORRRROOOOROOOOOORRRRORRROOOROOOOOOORROOOOOOORRRORRORORRROROROROROORORRROOOROORRRORRRRRROROOOOORRRRORRROOOROOROOOOOOOORRROROOOOOOROORORRRROOORRRROROORROORRRORRRROORRORRRORORRORROOOOOROORORRORRROOROOOOOOROOOOOORRRRROOOORORRROROOORRROORROOORRROOROROROORRRROROROOOOOROOOROROOORORRRORRORROORROOORRROORROORRROROROOOOOROOOROOORRRROOOOOORROROROOORRRRROOOOORROORRROOOOROORORRRRORRORORRROOOORRRRRORORRRORORROROORRRORRROOOOOOORORRRORRROORORROOOOORRORORORRRORORROOROOORRORRRROOOROOROOROOROOROOORROOOOORRRRROROOORRRRRROROORRRRRROORRORROORRORRRRRORRORRROOROORRRORRRROOOORRORORRRRRORROOOOOROORROOOORROOROORRORROROROROROROROOORRRRRROROROOORROOROOOOOROOOOORROOROOORORORORROORRROORROORRROOORRORORROROOROROOROOOOORRRROOORROROOORRRRORRORRRROOOROOOOORRRRRRRROORORRORORRORRROOORORRRRROROOROROOROOOOROOOOORROOOROOROOOORROOORRORRROROORRRRROOOORRRORORRROROORRORROOOROOROORROOROOOOOORORRRORROORRRORORRRORRRRRROOORROOROOOROROORORRRRORRORRORROOROOOOOORROROROOORROROORROOROOOROROOORRRROROOOOROOORRRRROORROORRROOOOOOOROOOORORORROROOORROOOOROROOOOROORROORROOORROOOOOOROORORRROROROOROROORRRORROOOROORRRROROOROORRRRORORRORRRROOOORRORRROOOOORRORROORROROOROOOORROORROROROROORRORORROOOOROROOOOOOROORORRROROORRRRRROOOROOORRRROORORRROOOROROOOOOOROOOORRROROORROOORORORRROOOROOOORRROOORROOOOORRRRRRORROOROOORORROROROORORORRRORROOROOOOORRRRORROORORORORORROORRROROOORRROORROOOROOORORRRRRROORORROOOORORORORORORORRRROOOOORROROOORRRRROORRROROOROORORORRROROOORRRORROOROORRROORRRROORROROORRORROORORROOOOOORRORORRRRRORORROOOORROROOOROORRORRRORRORRRROOORRROORROORRROOROOROOROOOOORRROOROOOROOOOOROROORROOOOOROROOROROOORRRRROOOORROOROROORROOOORORROROOROORORRRRROORORORRROOOROROOOOROORRROOROOROORROOROOORRROOORRRROORROOOOOROROORROROROOOORRRRRRORROROOOORORRORROOROOORROOROOORRORROOORROOOOROORROOORORORROROORROROROOOROROOOROOORRRRRORORRROOOROROORROOROROORRORROROROROORRROORRRORRROROOOOOORROORROORROOOORRORRRRROORROOORRORORORRRRROOOORORROOOORRORORRRRORRRORRRRRORRRROORORORRRRRORROORROROOROOROOROORRROROOROOOOROROORROROOORRRRRRORROOOOOORRRORRROOROORRRRORROORROOROROROORROOROROORRRROROORRROORROORROOOOORROOOOOOOOOROOROORRRRROORORROROOROOORRROORRRORORRROORRROROOOORROOOOOOOOROORROROORRRRROORRROOORRROOROOOORRROORRRRRORRRRORRROORORRORORORRORORRORROOOROOOOOORORROROOOOROOOROORROORORRROORRRRORRRROOOROORROOOOOORORRORORRROOOOORROOOOOROOOROORROORROROOOORROROORRROROROOORRRRRRORRRROROORORROOROOROOROROORRORRRRROROORROORRRORRORORRRRRORRRRRORRRROORRRRRRRROROORORRORRORROROOROOORROORRORRROORORROORORRRORORROOOOOOROORRORORRRRROOROORORRRRROOROOOORROROROOROOOOROROROOROOOORORORORROROORROOORRORRRROORORORRRRRRORRRROOROORROROOOOORRROROOOROOROOOOORORRRRRORROOORRRRORROORRRROOOOORRORROROORROROORORROORORRROROROORRORORRRRRORORROOORRORRORROORROORROOROROROOORRROOOOROROORORROOORROORROOROOROORRROORROOOORRRROOROROROOOORROOOROOORORROOOOOOOOOOROORRRRRRROOROROOROORRRROROOORRORORRORRORRRRORRROOOOORORROOOORROORRORRROROOROORRRRRORORRROOROOOORORRRROROOROROOOOOROOROORROOOORORRRROOORROOORORORRROOOOOORROOORRORRRROOROROOOOORROOOORRRORORORROROORRROOORORRRRRORORROOOORRORRROOOORRROOOROORRORRRRROORRRRORROOROOROOORRROORORRORORORRRRROORORRROROOROORRORROOORROOROOOOORRRRRRROOOORROROORORROROROORRRORROROORRROORRRROOORROORRROOROROORRROOROORRORROORRRROORROROOOORORROOOOOROOOOROOROORORRORRRORRRORRRORORRORRRROORRRROORROOOROORROORROOOOROOOORROOOORROOORROOOROROORROOOOROROOORRROOROROORROORROOROOOOOROROOORORROORROOOOORRROOOORORORROROROOOOORRORORRRRRRROOORRRRORORRRRRRROORROOOOOROOROOROORORORORRORRORROORRROOOOORRROROOROOOOROOORRORRRORROOOROROOOROROOORRRRRRRRRORRORROOORRROOORORROORORRRRRRRRORRRRRORRORRRORRRROOROOROORRORRRROROOOOORORORRORRRRROORORROOROOORORRROORROOROORRORROOOROOORRROOOROORRRORRRROOROOORRRORRRORRORORRROORRRRRRROROOOROORRORRROOOORROOOROORROOROOORROOORORROROROROORROROROORRROOOOOORROORORROOOOROORRROROOROOORRROOROROORROOORROOROORRROORRRRROROROROROORRRORRRRROORROOORORROORROORRROOROORRRRRRROOROROOROOORORRORRORROOOOOORORROORROOOOOROOOOOROROOROOORRORRORORROORROORRROORRRRORRROOOOROOORROROOROROORROOROORRORORORRROOOORORORRORRRRROORRRRORRRRORROOROORROORORROOROROOOOOROORRORRRORORROOROOROROORRROOROOOROOOORRRROOOOROROORROORORORRROOOROROOROORRROOOOROORROROOROORRRORORORRRRRORORROROROOOORROOOROROOOORRRRRRORROROROOORORROROORROOOROORORROOOOOOROORROORRRROORRRROOOOOROROROOOROROOROROOOORRRRORRROOOORORRROROORRROOORRROOROOOOOORROORRROOOORRORORRRRRRROROOROROOOROOOORRROROORRORRRORRRROORRRRROROROROORROOOROOROOOOORRROROORORORORRRRRRORROOOROROROOROOORROOOROROORORRRRRROORROOOROORRRRRRROROOOOOROROORORROOORRROORORRRRRORRORORRRROOOROOORRRRRORROROORORROORRRORRROOOORROORRORRRORORRRRRRRORRRORRRROORROOROOROOOOROORRORRRORRRRORRRROROROROOORORRROORRORORROROROOOORORORRRROOOOOORRRRRROROOORORORORROOROORRROOROOROOROOORRRRORRRORRROROROOORROOOORRRROOROOOOOOOROORROORRROORRROROOROOOORRROOOROROOROROORRRROOOORROOORRRROOORRROOOORORROOROROROORRRRRORRROOROOOOROOOOORRROROOOOOOOOOROOROROROROOOORORRORORRROOROROROORORRRRROROROROORORRORRROROORRRORRORROROORRRRORRRRROROROOOROOOROOOROORORROORROOOOORORRRRRROOOROROORROOORRRRROOOROROOROOROOROOOORROOORRORRROOORORRRROOOORROOORORRROROOOOOORROOOOOOORRORROOROROORORRRORRRORRROOROROORRORROROOOROORROOROOORORORRRRORRRORRROOOROOOOOORORORRRRRRRRRRRRRRRRROORRROOORROOOROORRORRRRRRRRRRROROORORORRROOOORRORROOROORORORRRRROROOOROOORROROROORROOOOOORORROROOORROOROORRRORORROORROORORRRORORORROORROORORRROOOROOOROOROOOOROORORRRROORRORRROOORRRRROROROOORRORRORRRORRRRRORORRRRORROOROROOROORRORORROOORROOROORRORROOOORRRORRROOORORORROOROOOOOOROROROOOOOORORORRRROOORROOOROOOOROROOORRROROOOORRROOOROROORRRROROOOROOOOROORORROROROOOOORRORROOORRROROORRRRORRRORRRORRRRRROROROOROORRROORORRROOROROORRRRROROOOROOOROOORORORRROROOROOROORROOOOORRORORORRRORROOOROOORORRORORORORRRRRORROROORRRORORRRORRROORRRRRRROROORROOOOOROROOROOROOOORRORRORORRRRRORROORROOOOORRRROORORRRRRORRRROORORRORORROORORRRORRRRRROOROORROOOOORRRORORRRROOROORRORORRRRROOORRRORORRRROOORROOOOORORROOROROORROORROOORRRORRROOOOOROOORRRROOOOORRORORROROORORORORROROOROROOOOROOOORROORRROORROROOOORRORRROOOOORRRRRROORORRRROROOOROOOORRROOORRRORROROOOOOOROOORRROROOROOOOOROOOOOROOOORORRRRRRRRORORRORRROROROROORRROOOOOOOOOROOROOOROORROORROROOROROORORORROROROROORROROROOOOROOOOOROROORORRRRORORROOOROROOOORROOOOOORRRORROORRRRRRROROORRRORORRRRORRORRORORROOOROOOOROOOOOOROOOOROROOROOOOROROOORROROROOOOOORRROORRRRORROROOOROORRORROORRROROOORRROROORROORROOORORROOOOOORRRROORORROOOORRORRROROOROOORRROROORROORORORROOOOORROOOORRROORROOOOOROOOORROOOORRORORRRORRRORROROROOOOROORROOOOORRRORRRRRRROROOOORROORROORRRRORROROOOOROORROOORRRROOOORRRRRRRRROOROROOOOORRROOROOROROOROROORORORRRROORRRROROROOOORRRORROOOOOOOOOOROOROORRRORORRRRRRRRRORROOORROORRRRORRRRRRORROOROOORROROROORROOROORORRORRRROOOOORROOOORORRROOOORRORROORRROOORRROOORRRRRORRROOOROORRRORROOOORROOOOOOOOORRORORROROOROORRRROOROOORRRROOOROOROORROOROOOROORRORRRORRORORRORORORRORROOORORROROOROROOOORRORRRROORRORRRORROROROORROOOOORORROORRRRROOROROOROORORROOROROOOOORRORROOOROOORROROOOOOROOOORROROORRRORORRROOORROOOROORRRROORRORRORRRROOOORRRROORROOORORRRORORROOOOROROROOORRRORROORORROROOOORRROORROOOOOROORRORORRRRROROORRORORROROOORROOOORRRORRRROORRRROOOROOORRROORORORRORROORORORRRROOOOOROOOORRROROROOROROORORRRRRORROORRROOROORRORORRRRROROOROROOROROOROOOOROORROORRORRROOROORRRROROORRROORROORRRRRRORRRRROORROROOOROORROOORRORRROROOOOOORRRRORRRRROOORRRORRRORRROOORROOOOOOOROORROOOORORROROOOORRORORRROOOROOROOOORROORORROOORRROROOROORROOOOORRRRROORROOOORROROOOORRRROOOROROOROROORRROOORORRORRRRRRROOORRRORRRRRORRRROORORRRRRRRORRROORROORRRRRORROROORROOROORORROORRORRORRORRRRRROOOORRRRORORROOOOOOOOROOOOOOROOOORROROOOOROORROORROORROORRRRRROORORORORORRORRRORRRRROOOOOOOOORRRORORROORORRRRORRRRROOOROOORROORROOROORORROROOOOOORROORRROROROOROOORRORROOORRRROOROROORRROORRROOORROORRROOOROOOROOORROROROOORRRORROORORRROROROOORROORRRROOOORRORRRROOROOOORORORORORRORROORRORORRORORRROOOORROROOOOOOOORRORRORRRORORRROOOOOOROROROROROOOORORROROOROOROROROORROOROOROROROOORORROORRRRORROOOOORRROOROROOOOOOROROORROOOROOORROROORROORRRROOOROOORROOOOORRORRRROORRRORRRRRORRROOROORRRORRRRRROROOROORROORROROROORRORROOROOORROOROOOOORROROOORRORORROOOROOOOORROOORRRROOORRRROORRROOOROROROORRROOORROOORORORORRORORRRRRORRRORORORROOOOROOOOROOOROOROORRRROORRORRROOOROROROORORRRRROOROOORRORRORROROOORORORRRORRORORROROORORRRRRORRORRRRORRRORRRRROROORROORROOROORRORRORRORRORRORORORRRRORRROROOOOROOROROORORRRRRRRRRRRORRRROOOROOOROORORRRROROOOOOOOROOROOORROORORORRRRORORORORORORRROOOORROROOOOOOROOORROORROORROOOORRRRRORROOORROORROROROOORRRROOOOOOORRRROOOOROORORROOORRRRRROOORORRORROROROOOROOORRRORROOOORRROOROROOOORRRROOORRORROORRRORRRROOORRROOOROOROROORORRROORORROROORRORROOOOOROROROOOOROROROORORORROORORORORORRROROROORRRRORRRRRRRORROROORRRRRRORRRRORRRRORRRRRRRRRROOOROOOOROOROOROOROOROORORROROOORROORRRRROROROROOORORROORRRROOOORRRRORRORRRROORORRRORRRRRORORORRRRRORRRROROROOORORORRORRROOOROOROROOROROROROROOOOROORROROROOOORROOROOROOOORORRRRRRORROOOORROORORROROOORRRRORRRRORROROROROOORROORROORRORRORRRROORORRROORRRRRROOROROORRRRRRORRROROOROROOROOORRRRROROORORROOROOOOROOOORRRRRORRORRRRRROOROOORRRORRROORRORROORRRRROORORROOOROOROOROOOOOROORROROORRROORORRRROORRORRROOOOOROOOORRRROOOOROOROOOOOROORROORROOOROROORRRROROORORORORRORRRRRROROROOORRORRRROORROOOOOORRORRRROROOOOROOOOOROROOOORRRRORRRRRRROROOOROROOORORORORORROROOROORROORORRORROORORRRRRRRRROROORORROROOORORRROOROOROORRORRORRRRORRRRROORORROOOORRORORRORRRORROORROORORRRRRORORROORROROROOOOORORRROROORORRRRORRRROOOORORRRROOOOOORRORRRROORROROOOROORROROORRROORROORRORORRORRRORRROOORORRORROOROOOOOOOROOOOOROOROROROORORROORRROOORRRRROOOOORRRROORRROOOORRORORRRRRORRRRROORROROOOOORRROROOOROORROORRRRRORROOORRRORROROROROORRRROOROOOOOORRROOOOROORORROOOROORORROROROROOORRROORRRROORRROOOROROOOOORROORRORRRRORRORORROOORRORORRRORROOROOOROOORORRORRRRROROOOOOOOOOROROROOORROOOOROROORROOORROOOROOOOOORRORORORRROROOROROROOOROROROROORRRRORRORRRROORRROROORORROROORRRRRROORRORRRORRORRROORROROOOOOROORORORROROOROOOOOORROROOROOORORROOROOORRRORORORRORRRRRRROOOOROOOORRRORROORRRRRRORRORROOORRORRRRORROOORRRRRRRRROROOOORROORRORROOOROROOOOOORRRROROROOOORRRRORROROOORRROOOROORROOOORRRRRRRRRROORRRORROOOORORROOOROROORORRRRROOOOORROROROOOORROOOROROOOOOOORRROROORROOORORROOORRORRROOROOOOORROOOOROOOOROOORROROORRORRROOOROOROROOORROROROROORRROROORORRRROORRRROOROROOOROROORRROOOOOOOOROOROORORORORORRRRRRRRROORORORROOORORRRROROORORRORRRROOOORRRORRROROOROORROORRORROOROROOOROOOOOOROOORRRRROORROORRRRRROOOORRRORROOOROORORRORRRORRORROOOROOOOROOORRORRRORRRRRRRROOROOOOORRRROOORRRRRRRORRRRRRRRORROOORRRRORORORRORRORRORRRRRRRRRROOOOROOOOOOOORRORROROOROOOROORORRRORRROOORRRROOOORORORRRORORRRRROOROOOROROORROOOOOOOOOOROORRORRROOORRROROOOORRROOORRORRRORRRROOORRRRROOORRRRRRRRRRROROOOORRROOOOOOOROROORRRORRORROOORORRORRROOOOOROROROOROROOOOROOOOROOOROOOORRRROROROOROOOROORRROOROOOORRROROORRORROOORRRROOOOOROOORRRRRORRROOROOORRRRRRRRROOORROOROROROOROROOORRORROOOROOORROOOOOOOROROOOROROOOORORORRRORRROOOROROOOOOOROROROROOORRRRROROORROROOROOORRROROOOOOOROORORRROORORRORRRORROROOORRROORROOROORRRROORROORROROOORRRRRORRROORRRRRORORRROORORORORRORRORRRROORORROOROORORROORROROOOOOOOROOOROOROROOORRRRRRORRRROOROOORORRRROOOORRROORRORROOROOROOORROOROOOOORRORRROOROORRROORORORRROOROOORRORORROOORRORROORORROROORROOOOOORORRORRORRRROOROOROROROOORRROORRRRRORRRRORORROOOORORORORRORRRRRRORROORRROOROROROOORROOROOOOOOORRRRRORROOOORORRROORRRRRROOOROOROOROROOORRROOROROOROORROOOORRRRROOOORORROROOROOOROOOROOORROORROOORROOROORORRROORRRORORRRROORORORROOROOOOROORRORROOOOROORRRORRRRRRRROOOOORROROOOORRRROOOOOROORRORRRROOORROORORORRORORORRRROOROROORORRRRROORRORRROROROOROOOROOORROOOOOOOOORORRRROROORROOOOROROORROORROOOROOROOOOORROOROROOOOROORRORRRRRROORORORORROORROOOORORRORORRORROOOOROOROOORROROOORORROORROOOOOROOROROROROORROOORRORRRROOORROOORROOORORRRRROOORROORRRROOROOORROOORRORRORROORORRRORROOORORRRORORROROOROROROOOOOROORRRROOROOOOROOROOORROORORRRORORRRORORORRRORRORORRORORRRRROORRROROOOOROOOORORRRRRRRRRRROOORORRRRORRORORORRRROOROOROOORRROOOOORRORRRRORRRORRROOOROORRORRRORRORRRRRRRORROOOROROOORROOOOOOOOOROOROORRORRRRORORORORRROOORORRRRORROOROROOOOOOROOOROORROORRRRRRRROORORRROOOROROROOOROOOOOOORRORRRORROORRRROORROORROOOOROROOROOOOROOORROORRRROROORRRROOORRRROOOOOORRORORRROROOORORROOORORRROOORRRORRORRRRORORRORROOOOROORORRROROROOOOOOOORROROORROOOORROOOORRROROROROOOROOROROORRRROORORORROROOOOOOORROOOOROOOROORORRRORROOOOORRRRORROORROOOROOOORRRRORRROOORRRRRORRRORORRRROOROOROOOOROROOOOOOORRROORRRRRRRRROORROOOOOORRRROROORORORRORORROROROOORRROROORORRRRRRRRROORROOORROOROOROORRROOOORORRORRRORROOOORORRROROROROROROOOOOROOOOROROOOOROORRROOOOROORRRORROOORRORROOORORROORRRORRRORROORORROORROOORRROORRRRRRORROOROOORRORORRROOOOROROOROOOOROOOOOORROROORROROOOOOOORRRORORRROROROORRROORORROOORRROROOOOROOORORRRRRRRRORORRROORRRRROORRROOOROOROOOROOOOROOOOOOOOOOROOROOOROROORORRROORROOORRROORROOROROORROOOORROOOOOORRRROOOROORROORRRRRRORORROOORRORRORORORORROROORROOROOOOORRRRRORRORROORORRRRORROOOORROOOOORROORRRORRRRORROROOOOORROOOORORRORRORRRRROROOROROROROOOORRROORORRORRRRRRORROROORORROOORRRROORRRORRORRRRRRROOOROOROROOROORRRROROOROOOOOOORRRORORRORORROOROOORRRORORORRRRRRRORRRRORROOOROROROOORRROOOOROOROROOROROOORROOOORRRORROORRRROORORORROOORROOROROORORRRORRRRRORRRRRORORRORORRRROOROOOOOOOOOOROOOOORRRRRRROROROROOOORRROOOORORRRRORRRRRROORROOROORRORRORORRRRRORRORRRRRORROOROROORRRROROORRROOROROOROOOOOROOROROROORRORRRRROORROOOROROROROOROOOOROOOROOROOOROORORRRRORROROOORORORORROOORRROORORROROROORORORRRROROOORRRORRRRRORORORRROROOROOROOORRROORRORROOORROOROOORRRROORRROROOOROOOROOOROOOROOOROOROROORRORORRORORROOOORROROROOORORRRORRROOOOROROOORROORROOROROOOORORRROOORRROOORRORORROROOOORRROROROOOROOOORRRRRORRRROROOOROOROROOOOROROROOROOOROORORRROOROORROOORROORRROORRROOORORORRRORORROOOROROOROORRORROOOOOOROOOROROORRORROROOORORORRRORRROROOORRRORROORORRRORRORRORRRRRORORORROROORORORROOROOOOORRRRRRORORORRORRROOOROOOROORRRORROOORROOROOORROROROOOORRROROROOROROOOORORRRRROROORROOROORORRRRRORRROOOOOOOOOOORRORORRRRRORRRROOOORRROOOROROROOROOROORORRRRRROOORORRROORROOROROROOOOOOOOOOOOOOOOROROROOOOOORORROOORORORORROOOROOOORORRROORORROOROOOOROOOORRRRORORRROROROORROOOORORROROROOORORRRORRROORRRRRRRRORORRRROOORROOROOORROOORORRRRRROOOOOOOOROORROORRRRRRORRRRRRROROROOOORROORRROOROORROOROORRRROROORRROOORRORRROROOROROOROOROOOOOROORRROOOROORORRRRORRORORRRROOOOORROOORRRROROORORROROROOROORRROOOOOROOROOOOROROOROOOORROOROOROOORROOOOROORORROORRROOROROORRROOOOOOOOROROOOOORRORRRORRROORROOOORORORRORRROORRRORRRRORRRORROORROOROORRORRRRRRRRORROOROROORRRRROORRROROOOROOROOOROROOOOORRORRRRRRRROORORRRORRORRRRORROOROROOROOOORRRRORRRRRRORROOOOORROOOROOORROROORRRRRROROORRRRRORROROOOOOOORRROROOOOORRRORORROOOOROORRROOOOORRROROROORRROORORRRORORROROORRRROROOOORRRROOOOROOOORRORRRRORRORORORORORROOOORRRROOROOROORROORORRROORROOORRROROOOROOOORRROOOOROORRRORRRRRRROOORRROOOORROOORRROORROOROORRROOORROROORROROROOROOOROROORORROOOROOORORROOROOOROOORORORROORORORRRRRRORRRRROORROOOORRRRRORRRROOOOOORRORROOROORRROORORROORORORORRRORRRRRRORORRORRRROROORORRROOROOOOOROOROROORRRRRRROOOOOOOORRROOORROROOOORRRRRROORRROOOOROOROOOROORORORRRORROROROOORRROROORRROOOROOOROORROORORRRROORRROOOOROOOOORRRROOORRRRRRRRRROORRROOOOORRRRRRROORRORRORRROORRRRRROROOOROORRORORROROOOOOORROOROOROORRRROORORRROOOORRRORRRROOOORORRORROOROORROOOOROOOROORRROOORRORROROOROROOORRROORROOOROOOROOOROORRROROOORRRROOOOOORRORORRRROOOROOORRROOOOOORROOORROOROOROORROROROORRRRORORRROROORORRRRROORRROOOROOROOOOORROORROROOROOROOOOORRRROROOORRRRRORRRORORRORORORORROOROOORRRRORORRORORRRROROOOOROOORRROORROOORRORORRORRROROROORRROORRRRRROOOOOOROORRORRRRRROOROOORROORROOOOOOROROORROOROORRRROOOROOOOOROROROOOORRRROORRRRRRROOROOORRROORRORRRORROOOROORRORRORRROOOOORORRRRROOOOOROOORRORRRORROORROORROOROOOORORRRORROORROORRORROOOROOOORROOOROOROORROORRROROORORROOORROROOOOROOORRROORROORORORROOOROROOOROOORRRRRRROORORRROOROROORRORORRROORRRORROROOOROOOOORORORRRROORRRRRRROORRORORROOORROOROOROOORROORRORORRROROORRRORRORRROROORROOOOOROOOOORRRRRORROOOOOOORRRRROOOROROROROOROOORRORORORORRORRROROOOORORORROOORROORROOORRORRRRRROOOORROOROROOOORROORORROOROOROOROROORRRRRRROOOORORRRRROROROOROOOORRRORRORRRRRORORRORRRRORROROROROORROOOROORORRRRROOROORROORROROROOROROORROOOOROOOROOROOORORROOROROROROOORRRORORRROOROROOOOOORRROORROOOROORRRRRRROORROORROOOOOORRORRROROOOOOOOOOOROOOROOOOOORROORROROORRROOOORRRROOOROOORRRRRRORRROORORRRORORRORRORRROORORRORRRRROORROOROOROOOOOROORROROOOOOOOOORRRRRORORRROROOROROOOOORRROOOROOOOOORORRRRORORRROORROOOOOROROROROROOOOOOOROROROROORRROROROOOORORRROOORORRRROROORRRRROROOORRRRORROORROORROOORROROOROROORRORORROROORRRORROOROROOORORRROROOOROOOORRRROOOORROORRRORRROROOORROOOOOROORRRORORORRRORROROOOOOROROOOROOOOOROOOOOOOOROOOOOOORROORRRROOORORRRROOOORROROOORRRRRORRRRROROOORRORORORRORRROROOROOROORRROROROORRORRRRROROROOOROROOROORORRROOROOOOORROORRORORROORROORORRORORROORRRRROOOROOOOORROOORORROOOOOORRORROORORRROOORRRROORRROOORROOROOORRRRORROOOOOOOORRRRRORRORORORORRRRRORROORRROORRORRRORRROORRORRRRRROROROOROROOROOOOROORRROROOROORRRROOOROORORORRRORORORRRROOOOROORRROORORRROOROOOOOOROOROROROORRRRROORRRORORRRROOORRRORORRROORRORROOOOORRRRRRRRRORRORRORROOROOOORRRORRORRORORROOOOOOORORORRRROORROORORRROROOORORORORRRRORRORRRRROOROOROORRROROOOOROORRROROORORROORROROROORRORRROROOOOORROORROOOOOORRRROORORRORRRROOOROOORRRROOOROOROOOOOOORRRRRROOOOROOOOOORRRROOOORRROOOOROORORRORRROOORRORROROROOOOORRRRRROORORROROOOOORRRRROROOORRRRRRRRORORROROOORRRORRORROOOOOOOROORROROOORORORRROOROROORRRORORROORORORRRRORRRRRORRRRORRRRORROROORROOROOROORORRRRORRRRORORRORRROORRRRRRROOOROORORRROOOOROROOROROOOROORORORRORRRRRROOOOOOORROOOORROOOOOOROOOOORROROORRROOOOORRRORORORORROORRRRRRRRORROORROOOOORRRRORRRROORORRRROROORRORORORORRORRORROOOROORROROOOROROROOOOORORROOORRROOOROOORRROORORRRROOOORORROOROOORRRRRORRROORORROROOOOOROOOROOOOOOOOORORROORROROORRRORORORROOORORORRORRROOROOORROOORORRRRROROOOOROOROORRORORORRROORRORRRRRROOOORRRRRRRRORRORROROOOOROORROROOOROROOROORROROORRROOORRRRRROORRRRORORRROOROOORRRROOORORRRROORROOORRRROOOOROOOOOORRORRORRORORRROOROOORORROOORRRROROORRRROROORRRORROORRRROOORRORORORRORORRRRRRRROROROORORRORRRROROOORRRORROOOOORRRROOOROOORORRRRROOROOORRROORRORROOOROROORROOROOROOOROOROROORRORRRORRRRORRROOORORRROORORROROOOOORORROROOROOOROROOORROOOORORRRROROORROOORRROORRROORRROOORRRRRROOOOOORORROORRORRRORRORORRORRRROOORRROOOOOROOOORORRRORORRORROORRRRROORROORRRORRRRORRORRRORRRORRRORORROOOORRRRRRROOROOROROORRRRROROOOROROOROOORORORORRRRORRRRRRORRRORORRRROOOOORROORORRORRORROOOOORRORROOOORORROORRRRRORORROROROROOOOOORORORROOOOOOOROOOOOROROOORRROROROOOOORRRRRROROOORRORORORRORRORRROOOOOROOROORRROORROOOROOOROOROOORORROROOORORRROORRRORROORRRRRRORORRRRROORROORRRRRRRRRORRORRORRRORRORRROORORRORORRORORROOOROOROORORRROOOORORROORORRRRORORRRORORROOROROROROORRRRORRRRORRORRORRORORRRRORROOOOORORRRROOROORORROORRRRRRRRROORORRRORROORRRORROOORORRRROROOOROROOORROOOOORRRROOORRORRROROORORRRRORROROROOOOORROROROORRROORORRORRRROROOOOROROOOORRRRRORRRRORRRRRRRORROROOOORROROOROOOOORORROOOROOORORRRRORROORRROOORROROOOORRORORROOROOOOORRRORORROOORRROOOOROROOOROOORRRROROOOROOOROOOROROOOORROROROORROOROORORORORORRRRORORROOORORORRROOORORORRRRRRRRROROOORORRRROROORROROOOOROOROORORORORRRRROROOOOOORRROOOOORORORROOROOOOOOROORORORROOOORORORRRRRROOORRROOOORORRRRRROROROOOOOORROOORROOORRROOROOORORRRROOOROORORRROROROORRRORRRORRRRRRORROOORRORRRRORORROOOROROOROORRRRROOOOOROOOOROOORRROROORROOOROORORRRROOOOROOORRORROOOROORRRRRORORRRRROOOORRRROROOOROOOROOOOORRORRORRRROORROOOORRRROROROROOROOORORRRRROOOORRRRRORRRRORROOOOORROOROORROOORROORORROROROOORROORORORRORRRRORRROROORRROROROORRORRORROOROORRORROROROORROOOOOOORROOROOORRRROOOOROOORROORORORORROROOORROORRRROORRROOOORORRRRORRORORRROOOOOOORRROOORRRRORROROORRRRORRROOOOROORORORROORRORORRORROROOROROOOOROROOOORORROROORORROOOORORROORROORRRRRRORORRROROOORRROROROROOOOROOROOORRRORRROORRORROOOORRROOOOROORRRRRROORRRORRORRROOOOOORROOOROOROOORORRORROROOROOORROOOORRRROOOOORORROORORRROROROOORORRORRRRROOOOROOOROOROOOOORRROOOOOOOOOOORRRORORROOOORROOOOORRROOORROORRORORORROROROORRRRORRORORRROOOOOOOROROROOOOROROORRORRRORROOOORRRROORROROOOOROROOOOOOOOOOROROOROOOORORRROOROORORORRROORROORORRRRRORORRROORORRRORRORORROOOORROORORRORROROOOROOOOORRRRROORRRROOROORRRROROROOORROOROORORRORROOOORRORROOROOOROOORROOORRORROROOOOOORRRROROORORORRRROOROORORROOORORRORRROOOOOOROORORROROOOOORORRROOOOOOROOORRRORRORRRRORROORRRORORORORORORRRRRROOROOOOOOROORORRRRORROOROROOROOOROOORROORROROOROROORROROOOROROORORROROORORRROROOOROOOROROORROORROROOORORRORROOORROOOORRRRRROOOOROROOOROOOROROOROROOOROORORORORRRROOOOOORORRRORROOORORROORROOROOOROROROOOROOOOOORRORROOOORRRROROOORROOOROROOOORROORROOOROROROOOOROOOOOOROROOOOOOOOORRRRRRORRROORORORORROORRROOORRRRROORORROORROOOOOROOOROOOORROROROROOOORORROROROROROROORRRRROOOOROROORORROORRRORORROOOOOOROROORORRRORROOOOOROORROROROOOROROROOOROOOROOOORROOOOORRRROOORRROROROOOOOORRRORORORRRORROOROORORORRRRROOOROROOORRORRRRRROROOORORRRRRRROORROOOROOROORORROROROOOORORRORRORRROROOOOROOROROOOOOORRORROORORRRORRROOOORROORRORORORRRROOOOORROOROOORRRORRROROORORRRRROOORRORORRROOOORRRRRORRRRORRORRROROROOORRROOOOOOOOORRORRORORROOOOROOOOOOORORORORRRRRRRROROORORRRROORRROOOROROROOOOOORORROOORRORRRRRORRRORRRORORORORRORORRRRRORROROROOOROOROOOOOROORRRORRORRRRRROORRRORRROORRROROROORRORRORRROROROOOROOORROORRORRROOOOOORROROROOORRORORROOOROORROOORRROOROOOOOOROOOOORRROORORRORRRRRRROOOORRROROOOOROOROROROOOOOOOROOORRRORRRRROROOORRRRORORORRRRRROORRRORRROROOOOROOORROORORRORROORRORORROOOORRRRROOROOOOROROOROORORRRROROROORORRRORORRRRORROOORORRRROORROORORRRRORORRRRRRROOOOOOOORRRROORORRORORORROROOOORROOORORROROROOORORRROOOOOORRRROOORROOOROOOOOROOOOORROORRRRRORORORROOOORORRRROOORROOOROOOORRROROORROROOOOOOORROORRRROOORRORRORRRRRORROOORROORRRORROOOROOROROORORRORRRRRRROOOOOROOOORORRORRRORROROROOROORROOORORRRORRRRORRRORROOOORROOOOORORORROOROORRRRRROORRROOROROORROORRORORROORORRORRRORRRRRRROOROROOOORROROOOROOROORRROOROORORORRRROORROROROROORRRRORORROOORORRORRORROOORORRRORRROORROOORROORRORRRROOORORRRRRRORORRRROOROOROOOROORRRRROROOOORROOROOROOORRORORRROROORORORRRORRRORROOORROROOOOOORRRORROOROOROORORRROOROORRROORRORORROOROOOOROROORORROOOOOORROOOORORORRROORRRROOROORRROROORORORROORRRROOOOOROOOORORROOROROROROORRORROORRRORORROROOORROOORRROOOOOROROOROOORORRRROOOOOOOROORRROOOOOORROROORRORROOOOROROOORRRROOROROOROORROROOORRROOOOROOOOOORROOOOOORRORRROOOOROOOORORORORROOOORRRORRORROORRORORORRRRROOROOORROOROORRROOOOORORRROOROOOOORROORRRROOROOOROROOORROOORRROOOROROOOOORRRRRORORRRORROOOOOOROORROORRROOOOOOOOROORROOORRRRROOOOOROOOOORRROOORORRROOORROORORORORORRRRORROOROOOOOOROROORROORRRORORROROORORRROROOORRROOROROORORRRROORRROOROOROOOOOOORROORRRRRRRROORORRROOROOORRROOOOORROOROOROOOOOOOROROOOROOROROOOROOOROROROOORRRORRROOOOROOROROORRROORORROOOORRORROROROROOROOORRORORROORRRRORRROROOORROOOORORRORORROOORORRORROOROROOOORRROOOOROROORRORROROORROROOORRROOORRROOORRRRRORRRRORRROROROROROROORORORRORRRRRRRRRRRRORORROORROOOORRORRRRORROOOROOROOOROORRORORRRRRORRRROROOOROROOORRROORORRRRRORRRRORORORORRROORRRRRORROROOOOROROROOOOROOOOORRORRRORROORRROROORROOORRROOOROORROORRORRRORRRROOROROORROOOROROROROOORROROORORROROORRRROOOOORROOORRRRRORORRORRROROOROORORORRROOOOROORRORROOORORRRORRRRORROORRROORRROROORRROROOROROOROROOOROORRRORRRROOORORRRROORROOOOROORRRROOOOOOROROOOOOOORORRROROOOROOOORRORORRROOORRORROORROORRROOORRROROOOROROROORRORRRRROORROOOROOORORORRRRORROORRORORRRORROOOOORROOOOROORORRROORROORRRRRRORRRORORRROROORROORRROROROORORORROROOOOOOOOORROOOROOOORORRROROORRROOOROOORROROROOORROOROOROOOROORRRRROORROORRRRRORRRORRRROOOORRRROROROORRRORRORROOROOROROOOOOROROOOORRRRROROROOORORORROOOORROORRROOROORRROORRRRROROOROOOROROOROORRRORROROROOROOROOORRRORROOORRRRRROROOORORRROORRRORRRRRROOOOOOORROROROOOOOOROOOOOOROOROORRROOROOORROORROORORORRRRROORRRRRORROOOROROOROROOORORRORROOROROROORRRORROOOOROORROORORROOROORROOOOORRORRROORRRRROOORROOOOOROOOROROOOROORRROROORROOOOORRROORORRRORORRROORORRRORORRROORROROOOORORRRRRROOROOROORRORROOOOOORRRORORROROORROOROROOORROOORRROROORORRRORORROOOORRRROORRROOORROORORRORRRORRORRRRRORORRORRROROOOOROORRORORRRRRORRROOROOROOROROROOROORROORRRRROOOORROOOOOOOROROOROROOROROOROOORRRROORROOOROOORROORRRROOOROOROOROROORRROORRROORRRROOORRROOOOROOROOOOOORROROOOOORRROOOOORROOORROOORRRORORRROROOROOORRRRRROOOORRRORRRORORROORRRRRRORRORORORORRRRRRRRRROROROORRRRROOROOOOORRORRRRORROOOORORORRORROOORORORROOOROOORRROOOOOORORROROOOORRRRROOOOOOROORRROOOOOROOROROOOOOOOOOROROROROOROOOOROOORORORORORRRROOOORORORROOOORORRRRORORRRORRRROOORORORRORRROROOROOROOROOOROORRRRRRRORORROROOORRRRRROROROOOOROOROOROROORRRRRORRRRRROROOOORROOROOOOROOOROOROOROOOOORORROORORROOOOOORRRRORROOORRRROROORROOROOOORRROOROOOORRROOROOOOROROROOORRRRORORRRORRORRROOORROOOOROROOROORRRORRORROOORRROOOORROORROOOOROOOOROOROROOOOOORRRRORORROROOORROOOORRORROOORROOROOORRRRORRRORRROOROROORRRRORORORORRORORROOROORROROOROOROOORROOOROOORRRROORRROROORROORRROORROOOOOROOOOORRROROORRORRRRROROORROORROOORRRORRRROORROOROORROORORORRORORROROOOOORORRRORORRRRRRORORRRRORRRRROOORRRRRROORRORROROOOOOOORORROROOORORRORRRRRRRROROOOORRROOROORORROORORROOOOOOORROOORRRROOORROOROROORRROOOORRRRRORRORRROOOORRORROROOROOORROOROOROOOOOORORROOOOORORRORORROOOOOOORRORRRROORRROOOROORROOORRROOORORORRORRROORORORRRRROOOROOROORORRRRRORROROOORORRORORORROROROOOOOROOOOOOOOROOOOOOOROROROOOORROOOORRROOOORRROOOORRORRRRROOOOORRRORRRROOOROOOORRORRORRORRRROORRORRORROOOOORRRROOROOOOROOOOORRORROORRROOORRRRROROROROOOOROROOOOORRORORRRORROROOOOROORORRRROOORROOORRORRRRORRRORRROORRORRORORROOOROORORROORRORRORORRRORRRRRROORRRORRORRROORRORRORRORRORRRROOROORROROORRROROROOOOOROORORRROORRRRRRRRORRRRRORORRROROOROOROROORRORROROOROOORRRRRORRROOORORROORORROOOROORRRRROORROORRRRRORRRRRORRRROOOOOOOORRRRROOOOOOOOOOOOOORRORORORORRORROOOORRRRORORORROOROORROOOOOORROOORROROOOORRRORORRROROOORRRORRROOOROOOROROORRORRORROOOROORROOORRRROOORROOORORROORORRRROOORRROOROORRORORORRROROROOOOOORORRORORORROOOORORRRRORORORORRROOOOROOOROOORRRROROORRRRRORORRROOORRROOOORROROROOOOROORRRROROOORRRROOORRORROOROOOROROOROORRROOOROOOOOOOROOROOORROOORROOOOOROOOORRROOOORRRROROORRRORROORRORORORRORROOOOROOOORORROORRRORORRRROOOROOOORROOOROOOOOOROOOOOROORRROORORRRRROOROROOOORRROOOROOOOOOORORRORRROORRROOOROOORRRROOOORRRRRRRORROOROOROOOOROROOOOOROROOROORRORRRORRRROORRROOORRROROOOOOOROOOOORRRRORORRORORORRROOOORRROORRRORRRRROROOOORROORROROOOOOOOROOOOOOOORRROOOROORORRRROOOROROORORORRRRRRROOORORRRRRRROROOORORRROOROOROORRRORORRORRROORROORRORRROROROROOOROOOOROORORROOOROOOROROOORRROROOORORRROOORORORRROORROROORROORROORROORRROROOOOORRRRRRROORORRORORROOOORORRRORORRORROROOOOROORORRRORORRORROOROORRRORRROROOOOOOOROORRORORROOOROORORROROOROOORRRROOROOROOORRRROORRRORRRORORORRRROOOORORORRRRRORRRRORRROOORRORRRRROORROROOROOOOOOOOOROOOROORORRORORROORRRRROROOOOROOORROOOOROORORRRRRRRRORROROROOORROROROOOOROROOROOOORRRROROOOROORROOORRROOORRRRORORRORRRROROOOROOORRROROROORRROROORORROROORRRRORRORRROORRORROORROROOROOOROOORRORRORRROOOROOOORRRROOORRRORRRRRORRRROOORRROOOROORROOOORORRORRRORRRROOOOOOOROORRRROOOOOROORROROOROORROOORRRORRRRROOOROORRORROOOROOROROORRORRORROOORRROROORORORRRORRORORRRRRORRROOROROOOROROOROORROORRORROROOROOOOROORROORRRORRORORRRRRRORROROROORORROORRRRORRRRRRRRRRRRRRORROOOORORRRRRRROROOROORORRORRRORRRROORRORROROROOORRRRRORORRORORRORORROROROOOOORRORROOOORROORROOOORRRRROROROOOOOORRROOROOORRRROOOOOOOOROOORRRROOROROORRRORROROORORORRRROOROORRORROOOOOORRRRROORROROOROROOORRRORRRROOORRORRRRORRRRORRRRORRRRRORRRROOROOOROORRRRORROORORRORROROOROROOROORRRRORRRORORORROROROOOOORORROOOOROOORROORROOROORRORORORRRORRROOROOOOORROROOORROOOOROROOORROROROROROROOROROROORRROROROROORRRRRORRORRRORRRORORRORROORORORRORROOOOOORORRORRRORRRORRRROROOORROROROROORRRORRORRRRORRROORROOOOOOROROOROORRORRORRRRRRRORRRORORORRRROORRRRORROOOOOOOROOROOOORORROOROROOOORORORORRRRROORRRORRRRROORRROROORRORRRRRRRROOROOOOOOROOOROOOORRRROROOROOORRRRRRROOOOOROORRROOOOORORRRROORRORROROORORRRORROROROOOOOOOORRORORRORRRROROOOOOROOOORRROOOOOORRRRROOROOOORRRRROOORRORRROOORRRROROROOROOOOOROOOOROOOORRROORROOORROOOORRORROOORRRORORROROORORORRORROORORROOROORORRRRRRRROOOORRRRRROORRROROOOOORORRRRRRROORORRORROOOOOOROOORROROOOOOORROORROROORRROORORORORRRROOOOOOOORRORROOOOORRRROROOROORRORORORORROOROROOOROOOOOORRORRRROROOORROROROORRROOORRROORRORROROORRRRROROOORORRROOROORRRRORRROOOOOOOOROROOOROORROOOROOROOOOORROOORRROORRROOOOOORRRRORORORORROOORROROROOORRRORRORRRRROROORROOORROORROORRRROOROOOOOORROOOOOROOROROOOROOOOORRROOORRRRROROOOORROOORRROOORRRROROROOOOROORORORRRROOROOOOROORORORORRRRROORROOOOOORROOOORORRRRROROOROORORROORRROORRORORRORROROROROOROROORROROORRRROROORRROORROOROORROOOORRRORRORRORORRRROOOOORRRORRRRORRRRORRRRRORORRORROOORRORORRRRORROROOROOROOOOROORROOROORRORROOROORRRRORRROROOOOOOROOOROOOORRRROOOORORRROORROOORROOORORRRORROROOOROOOOORRORORRRROOOROORORRRORORRROOORROOOOROOROORROOOOROORROROORRROORRROORROOOROOORRRROOORROOROORRRORRROOORRRROROOROORRRROOOORRORORROORRRRRROORRRORRORROORRRRRROOROOOOOORRROOROROORRRROORORORRRORORROROOROROROOOOORORORROROOROROOOOROROORORRRROOOOROOORROOOROOORRRRORORRRORRORRRORRRORROOOORORRORROROOOOROROORRORRORRROOORRRRRRROORRROROORRRRRORRORROORROROOROOORRRRORORRRORRRROOOORROOROROROOOOOOOROOOOOROORRRRORROOOOOOOORRROOROOORROORRROROOOOOOROROROROOORROORRORORORORRROROROOOOOROOORROOOOORROOORORRRROROROROROOOORROROOOROOORRRRRRRRRROROROOOOOROORORORRRRORRORORRORROROOOORRROROOOORRORRRRRROOROORRRROOORORRRROOOROOOOORRRROORRRRRRRROOROOOOOROOORRRRRRRRROORORRRRRRRRROOORORORORRORRRRRRORORRORRRRRROOORRRROROOOOOOOORORRRORRORRROROROORRRRROOOROOOROOOOOROOOOOOROROOROOROOOOORRRORORORROOOOROROROROOOROORRRORRORRRRRRROORROOORORROOROROOROROOOOOOOOORORRORORRRROOOOOORRROOORRROROOOORROORRRRORORRROORROOOROOROORROOROOOOOOORROORORORROOOOOORRRRROORRROOROOROROOORROROOROROOROORORROOOOORROOROROOOOORROORRRRRORORRROOORROOOORROOOROORROROOROORRORRRORROOOOORORORRRORORRRRROORORROROOROOORROOROORORRRORRORORRRRRRROORRRORROORRRROORRRRRORRORRORRORRORRROOOROOORORROROOOOORRRORRRRROOOORROROROOOORROORRRORROOOROORRRORROOOOORRORROOOORRORRRROROOORORRRROOOROOOOROOOROOOORROOROROORRORRROORRRRRROOROROOOOOOOOROOOOOROORRRRORROOOROORRRORORORRROORROOOORORORRRORRRORROORRRORRRRRRROOROOOOROORRORRRROOROORORRORRORRRRORRRROOOROOROROORORRRRROROROORORROROOOROROOROOOOROORRROROOOROORRRROOOORRRRRROOOOROORORORORRRORRRROOORROOROOORRROOOORORRRORRRRORRRRRORORROOOOOORORROORROORORORROORORRORRROOORRRORROORORRORRRRRROOOOORORRRORORRRRRORRRRRRRRROORRRRROROOOROOOOOOOOOOOORRORRROORRORROOORROOORRRRROOORRORRRORORROROOOROORROOOOOOORRORRRORRRRRROORROORRORRROOORRORRRROROOOORORORROOROOOORORORRRORRORORROOOORORRRORRROOOOROOROOROOOOOOORROORROORRORRROORORORORRROOOROORORORRROORRORROORROORRORRORROOORROORORORRORORORRORRRRORORRORORRROORROROROOOOROROORORORORRRRRRRROOROORROROROOOOOOOROORROOROOROOORORORORRRRORROOORORORRRORORRROOORORRROROOROOORROOROORORRORROOORROOROROROOOOROOOORRRRROOOOOROOOORROORRROOOROORORRORROOOROOORRRORRROROOORORRRRORRRRRRRRROOOOOOROORROOROROOROOOOOOOOOOORRROOOOORRROROOOORROOORRRROOOOOOOOOOORRORRRRROOOOOORRORRORROOORRROOOORORRORRORRROOORRORROROROOORORORRRROROOOOOORRRROROOOORROOOOROROROOOORRRORORRRROROROORORRRORROORROOOOOOOOOOROOOOORRRRRRRROORRRROOOROORRROORRRROOROOROOORRRRORORRRROORORORRORRRRRROOOOROORRRRORROOOOOROOROROROOROROROOROORORORRRORORRROORRRROORRORROORROROOOOORROOORRRORRORORROORRRRRROORRROORROROORORRROROOROROOOOOORROROOOOOROROOOOOOROOORRROOORRRRORRROOORROROROOROOOROORORORRORRRRRRORROROOOOORORRORORRROORORRROORORRORRRORRRRORRRROOROROOORROOORRORROOROOROORRRRROOOOORRORRROORROORRRROOOOROOROOROROROOOORROOROROOOOORRROOOROORORRRRORRORRRORORRROOOORROOOORRORRRROORORRORROOROOOOOROOORRORORRORORROORRRORRRROROROOOROORRRORROOOOOOOOOOROOOOOOROROORRRRRRROOORRROOORROOORRROOROORRORROOOORRRRROORRORORRRRROOORROROOOORRRRRORRRORROOROORROOORRROROOOROOORORRRRRRROORRRRRRRRRRRRROORRROOROOOOOOOORORROROORORROROROORORORORORORROROORROORRRRRORORORRRORRRROOROOOORRRROORORRROROOORRRORRORRRROOOOOOORORRRRORROROOROOOOORROORORRRROORROROROOROOOROOORRRORRROOROORRRROOOROROOOOOORRROROROORRRROOOOOORRRRRORORORRORRROORRRRRROOORRROOOROOOOROROORORRROORRORRRORRRRROORRRORORRRRRORORORROOORRRRRRRRORRRRORORROROORROOROOOROOOOROOROOOORROOROORRRRRORRROROROROOORRRROORORORRRRRROOOOORROOROOORROROOOROOOOOOOOORRROOROOORORORORROOOOOORRROOOROOOOORORROOOORRRRRROOOOROORRORRROOORROORRROOROROORROOOORORRRRRRORORRRORROOROORRRROOOROOOOOOOOOROOROOOORRORRRRRRROROROROROOORROROROOOOORRORRORRORRRROROOORROORORROOORROROORRRROROORROORRRRROROORRORROOROOROOOOORRORRRRRROROORORRRROOOORRRROOOROOOOORRRRORRRROROORRRROOROORRRROOROOROORRORRROOOROOOORRRRORRORRRROORRRORRORROOOOORRRRRRROROROOOORRRROORORROORROOROORRROORRROOOOOOOORROORORRORORRRRORRRRRRRROOORRROORRRROOROOOORROOROORRORRROORROOOOOOORRROROORORORRRRROOROROORRROOOOROOROORROORRORRRROORROOOROOORRRORROOOOOOOOORRRRROOOROROORORROOOOOORRROOOOOROORORRRROORROOROROORRRRORRRROORRRROORROOOOORRROOORORROOOOOOROOROORRRRROOOOORORORORROOOROOOORRRORRRRRROOORROORRRORRORROOOOROORRORRORROOROOOORROORORRORORORORRRROROOOROORRRORRRROOROOROOOOOROORROORRROORORORRORORROOORORORRRORORROORRRROROOORORRROROOOORORORRRRROORORRRROROOORROORROORORRRRRRROORORRROROORORROROORRRRRRRRROORRRROOROROOOOROOOORRRORROROORRRRROOOROORRROORRROROORROROOOROOOOORRORRRRRRORROROOOROOORRROOOORRRROOROOROOOOORRRROROOOOOOORRRRORRRRROORROORRRROROOOROORRRRORORRORRRORROOROORORROROOOROORRRRORORROROOOORORRORROORRROOROOROROROORRRRROORROROOORROROOOOROOOORORORRORRROORROORRORRROOOROROROOROORRRRROOOOOOOOORRORORRRORORRORORRORRROOOORRRRRRROOOROOOOOOOROORORRORRRROOROOROORRRROROOOOROROORROORORRROOOROOOOOOOOOORRRRORRRRRRRROROROROOORROROROOOOOOOOROOROORROROOOORRROROORRROOOROROOROOORROORRRROORRROOOOOORORRRRRORORROROOOROOOROORROOORROORROORROOOOROOOROOOROORROOOOORRORRROROOORRROOORRROORRORRROOOOORRROORRRRROROROOORORROOROOORROROORRRRRORRRRORROORRORORROOOORROOOOORROOROOOROOOOOOROOOORRROROOORRRRROOORRRORORORROOORROORROOOORRORROROORORRROOROOOROOORROROOOOORROOROORROOORROOOOOORRORROROROROOOROROROOOROOOOORRROOOOOOOROORRROORRRROOOOORRROOROROOORRORORRRRRORROROOORRRRROOROORRORRROOROOROROOROROOROOOORROOROOOROOOOORROROROORRRORORORRRORROOOOORRRORRRROORRORRRRORRORRORRRROOOOOOROORROORORRRRRORROORRORROOORRROROOOORROOOOOORORRROORRORROOROORRROOROOORRORROOROOOROOROOORRRORROOOOROORORROOOORRROORORORROROOOORRRROOOOOORROROORROROOROROOOORROOORRROORRRROROOROROROOOOROOOOOORROOORRORRORROOORORORORROOOOORROOORROOOOOROROROROOORROROOORRORORORRROORRROROROOORRORRORORRORORRRROOORORRRRRRRORRROOROOOOORORRROOORROORROORROOROOORORORROROOOORRRRRROORORROOOOROROROROOOORORRORRRORORRRRROORROOORORORORROOROOORORRRROOROROOORRRORRRRORRRRORORRRRRRROOROROROOOOROORORORROORRORROORORROORRROOORRROROOOOORRRRORRROOOROROORORRRRRRORRRROORROOOROROROOORORRRRRORROOOOOOOOOORRRRRRRRRORRRRROOOROOOOROROROOOROORORRRRRRRRRROOOOOOORORRORRRORORROROOROOROOOOORRROOROORRORRRROOORORORORRRROOORROOOOROORRRRORRROROORORRROROROORROROOOOROORRORROORROOOOORROROROROOOORROOOORORRRORRRROOOOORROOOORRRORORORROORROORRORORRORROOORRRRRORORORROOROOOOORRRRRORRRORRORRROROOROOOOORRROOROOOOOOROORRRRRROOROOORRRRRRROOOOORRRORORROORROROOOROOROORRROOORROORRORORORROORROORRORORRORROOROROROORROOROOORORORRRRROOOOOROOROORRRRROORRRRRRRRRORROOORORORROOOOROORRROROOOOOOOROOOOORROOROROROOORROROROROROROROOORRORORRORROOOOOORRRRORORROOROROORORRORORRROROOORORRRRRRRORRRRRROORORRRRORRORORRRRRROROORORRORRROROOOORRRROROORORROOORROOROORROOROOOROORORRRRROROROROOORRRORRORORORRRROOROORRRROROOOORROROOORORRRRORRROOOROORRROOORRORORROORROOOORORROOOORORROOROORRRRRROORORORRORROOOORORRROORROROOROOOOOOOOOOROORRROOROORRORORRROOORRROORROOOROOOORROOOOORORRRROOROOROORORRRROOOROORROOROORROOOROOOORRRORRROOOROOROOOOORRRROOROROROOOOROORRRROROOORRRRRRROOOORORORORROOORRRROROROORRORROORRRROROROOROOOOOOORORROOROORORROORRROORRORORRROOOOOOOROOORORRORORRROOROROOROOOROROROOORROROROOOOOORRRROOOORROROORROOOOROOOOORRROROORORORROROORROROOOOORRROORRRORORRROORORRRORRORRRROOROOROORORRRRRROORRORRROOOOOOORRROORRRRORROOROROOORRORORRROORORROORORRORRRORRROOOOOROROOOROOROOORORROOOORRORRROOOORROORROOOORRRROOORRRORRRRORRROORRROROOORROOOORRRORRROOOOROOROROOORORORRROOORROOOOOORRRRRROOORRROROOROORROOROROROOORORRRROOOOOOROROOOOOORROOROORRRRORROROROOOROORORORRRRRROOOROOROROORORROOROOORROORORRRROOOORROORRRRRROORORORROOROOROORRROOROROOOOROOORORRRROOOORROOOOOORROOORRROROOOOROOOORROOOORROORRORRROROOROROOOORORROOOORROROORRRORORRRRRORORROOOOORRRORROORRORRRROOROOOOOROOORROOOOORRROORORRRORORROOORRRORORRROORORROOOOOOOORORROOOOOROORRORORROORORORORORORORROORRORORROORROROORRORRORRORRORRRORRRRORRROOOOORRROORORRORROORRORROROROORRROORROROORRORROOOROOOORRROROROOOROORROOOOROORRROOROROOOORORRRROOOROOOOORORRORRRORORRROORRROORRROOORRROOOOORROOORROROROOOORROORRROORRROORRRRROOROORROORRORRROROORRRRROORRORRRRRRORRROROROOORRRRRRRRROOOOOOOOOOOROROORROOORRORRORROOOOROROROOROOOORRORRORROOOOOOORRROROORROORRROOORROROORROOORORROORRRORRRORRORORRRRROORRRROROROROORORRROOROOROOROORROOROORRRRORORORROROOOOROROROORORORORRORRROORROOORRROORRORRROORORRRORRORRROORRRRRRROROROORRRORORROORORRROOOOOOOROROOOOORROROOOOORROROORRROOOROOOOOORRRRRORRROOOORROOOOOORRRRORRROOROORRRRRROOOOOORRRROORROOOOORRRRROOROOROOORROOROOROROOORROOROOOORROOOORRORRROOORORRROORRRORRROOROOOOROOOOROROORROROOROOROOROORRROOOOOOOROROROORORORROORRROOOOORROOORRRROOOOROROOOOORRORORRROORORRORROORRROOOORROROOROROORROORRRROROOOOORRROROROOORORRORROOROORRORORRRORRROROOOROROORROOOROOROOOOROORRORROOORROOROOOORROOOROROROOOOOOROROROROOOORRROORRROROOOOORRROOROOROORRRORRRROOORORRRRROOROORROOROROOOOOOOOORRRROOOOOORROOOOORROROROROROROROOOORRROOOOOORRRRROORRRRRORORROOORRRROOOROROORROOOOOOOOORRRRROOORROROORORROOOOORRROOOOROORROOOROORRRORROROROROOROOORROROORRRORRORROORORRRORRRORRRORRRROORORRRRORRRRRRRRRORORRORROROOOROOROORORROOROOOOORRRRRRRROOORRROORROROORRROOOROOROOOOOOORROORORROOOORROOORRRROOOROROROOORRRRORRROOORRROOOOOOOORORRORRRORROROROOORRORRROOROOORORRRORRORROORROOOORORRROROOORRORRORROROOROORORROORRRRRORRRORRRRRORRORRRROOORROOOOROORRRRROORROOORORROOORRRORORRRROOOROOROROORRRROOROROOROROROORORRRRORORRRORRRROOORORRORRRROOOOROORROOORORROROOORORRORRRROORRRRORROORROOOROOOROOOOOOORORORROORRORORRRRROROROOORROOORORRRORORROOOOOOOOORORRRORRROROOORRROROOOORRROOOOOOROOOOOOORORRORROORRROOROOROROROOOORRRROOORORROORORROOOROOOOROOOORRORROOOORROOOOOORROORRRRORORORROROOOROROOORROOROOORRORRRROOOROORRROOOORRRROORORORROOROORORROROOROROOOOOORROROOOORORRRROORORRROOOORRRRRRRRORRROORRROORRRROOOORRRRRORRORROORORRORROOOOOROROROORROOORORRRORRORRRROORRROROROROORORORROROOROOOOROOOROOROROOOORRRROOROROROOOORROORROOOOROROORRORRRORRRORORRRRROORORROORRRRORRORROOROORRORROOROROROOORORROORORRORRROORORROROROROOOROOOORORRROOROORRRRROROORORRROORRRROROROOOROROOROORRRROROORROOROOROROOOORORRRRROOOROOOOROORRROORORROOORORRORRROROOOROORRROROROOORORORRORORROROOOOOORRRRROROOORROOOOOORORROROOORRRRRRRROORRROORORORROROOROOORORRORRRRROOROOOROROORORRROOOORORROOROOROROORRORROOORRORORORORROROOOOROROOROOOOORORROOORRROOROOORRRORORORRRROROOORRROOOOOROROROOROORROROORORRROORORRROORORRRROORRROROOORORRROROOOOORROROOROROOROOOOOROORORRRROROOOOOROORORRROROORORRROROORRORROOORRRRORORRRORORRRRORRORORRORRROOROOROOROORRROORROOROOROORRORRRRROOOROOORORRROORRROROOORROOROOROORROOOOOROROROORORROROORROROROOOOOOROROOOORORRORRRORORRROOORRROORROORRRORORRORRORORORROOOOOOOOROOORRROORRRRORORRRROROORRRORORRORRORRRORROROOORORRORORRRRRRORRRRRRRRRRROOORORRRROOOROOROOROROOROOORROROROOORRRROOOOOORRRROROOOORROROOOOOOOOOOORROOORORRROOORRROROOOOORRROOORROOORRORRRRROOROROOOORRRRRRROORRROORRORRORRRROORRROORRORRORRRORRROORROOOROORRRRORORROROROORRRRROOOOROROOROOROOORRRRRROROOROORRROORORROORRROOORORRRRRORRRRORROROOROOOROOROROOOOOOOORROROOOOOOORRROOOORROROOORRROOOOOROROOORRORRORORORROROROOROOORRRRROOOROOOOORORRORORRRRORRROOROORORORORORRROOOORORRROROORRROROOOOOROROOOOORRROORRORORORRORRROOORRORORORORRROOOOORORRRRORRORRRORRRROOOORROROOORRROOROOOORRORRRROOORRRRRROOORROORRROROROOOOOOORRROOROOORRROOROROORROOROOORROORORORROOOOROROROOOOOORROOOOORROROORROOOORORRRRROOORROORORORROOORRORRRROROORRRROOORROORROORRRRORRRORROORRORROORRRRROORORORRORORROOOORROROROROOOOOOORRRROROORROORRRORRORROORRROOOOROOORROOOROROOROOROROOORROOORRRORORRROOOORRRRROOOOORRRRROORORRRRRRRRROOOOOROROROROOOOOOROORORROROOROROROOROORORROOORROOORORROORRRRORRRRORORRRROOORROOOORROROOOROOOROORRRORROROOOROOORROROROROORRORRRRRROOOROROORRRRRROROORRRORORROOROOORROROOOOOOOROORRRRRORRRRROORROOOOOORRRROOOORRRRORORRORORORROORROOOOOOORRORRORORRRROORROORRORROOOORRRRROORORRROORORRRROORORRORORORROROROORORRROOROOROROORRROROROORROOOROOROORRRROORRRRORROOROOORRORORRROROOOOOORORRORRORORRRROORROOOORRROOOOORORRRORRRRORRRROORRRROOROOOORRRORRORORROROOOORRRRRRRORROORRRRRORRRRORRROROROORRRORRRROOROOROOOROORRROROOROROOROROROOORORROOOROORRORORORRRROOOORROOOROOROROOOOROOOORORRORROOOROOOROORROORRROORRRROROOROOORORRRROOOROOOROOOOOOOOOORORRRRORORROROROOORRROOORRRRRROROOROORORRORRRROOROORRROOOOOOOROROOOOOROOOOOORRRROORRROOORRRRRORORRRRRROROOOOOROOOOOORRRORROROOORORRRROROROOROROORRRRROORORROROOOOOOOROOOORORRRORRRORORRROROOORROORRROOORORORRRRRRORORRRORORORRROROORRRRRRORRRRRRRRRRRROROOROORORORRRORRORRRRRRRRORRORORRRRORRRRRORRRRRORRORRROOOOORRORROROOOROOOOOORORROROORRROOROOORORROROOORROOOOROOOOROORORRORORROORRORORROORRRRORROROROROORORROOOOORORORORROOROORROORRROORRRROOROORROORORRROOOROOOORROOOOROOOOORRROOOORORORORRRRRORRROOOOOOORRORRRORRROROROOROOROOROOROROROOROOOOROORROORROORROORRROROOOOORRROOOORORRROOORROOOROORRORORORRORORROROOOORRROROROOOORORRROOOOOOOOORRROOROORRORRROOOORROOOORRROOOOOOORRORORRRROOORROORRROORROOOORORROOOOROROOOROORRRORRRRRRORRRROORRRRRROROOOORRRROOROORRRRRRRROOOOOOORROOOROOOOORRROOROOROOORRRORRRORROOROROROOROOROOORROROORORRORROROORROROOOORROOOORORRRORROOOOOOORRRROROROOOORRRORRORRRORORRROOROORORROOORRRRRRROROOORROORORORRRORRRROOOOOOOOOORROROORRRORRRRRORRORRROOORRRORRRRORORROROOORROORRRRRROROORORRORRRROROOORRRRROOROORROORRRRROOOOORROROROOROROOOORORRROROROOORRRORRROORROOROROROOOORROROOORRORROOOORRRROORROOORORROROOOROORRRROOOOOROOORRROOOOROOORROORRORROORRROORRRRRRRORORRRRRRROROOOOORROROROOROORROORRRRORROROOORRORROORRRORROOOOOROORORRRROOORRRORROOOOOROROOORROOORORRORORORROORRRROROOOOORRORRORRRRRORROORROORORRRRROOORRRRRRORRORRRRRORROORRRRRRRROORRORRRRORRRORROOOOOOROOROORORRORRRRRRROORORROOOROOOORRRRRRORRRRRORRORORRRRRORRROOORORROROOROORRRRRRRRRRRORRORRROOROOOROROOOOOOOOROORRORORRRRRRRRROOOOOOORORRROOROORORORRORORRORRRORORORORROORROOORRRORRRRORRRRRRRRRRRROROROOOORRORRRRORRROROOROOOOROROOORORORROORROROORORRRRRROOOOROORROORRORORROORRRRRORROORRRRROOOORRRRROOOOOORRORROOORRRRORROORRRRRRRROOORORROROOORROORRRORORROOROOOOORROOORROORRORRRORRRROROROOOORRROOORROOOROOROORROORRROOORRROOOORRORRROOORRORROROROOORRRRORRROORORROORRRROORORORORRRRRRRORRORROORROOROORRROOORRRRRRRRRRRROOROOROOOOORROOORRRRRRRRRROROORRROOOORRROORROOOORORROROOOROROOROROOOOOOOOROROROOOORRROOOOROROOORRROOROROOOORORRRRRRROOORORROOOOORRRROOORRRORRORROORRRORROROROROORRORORROROOORROOOROOOOOOOROOROROORORROOOOOROOOOROROOROROOORRROOOOROOOORRRRROROOOORROOROOROORRRROROOORORRRRORORORORRRROORRROORORRROROOROOROOOORORROOORROOORROORRRRROORRRROOOOORORRROROROROOORRORROOOOROOORRROOROORROOOOORRORRRORRROORRORRORRRROOORORORROROOOOROOOOOOORORORRRROOOORRRRROOOORROORRRORROORRORRROROOROOOOORRRROOOORRRRROOROORROORRRRRROOOOROOORORRORROOROROORRRRROORORRRRROOOOROROORRRROROROOOORRRROOROORRROOOROROROORRRROOORRORORORRROOROROROOORORRORROOOOOORORRRRORORRORROOORRRRROORORORRRROOORORRORORROORRRRRRROORRRORROOORRORRROROORRRRRRRRORORRRRORROOROOOOOORORORRRRRROROORRRRRORORROROROORRRROROOOORRROOROORROROORRORROOROOORRRROOROOOROOROOORRRRRRRROOORORRORRROROOROROORRRRRORROORRROROORROOROOOROORRRRRORRROROROORRORRORORORRRROOORROROROOOOROROOOROOORRROOROOOOROORRRROOORORORORROOOOOORROORORRRORROROROROOOOOOORROOORORRRROORORORROOROORRROOOOOORROROORROOOOOOROORRRORROROORRROROROROORROORRORORROROORORRRRRROOORRROORRRRRROROOOORRRRORRORORRRORROOORORRORORRROOROOOORORRRRRRRRRORROOROORROROROOOORROROOROROOROORORRORORRRRORROOOORROOORROORRRORROROOOOROROORROOROOORRORRRRROOROOORRRRRRRRORRRORORRORORRRRRORORORRORRRRRRRRRROOROOORRORRROORROORRRRRROOROOOOOROROORORORRRORROORORRORORORRRROROOORRROOROORROOOOROOOROROOROOOOORRORRROORRORORORROROOOORROORRROORROROOOOOROORROROORRROROOOOOORRORRROOORRROORROOORORORRROROOOOOOOOOORROOROROOORRROROOOOOORRROOOROROOOORORORORROROROOORRRRRROORRRRORORROROOORROROORRRRRRORRRRRRRORRRROOORORROOORROOROORRROOROORROOORRROROOOROROOORRROROOOROOOROOOROOORORORORRRRORRROROORORORRROOORRRRRRRROROORRORROOORORRROORRROOOOOOROOORROROROOOROOOOROROOOOORRROOROOROOOORORRORORORRROORROOROOOORRRROOOORROROROROORRRRRROORRRRORRORROOOORROORRORORRRRRROOOOOOORORROORRRROOOOOOOOOOOOOORRRORORROORRRROORRRROROOORRROROORRRROORRROORORORRRROROROOOOROROORORRRRRROOOOOROOROORROOORROOOROOOOORORROOORORORRROOROROOORORRROOOOOROROROOOORRRROORROORROOROORORORRRRRRRORORRORORORRRRRROOORORRRORRORRORRORRRRROORORROROROOOROOOOORRRRRROROORORROOROORROOOOORRROROOROORROOORRRROORRRRRROOOOOOOOORROORROOOOOROOOROROOROORRROOOROROROORORRRRROOOOOORRROOROOOOORROORRROOROORORRRRORRORROROROROORRROORRROORORRORRRRORROORROROOOOORRRRROOOOOOORRROROOORROROOOROOROOROROOORRORROROOORRORROROORRRROOOOORROORROROORRRROOOOROROOOORROOOROOOROOORRRRORRROOORROORRORORORRRRROOOROROOOOROOORORORRROROOOOROORROOORORRROROROOOOOROOOOROROOROORRRORRORRORROROOOROOORROOOOROROORRORRROROOROORRORORROROOORORRORROOOOOROOORRORRRRORRRRRORRORORROOORRORORROROOROROOROOROOORRRRROORROORRORROOOOROROROORRRORROROOOOORROOORORORORROORRRROOROOORRROOOROOORORRRRORRRRROROROOOOROOOOORORORORROOROOOOOORRRROORRROROROOOOOOROORRROROROROOOOOROOROOOOROORRRRORRRROROROOOORRROROOOOOROROORRRORRORROOROROROORROOORRRORRRORRORRRORROORRRORORRORORRROORORORROROOOOOROORORRRRRORROORRRRRRORORRROOORRROROOOORORROROORRORROROOROOROOROORORORROOORORRORORORRRROROOOROROOORORRROORRRRORROORRRROROROROOOROOOORORORRORORROOOOOOROORROORROORORRRRORROOOOORRRORROOOORRRRRROROOROORROOORRRORORRORRRORRRRRROOOROROORRRORRROOORORROROOROORORORROOOROOOOROOORRORROOROORRRRRORROOOOOORRRRRORROOROOROROOROORROORRROROORORRRROOOORROORRRORRORORRROORRORROORORRROROOROORRORRRRRRRORRRORRROROOROOORROROORORROROORRORRRRRRROOOOORROROOROROORROOOOROOROOOROROOORORRROORROOOROROROOORROROOOORRRORRORRRRRRORRRRORRORROORRRRORROORRRRRORROOROOORROORORORROROOROOOOOOORROOORROOOORROOOROOOOORRROOOORROROOROOORRRROORROOORORRORRROOROROOOOROROOROROORRORRRRROOROROORRROOOORORRORRROORRORROOOROROOROORRRROOOROOROOORRRORROOROORRRROOOOOOORROOOOOOROOROOOROOORORRROOOORRRORORRROORORORORRROORRORROOORROROROOROOOORORRRRROOOORORRRORROORROOROROROOORORROORRRRORRORROORORORROROORROROORRRRRRRROOOOOORORROORROOOOORORORROROROOORRROOROROROORROORRROOOOOORROOORORRROROOOOROOOROORORORROOROROORRORRRORRROROOOORRROOOOOROORORORRRRRRORRRROOOROOOORRROOORRORRRRRRRRRROORORORRROOOOORRROORRORRORROOROROOOOOOROROOOOOOORRRRORRRORRRRORROOORROOROROROROOOOORROOOOOORROROROOROORROOROOORROROOORROOOOOROORRRROOROOOORRORORRRORROOORRRROORORROORRRORROOOROORROROROORROOOOOOOROORORRROOORRRRRROORRRORORRROOOORRRRRRRRRORROROOORRROORROROORRRRORROOROOOOOORRROORORORRORORRRROOOORRRROOORROOOORORRORRRORRORRROOROOROROOORRROORRRRORROOROORROOOOOOOROOORORRRORRORRROOOOORROROROROOOORROORRORROOOOOROOOROOOOOOOOORRRROOOOOROROOOORORORROROROROROOOOORORORRORRROORROROOOORORRORRROORORROOOROORORROORRROOROORRRRRORRORORORROORRORORORRROROOROOORROROOOOOOORROROROOOOOOOOORRROOROROOORRRRRRRORROROROORRRORROOOROOOROOROORRRRRRORORRRRROOOORROROROOOORORRORRORRRRRRRRROOOOORRROROORROOOORORORRORRORRRROOOROOROORRORORORRORROROOROOROOORRRROROORORORORROOOOROOORRORORROORORRROOORROORRRRORRRORROOOROOOROOOOORRORRROORROOROROORRRORRROROROORROORRORORRROROOOOROOOOORRROOOROORRRROROOROORRROORRORORRORORRROOROOROOOROROORRRRRROROORORRORROORRORORORROOOOORORRRRRROORORROOOORROOOROOOORRRRRROROORRRRORRRRRORRROOROROROOROOORRRORROOOROORORRRROORRRORORORRRORRRRRROORORRRRRRRORRRROROOOOOOROOOROOORORROOROORRORROOORORRRRRROOROROOORRRORORORROROOORRRRRRRRORRRRRRRRRRORROOROORORRORRORROOOOORRORRORRRRRRRROOOROOOOOROORRRORROOROORROOROOOORROOOORROOOOROORRRORRRORRRROOOROORRRORRROOROOOOOOOOOOROORROOOOROORORRROROOORROOOROOOORORRROROROORROORRORORROOROOORORRRRORROORRRRRROORROROOORORRRROOOOOROOOROOOROOOROROOOOOOROOORRROOOORORORORRRORORRRROOORRRRORROORRRROROROORRRROOROOOORRORRRORORROOOOOROOROORRRORORRRRROORORRRROROROORRRROOOOORRROROORRRRRRRROORROOOROORORORORRRORORROOROOORRRRORRRRORRRRRORROROROORRRORRRRRRRORRRRRRORROOROORROOOORRRRRRRRORROORROROORROOOROOOORROROOROOOROORROROOOOOORRRRROOOOORRRORRRORORRRORORORRRRRRRROOOOOOOOROORORRORROOOORROORROORORRROOOORRRRORROORRRRORROOROOOORROROOOROOOOOORRRRRRROORRROOOROORRORORRRROROOROOROROROOOORROOORORROORRRRORORRRRROROROOOROOORORRORORROROORROROOORORRROOOOORORROOROOORRRORROOORRRRRRRRROOORRORRROOOROORORRRORRORROROORRROROROORRRRROORRORRRROOROOORROOOOORORORRORRROROOOOOORORRRORRROOOOOOOROROORRROOORROOOROORROROORRROOORROOOROROROOORRRRRORRROOOOROROORRRROROOOROROOOORORROROORROOORROROOROOOOORORRROROOROORROROOOOOORRRRROOORRRRROORRRRORROOORRRRRORRRRROOORORROOROORRORRRROORROROOOOOOOROOROOOROOORORROOROROOOORRRROROOOROROOROROOOROROROOORRROROOOORRRRRROORROOOROORRORORROROOORRRRORRORRRRRORROOOORROORRORORRRORRROOOOOORORROOORRORRORRROOROOOORORORRROROOROROOOORORRORORRRRRRRORORROORROROOROROOOOOROOOOOOOOOORROROROOOOOOOROROOORORORROOORRRRROOORROOORRORROOOOOROOOORROROOOOOROORRRORORRORORORRROOROROROROROOOROOOROROOOOROROORRORROORRRORORRROOOOOORRROOOORRRRORRRRRRROOOOOORRRROORROROROOOOORRRORRORRROOOORROROORORRROROROOROOOOOOOOOOOOROOOORRORORRRRRROORORRROOROROROOORRROOOOROOROORORRRRRRROROROOORRRORORORROORROROORORORRRRORRRRRRROROOOOORROOOORORROOROORRRRRRORRRRORORORROORROOROROOOOROOROOOOORORRRRORRROROOOOROORRRROORRRROORROROOOOORORORORROOROOROROOROOOOORORORROROOOORROOOROORROOORRROORRRROORROOOORRORORRRORRORRORRRRRRROROOROORROROOOOORORRRRROROORORORRRRROORORRRRRROROOROOORRROROOORORRROOROOOOOOOOORROORRORRORRRRRRRRROORRRORRROOOROOOOOOORRRRRRRRRRROOORORROOORROROOOOROOROOROOOOOORRRROORORROROORROORRRROOORRROOOOORRROROOROORROROROORORORRORORROOROROOORRROROORROORROROOOORROROORROORRORORRRORRORROOORRRORRORRRRROORORRRORRROOOOORRRORRROOOOOORORORRRRROOOORROOOOORRORORORRRRRRRORRORORORROROROROOOORROORORROROORORRRORROORRRRROOOROOROROOROOOROOROOOORRORRORORRROORORRRORORROOORORORRROORROOOORROROOROOROORROORRRRRRRRORRORORROORRORRRROOOORRRRRROORORROORORRRORORRORORRRORROOOORROORRRRROROROOORRRRORROOOOORRRRRROOROOROOOORORRORORROOORRRROOROOOROOOORROOOROOOOROORRRRROOOROOOOORROORORORRRROORRRRRROOORROOORRORRRRROROROORRRROROOORRRRORORRROOROOOOORORROORORORORRRRRORROORORRROOORRRORORROROOOORORRRRRROROOOORROORORRORORRROOROORRORRORORORRRROOOROOOOROOOOROROOROOOROROOROORRROROORROOORROOOORORRRRORORRROOROROROOROROOOOORROORORRORROORORORRROROOOOORRRORRORRRRRORROOORORRRROROOORROOROORRORRORRROOOROOROOROOORRORORRRRRROROOROOORROOOORROOOROOROOROORORROOORRRORROORRORRORRRORRROOROORORORRORROOOROOOOOROROOROOOROOOORRROROORRROROORORRRROOORORORORRRRROORROROOORROOROROOORORRROROOROOOROORRROOOORROORRRRRRROROOOROORROOOOORRROOROORRORRRRROORRRROOROORRRORORORROOROOOOOOORRORORORRRORRRROORROROOORRROOOOORROORROOROOROOORORORORORROOORRRROOOOOORORRROOOOOOROOOROOOROOOORROOORRRRRRROOORROOORROOORORRRRRROORORRORROROORRROOROOOOOROOOOOOROOROOOOOOOORRORORROOOROOORRORROOOOROOORROORORRROROROOORORORROOOROOORRRROORRRROORROOROOOOROOORRROOOOOOOOOOOOORROOORORRRORORRORROOOROORRROOOOROROROROORROOOOROOOOORRRRRROOORORORRRROORRROORRROOOROOROOROOOORORORROOORORORROOOORRRRRROOORRRORORROOOOOOOOOORRROORROORRROORORRRRRROROOORRROROORRRROOROOORORRRORRORRROOROROOOROOROROOORRRRORRROROOOORROORRRORRROORROROORORROROOORRRROOOOORORROOORORRRRRORRRORRRRROOORRORRRRROORORROORORORORRORROOOORRRRRRROOOOOOORRRROORROROORROROOROOROOOORRRORRRRROORORRROORROROOOROOOOROOROOROOORROORROROORROROORRRROROORRRROROOROROOOOROORROOOROOROOORORRROROOOROROOOORRORRRRRROROOOOROORORRROROORRRORROOROORORRROROROORRORRROROOROROOORROORROOOOOROROOORROROOORRRRORRORORROOORRROOOROROOOOROOROORROROOOOROROOORRROOOORRRORORRRROROOOOORORORORRRROORROROROROOOORORROOOORORORROROOOOORORORORRROROORROORORRROOROROOORORORORROROOOORRRORORRROORROOOROOORORRRORORRRRRRRRRRRRORROOOORRROOOOOORRORROORRORRORRRRRORORRORORRRRORRRRRRORRRRRORROOROOOOORRRORROORORRORRORRORRORORRROORRORRRRROORROOOOOROOOOOOOOOOOOROORORRORROORRRRRORORRORORORRRORROROOOOOORRORRORORRRROROOOOOOORORROOORRRRORROOOOOOOORORORROOOOOOORRORROROOROOORRRORRRRRRROOORRRORRRRORRROOORROOOROOROORRRRORRRRORROORRRROOROOORORRRRORRRROROORRROOOOOOORORRRORORRORRRRRROROOOOORORORROOOOOORORRRRRRRRRRRRROOORORROORRROOORORORRORROOROOOORRORROROROORRROOORROROROROOORRORORROORRROORRORORRORRRROROOOOORORROOROORORROORRRROROORROOORROOOOOROOORORORORRORORRRORRROROOORRROROORRRRORROOORRRRROORRRROROORRROOOOORORROROOROORORORRRRORRRRROOORRORROOOORROROROROORORRORRRROOORRRRRROOORROROOOORORROROOROORORROOROORRRRRORRROOOROOOORRRRORORRRORORRORRRRRRRROORORRRORRORRRRRROOOOORORRORRRRROOOROOOORRORROORRROOOOOORRRRRRRROORROOROOOOOOROORROROROORORORROORORORRROOORRRORROORRORROORROROORROOROOOROOOOROOORRRORRROROORRROOORORRORORORORORROROORROROROORRRORROROOOOOOROOORROORROORROOROORRRRORORROOOOORROORRORRRRRORRROOROOOROORROOORRROORORRORRRORROROOOOROROORROOROOOROORORRRRORORRROROOOOROOOROOOROORROOROOORRRRRRORRRROROOOORORRRORRRRROOOOOOORRRRRRRORORRRROROOOOOOOOROOORRRRRRORROROOROOORRROOOROOOORROROOOORRRRORORRRRORROOOOORRORROORRRORROROORROROOROOOOORROROOROROOOROOROROOORRRRROOORRRORRROOORROORRRRROOORRORROOOORROOROOOROORRROROORRORROOROOORRORORRRRROOOOORROORROOROROOORRORRRORRRRROORRRROROORRRRORORORRRRRRROOROOOOOOOOROROOROOOOOOROROOROOOROORRROROOROORRROROOOOOROROOROORRRRORROOOORROOROORRROORRROORRRRORORROORRRRRROOOROORRRRRRRORRROORROOOROOOOOOORROOOROORORROROOOROORRRROOOOORROROOOORORROROOORORORRRORORRRORROORRROROORRROROOOOOOOORRRORORROOOOORORORRRRRRROOORROOOORROORORROROOOORORRRRRROOORRROOOOORROROOOOORRRROROOROOROOROOOROOOOORORRROOROOOORRRRORRRORORROOOROROROOORROROROORORRORRROROOORRRORORORORRRROOOOOROORORRRROOOROOORROORROROORRROOOROOOOOROOOROORRORRRORROOOOORROORRRROORRRORORRROORRRRROROOOOORRRRRRORRORORRRRROOROOROORORRROROOOOOROORRORRORRRRRRORORORROOROROROOOOROOOOOROOOOOOOORORORORROROOORRROOORRRORORORORRORRRRRRRORORRRORORROORRORRRROOROOOOOORORRRRRROOOROOOOORORRROORRRORORRRRROOOORROROROROORORROORORROORORORORORROOORORRORRRRROOOOOOROORORRRRORORRRRORRRROORORRROOORROROOROROROOROOOOORRRORRORRORROROORROORROOOORROROORRRRROORROROOOROROORORRRRRRORRRRRRORORRROOORRRRROOOOOOOOORRRRRRRRORRORRROOOROOROROROROOROORORRORRORORRROROOORRRRORORRRRORRORRRRRRORROROOOOOOOOORRRRROROORROOOOOOROORORORORORRROROORRROORRROOOORRRORROORORRORRRRORRORORRORRRRORROOROOORROROORRORROORORRRRROROOROORRRRRROROOOOROORROORROORRORRROOROORRORRROOROROOOOROORRORRORRRORRROROORRRRROROOOROOOOOORORROORROROORRORRORORORORRROORROOORORROORRRRRORROROORRRRROOOOROROOOOORRORRRRORRROROORRORORORRRROORRRRRRORRORRRRORRRRROROROORROROORRROROORRORRRRRRRRRRRORRRRROROOOOOROROOROROOROORRORRRRRROROORRROOROORRRORORRROORROORRORORORRROOOOROOOORORRRROOOORROROOOOOROOOORROORRRRRRORORORROROROOOOROROROOOOOOOOOORROOOROORORRROOOOORROORRROORROOROOOROROOOROROOOOROOOOOROROOOROORROROOROORROOORRORROOOORRRROOOROOOOROOOROROOOOOOOORROOOOOORRRROOROOOROOROROROROOROOORRRRORRORRRROROOORORRRRROROOORRRORRRRRRRRROORROOOROOORORRROOOOOROORORRORORROOOORORORRORROORRROROOOROORORROROROOROORRRORORRRORRROOOROOOOOOOOORRORORROOROOOOROOORORRROOORROOROROOOOOORRRROORRROROOROROOORRRROROOROROOROOORROROOROOOOORROROOROROOOOROROROORORRRRORORORORRROROOOOOOOROORRROORORRRRRROROOROROOORRROORRROOORROORRORROORORRRROORROROOORORORRORORRRRRORRRRROORRORROOORORRRORROOROOROOROOOORROOOOORORORROOOROROOOOORRROOOORORORRRROROORORROORRRRORRORROOOORORRORRRRRRRORRRRORRORROOROROROOROOOORRORRRORROROOOROOROROOOROORRRORROOROOORRRROROROORROORROOOOOROORROORRRRRORRORRROROROORORRROROORRRORRRROORORROROOOORRRORRRRROOROOROOROROROORROROOOROOOROOROOORRRRROROROOORRROROROOROORRRRROORRORRRROROOROORROOOROOORORRORRRRRORRORORORRRORRROOORRRRORORRORROOROORROOOOORORORORORROOORROORRRRROOORRROORORRRROROOOOOROOOOOOOOROROOROROOOOORROROROROORROORRRORORORRORRRRORROOROOROOOOORROOOOOROOOOROOROOROROROOROROROROOORRRROOOROORRRORRORROORROORROOOROOORRROORRORORROOROROORRROORRRRRRORRROORRRRORRRROORRROORRRRRRORRRRORRRRROROOOOORRRRROOROOOORRRRRROORRORORORORRORROROOORRRORROORRRORROOOORRROROORRROOOORORROROORRORRRORORROORRRRRRORORRRRRORRORRRORRRRORRRORRRRRRORRORRRORROOOOOROORRRORRRORROROOOOROORROOORRRORRRRRRORRRORROOORRRRORORORORRRORRRRRRRRORRORORRORRORRRRRRORROOROOOOROROORROOOOROROORRORRORORROROROOOORROORRROROORORRRRROOOROORROOROOROROOOOOOORORRORORRRORORROROOORRROORROOOROORRRRORRORRRRRORROORORORROOOOORRORRROORROOROORROOORROOROORRROOROOROOOOORRRRRRROOOOOOOORROORORRRORORRRRRORRORRRORRROOOOOORORRORROOROORRRRROROROOROROOORRRORRRRROOOOROOORORRRRROROOOROORORRORRRROOORRROROOORROORROROROOORRRRRRRROORROOROROORRROOOORORORROOOROOROOROROOOOORROOORRRRRRRROOOROOOORROOORRRROOROROORORRORORORROORRORRRORORRROROOOOORORROORROOOOORROROORROORROROOORORROOOROOOORROROOOROOORRORRROOOROORRORORORROORRRRORORRORROROROROORORROROORRORROROORRRORRORRORROORROROOOOOOROOOROOROOOOOROOROOOROOOOORRROOROOOORROOORROOOROORROOOOOROOROORRRRORRRORROOOROROOROORRRROOORRORROORROORRROOORRRRROOROOOORROOOROOOROOOOORRRORROROOOORRROORORROOOROROOOROOOROOORRRORORRROOOOORRRORRROOORRRROOOORROROOROROOOROORRORORORRORROORROROOORRRROOOROORORORORRORRRORROOROOOOOORROORRROOORRRRROROOOOOORORORORROOOOOOORRRRRROOROROOOORORROOOOOORRRROORORORRROROORRROROORRRRROOROORRRORRRROROOORORRRRORORRORRRROOORORRRRROROROOROORRRRORORRORORORRRRRRRRORORORROORORORRRROORROORRORRRROORROOOORRROROOOOORRORORRORRRRROOROOORRROROOOORRRRRRRRRRORRORRRRRRORROROROOORORORRORROORROORRRRRRORRORRORORRRROROROORROROOROOORORROOOOROROOOOOORORROROORRROOOORORROOOORRROORRRRROROOROOROORRRRORRRORRORROOROOOOROORORORORROORROOOOOOROOORROOORRRORROORRRROORRROOORRROOOOOROROOOROORRORROROORROOOOOOORORROORRROOOROROORRORROROROROOORRRROORRRROORRORORRORRRROOORRRORRORROOROOOROORORRRORRRRROORORORRORRROROROORROOOOORORROROOROOOOORORROROOROORROORRRORRORRRROORRRRORORORROOOORROROOOOORRORRRORRRORRRRORRRRRRRROROROOOROOROORRRRORRORROOROOROOOOOOOROOOROROOROOOORRRRROROROOORRRROROROORRRORROROOROORRORRROROOROOOROROOROOOOROOOORRROOROROOORRROOROOORRROOROROROORORRORRROOOOORROORRRRROOROOOORORROROORROOORROOOOOOOOORRROOOOOROOROOOOORRRORORORORORORROOOORROOROROOOROORROORRROROOROOOORROOROOOORRORRRRRROOROROOROROROROOOORRRORORROOROOOROOORROORRRRROOOROORROOOORROROORRROORRRRORROOOOORRRORORORRORORRORRRRROROOOOORRRORRRRRRRRROROORROROOOROROROROOORRORRORROROOORROORRRORRRRROROOOOOOOORORROOORRORORRROOROOROORROOORORRRRRRRRRROROOOOORORORORROOOROROROOROOROORROOORRORORRRRRRROROROOOORRRRORROORROROOOOORRORROROOROROOROOOORORRORROORRORRRRRORRRRORORROORROOOORORORRRORRRROORORORRRROOOORORORRRRRRRRRRRRROOORORRRRRORRRROROORORRORROOOOORORORROROROOROOOORRRORRROORRROORRROOROOOOORORORRORRROROROOROROROOORRROOORRROOROOOOORORROORRROROOROORRRRORRRROOORRRROORRRROROOORORORORRRRRRROOOOOROROOOOORROOOOOROOOOOOOOOROROROORORORRORRRROOOORRROOOORROORRRORROROORRRRRRRROORORRROORRRRRRRRRROOORORRRRRRROOOROOROROOROOROOOORRROOROOOROOOORRROROOORORRROOORROOORORRRRORRRRRORRROROOROORRRRROOOOOROOROORORRRROOOORROOOOOORRROORROORRRORROOROROOOOORRORRRRROOOORORROOOOOORORROOORORORRORROOORROOOORRORORRRROORRROROORROROOROOOOROORROORRRROOROOORRRRRROOOOORRROOOOOOOOOORRRRORRORRRORORORORROOROROROOOROOOOROORORRRROORORROROOOOOOORROOORROOROOROORRRROOROOORROOOROOORRROOOOORORROORRRORORRRROOOOORRORRRRROORRORRRORORRRORROOROROOORROORORORORROOOORROROROROOORROOROROORRRRORRROROORRROROORRORRROROORRORROORRORRRORROOORROROOROROROOROORRROROORORRORORRROOOROORRORORORRORORORRROORORRORRRRRROORRORRRROOOROROROROOOOORROORROOOOORORRROOOOOORORRROOOOROROORRROOROOROOOORRROOOROOOORROROROORROORRRRROOOOOOORROROROOORORROOROROOOROOORROOORROORROOOROORORROORRRORORROROROORRRRROORRROROORRROORROOOORORROOOOOOROOROOOOORRORORROROROORROOORRORRROROROROOROOOOOOOROOOOOORROOOOOORRROOOROOOROORRRROOROROOORRRRRRRRROOORROOORROROOORORORRRORRORROROORROROROOORORROROOOROOORRRRROOOROROOOROOOOROOOOOOOORRRRRROOORRRORORROOOROOOROOORRRRRROORRRRRRROOOOOOOROROORRRRRRROROROOROORROOOORRROROOORRRRRRRROOOOROORRORRROOOOORORRRORRORORRRORROOOOOOOOORRROOORROOOOORORROOOOOORRRROROORRORORROOORROOOOOORORORORROORRRORRORROORORRROROROROOOOROROORROORORRRRRRORROORROOROORROOROROORROOOROORORRROORORRROORRRORORORRRROORORRRRRROOOROORORRORRORRORRORORRRRRORROOOROOORRORORRRRRORRRORRORRRORROOROOOOOORORRRRRRROORROOOOOOORRROROROROROOROORROROROOORROORRORROROOOROOOROROORRROOORROOOROOROOOOORROOORORRROOOORRRORORRROORROOOROOOORORROOORROORORRORROOROOORROOORROOOORRRORORRORRRROOOORRRRROOOORRROOROOOOOOOROOROROROOROORRROOROOORRRROOOORORRORRRRROOORORROOOROROOOORRROOORORRORROOOOOOOORRRROOORRRORRROORRORROOORRROOOOORORORORRROORORRROOROOOROROOORROROORRRRRROOORRORORORORRORORRRRORORRORRROOORROORROORORORRRRRRROOOOOORROOOROORRRROOORORRRRRRORRRROOOOORRORORROROORROORRORRROOROOOORORROORORORRRORRORROOROORROOOOROROOORRRROOOOROOOOOROORRORROROOOOROROOOORRRORRRROORRRROROOOORRROOOORRRORRROOROOOROROROOORRRRRROORROROOOOORRORORROROOORRORROORRRRORORORORRROROOORRROOOOOOORRROORROORROORROOROROORRORORORROORRRRRORROOROOORRRROROOOOROROOORORRRROROROOOOROOOORORRROROOOOOOROORORRRRROOORRRORRRRRRROOORRRROOOOORRORROROORORRORORROOOROROOOROROOROORROOORRORROORORORORRRRORORRRROOOOORROOOOOROOOORORRRRROOOOOORROOOROOORRROROROORROORROROOORROROROORRRRRORRRROOOOORROORRROROORROOROORROORORRROOOROOOOOOOOORROOOROOOOOROOOOOOROOORRRORROOOOOORROOOOOROROOOORORORRRORROOORRROORORRROROORRROORORROROORRROOOORRRORRORROORORORRRORRORORRROOOOROOOOOOOOROROOOROROORROORROROROOOROOORRRRORORROORROROROOROOROROORRRORRRRRRRRRORRROROORRRORRRROOORORRRROROORORRRROROORROORORRROOROROORROOOOOOROROOORROOOOROROOOORORORRROOOROOOOOOROOROROOROROORORRRRORRROROORRROOORORRRRRRROORROORRRRRRRRRORROOOROROROOROORRRROOOOOOOOORORRROROROROOORRRORROROROOOORORRROORRORRRROROOROORORRROROROROORRRORORROOROOOROROOOROROOOOROORROROOORROORRRRRORRRRROROOOROOOOORRRRORRRORROROROOROORORORRRORRRRROROORROORROOORROOOORORORORROOROROROORRROORRRROORRORROORRRROORROOOROOOORROORRRORRRRRRRRRRRROORRROROOOOOORRORROROOOOOORRORRRORRRRROORRROOOOOORRROORORROOROOROOROOOROROOORRRORRROORRORORRRORRRRORRROROROORORRRRRORRORROOROORORRORROROOORRRRRRORROOOROROOORRORRRRROROOOOOROORRRRROORRROOOOORROORORORORORROROOROOOOOOORRRRRORORROROORRORRRROOROOORRROOOOOORORROOOOOOOROORROORRRRROROROROROROOORRROOOOOOOOROOROORRROROOORROOROOROORORORRRROORROROOOORROROROOOOOORORRRRRRRORRRORORORROOORRROOOORORRRORRORRORRRROROOOOOROORORRROOROOORRORRROROOOOORRROROROROORRROORRORORRROROROROOOOOOOORORORRRORROOROORORRROORRROROOOOOROORROOROOOOROOOOOORROOROORRROORRRORORRROROOORRROOOOORRRORROOOOORRROORRRRORORRROROOOOOOROOORRROROORRRRRRORROOROOORRROORRRORROOOROOROOOOROORROOOROORRRRRROROOOROROROROORRRRORORRRRORROROORRRRROROOROROOOORROORRRROROROROOROORORORRROOORRORRORROOOORORRORRROROOOROOORROOROOOOORRRORORRRRROORROORRROOORROOORORROROROORROOOOOORORROOORROOORORRORRORRRRRROOOORORROORORRROOOORORRRORRRRRRROOOORORORRRRROROROOOOOOOOOOROORRRORRRRORRROROOOORORORRRROORORROROOROOROORROOOORORRORRORROROORRRORRRORRORRROROOOORRRRRRROOORORROROOOOORRROORROORORRORRROOOOOORROOOOROORORROOORORROOROOOOOORRORRROORRROOOORRROOROROROOORRRRRORRORORRRORORRORORROROOORRRROROROOROOROOOOROROOOOORORORORROOORORROOOORRRRROROROROROROOOORRROOROOORRORRORROROOROORROOOROOROROOOROORRRRORRROOROROORRRRROORORRROROOOOOOOOROROOORRRRRORRRROOROROOORROORROROOOOOOOORRRRRORORRRRRRRRRORROORRRROOOOOOOORORROOOOOOOOORROROROROOORRROROOROORRROORROOROROOORROOOOOROORORRRORRRRORRROROOROOROROOOROOOOROOROOROOOORRRRORRRORROOOORRROORORRROROOOROOROORROOROORRRRRROORRORROROROOOORRRRROROOOOOOOROROOOOOOROORRROOROOOROOORRROOOOROOORRRRROOROOOORRROROROOROOORRORORRORROOOOROROOORROOROORRROORRORROORROOOROROOOROOOROROOOORRRRORRRORRROROORRRRROOOOOROROROORORRRRRRORROOOOOOOOROOORORRROOOOOOROORORROORROOOROOOROOOORORORRRORORROORRRROORRROROOOORROOOROOORORROOOORRROOROOOOORRRROOORORORRRORORRRRRROOROOORROORORORRRROORORORROROOORROOOOROROORORROOORROORROROOORRROROROOROROOORRROOROROOORORROORORRRRORRORRRRRRROOORRROOOROOORORRROOOOOROOOOOORROOROOORRROOORORROOORROOORROROORRROOORORROORORROOOORORORROORRROORRRRRRROOOORROOORROORROOOOORORORROROORRROORORRORRROOORRROOROROOROOOROOORRORROORROOORROOORORROOORRRRORORROROROORROOOORRROOOORRRROOORORROORRRORRRORORROROROOOROOORROOORORRORROORROOROROORRROROOOROOOROROOROOORORORRORORORRRROOROOOOOROROOROORROROOOOOOROOOORROROROORRORROOORORRROORRRROOOOORROOORROOROOORRORRORORRRROOORRORORRRORORROOROOOOOORRORRRORORRRROOROROOROROOOROOOROOOOROOROOROORRRORORRRRORROOORORRRORRRROORROROORORRRROOROOORORROOOOORORORRRROOROOOORRRROOROORORORRRRORROORRRRROOOROOORRRROORRRRORROOOOORRORROROOROROOOROROOOOOROROOOOROOOOOROROROROROOOOOORRRRRRROOOORRRROROOROOROOORORORORROROOORRRORROORRORRRROOOORROROOORORRRRRROORRRROOOOOOROOOOORRROORRORROORORRORORRROOOORROROOROOORORRROORROORRRRRRROOORRRRORROOOOROORROOORRORRORROROOROOROORRROOORRORORORRRRRROROORROOROROORRROORRRROOROORRRRORRRRRORRRRROOROROOROORROORRORRRRRROOOOOOOORROOORRORROROORORRROOROROOOORRROORRRROOROOORRORRRROOROORRRORROOOOROROORRRORRORRORRROOOOOOROOOOOOOROROOROOROROROOROROROROOOROROROROOOROOORROORRRROOOORORROOOOROORRRRRRORROOORRORORROOOOORRRROOOOOOOOOROORORRORRRRROORORRORRROORROORRRORRRRRORRROOOROROORORROORORROOROOROORORROOORORORRORROOORRRRRORORRROROORRRRORRRRRORRRORRRRRROROORORROROORORROROROORRORROROOOORRROORROORORRRROORRRRROOOROROOOOOOORROOOOORRORORRORRRROOROORRROORRRRROOOROOOOROORRRRROORRRRRRRRRRRRRORRROOOORORRORROROOROROORORRORORRORRRROROORRRRORORRRRORRRROORRROOROORRROOROOOROROROOOORROOOOOORRROOROORORORORROORRROOROROORRRRRRRROOOORORORROROORRRRRRRRORROOOROOORRRORRRROORRRORROOROOOROOORORORRRRORRORORORRRROOOORRORRROROORORROOROOROOOOROOOROROOOOOOORRRRORRRRRRORORRRROOORRROROROOOOOROOROOROOORRRRRRORRORRRROORRRORROOORRORRORROROOOOOOOOORORROOOOORRROOROOOOOROROROOOOROOOOOORRRROORRRROOORROOOOORROORRRROOORRORORRORORORRRROOOROOOOOOOOOOROORORROOOROROORORORROORRROORRRROORROORRRRORORORRRROOOOORROROORROOORROORORROOOOORRROOOOORROOOROROROOOROOROROOOOOOOROOOROORROROOORRRORORORRROROROOORRROOROOOORRRRORROORROOOOOROROROOORROOORRRRRRORROOOORRROOOOORORRRRROOROORROROOORRRRORRROOORROOROOROORRRRRRORORRRRROROOOROORRRROROROOOOROOOOOOROORROOORRRORRRORRRROOOROORRROORRROROROORROORORRORORORROOROROOROOOOORORROOOOROROOOOOORROROORROOROOOOROOOOORORROROROOROROROOORROOORROORRROOROOOOOORRROROROROORRORROOOORRRORRROOORROROOOORORRRRORRRORRORRRRROORRORRROOOOROOROROORORRORRRRRROORRORROROROOORORRROORROORRORRRRRRROORROORRORRRROORRORORRORRRRRRRROORORROROOOORRRRRORORRORROROORORRRORRROORRRRRORRRRORRRRROROROOROOOOORRRRRRRRORRRRRRRRORRORRROOORROOROORRORROROOROOROROORORRRORROOORRRRROOOROROROORROORORRRRORRROOROOOROROOOOOORRRROORORROROOORRRROROOOORROOOROORRORRRROORRRORRROORROOROOOOOORRRROROORRRRRRRORRRRRROORRROOOORROROOOOOOOORROOROOROOORRROOORRORORRROOOOROORRROROOORORROORRORRRRRRROORROOOROOOORROOOOORROOOROOROORRRRORORRORORROOOOROORRRRROORROOOOOROORORRRRORRROROROROORRROOORROORRRRRRORORROROORRRROOROROROORROROOOORROORRRROORORRROORORROROOOORRRORROOROOOROORORRRORROOOORRROOORROROOORRROOOOROOORROROROORRROORRROOORRRROOORROOOOORORROORORRRRRROOROOROROORORRROORORRROOOOOOROOOROORORROOOROOOORORRRRROOORROOOOOORORRRORORORORRRRORROOOROORROORROOROORORROROOOORRRROOROOOOORROROOOOROROOOOROROOROOOOOOROROOOORRROORRROOOOORORORROOORROOOROROORORRRRROOORRRRRORRROOORRROOOORRORRORROOOOROORRRRROORRORRRORORRORORROROOOORRORROOOOOOROROORROROOOROORRRORROOOOORORORRRROORRROOOROROOOOROROROOOORORRRROOROORRORORRRRORRRRROOORRORRORRRORROORROORORROROOROROROOOOOROOORROOOOOROROORROORORRRROOORRROOOROROROORROROORROROOOORRROORORRRRORRRRORRRRROORRORRRORORORRORROORRORRRRRROROROROORRRROROOOROORROROORORROOOOOROROOROOORRROORRORROROOOOOORRRORORORROOROORRRRROORROROROOOROOORROORRROROOROOORORROOROORROROROOOOOOOOOOORORORRRROROOOOOORORROROROOORRRORORORRRRORROOORRORROOROOORRRRROROOOOROROORRROORROOOROROOROORORRRRRRROROORROOORORORRROOOORRROOROOROOROROORRROROOORORORORRRROOOOROROOROROROROOOOOOROROROOROOORRORRRORRRRROROROROOOROROROORRORRRROOROOROOOOROOOORROORRRORRRORROOOROOOORRRROOORRORRRRRRORROOOROROOOROROORORORRRORRORRRROROROOOOOORORRRORORRORRRORRORROORORRROOORRORROROORORROOOOOOOOROOOOORROOOOROOROROOOORRROOORORORRROORORRRORROROOOOOOOOOROOORORROROOOROOOOOORRROOORRRRROOORORRORRROORRROORROROOOROROORRROROORRORRRROORRRRORRRORRRRORROROORRORRRORRRORRROOROOOOROOOOOORRRRORROROOROORROOOOOORROORROOOORROORORROORRRRRORRROORORROROORRORORRRRROORRRRRORRROOROORRROORORRRRRORRRRRRRROOOOORORORRRRRORORRRRROOROORROOORRRRRORRRRRRROOROORRROORRROROROORROROORORRRRRORORRORORORRRRORRORRRROROOROOROROOROROOOROOROORORRORRORORROOOROROOORRRORORROORRORRROORROOORRROROROOORROOORRRROROORRRRROOROORROOROOOOOORROOOOROROOROOOROOOROORROOOORORROOORROOORROORROOOROROOOORRRROROOOROORORRORRORORRRRROOORRRRRORORORROROORRORRRRRRRRRORRRRRRROORRRRROROOROROORORRORORRORROOORRORRORROOOOOORRRORRROOOORORORORRRROOOORRROOORROORRROOOORROOOROORRROOOOOOROORORRORRORORROOOROOROORRRROOOORRROOROORROOROROOORROOOOOOORROOOOORROOROOOROOORRRRROOORRRRRROROROROOOOROROROROOROOOOROORORORRROORRRROOOOROORRRRRROORRRORRRRRROROORORORROOOOROOROROROOOOROOROORRROOOROOROROOOOOOOROROROOOORRRRORORORRRRORORRROORORRRRRROOROORROROOROORRRORRROORRORRORRRORORORROOOORRORRRRRROOROROOOOROOROOOOORRRORORROORROOORRROOOROOORROOORROOOORROOOOORRORROOORROOOOORRRORORRRRROOOROORRRROOROOOOORRORORORROORORRROOOOOORROROROROOOOORORRROORRRRROORRRORRRRROORRROOROORROROOROROROOORRORORRROORRRRRRORRRROOOOOROOOROORORRRROOOOOOOORRORROOOROOORRRORRRRRROOOROOORRORROOORROORRORRRRROORORROROROORRRROOOOOROOORROORRROROORROORROOROOOROOOORORROROOROOROROORRRROOORRRROOROOOORROOOOORRROOOOOOOORROOORRRROROORORORRRORRROROROROROOOROOROORRRRORRORRRROROOORRROROROOOOORRRRRRORROOOOORROOOOOORRROOORROOROOROOORRROOOOORROOORROOOOROOORRRRRROOROOORORROROOOOOORRROOORROORROOOORORRRRROROROOOROORROROOOROOORORRRRRRROORRROOOROORORRRORRROORRORRORROORORROOOORRORRRROROOORORROROROOOOROOOORROOROORROROROOROOOROOORORRROROORORRRRRROROOROOOROOORROORRROROORROOOOOORRORRROORROROOORROROORRRRROOORORRRRRRORRRORORRORORRORRORRRRRROROOROOOOOORRRORROORORRRORRORRRORORRRORROOROROORORRRORRRROROORRROORORROORRRROORRRROOROORROORORRRORROOOOOOOOOOOOOORROROOROORROROROOORRRORRROOORRROROOORORORORRRROOROORRORRROOOOOROROOORORRROOROROORORRRROORRRORROROROOORRROORRORROORRORORRORROROROOOOROORRROOOOOOROOOORRRORROOOORRRORRRORRROROROOORRORROOOORRRORRRRRRROROORORRRORRRORRROOOROOOROOROORORORRRORRRRRROROORRRRROORRORRRRORRORRROOOOOOORRRROOROROOOROOOOROOORRROOORRRORORRROROORRRROOOROOROORORORRORRRORROOORROROOORORRRROORROORORRORROOORRROORRRRRORRORORROOOOOORRRRROOROOORRORRRRRRORRRROOOORROOROOORORRORRRORRORORRORRRROORORORORORRRRORROORRRROORRORROORRRRORRRRRRRRORRRRRRRROOROORRRORRORRRRRRRRRRORRORRRORORROOROROOROORORRORROOOOOORROORROOOOOROOOOROROORROOORRRRORRROROOORROOORRRROROROORRRRRRRRORRROOORROOOROOOOOOROROORORORROOOOOROORORRROOOROROORROORROORRROOROOORORROROOOORROOROROOOOOOOOORORORRRRRRRROROORRRROOOORRROOOROORROROROORORRROROORRRRORRORROROROROOOORRRORRROOOROOOOOORROROROOOOORRRORRRROROROROOOORRORRORRROORROROROOOOROOROORRRORRRRRORROROOROROOOORRORORORROROOOOOORRROROORRORRRORRRRRRORRROOORROOROOROOOOOROORRRRORRORORRRORRROORROROROROOROOROROOROOOORORROROOOORORRORORRRROORRORORRRROOROOORRRRRRROOOOOROROOORRROROOORRROORRRRRRROORRORROOORROOOORRORROORRORRORORROOOOORRRORRROORRRRRRORRORRROOOORRROORROOROOROOROOROOOORORRROOOROOORROROROORRRRRRROOOOOOOOOROORRRROROOROROOOOOOORRROOORROROROOROOORORRROORRROOROOROOROOOORORROROORROROROOROROORORORRROORRRRRORORRRRROROROORRRROROORROOROOROOOROOROROROOORROOROORRRROORROROROROOROOROROROOORRROROORRORORRRRRROOORROORROOROOROORRRROORRORROROOOROOOOROROOOOOOROORORROROROORRRRROOOROROORRROOROORRORRRRROOROORORRROORRRRRRRRROOOOROOROOORRRORORROORRORROOROOORROORROORORROOROOORROROOOORORROORRRRRORRRRRROOOOROOORORORORROOOOOORRORROROOORRRRRROROOOOROOOOOORROROOOOORRRROOROOOORRROOORRROOORROOORRRROORRRROOORORRROORORROOROROOOROOORRORRRORRRRRROOOROOOROOORRRROOORORRRRRRRRRROORROOOORRRORROOORRORORRORRRRRROORORRRORROOOORRORRRRORRORROORORORRRRROROOORROROORRRRRROOORROOROOROOORORORRROROOROORROOOROOROOORRRROROORROROOOROOOROOOROOOORRRRRRROORROROOORRRROORRRORRROORRRORROROORROROORRORORRRORRORRRORRRROORROOOROROORRRRORRRRROORORRRROOOOORRROOOROOOOOROORRROORROOROROROOORORORRRROOOOOOOOORROOORORRORRROROOORRRROOOORRROOOOORROORRRORRRRRRORROROOOROROOORRRROROORRRRRORROOROORRRROORRRORORRRROORORRRORRROOOROORORRORROROOROOROOOOOORORRROOORROROOOORRROORORRROROROOOOORRROORROORROROOORORORRRROOORROOROOORRROORRRROOOOORROROORRRRROROOOROOROOROORRORORRRORORROROORORORORROOORRRRRORRORRROOROROROOORRRORRRRORROOOOOORROOORORRROOOROORRRROROORORORRRRROOOOOOOOROOORROORRRROOORRRRROORRROROROOORRROROROOROOOROOOROROORORROORRRRRROROOOOOOROOORRORRROORROOOOOOROOOOROOORROOOORRRRROOOOOORRROORRRROOORRORROROOROORRRROROORORRRRRRROORRROROOOROROOORORRRRRRRRROOROROORORROOOORROROOOOOROORRRROORROOORRRROORORRRROOORROROOROOOROORRRRORRRRRORRORORORRORRRRORORORRRRROOROOOOOOROOOROOOOOROORROOROOROROORRROORORORORRROORRRRRORRRORORRORROORORRROORORORROOOOROOORRRRRORROORRROOORORRORORORRROOOOOOROORRRRRRROOOROORROOROORORRRROORORRORROOROROOOROORORORRRORROROOORORRROORRRROOROORROOROOORORROOOOOOOOROOOOORRROORORRRROORORRROOORRROROOORRROROROOOOOORROOROORRRRRORRROROORRRORORORORRRORRRORRROROOOOROROORORORORRROORROOOROORRROOOOOROOORROOOROOORROOORRRRORRORRROORRROROOOROOORORRRORRORRROORORORROORRROORRROOROOROOORRORORRRROROOOOOORROROOOORROORRRROROROORROOOORRRROROROROOOROOOOORORRROOORRROOORORRRROOORROOORRRORROROROOOROROOOOORORORROORRRRRORRROOORRRROROROROOOOROROOROOROROORRROROOOROROOORRRRORRRORRRROROOROORRROOOOORRRRROROORRRRRROORRRRRRRRRROOOROOORORROOOOOOOORROOOOOOROORROORRROROOORRROOORRROOOROROOOROOORORROROROROOOROROOORROORRRORORROORORROORORORRRROOOROROORRROOROORORROOOOROOOROOOOOOROORROROROROOOROROORRROORRRROOORORROORRROROROOROOOOOORRRORRRRORORRROORORROOORORORRRORROOOOROORROORRRRRRROOOOROOROORRROOOOORRRROOROOROORROORORORRRRRROOOROOROOOROOOORROOOROOOROOROOORRROOROROORORORRRROORRRORORORORORRRORORRRRORROOROROROROOORRROROOOOOOROOOOROORROOOOOROOORORRRROROROOORRROOOOORRROORORORORROROORROOORORROORRRRRRORRRROROOOORRRRRORRRORRRORROROOOOROOOROOOROOROOOOOOOORORRROOOORRORORRROORRRRROROOORRORORRROOOOOROROOORROORRORRROOOOOOROOORRROOOOORRRROROORRORORORRROROROORROOORROROOOOOOOORORORROOOOROOROOORROOOORROOORROROOOORRROROOOORRRORORORROOOOOORRROOOORRORORORROROOOOROOOORRRORRORROORORRRRORORRROOROROROROROOROORROROOROROOOOOORROORORROORRRROROOOORRROROROOOOOOROROORRRRORRRROROORRORRRRROROOOOROOOOOOOROROROOOROOOORRRRORORORROOORORRORRRROOOROOOROOROORRORRROROOORORROOROROOORRRORRROORROORRORORRORRROROROROROOOORRRORRROORROOROROOORORRRORRROROORORRORRRRRORORRROORRROOOOOORORROORRROROORROOOROROROOORRROOROORRRORORRROOROROORRRROROORORROOORRROROOOORROORORROORROOOOROOROOROOOORRRORRRROORORORRROORROORRRROOOROOOROOOORRRROOROROOROROORROOOROOOROORRRRORRRRRORRRROROOROROOOORROOOORRRORRORORROORRORORORORORRORROOROOOORRRORRROOROORORRROOOOROOORORRRRRRROOROROOOROROOORRROOOOROROOOOOOORROOOOORORORRRRRRROOORROORRRORORRROOORROOOOOOROOROROORRRRORROOROOOOOROROROROOORORRROROOOROOORORRROORROORROOROOOOOROROROORRRRORRORORRROOOORORRROORROOORRORROOOROOOOORRROOOROOROROORRRROOOOORROOORROROOORRORORORORROORRRORORRROROROOOROOORORRRROOROROORRORRRRRROROOOORRRRROOROROROOOORORRRRRRRRROOOOOOOOORRRROORROOOORRORROROORRROOOOOOROORORROOORRROROOORRRRRRRRRROOOORRRRORORORROOORRRRRRROROORORORORROROOOOROROROOOOROORROOORROOROOORORRORRRRROOORROOORRROORRORRROORORRRRORROOOROORORROROROOOOROROROOROOOROROROOOOROOORROORORRRRORROOORROROORRRROROROORRRRORRRORROOORORROOOROORROORRORROORROROORRRRRRRROOOORROROORORRROOROORRRRROROOROROOROOOOORORRRRRORORRROORROOOROOOROOOORRORORRORORORROOOROOORORORROORRRROROOROOOOOOORRORORROOROOOROOROOOOOOORRROORRRRORRORORORRRROORRRROOOROORROROOOROORRRROOROOORRORRRROROROROOORROROORRROORRRRRRORRRRORRROROOORORRORRORORRORROOROORRORRORRROORROROORROORRRORORROOROROOOOORRRRROOROORROOROROOROROROROROROORORRRORORORORRORORROROOOOROORRRRORROOOORROORORRORRRROOOOORRORROOOOORRRRRORRRRROOROORROOOOORROOOROROOROROORRROOOOOROOOROOOOOOOROROROOROOOROOORRROORORRRORORORORRROROOORROORRRROOOORROROORRRROOOOROROROORRORRRORORROROOOOOROROROOOORRROROOROORORRRRROORRRRORORORORROOOORRROORORROROROOROOOORORRORRROORORROORROROOOORROOORRORROOOOOROOROOOROORRROOORRROORRORRROORORORRRRORORRORROOROOOROOORRROORROOOOOORORRRRRROORRRORRORRORORRRROOORRRORROROOOROOOORORROORRORROOOOOOORRORRROROOORROOROROORROORRROORRRRORRRORORRORORRORORRRRORRRORRORRRRRROOORORRRROORRRORRRRRRORRRRROROORROROOROROORROOROROORRROOROROROORROOROORORROORORRROROOORROROOORRROORRRRORRRORRORROOORROROOOOOOOORROOOOROOOORORROOOORRRRORRROOORRROOOROROROOORROOOROORRORROOOOOOORRRRRRRRRORROOOOOOROOOROOORROROORORROROOOOOORORORRRORRRORROORRROORORRRRROOOORORROOOOOORORORROOOROOOROOROROROROOOROOOROOROOORRRORORROORROORROORROOOOOORRROORROOROORRRRRRORRRRRROORROOROORROROORRRRRORROOOOOOROROOORROOOOOOOOROOROROORRRORORROOORRROOOROOORROROROOOORROORORRROOROOORORORORROROOOORRORRRRORROOROROOORORRRRRORRRROORRORRROORRRRRORORRRROROOROORORORROROORRORRRROROOROROROORRRRRORROORRRRROOOOOROORRRRORORROOOOROOORRRRRROOOOORRRRRRRROORORORROOOOOOOOROOOORRORROOOOORROORORRROROOORROROOOOORRROOORRORORRRROOROROROOROOORRRRRROOOOOROOOOOORROOORRRRROOOOOOORRROOOORRROOORRRROOROOROROROORRORRROOOOOORROOROORROOOROOOORROROORROOORROORRROOOOORRRROOROORRORROROROORRRRRROOORRRORRROROROROORROORRRROOOOOROOOOORRORORRRORORRROOROOORRRRRROOORRORORRORRRRORROOOROROOOOOOORROORROOROOROORORRROORRRORORORRRROORORORRRRORORROOOOOROORROOROORRRRROORORRRROOROROROOOROOROOOROROORRRRORRORRRRORRORORROORRRRRORORRORRRORRORRROORROORORORRORORRRRRRORRRRROOOORROOOOOROORRRROOROORORRRRORRROOROOORROOOROORRRORROOOOOORRRRROOOORRORORRORORRRORRROOROOROORRROOOROOROORRORRORRRRROORRRRRORRRROORRRROROROOROOROOORROOORORRORRRRRRRORRRRRORORORORROOOROROROOROOORRRRRRRROROOOOROROOORRROROROORRORRORROOOORRORRRROOOORORROOOROOOOOROOORRROROORROROROORRROOOORORORRRROOROROOOOORORRORRORORORRRROOROOOROORRROROOOORROROOROOROOORROROOROROORROORORRORROORRRORRRRRORRROORRRRRRORORRRROOOORRRRRRRRRORRROORRORROOOOOOORORRORROROOOOROORORROROOORRROOORRORORRRRORORRORORROORRRORRORORRRRRORRRRRRRRROROOOOROORORRRROOROOROOROOROOOOROOORROROOOOOOOOROROOORRRRROOOOROROOROOORRORRRORROROOROORRORORRRRORRROOORRORORROORRRORROROOOOOROOROOORROOOOROROOROOOOOOORROOROROOORRROROROOROROROROORRRROORORRRORRRRORORORROROOOORROOORRRROORORRORROROOROOOORROOROOOROOOORROORROORROROOORRORRROOORRRORORRORRORORRORRRORRRORROOORRRRORORRRRRRRORRRRORRORRRRRORRORRROROORROORORRROOOOORRORROORORRORRORORROORRORRROORROROOROROROOROOOOOOORRORRRORORRRRROOORRROOOORORRRRORRORROOORRORRRROOROOORRROOOOOOROOORRROOOOROOROOORRROOORRROORROOOOOOOORRRORROOOOOOOORROROROORORORROOOORORROROROORRRROOOROROOOOROOOOROOROOOORRROROORRROROROROROORRRROORORRRRRORRRORRRRROROROOOROORROORRORRRRORROOOOOOOOORORRROOOOORORRRRORORRORRROOOORROOOOOROOORORRROOOOROROORROOORRROOOOOORRRROOOORRRORROOOOOROOROORRROOOOOOOORRRRRORROORROOORROOOOOORORORROOROROROORRRRROROORORRRROOORROROOROOOORRORORRRRRRRORRORRROROORRRROORRORROORORRORRRROROORROOOOROOORORORRRORROROORRRORORROORORRRROOOOROOOOOORORRRRROROROROOORORRROOROOORROORRRRRRRROORRROOOOROORRORRRRRRORRORORROROOROOORRORRROROOROOOORORROORORROORRROOOROOORORRRROOORRORORRRORORRROOORRROOOROOROROORORRRORORRRRRROROORRROOORRORROOOROOORRRRRROOORORRORRROOROORRROOROROOROROROROOOOORRRROOROROORRROORROORORRRROOOROOROORROOORROORRRROOOOROORORRRROOORRORRRORROORORRRORORORRORROOOOROOOROOOROROOROOROOROORORORORORROROOORROOOOROROOOOORRRRROROOORORRROORROOORORRROROOROORORROORORRORRRRROOOORORRRRROROROOROROOOORRORRORRROORROOROORRRROOORORRRRRROROOROOORROROOOROORRRROOOOOROOROOOROROROOOORRRRRRORROOORRRRROOORROOORORRROROOOOOROROROORRRROOOROROROOROOOORORORRRRORROOROOOROOOOORRRROOROROOOORRRORRROROOOOROOORORROOOORORRORROROORROROROORRROROORRORROORORROOROORORRRRRORROOOROOOROOOOOOORRORORORROORORRRROORRRORRRRORORROOROOOOOOROROOROOOOORORROROOOOOROROROORROOOROOOROOOOROOOORORORORRROROOROROOOOOORROORRRORRRROOOROROOORRRRORRROOROROOOOROOOOOROOOORORROORRORORROORORORRRROROOORORRRRROORORORROROOOOOOROOOORORRRRRROROROROROOOOORRROOROORROOOROORORORORRRROOORROROOROROORRROROOORORRRRORRRROORROOOOOORRROOOORRRORRORRROROOOROROOOOROORORORRROROOOROOORRROOROOORORRRRRORRORRROOOROOOROOROORRRRRORRORRRORRORRRORROORORORORROOROROORORRRRRROORROOOROORROROOORRORORRRROOOOORRORORROOORRRROOOOOROROROOORRROROROROORRRRRRROOORORROORRROROOOORRROOOOOOOROOOORRRRROORRRORORRRORORORORRRROORRORRRRRORROORRORORRRRORORRORRRRRRRORROOROOOOOORRORRRROOROOROOOROOOORRORORRROORRRORROOROOOORRRRRROORORRRRROROORRRRRORRROORORRRRROOROROORORRORROROORORRROROOOOOOOORROOOORRRORRRRORRRROROORORORRRORRRORRORRORRORROOROROOOORRRRRORROROORROROOOOROROOROROROORROROORRRORRROOOORROOORROOORORORRRRORORRRRRROORROROROOORRRRRRORORRRRORRRRRRRRRROORRROOOROOROORROROOROORRORROORORRORRROROORRRROORRRROOROROORRRORRRRRRRROOROORRRORROROROOOOOOOROORORROROROOOOOORRORRRROROROROROORROORORRRORROOROOROORROOOOOROROOORROROORROROOORROOORROOOROOOOORROOOORORRRRROOROOROORRROROROOOOOORORRRROROORROOOORRORORRROOOROOOORRRRRORORRROROORRROOOOOROORRRRORRORRRRRRORROOOOOORRRRRROOOOOOROOROOROOOROOOOROROOOROORRROOORRROROORRROORRROROORORRROROORRRRRRRROOOROROOOOROORORRORRROORRRRRRRORORROROROROOOOROORROROOROORROOOOROOOORROOORRRRRORRORORROOOORRRRROORRRROOOOOORORROOOOOORRROOROOORRORROROROOOORORROOORROOORROOOROOOORROOROROROORORORRROOOOORRROORRRROROOOROOORRRRORROORRROORRRORROROOOORORRRRRRRORROOROORRORRRRORRROOOROOROORROORRRRRRORROROORRORRORROOOOROORRROROOOOROOORRORRROOOOORRRORORORORRROOOOOROOOROORRRROORORRROROOOORORORORORORROOOOROOOOROORORORORRORRORRRRRROORRRROOORRORRRRRROROROOROOROOORROROOORRRROROOROROOORRRROOROOOOORRROOOROOOOROOOOOOROOROOOORROOROOROOOORORROOOORRRROORRRRRRRORRROOORRROOOOORRROORORORORRORRRRORRRRRRROROROROOORORRRRORRROOROROORORROOROROOORROOROROOROOORRORORRRROORORROOOOOROROOORORROORROORROOOROROOORRORRRROOORRORORRORORRROORROOOORORRORRROORORROORROOROOORROOORROORORROOOROOORRRRRORORORROROORRRRRRROOORROOOOOOORROOROORROOORORRRRROOROOOORRROOROOOOROORRORRRRRRROOOOOORRORROOORRRRROOORROROOOOOROROROOROORRRORORROORROROROROOOORRRROORRRRRRROOROOOOOOROOOORROOROORRRROROORORROROROROOOROORORORORRORORRRROORORRRRRRRORRROORORRROROOORRORORRRROROORORROOOROROORROROORORRRORROORRROOOOOROOOORRRRORRRROORRRRRORORRROOORORRRRRRRORRORRRORROROORROORRROORRORROORROROORRORRRROOOORROORORROOOORROOOORROROOORORORRRROOOROOORRRRROOORRROROROORRORROOORRROOOORROROORROROOOROORORROOOROORROROORROOOOOROOROOORORROOOOORRRRORORROROOOOOORORORRRRROOOROOOOOROROOOORRROROOOORRORRORRRROOORRRORORRRRRRRRRORORRORRRRROOORROORROOROOORRORRRRORRROOOOORROROROOOOOORRRRROORRORRRROOOOROOORRROROROROOOORRRRRRROROROROOROOROOOORRRRORORRRORROOOORRRROORRRRROROORRROROORORRROOOROORRORROROOROOOOOOROOOORROROORRRORRRROROROOORRRORRROOOOOORORROROOORRRRORORORROOROROROORROORORORORRORRRRRROROROOOOOOOROOORRRRORROOOOOROORROOROOORRRORROOROOOROOORRRRROOOOORORORRORRORORORORROOOOOOORROOORORRORRRRRROORRORROOORRRORROOOROORORRORORRROOROORRROORORRRROORRROOROOOROORRRROORROOOROOROORRRROORORORORRORRRRRRROROOORRRRRRRROOROOOOROORRRRRRRROROOOOOOOOROOORRRRORROOROOROOOOOORROOORORRROROOROORORRROORROOOROORRROROOORROOROROROORORORRROORRRRRROORRRROOOORORRRORRORRORORORRORROOROORRROOOROOORROORORRRRORROOORROORRRROOOROOOOOROOOOOORORRROOROOOOOORROORRROOOORRRRRRRORROORORORRRRRROOOORRRORORRORROOROROOORRORROROROROORROROOOROOORRRROROORROORORRORRRRROOORROOOROOROORRROORROORORROOROROROOOROORRROORRROOROROOOROOORROOORORORRORRRRRRRROROOOOOORRRRRRROROROORROROOROOROORROOOROOORROROOOOOROOOORORRRRORROOOOOORROROORORORROOORRRRROOOOORROOORRRORORRRRRRROROORRRROOORROROOOOOOROORRORRRRORRRRRRROOOORROOORORRORORRRRRROOROORORRROOOORROORRRROROORRRRROOORROORROROROORRORROOROROOROOORRRRROOOOROORRRROOOORROOROROROROOROROOOOORRRRRROROORORRRORORROOOOROROROOROOORORROORRRRROOOOORRROORRRROOOORRORROOROORRROOOORRORORROOOORRROROORRRROOROORROOROROROORRRORROORRRORROORROOROROROOORRRRROOOORRRROOROROORRORROOROOOOOOORRRORRORRRORROOORRRRRRRROOORRROROOOOOOOOOROOOROORORRORRROORORORORORORORROOORRRRRRROOROROORRORRRRRRRRORRRRRRRRRRRRORRORORRRORROOROOOROOROORORORROORRRROROOOORRRROOOOOOORRRRROROROORRRRROORRORORRROOOROROORORRRROROORORORRORRRRROORRRORORRRRRORROOOOROROOOORRORORROROROORROOORORORORROOORROROROORORROOOOOORROORRRORRROOOOOOROORORROOOOROROOORRORORRROROOOROROOOOOORORORRROOROROOROORORORRRRRRROOORROOROORROORRROROOOORRRRRRRROROORRROOOOOORROOOORRORRORROROROOOOOROROOOORROOOROORROROORROORORRRRRORORRRRROROOOROORORORROOORRORROORRRRORRRRORORORROROOORRRRRORRRRORROORRROORROOOOROOORORRRROROORRRROOOOOROORROOROOOOORORROOOROORORRROOROROOOROORRROORROOOORRROROORORROOROOOORRORRROORORRRRRROROOOROOROOORORRORRRROOOROOROORROOORROORROORROROORORORORORRROOORRRORORROOOOOOOORORROOOOROOORRROORRORRROROOORRROROOORORRROOORORORRRRRRORRRRROROOOORORRRROOOOOOROOOORORROORRROOORRORRORORORRRRROOOROOORRRRRRORORRRROORROORORRROROROROOOOROOOORORROOOOOROORORRRROROROOORORORRORROOOROROROOOOOOORROROROROROOROORROOORORRROORRRORRRORRRROROORRRROOORORROOOROOOROOOROOOOOOORRORRRRRRORROOOORRRORRRROOOORORROOOOROORRROOOROROOOOOOOORORORROOORROORRRROOOORORRROOOORRRRORRROROOOROORORRORRRRRORRRORROOOOORROOOOOORRROROORROOOOOORORORORRORORRRROORORROORORORRRORRORRORRROROOROROOOOORROOOOOOOOOORORORRRORORORRROORRRROOORORRRROROORORRRROROORRRRRRRROORRRRRRROOROOOOORORROOOOOOOOOORRORORRORRRROORRRRORRROOORRROORRROROOORROORRRRROROOOROROOORORROROOOORROOOOOORORROROOORRROROORRRRROORORRROOROORRRROOOOORRRORRRRRROOROOROORORORRORRRROORROORRORROORRRORRRROOOOORRORRORROOOOOOORRRRROOOOROROORRORRRRORRROOOORROOROOORRRRROOOORRORROOROORRROORRRROORORRRROOOROOOORRRROORROOOOOORRRRRRRRRROOROORROROORRRRROOOOROOROOOROOROORRRRROOORORRORRROORORRRROROORRRORROOORROORRRRRRROROOOOORROOROOOROOOROORORRORRRROROROORROOOOROORRROOOOOROOROORRRRORRRRROOOORRRRORRROOORRRROOROOROORORROORRORRRORROOOROOROROORRRORRRROOOOOOOOOOOOROROROOROOOOOOROROOORORRROOORORORRRROORRRRRROROOOORRRRRRROORROOROOOROOROOROOOORRRORRORRORORRROOOOROROOOORORORRORORRORRRROROORRROROOORRRROROOOOOROOOOORRRROOROOOORRROOOOROORRROOOORRRRROOORORROOROROROOORROORRROOROROROROOORORORROORRROORRRRORORROROOOOROORRORROORRRROOOROOOOOOORROOOROROROOROROORORRRORORORORRORORRORRORORROROROOROOOOORROOROOOROOROOOOOOOROORRROOORRRRRRROOORRRORRROOOROOORRRROOOORRRRRROOOOOOROOORORRRRRRRRROOOROORROROOOOROORRRROOOOOOOOOORRORRRORROOOORORRORRRROOORROOOROOOROROORROOOOROORRRRROOOROROROOOROORRRRROORORORRORROROORROORRROOOROOORRROROOOROORORRRORRORRORRRRRROOROROOOOOORRRRRRRROOOOOROOOOROOOORORROOORRORROOROROROOORRRRROORROORORRROROORORRRRROOORRORRROOROROORROROORROOOROORROORORRORORRRRRRRROOOOOORRRRORRROORRROORROOOOOORORORORORRRROROOORROROROOORRROORRROROOOOOOROOORROROROOOOROOOROOROORRRORROROROOORRRRORORRRROROORRRRRRRRROROOOORROORROROOROOORRORRRRRROOOORROOOORROOOORRROOOOOROORORRROOROROOOROOORRORROORRROROOOOOOOROOOORRRRRORROOOORROROORRROOOOOORRROOOOOOROOORRRRORRROORORRROOOOOORRROROOOORROORROORRROOROORRROOORRROROOOROORRRROOOOORROOOOOOOROORORRROROOOOOOOORRROROOORRRROOORORORRRROOOROORRORROOORRRRORRROROOOOOROOOOORRORORORORRORORROROORROOROOORRRORROORRROORROOORROOROROORRRORROOROOOOOORRRORORRROOROOOROORRORROROROOOOORORRRRRRROROOOORROOROOOOROROROORRORORRORRROOORORORRROOORROOROROORORRRRRRROOOOROROORRRORRRROORROROOROOROOORORORRRRRRROOOROROORRRORROOORORORORRORRRROOORORRORROROORROOORRRRORRRRORRRRRRORRRRRRROOORRRORROROOORORRORRORRRRRRRROORRORRROOOORRRROROORORRORRRORRRRRROORRROOORRRROROROOOORORRRRORRORRRORRRORROROORROOORORRORROOOROORORRROOROORRRROORRRORRROROROOOOOOOOOROORRORROOOORORRORORRROOORORRRORORROOOOORORRROORORROROORRRRRRRRRROORROORROORRRRRRROORRORROROORORORROOOROROROOROOORROOOOOOORROORORRROOROROOORORRRRROORROOOOOOORRORRRROORRROOROOROOROORRRRORORROORORRRORORORRRORRRROROORORRRORORORROORRRRORRRORROOOORRRORROOORRRRROOROOROOROROORRRORROORRRRORRORRRROROOOORROOOOOOOOORRORROORORRROROORRRORRROORRROOOOORROROOORROORRRROROORROOROOOORRRRRRRRORROOORROROORRORORROOOROORORRRRRRROOOOORRRORORRRRROOOORRRORRORRORROOOROOORORRORROROROOOOOORRRRRRRORROOORRORRROORORRRROROOROOROOOROORORROOOORRRROOROOROROOORROOOOORORRRORORROORRRROOROOORROROOOORORRRROROORRRRRRRROOORROORRROOOOOROORROROORROOROORRRROOOOORROOORORORRRROORORORORRRRRORRRORRROOROOOOOOORRORRORRORRRRORROORORRRROORRROORRRRRORRORROOOOORRRORROOOROORRRORROORROORRROOOOROOOROOORORORROOOORROROROORROOOOORROOOROORROROROOROROOORROROORRRROORROOOORROORORORORORRRORORRRROOOOORROOROORRRROROOROOROOOORORORORRRROOORRORROOOOROROOOOROORORRRRRRRORORRRRORRROROORROORRRROROORORRORRORROOROOORRORRROOROOOORRORROORORORORRORROROOOORROOORRRROROROORORRROROORROOORRORORRORRRORORORRRORRRRROORRRROOOORRORRORROORRORRRRORROOOORROOOOROOROOOOOOROORORROOORRROOROOORRRROROROORROOROORRROOROORRROOOROORROOOOROORROOOOORRRRORRRRROOROOROROROROORRROOROORORRORROROORRRRRRRRRRRORROOOORORROROORORORRRRORRORROROORORRROORORRROROORORROORRRRROORROOROOORRRRROROROOROOOROORORORRORORORORRRROORROROOORORORRRRROROOOORRORROOOROOOOROORROOROROOOOORORROOOORRORORROOOROOOOORORRRROROORROOOOORROORRROROROROOOROORROORROOORROORRRRRROROOOROROOROORRRRROORORORROROORRORRRRORORRROOOOOOROOOORROORRROOOOOOORRRRROOORROORROOOOOROROOOROROROOROOORRRRRORROOORROOOORORRRROROROROROOROOROOORRROOORROOROORRROROROOOROROORRORROORRRROOOROOROORROOORORRRRRROORRRRRROORROOOORROROROOOOROOROROORRRRROOROROROOORORRRRORRRORORRORROORRROOORORRROOOOROOROOOOOOORROOOROOORROOOORROOOORROORRRORROROROOORROORRRORRROOOORRRROOOOORORRRRORRRORROROORRORRORROOORRRROOROOOROOOROORRRROOROROOOROOOOORRORORROOOOOROOOORRROOOORORRROOOROOOOORORORORORRRRROOORRRRRORORRROORRROROOORRORRRRROOROOOOROOROOOROORRRROORRORRORRROORRROOORORRORORORROOROOOORRORRRORRORORRORRRORRRROOOOROROORRORROORROROOOORORRORRROOOOROROORORRROORROOOROOOOORROOOOROOROOORRORRRORRRRRROOORORRROROOOOORRORRRORORROOROOOOORRORRRRROOOORORROROOOROOORRROOOOORRRRRRRROORROROORROROROOROOROROOROROOROROORROOOOOROORRROROOORRRRRROORRROOROOROROORRRROORRRORRRORRRROORRRRRORORRRRRRROOORORRRRORORRRORROOROOOOORORROORROOOROOORRORRROORROOOOROOOOORROORORRROORROOROROORORORRROOORRRROROORORORRROOROROOORRORORRRORROORRRRORROORRRRORRRRROORRRRROROROORORORROOROOOOOOOOOROORORORRRRROROOOOORRRROOOORRROOORORRRRORRORRRORRORRORRROORROOOOOROROROORROOROORROOOROOOROOORRROORORRRORROOORRORRROROROOOOOOOORRORRORRROOOROROORRRROROOORRRRORROROROORRRRRORORRORRORORORROROORRROOOROOROOOOROOROOOOOOROOOOROOOOORROOORORORRORRROORRRROORRROROROORRROROORROORROOOORRROORROORROOOOORRROOROROORRORRORRRORROOROROOOOOOORRORRROORROROORRRRROOOOORRROOOROOOOROOORORROOOOOOOOORRRORORORORRRRRROORROROROROORRRRRRORORORORRORROOOOORROROOORORRRROOORORRRRRRRROOOOOOOROROOOOOOOORRROROORORRRRRORORORRORRROOOORRORORRRROOROOROORRORRROOROROROOROOOOROOOOORRRRORROROOORORRRRROOORRRRRROOOROORORRRROORORRRROROROORORROOOOOORORRRROOOOOOOOORORRROOOOOOOORRRRRRORRROOORRROOOROORRRRRROOOOOOOOOROOROROORROOOORRRRORROOORROOORRRROROORROROROOROORROOORRORORORRORORORROOROOORORORORORRORROROOOOOROROOORORRRROROOOORRORROOROROROROOORROOOOOOOOOROROOROOORORROROOORROROROOOORORRRROORRRRRORRROOOROORRORORRRRORROORRORROOOROROOOOROORRRRRRRROORRRRROOROROOOORROOOROOROORORRRORROORRRROROROORRRRORORRRRRORROOROROOROORORROOOOOORORRORROOROROROOORROORROROOORRRRRROOROOORROORRORROOOOOOOOROORORRRORRRORROORRRORRROROROROOOOOOORORROROOOROORORROROOORROOOOROROOOOORRRRORORORROOROOOOORROOORORORRRORROORROOROOOORRRORROORROOORROROORRRRRORRROOOORORROOOORROORORRRORRORRRRRROOORORROORRORRROROORORROOOOOOOOORRORRROORRRRRROOORORRROOORRROOOROOROOOROOOOROROORRORROOOOOROROOORORORRRROOROOOROOOORRROROOOOORROOROOOOOROOORRORROOROROOOORORROOORROORROOROORROROOROORRROOOOOOROOORRORORRROOOOORRROORROOOORRRROOOOORRRRROROROOROORRORORORRORROORRRRROOORORRRORORROORROOOOOORRORRORORORRRRRRROORORRROOOROROORROORORROROORORRROORROROROOORRRROOOOOOORORORRORROORORRRORORROORRRROOOOOOOOOOROROORROORROOOOOROOROOROROROROOOROROOOOROOOORRRRROOORORRRRROOORRRROOORRORORRRRORORORORRORRRRORROOOORROORRORROOROORORRORRRRROORORRRRRORROORRORRRORORRRRORROROROORORRRRROORORRRRRRORORRRRRORROOOOROOROOROROORORRROROORORORRORRRORROOORORRRRORROROROORROORORROORROOORORORROORORRRROOOORRRRORORROOOROORROOORORRROOORROOROOOORORRRORRRORORROORROOOOROROOORORRRRROROORRORROOOROOORROORROORROORROORRRRRRRRORROOOOROROOORROROROORROROROORORRORRROROOORRRRRRRROORROOOORROORRORROOROOOOOORORRROOROROROOROOOOROOOOORRRRORRORROOOOOROOORRROOOORROOOOOROORORROOOORROORRRROOOROOORORORROORRORRRROORRRRRRROROROOOORORRRORRROORROOOOOORORRORROOORROOROORORROOROROROROOOORROROROORROOOROOROROOOOROORRRORRROROROOROROORRROORRRORRRORRORRRRRRORRRRORRRORRRRRRROROOOOROOROOROOROOOOROOOOROORORRROOORORRROORORORRROROOORORROOROOOOOOROOROOORORRORROOORORROOROOORRRRRROOORRORROOROOORORRRRRROOORORRORORORRRRROOROROORRRRRRROOOOROOOOORRORROORROOOOROOROORORORROROOOROROORRRRORORORORRROOOOROOROOOOOROOOOORRRROROOOOROROROOROOORRRORORRORRORRROORRRRRRORORRRRRRRRRORROOROROORRRRRRRRROOORORRORRRROROROOOORRORRRORRORRRRRRRRORROORORRRORORROROOOOOOROOROOROORRRORRORRORROOOORROOOROOOOROORRRRRORROROROOORRRRROOOOORORORRORROROOORORRROORORROORROOORORROORORROOOOROROROOOORRORORORRRRRROROORRRRRROROROOOOORROORRORRORRRRRORRORRORRORRROOOOORROROORROOROOOOORRRRRRORROOORORROORORROOORRRORRRRRRRRORORORRRORRRROORRRRRORRORRORROOOORORROOOOOROROOROOORROOROROOORRRROORRRROORROOOOROROOORORORORROORRRORROOOOORROORRROOORRROOOOOORRORORRROOOOOOROOROOOROORRRRORORRRROROORRROROOORORORRROORRORRRRRRROOORORRRROOOOROOROOORROOROORORRRORRRRRRROOOOORROOORROROOOOOOORORRRRRRRRROOOROOORRORROROOOORROOROORORROROROOORRORORRORRROOROROOOOOROOOORORORROORROOOOOORROOROROROOORRRROROORRRRORORORRRROORRRORORORROROORROROROOORRRRRRORORRRROOROOOROORORRRRRORRRRRRROROORRRROROROOOROOOROOROOROOROROROOROORROROROROOOROOOOROOORORRRRROOOROROOOROOOROOORRRROOORRORRRRRORRRRRROROROOORRORRORORRORROROOOOROORORRRROOROOOOOOOROOOOROOORRRRROROORROOOOROORRROOOOROOORRRORROOORROROOROOOROOROROROROROORROOORRORORORRRRORORRRORRRROROROOORRORROORORROROROORRRRRRORORRRRRRRORROORROROOOOOOROOROROOORRORROROOORRORRRROOORROORROROROORRORORRRORRRORRORRRRRRRRROROOOORORRRRRROOORROROOROROOROOORORORROROOOORRRORRROOROORRRRRROROOOORROORRRROOOOOOROORRORRORRRRORRRRRRORROROROOROOOROORROORRROORORRORORRRRROROOORROROORRORROORORRORRRRRRRRORORORRORORRRORRRRRORRRRRRROOOOROOOOOOROOROOROORORRRRRROOORRROROROROORRROOOOORORRORORORORROROOORORORRRROOORROROROOOORORROORRORRRRRRRRRROORRRRORRROOORROOORRRRRRRRRRRRRROORROOROORORRORRRRRORRORORROROORRORORRORRRROOROORORRORRRRORRRORROROOOROORRROROOOROORORROORRORROOORRROROORROROROROOROORRROROOORRRRRROROOROROORROOOORROORROOOROORRRRORRROORRRRRORRRRRROORORRORORRORORRRORROROOROORORROOOROOOOROORRORROOROROROOOOOOORRROROROORORROORORORROORORRROOOOOORORRROOORORORRRORROORRORRROORRRRORORRROROROOROORORORRRRRRRORROORORROROOOOOOORRORRRRRRRROROOORROOROORRRRROOOROOROORORROOORRRROOOORRRRORRRORRRORORRRROOORORROOORROORORRRROROOOORORRROOOOROOORRROOOORORROORROOROORROOORRRROOROOORROROOOOROOOOOOROOORRORROORRROORRROOORRRORORORROOOORORRRORRRRRRRROORORROROOORRROORORRROOROORORRRORRORRRROOOOOROORRORRROOROOOORORROOROOROOORROOOOROOROOOOROOOOROOROOORORORORRROORROORRROROROROROOORRROOORRORROOOORRORRORROORRRROORROROORORROOORORRRROOOOOROOROORROORRRROORRROOOOORRROOOROORRRORRRORRRROOROORROOROORRRROROORORRRRORROOORORROOOOORROROOOORRORRORRRRRROORORRROOOROROROOOROROORROORROROOOROOORORRRRORORRORRRORROOOOOORRROORROOROOORRRORRORRRROORRROOOORRRRROORRRORRRORRRRROOOROOOROROOROORRRRRRRRORRORRRROORRROORROOOORRORROROORROROOOORRRRRROORRROOOORRORROOOROORORORRRORRORRRRROOROORRRRRORROORRORRRRORRORRORORROOOORORRORRRORRRRRRRROOOOORRRRROROOROORRORRRRRROROORRROOROORRORROORRRRRORRORROORROORORRORORRORRRORRORRRRRORRRRROOOORRORRORRRRRRORRRRRRRRORRORRRORRRRORRRRRRRRRORRORRORRRRROOORRORROORORRORROOOOOROROOROOOORROOOOORRRORRROOORRROOOORRRROOORORORORROROROOORRORRROORRORRROORROORRRROROOORRORORRROORORROROROOOROOROOORRRRORRRRRROOROORROOORRROORORORROORROROORORORORRRRRORROOROORROORRORORORROORORRORROOORORRROROOOOOOOOOOOORROOORRORROORRRRRORORRRROROROROOOORROROORRORROROROROOOORORRRROOOROOOOOORORRROOOOROROROOOOOORRROOOOROROOOOOORRRRRRRORRRROOOORROOORORROOOROOOOOOROOORORROOOROOOROOROOOOOORRROOOOOOOOROOORRRRROROORRROOOOOOOOOORRROORRRRORROROOORRROOORRORRROOROORRORROOROROORRORRROROROOROROOOROOOROOOORRROROOROOOOROROOOORORRRORRRORRORRORORROOORROOORROOOOOROORORRORRROROORRRRORORRORORRRRROORORORRORORRRRRRROOOOOORRORRORROROOOOOORRORRORRRROOORRORROOOOORRROOORROROOROROORRROOOOOORRRROOROROOORROORRRROORORORORRRORROROOORRRORORRORROOROORROOOOORROOROROORRROOROROOOROROOROROROORORRRRROOROROOOORRRORRRORORRROORRRORROOOORORRROROOOOORROOROORORROOOORROOOROOOROROOOROOORRORRRRROOOROROROROROOOORRRROOORORRORRROOORROORROORRRRORRORROORRRRRRRRROOROOOOOORRORRORRRRROORRORRRRRROORRROORRORROROOROOOOOOORRORRORRRRRORROROOROOOROORRROROORRRRORROOOROOOORRROOORORROROOOROORRRORRRORORRRORRRRRRORRROORRRORRORORROOORROOOOOOOORRRROOROORRORRRRRROOORORORRRRORRRRROORRRRRRORRORRRRRRORORRRRRRRRRROOOOOOOORROORRRRRRRRRRORRORRORRROOORORROROOOOOOOOOROOOOOROOOORORORORRORORORRROOOOOORRRRRROOOORROROOORORRRRRRORRROOOROORORRORROOORRRRRRRRROOOOORRROROROORORROOORORRORRORRRORORRRRORROOOORORRROROOOROOORRRORORRORORRROOORRORROROROOROOROOOOROORRRRRROROOROOORRRRORRRORORRRROOROORRORROORROORORRRROOOOROOOOORRRRRRORRRRORORRRRORRROOORROORRORROROOOOOORRRORROORROROORRRORRRRRRROOOORRORRRORRRORROOOOOOROOROORROOORRRORRROORRRRROOORORRRORRROROROOROOOROROOROORRROROORRRRROORRRORROOOORRROROROORRORRORROROORROOROROOOOOORORRRORORROOROORORROORORRROROROORROROOORRRORRROOROROOORROORRROORORROOROORRRROOOOROORRORORRORORRORORROOOOOORRROROOOOOROOROROROOOOROOOROORRORORRROOOOORRROROOOROOORRROOOORROOOROROROOROOORRRORORORORORORRROOOOROORORRROORORROOROOOORRRRRRRROORORORROROOOROORROORORROROOOOORRROOOOORROOOORROOORORROOORORORRRRROOORROOORORRRORORROORRROROOOOROROROORROROOORROOROROOOOROORRRROOORRORRRRROOROROORORORRRRORRORRRORRRRORROORORRRORORRRRRRORRRRROORORRRROORORRORRRRRRRRRRORROROROORORRRORRRRROOROOROOROOOOOOOROORORRRRORROROROORRROORORRRRORRRORRORRRORRRROOROORORROORORRRROOOOORROROOOROROOORRRRRRRRORORRROOOROOOROROOOOROOROOROOROORRORRRORROOOOROROROOORORRROOROROOOOROOROROROROOORROOORRORORORORRRORRRROROROOOROOORORROOORORORROOOOORORRRRRRRROOOOROOORRRRRORRRORORRRORRORROOOORRORRORROROROORROOOOORROORROOORRRORRRRROOOOROORRROROOROORORRRRRRORRRROOOROOORRROORRORORRRRRORROORROOOORORRORROOOORROORORRRORRRRORORORRORRRORORRRRRORORROROROORRRORORRRROROOOROORRRROORROORRORRORRRROORROROORORROOORROROOORROROOOOORRRRRROORROROROORORRRORRRROROROOOOOOOOROOORORORRRRRRORRROORRROROOORRRRRROROOOORRRRROOOORRORRORORRORRORRORORRORROORRRORRRORRRORROOOOOORRRORRRORORRRRRRRRORRRORRRROROOROOOOORROOROOROOROOORORROOROOORORORRRRROROROOROROROOOORRRROORORRRORROOOORROORROORROOROOROORORRROOROOOOROOOOOORROOORORROROOOORORORRROOOORRRORROOOORRORROOOOROROOROORRROROOOOORROOROOROROOORRROORRORROORRROOROROORRRORRRORROROOROROOOROROROORORORROOROOOOROOORROROROORORROORROORRRORROROOOOROOOORRRORRRROOOOORROOOOORORORORORORROOROORRROOOROOOROOOORROOOORRRORRRROOROORRRRRRRROORROROROROOORRORRROORRORRORROOORORROORRROROORRORRRORRROOROOOROROORRRRORROOOOOOOROORROOOOOROOOOOROOOOROOOOORRRRROOOORRRROOOORRROOORRROROROROORORORROORORORORROOOOORORRROORRRRORORROOOROROOROROOOROROOORRORRROROOORRRORRROOOORROOOORRRRRRRRROOOORROROORORORRROOORROOOOOOOROROROOROOOROROOOOORRRRROOOROROOOORROORRRRROROROROORORORORRROOOROORRRORRORRORRORRROORRRRRRRORRROOROROORRORROOOROOORRORROOROORORROORORROOOOORROORRORORRRORORORROROOOOORRRRORRRORROROORRROORRRROROROROORRORRRRRROOORRORRRRRRRROROOOOOROOROORROROROORORRORRRRROROOORROROOOROORRRRORORRORRRRRRORRRORRRRORRROORORROROOROOROOROOROOORROROOROORORRROROORRRRORROORRRORRRORROOOOOOOOOORROORORROOOORRRRROOROORRROORRRORROOORROROOOOORROOORRRRROOOOORROROOOROORRROROORRRORRRRROORRRRRRRRORRRORROORRORRORORROROOROOROOOOROORROOOOOORROORRORRROORRROORROROROORRROOOOORROOROORRRRRRORROOOROROOROROROOORRRRRORROROOROROROROOOOOOOROOORORROROORROORORROROORRROOOROOOOOROROOORORROROORRROOROROROOORORROOROROOROOOOOROORROROOOOROOOROOOOORORROROROROOROOORORORRROORORRRORORRORROORRRRRROROOOORROORRRRROOOOOROORORRORRORRRORROROOROOOORRRROOOOOROOROROORRORRRROOORRROOROOORRROOOOOOORRORORRRROOOOROROORRORROROOORRROROORORRROOOOOOORROROROORRROORORRRORRORROROROROROORROOOOROROOOORORROROOOOOORORRROOORRRORROOORROROROOOORRROROOOROROOROOOORROOORORRROOOOOORROOOORORROOOROOORRRRORORORORRORRROOORROROROROROOOORROORRORROOROOORROROORORROOORRRRROOOOOOORRORORROROROOOROROROOROOOORRROORORRRROORROROORROORRRRROOOROOOROORROROOOOROROORORRORROOOROROORORROORRROOOROROOOOOOOORORORRROROORRORRORORRROROROROOORROOROOROOOOORRRRRORRRORORRROOOOOORORROROOOROOROORRRROROOROOOORRRORROORRRRRROOOOOOOOOORRRROOORROORORORRRRRROOORROOORORRORRRORRROROOROOROOROOOOOROORROOOOOORORRRROORORRRORORRORRROORRROOORORROROROOOORRRROORROORRRRRROOORROROOOOROOOOOOORRROOOOOOROOORROROROROORRROOOROOOORRRRRORORORROROOROROOOORRRROOORRRRRROROOOOORRRORORORORROROOOROORROROOROOOROOOOORORORROORRRROROORORORRROOOOORRRROOOOOORROORROORORRRORORORORROORRRROOOROROOOROOOOOORORORRRORRRORRORORROROROOORROOOORRROROROORROROOOOOROROOOROOOOOOOOORORRRORRORORRRRRRROORRROOORROOROORRORRROOOOOROORROOROOOROROROOOROORORRROORROOOOORROOROROOOORRROOROOROOOROORORORORRRRORORORROROORRRROOORORRROORRORROOORORRRROOOOROROROOOROOOORORRORRRROOOOOROROOOOROOROOORRRROOOROOOORRRROROORRRORORRROROORORORORORRRRRROOOROORROOORRRRORRRRROORRORROORRRORORRORRRRROROOROORROOOROORRRRROOOROOROORORRRORROORRROROORROORRRRROORORRROROROOOROORORORROOOROORROORROORROOORRRRRRRORRORORROOOOORRRRROORRROOOROORRRRROROORORRRRROROOOROOROROORRORROROOORRROROORROOORORORORORRRORRRRRRORRRORORROORROOROOROOROOROOROORRRRROROROROORORORROOOORROOORRORROOORORRROROOORROROROORORORROOOORRROOOORROOOROROOOORROOORROOORORROORRRRRRORRORRROOOROROORRORORROOOOROOROORRRRRRROORRRORROORRORRROOROOORRORRRRRRRRRRRORRROOOROOOORORORROROORORRORRRRORRORORROOORROROOROOOROORORRORRROORORROOROORROOORROOORROROROORRRORORROORRORRRRORRRROOROOOOROOROOROOORRORORRRRORRRRROOORRRROOOORORORRRRRORRORORRORRROORROOOORROORORRORRRRRRRRRRORORRRRRROOOORROROOOROOOOROOROOOOROOOROOOOROORRORORRRROORRRROOOOROROORRRORORROORRRORRROROORROOOORRRORRROROOROROORRRRROROORRRROOROOROORROOOORRRRRRROOOORRRRRRRORORROORORRORRORROORRRRRRRROORORRROOOROOOOROROORRROOROOOOORROOOOORRORRROORROORRORORORORORRROOOOROOOOOOOOOORRORRROROOROOROORRRORORRRROOOOOOORROROROORRRROOROOORRRRRRORORORRORORROOOORORORROOROOROORROOOROORRRRRROOOOROORRRORORRRORROOOORROROOROOORROROORORRRRRRRROOORROORRRORORROOOOROOROORROORORORROROOROORRORRRROOOOORRORRRROROROORRRRRORROOROORRROOROOOOOOOROOOROOROORORORRROROOORROOOROROOORROOORRORROOROORRROOOORRROOORRRORRRRROOROROOOROOOOORRORORRRORRRORRORORRRROROROOORROOOORRORORROOOOROORROROOOOORRORORRORRRROROROROOOROOROOOORROORRRRROORROORRORRROROOOORRROOOOROOROORRORRRRROROOROROROOORORORRRORORRRORROORROOOORRROORROORRORRRRRROROORRRRRRROOROROOROROOOROORROROOOROOOROORRRRRRROROOOORORROROOOORRROORRRROROOOOROROOORRRRRROORRRROOOOROROOORRRRRROOROOROOROOROORRRORRRROROOROOROOOOROORRROORRROOOROOOOOORROORRROOROROOOORRROOORROOORRROROOOOOORROOOOORRORRROOROOOOOOOOORRROOROOOORRRROOOORRORRRROOORROOROROOROOOOOORRRORROOOOOORRROOOROORORRROOOOROOOROORRROOORRROOOORROOOROROOORROOORROOORRRRRROORRRRROOROROROORRROOORRRORROOOOROOROOROOOOOORROOOORRORRRRRROOORRRRRRROOORRRROROROORRORORROORRORRRRRRORRORRROROOOOORROORRRRRRORROOORRORRORROOORRRRROOOOOOOOOORRROORORROOOORROOROOORRRRRROOOROOORRORRROROOROROOORRROOROOORRRRRORRRRORROOOOROORRORRRORORRRORROOROOORROOORORORROORRRRRORROORORORROORORRRROROORRRORROOROOOOROOOOORRRORRRROROROORRROOOORRROROORRRRRRRRRRROROOOOROOORRRORRROROORROOROOOORRRORORROOOOOORROOOORRRROOOORRRRRRRRRRROROROROORRRORROORRROOROORROORROOROOOOROOROOORRRRORORRRORROOROOOOROROOOOROROOROOOOROOROOOROOORORRRROORROORRROOORROROOOORORRRRORRORORRRRORROORRRRORROOOOROORORROORRRORRRORRRRRRORROOORROORORROORRORORROOROOORRRRROOROOOROORRRORRRRORROORROOROOROROOOOOORRORRRROORROROOORRRRORORRRRROOOROOROOORROORRROOROOORORRRRRRROORRRRRRORROORORORRROOROOOOROORORROOROORROOORROORRROORROOOOOROROOOROOOOORRRRRRRRRRRORRRRROORROOOROOORRROOOOOOOROORRRRORRROOORRRRRORRRROOOORRRRORRRROOROOORROOOOOROORROOORRRRROROORRRRORORRROORRROORORRORROORROORRORRORROORRRRRRROOORORROOOOROORORROOOORRRRRRRORRRRRORRRRRORORRROROROOOOOORORORRORRRRRRRRORORROOOOORRRRORRRRORRRRRRORROOORRORRROORRORRRRRRROOROOROROORRRRRRRRRRORRRORRORORORRROOORRRRRRRRRROORRORORRORRRRORRORORRORROORROROROORORRRRRRRRROOOORRORROOOOOOORORRORRRRRRROORRRRORRRRRORRROOORRRRRRRRRORRROOROOOROORORRORRROROOROOROOOOROOOORRRROOOROOROOROOORORRROOOOOORRRRROOORRRROROORRRRORRORRROORROROOORRRRRRRRRROOROOOOOROOOOROOOORORROOOROORROOORRROROROOORORROORRROOOROROOROROOOOROORRROOOOOROORORRRRORROOOORRRRROOORORORRROOOORRORRORRROOORORRROOOORORRORORRORRRRROOOORRORRORRROORORRRROOROROOOOORRRROOOOORRORORROROORRROOORRROORRRROOORRORORROROOORROROROORORRRRRROORROORROROROROOROROOORROOROOROOOOOROORRROROOROROOORRRROORRRRROOORORROORROORORRROOOROOORRRORRRROOOROOOOORROROORROORROROORRORROOOOORRROOOROOOROOOORRRROORORROROOOOOOOORROOORROOOROOROROOOOOOOORRROOORRROOOOOROORRRRROOOROOORROOROROOROOROROOORRRORRRRORORRORORRRORROOOOROOROORORRORRROOOOOORORORRORORORORRRRRORRROOORRROOOOOOROOOOOOOOOOOOOOOROOORROORRRROOOROOORROOORORORORRRROORRRORRORRRROOOOORORRRRRRORORRROOOOROOOOOOOROORROOOROOROORROOORRROROROORRRROORROOOORROROORRRORROORORORRRRROROOORRROOOORROOOOOOROROOOOOOROORRROOOORRRORRROOOOORROOORORROOOOROROROOROROORRORORROOORORROORRRRRRORORORRRRRRORRORORRRORRORRORROOORROOOOOORORROOOOOOOROOOORORRRORROOOROROOROOORRROOOROOORORROOOOOOOOOROOOORROOOORRORORRRORRRORROOORROOORORRROOOORRRORROORRRRRROOOOORROROORORROOROOOROOOROOROOORRRORRRRROOOOOROORRRRROORROROROOOOOOOOROOOORROOOOROOROORORROROROROOOOOORRRRROROORRRROOROORRROROORRROOOOOOOOOORROORORROOOOOORROOROROOORROORRORRRORRRROOROOOOOROORORORROOOOORROOOROORRORORROORRRROROOROOORRRRRORRRORRRORROOOOOORROOOORROOOOOOROOROORORRROOOOROORRRRRORORORORROORROROOOOOROROROOROORRROROORROOOOORRRROROOOORORROOORROOROORORORRROROOOORRROOOOORRRRRRROOOOROOROOOORRROROOORRROOOOOOOORRRRRROOORROOOORORRORROOOROORRRROOROOORRROOOROOOOORRRROORRRROOORROOOOROOOOROROROOOOOOOROOORRRORRRROORRROORRORROOORRRORROOROOOROORROROOORRORROOOOOOOOOOROOORRORROROOORRRRORROOORRROOROOOROOOROORRROORROOOOORROROORROORROORROOOOOOOORORORRROROOOOORRRROROORRRRRROOOORORROOORROOOROROOOORROOROORORORROORRRRRRORROORROOOOOOROROROOOROROROOROOOOOROOORRROOOROROOOORORORRROROOOORRRRORROOROOOOORRRRRROROOROOOOROORORRROORROOORORRORRORORROOOROOOOROORRORORORRRRRRRROOROOOOOORRRRROOOORORROOROOROROROORRROOOOOOORROOOORRROORORORRROOOOROROROOOOOORRRORROROROROORORRROROOOOORRROOROOORROROOOORRROORORRRROOOROOOROOOROOOOORRRRRROORRRRRRROORRRORORROOOORROROROOORRRRRRRRRORRORORRORRRORORORRRORRORORRORROOOROROOOOOORRRROROOROOOOROORRROOOOROROROOOOORRRROORRRROOOROORRROORRRRROORORRORRROOROOORROORROROOOROORRRRORRRRORORRROOOOOROORRROORRRORRORRRRROOOOOOROROROOOOOORRRRRORRRRRRORORORORRRORRROOOROOROORRORRRROORROOOROOOROORROORRRROOROOROORRRROOOROOOROORROOORORRROOOROROROORRRRRROORRRRRRORRRRRROOOROROOOOOOOOOORRROOROOROOROOOOORORRROOORRORORRRROOOOROROORRROOOROORROROOOOOOOORORORRRROOROROOOORRROORROOORRROROOOOOORROROORRROORORROROROOOOROOOORRRRROOORORRROOROOOORRROOOORRROORROROROROORRRORORORRORORRRORRRORRORRORROORORROORRRORRRRROOOORRRRORRORRRROOROROORORRROORRROORROOORORRRRROORRORORORROOORORORROROOROOROROROOROOOOOOORROROORROORORRRRROROOOOORRROORORRRRRORRRRRORRORRRRRORORROOROOOOOOOORRORRORROOORROROOORRRORORORORRORRRRRRRROROOROOORRORORRRROOROOOOOOROOROORORRRRRRROOORORROORRROROORRRROOORRORROORORROOROROROOOORROROOORRRRRRROOOROOOOOOOROROROOORORRRRRROROORRRRRORORORRROORRROOOOORRORORORRRORRRROOOOOOROROOOROOOOORORRORROOOOROROOORRROROORORORORRRROORORRRORROOOOOOOORRRROROOOOOOOROOROOROORRROOROROOROOOORRRORORRRORROOOROOOOOORORORORORRRROROORRRORORORORORORROROOOOROORORRROORRRROROOORRRORRRRROOORROROOORORRORORRRRORRORORRORROORORROROOOOORORROOROOORORRRORRRRRRRRORRROOOOORRRORORORRORROOROOROORRRRRORROOROOOOOOOOOROOOROOOOROROORORROOOORORRRROOOOROOORRRRRORORROOORRRROOROORRRROOORRORROORORRROOORROROORRROROOORRRRORROORRROROROOROOORROROOOROOROOOORROROOOORRORRRORROORRORRROROORROROOOROOOOROORRORRORRRRORROOOOORROOOORRROROORRRRROOROOOOOORRRRRRORRRRROROROORORROOORRRRRORRRROROORROOOORORORROROROOOROOOROORRRRORROOOROROORORORORORROOROROOOOORROOORROOORORRRROOOOORROOOOORRRRRRRRRROOOOOOOOOORRRROOORRRORORRORRORRRROOORORORORROOOROOOOOROROOROOOOORORORORRRRROOROOORROROORROOORROOOORORRORORORROOOOORRRORROOROOORORRROORORRORRRROOOROROORRRRRROROROOORORROOROOROORORRRRROROORROORROORRRRROOOOORROORORRROOOROOOORRRORROORORRRORRORRRROROROOOORRORRROORROOROOORORROORROORORRRRROOOORRORORROOOORROROORRROOROORORORROROORROOOORROORRRRRRORRRORRRRRROOOOOORROOROROOROOOOOOOOROORORROORRRORRRRRORORORRROOORROORRORRRORRORRORRORORRRRRROOOORRRRROROOOOORORORRRRORROROOORRRRORRORRROOROOOOROOROORRRROROORORORROROOORORROORROORRORRROROROORROOOORORRRORORORORROORROOROOORRROOORORROOORRROROORORROROOOOOOOORRRROORRRRRRROOOROROROOOORRROOOOOOORROOROOOOOROOOOROOOOROORROOORRROORROOORORRRRRORORRRRORRROOOORRRORRRORORRORROROOROOOROORRORRORRRROROOOROORRRROOORORRROOOROOOOOOORRROOROROOOORRRRORRRROORRRROOORROOOOORORORROORORORROOOOROOOOOROROROROOOROORROOOROOOOOOORRROORRROOORRRORRRRROROROOORRRORORRRRRRRORRORORRORORRRRRORRORRRORRRRRRRRRROOOOORRROROORROORROROOROORRRRRRROROOROOORROROROORROROOOOOOORROROOORROROORROOOOROOOOORORRRORRRRRRORRRROOORORORORORRROOROOOORRORRRRROOORROORROOOOROOORRROOOOOROORROOOOROROOOOORROOOROORROORROOROOOORROOORORORROOOOORRORORRRORRROOORRROOORORRORORORROOROOOOROOORRRRRORORRRROORROOOOORRRROORRRORRROOOOROOOORRRORORORRORRROORORORRROOOORRRROORROORRRRRRORRROORROORRROROOROROORRRROROOOROORRRRRRORRROROOOROROROORRROOOORROORROROROOOORRRRROORRORROROROORORRORORRRROORRRORORROORORRRRRORORORRRRRRROOOOORORROORRRRRRORROORRORRRRRROROOOORRRRORRRRRROORORRORRRRRRRRRROROOROOOOOORRROORROOROORORRRROROOOROORRRORRORRRRRROROOROOOOORORORRRORRRRRRORRROORROOORRROOOORORORRRRRRROOROORRRRORORRROOORRRRRORRORRROOOOOROOOOROROORRRRRRRRRORRRORRRROOORRROOORORORRORROROOOOOORORROOOROOORRRRRRORRRRROROROOOROORRRROOOORRORRORRORRORRORRROROROOROORROORORRORROORROORRORORRRROOOOOOORRRORRRRORRORORROORROORRRROOOROORORRORORRORRRRRORORORRORRRRORORRRROOORROORRORRRRORROOORORROROOOORRRORRRORRROOROROORROROORROORRRRRROROOOORORORROOOOOROROOOOROORORORRROROOORRORRROOORORORORORROORRORRRRRRRRRORRROROOOOOORORROROORRROOROOROORORRRROROOORORORROOOORORORORRROROORRORRROOORORROORORRROORROOORORRRRORRROOOOOORRRRORRROORRROOROORORRORRRROOOROOROOROORRORROOORROOROROORORORROORRROROOROOORRRRROOOOORROOOROOORRROORRRROOOOOOOOORRRORRROOOROROORRRRRRORORORROOOOROOROORORRROOOOOORROORROORORORROOORORRRORRRROOOROOOROOROOOORRORORRRORRRRRRROOROOOROOOORROOOOOOROOOROORORRRORROOOORRORROORRROORRROOOOOOORORROOOROOOROOORORRROOORRROOORROOOORRROORROOOOROORORORRRRRORRROROOROOOOOOROOOORROOOOROORORRRRRROORORRRRORORRRRRORORROORRRORRORRROOROORROOOOOOROOOOOROROOOOORRORORRROORORORRORORRRRROROROOROOOORRORORRROROOOOROORORROORRRROORRORROORRRORORORRRRORROOOORRROORRORRRORRORRRROOORORROOORRORRORROOROOROROORRRROORROROROORORORROOORRRROROOOOOORROROOOOROOOOROORRRRRRRROOOROROORRROOOROROOORRRRORROORORORRRRORROROROOOROROOORORROOOOOOROOORROROOROROORRORORRRRRORRROOORORROOOORORRROOOOOROOORORROOOORORRROOOROROORRROOOROROOROOORRRRORRORORRRRORORRRORRRROORORRORRRROROORRORROROOORROROORRROORRORROOOOROOROOOROROORROOOOROROOORRORORORORROOOOROROOROOOROOORRRRRORRROROORROOOOROOOORROROROOROROOROOROROOORRRRRROOOORROOROOOROROOOROROOOROOROORRRRORRORORORRRRROOROOORROOORORRORROOORORRRRRRRROOORRRRRRROROORROOORROOROORRORROOOOORRORRRROOROROOOORRORROROORRRRRORRRRRRROORRRROOOROORORRORRORRORRORROORRROORORORROORRRROROORORRRRORORORRROOOOROROORROOOORROOOROOORROOROOORROOOORRORORRRRRRROROROOORROOOOROROOOOORROOROOROOROORRROROORRRRRROOORRORORROROROORROROOORRORRORRROORRROOOOROROROOOOORRRRRORRRORRROORORRRORORORORORRORRORRORRRROOOROOROOOROOOOORRORORRRRROOOROROORRRRROORROOOROOOORORRRRROORROOOOOOOOOOOOROORRROROOROORORRORORROROROROOROROOROORRRRROOOOOOOROOOOOROOOROORRRRROOROORRRROOOORRROROOOOOORROOROORROORRRRRORORROOOORORORORRRORRRRRORROROOOORROROROOOROOOOORRRRRRROROORRRROORROORRRRROORRORRORRORRROOROORRRRROOORRORORRRORRRROROORRRRROORROOOOROOORRORROOOOOROROOOOROROORRRROROROOOORORORORROOORRRROOOROROOOOORORORRRROOOROROOOOOORRORROOORORRROORORROOOORRROOOOROOOOOROOOROORRORRORORORRORRROOORRRORORORRRORORROORRORRRORRROOOOOORORORROORRRRROROOOOOOROORRROOROOOORRRRORRORRRROORRROOOOOOOOROROOOROORRORORRORRRRRRROOOORRRRRROOOOROORROORRRORRORROROROOOOOOORRRRROORROOROOOOOOOORORORORORORROORORRORORORORORORORROORRORRRRROOORROORROORRROROOOOORRRRORRORRRRORRRORRRRRRROROOOOROOROOROROROOOOOROOROOORORROORRROORORORORRRORORRRORROORRRROOROOROROOOORORRRRRRRRORRRRROROROOROOOORRRROOROOROORRRRRORORRRRROROOORORROOOORROROORORRRROROOOOOORROROORORORRORRROROOORRRROROROORORRROROOORORRRROROOOOORRRRORORRRRRRORRRORRORROORRRRRORROROOOROOROOROORROROORROOOOOOOOORORRRROOOORORROOORRORORORORORORORRORORORORORRROORORORRRRROORROOORROOOOORORROROROOOROORROOORROOOORRROOOOROROOORRRORRRORRRORRROOOORORORRROROOOOORRRROOROOOORRROOROOROOROORRRRRORRORORRRROOROROORORRROOOROOROOROROOORORROORROOOORORROOOORORRRROROORORROOOOROOOROORRROOORROROOOOOROROORROORRRRRROORORORRRRROORRRRROOOORRRRROROOORORRROOROOORORORRROOOORORRRROORORRROOOORROORORROROROORROOOORRORORRROOOROROOOOOROOORRORORORORROOROOORROOORORORORORROOORRROOROROOORROORRRRORRROROOOOOROORRROORRROOORRORRORRORRROOORROROORORROORRRORRRORROROORORRROROOROOOOOORRORORRRORRROOOOOOOORROORROOORRRRRRRROROORORORRROORROOOOOROROOROOOOOROROOOROOROOOOOORRROOORROROROORORRORROOOORRRROORRRROORORRROROOORORROOOOROOOOORRORRRRRORROORORRORROORRRROROOORORRORROOOORRROORRORORROOOOORRRRORORROOORROORORROOOOOORRROOOOOORORRORORRRROROOORRRORORRROROOOROOORROOOOOOORRROROORORROROOORORRRORRROOOORROROROROOOOORRRROOOOOOROORROROORRROROOORROOOOOORRRROORRROOOOROOOOOORROROROROROOOOORRRORORRRROOORRORORRRROROOORRRRORRRRORRORORROOOOROORORRRRORROROOROOOORRROORORORRRRRORROROOORRRORRRRORROROOOOROOROOORORRRRORRRORRRROROORRROROOOOROORROOOOROORORRORROOORROORRROROROOORRRROOOORORORROOOOORROOOOORORORRRRRORRRRORROROOORRRRROOORORROOROOOROORRRORROOOOOOOOORORRRORORRROOROROOOROOORRROOOROOOOORROORRRROROROROOOROOROROORRRRRRRROOOOOOORROORROORRRRORORRRORRORRRROROROORRORRRORROROOORROORORORROORRRORROOOOOROOROROORORORROORRRORRORRROOOOROROORROORRORROOOOOOORRRRRRORORROORRORORRRORRORRROOOOORORRORRORORROOROOOOOOOROOROORRRRRRRORRROOOOORRRROOORRORROOOOOOOORRRRROORROOROORRRORRRRRROOOOOOROOOOOROORRRROOOOORORORROORRROOORRRORRRORRRROOORORROOROROORRRRORRORRORROOROROOOROOOROORRRRROROOOROOOROROOROOOROROORRRRORROOOOOROROOROOOROOOROORORRORRRRORRROORROOORROOORRROROOOORROROROOROROORRORROORRORORRRRORRROROORROORRORORROOOOROROOROOROORORORROROORROORRORORRRROROROOROOOOROOOORRROOOOOROOOOOOROROOOORRROROROOROOOORORORORROORRROOORORRRRRRROOORRRROOORROROORRORORROROOOORORORROORORROROORROROOORRRRORORRRROORRRRORRRRRORRORRRRRRRRORRORROOOOROROORRRROROROOOOOOOOORORRRRROOROOORRORROOOORRROORROORROOROOROOORRORRROOORROOORRORORORORROORRRORROORORORRROOOORROORROORRRORRORORORRRRRRRRORORROOOORORROOROOOORORRRRRRROROOOOOROROOOOORRORROORRRORRORORRROORROOORRRROOROORRRORRROOOORRRROORROOOOOOOORRRORRRORROOOOOOOORRRRROROOOORRORROOROROORROOORRRRROOOROROROROORORORORORROOOOROORORORORORORRROOOORORRRORRROORRRORORRROORRROROROOROOOOROOOOROOORORORRRORROOROOORRROORRROOORROOORORRORROROORRRORRRRORRROOOOORRROORORRORROOROORRRRRORROOOOOROOOROOROROORRRORRORROROOROROROOOORRRRROROORROORORROORORRROORRROOOOOOOOOOROOOOOOOOROOOOOORROORORORRRROOOOORRROOORRROORRORRRORORRRRRROROROORORRRRROOOOOROOOOOROORORRRRORORRRRRRRROORRRRROOOORRRROROORROOOOOORRRROORRRORORORROOORORORRROOOOOOOORRRRRRORRRORRROOROOOOROROOORRROROROORRRRROOORRRRORRRROOORRROOOOROROROOROOOROROOOOOROOOROORRRRRRORROOOROROOOOROOOROROROOOOOROORORRRORRRRRRRORORROOROOOROOOOROOOORRRRRORRORROOROORRROORRROOOROROORROOOOORROOORORRORORRRORORRRRROORRROROOROROOORORRROORRORRORROROORORROORRRROORRRRROOOOROOROOOOOORROROOOOOORRORROOOORROOOOROORRRRRORRROOORRRORROORRORORROOOROOROOOOOROOOOOOOORRORRRROORRRORORRRRROORRROROOOOOOROOROROROOOORRRRRRRORRRORORORORRROORRRRORORROROOROOROORRRROORRORORROORROROOOORORORROOROOORRORRORRROORRRRORRRRORROOORORORRROOROORORRORRRORRROORORORROROOROOOORRROORRORROOROROOOOOOOROOOORRORRORORRRRRROOORORORRROORRRRROROOOROROOROOORORRRROORRRRRORROOORRRRORORORRRRORRORRROROORROOOOROOROOROOOOOORRORRRRROROROOORRRRORROORRRROROORORRORORORRRRORRRRRRROOROORRORRRORRRRORORROROOROOROOORRRRROOROOOOROOOOOOOROORRRORRORRORROORRROOOOOOORRRRRRORRORROORRRORORROORORORORROORROOROORORORROOOOOORROOOOORORRRRRORRROORORRRROOORROORORORRRRROORROOORROOROORRROROOOORORRRROROROROROORRRROROORROOOORORRRROOORORRRROOROORROOORROOORRORROOORRRORRORRRROORROROORRRORRROOORRORRRROOROORRORRRRRORRORORRRORROORRRROORRORRRROROOOOORORRRRORROOROORRORRRRRROORRROOROORROOOOORRRORROOOOOOROROORRRRROOROROOOOOOOOOORRRRORRRROOOOOOOORRRROOORORORRORRORRORRRRROOORORROORRROOOOROOORRORRRORRORORROOROROOORRRORROOROOOOOORRRORORROOORRRRORRORROOROROROORROROOOORROOOOOORROORRRORROORRRRRORROROORRROOOROORRORORROOOORRRRORRRRROORORROOORORROORORRRORRORRRORROROOOROROOOROOORORROROOOOROOOOOROOOOOOORRRROOOOOOORORRROROROOROROROROOROORROOORRRROORRRROOORORORORRRORRORRRORRORRROORROROORROORRRROORORROROORRROROROOOORRORRORRORORRRORROOOROOOROOORRROOOOORROOROROOOOOROORRROROROROOOROROORROOOORORORRROOORROOOOORRRROOOOOORROORRORRORRROROOORRORRORRROORROROROOOORROROORRRORRRRRRRRROOROROORRROORRRROOROOROORORRORORROORRROROROORRROORRORORORROOOROOROORORORORRORRORROOOOOROROOORRRROOROROOORORROORROOOROOOORRRRORRROOOORORRROORROROOOORROOROOOROOORRRROORORORRRRROOOOOORROOORRRRORROROOOOOROOROORRROOOOORRRORROOOOOOORRROOOROOOOOORORORRROORORRRROROORORORROOORORORRRRRROROOROORROOORROOOORRROORRORRRROORRROOROOOOROOOORROORRRRRRRORRROORRRORORORRORORROOOORRORROOROOOROORRORRORRRROROROROORRRROOROOROROROORORRRROORRROROOOROOORRRORRRORORRRRRRRORRORRROOOORRORRORRORROOROOORROORRORROOOROORROOOOOOOORRRRRORRRORRRRROOOORRRRROROROOROOROOOOOOOOROOROORRORRRRORRROORRRRRROOORRORRROOOOOOOROROOROROOROORORROORRORRROROOOOOROROOROROOOOROORRRRRRORRRRROOOROROROOOOROROOOOOOOOOORRRORRRROOOORRROOOOROOOORRRORRORROORORRROROORORORORORORRRORROORORROORROORRRROROOOORROORORROOOOROOOROOOROORORROORRRROORROOORRORRRORRORRROORROOOOOOOORROOOOOOROORORRRRORORROOOOOORRRORORORRORORORRORRRORROOROROROORRRORORRRRROOROOORORRROORRRORORRORRORRRRRRORROOOOROORORRORORORRRRRRRRROORRORORRRROOORRORRORRORROORRORORROOOOOOORROOOOROOOOORORRRRRROORORRROOOOORRROOORRRORORROOROOOROOROOROOOROOORRRRRROROORRROOOROOORROROROROROOROOROROOOOORROOORRRROORROORROOOORRRRROORRRROOORRRRROROOORRRROOORRORRROROORRORRORROORRRRORRORORRORRRROROROOOOORORRRRRRROORROROOOOOOORRORORRRRRORROROOORROOOORROOORRORORORRORRRROORROOROOOOROOORORORRRRRRRORORRROORRRRROROROROROOORRORRROORROORORRORRORRRRROORROOROROORRRORRRRORRRRRRRORROORORORRRROOOOOROORORROORROOOOOROOOOROOROOORRORRRROOROROOORRROROOORORRROOORORROOOORORRROOROOROOORORRORORRORRROOORORROOORORROOOROROOROORORRRRROOROROROROROORRRRRROOROROROOROOROROOOORORRROROOOORRRROOORRORORRRROOOOOOOROORRROORRROOOROOORRRRORRRRORORRRORORRRRRROOOROROOOOORRORRRROORORORROOOOORROROORRRORROOOORORORROORRROOOOOORROOROROOROOOROOOROOOROORORORRRRROOROOORRROOORRRROOROROOORROROORRORORORRRORORRORRRRORRORROORRORORRRROROORORROOROOOORORROOOORROOROOORRRRRORRRRRROOOOROOORORROOORROOOOOOOROOROOROOORORROOOOOROORORORORORROOORROOOOROORRROORORORROORRRRRROOOOOOOOROROORRROROROORRORRORROOOOORRROROOOROOROOOOROORRORORRROOORROROOOOOORROORORRROOROOOOROROOOOROORORORRORROORROROOORRRRORRROOOORORRRROOROOOOORORORROROOOOORRROOOOOORRORORROORROROOOORRRORORRRORRRORORRRRROOORROORRRROORORROROOROORROOORORORRROORRRROORROROOOORORROOOROOOOOOOOOOOOORRRRORORRRRORORRROOORROOORRROOROORORRROROOOORROOOOROOOROOOORROORORRROORROROORORORORORRRRORRRORRORROOROOOOORORORRRRORORRRROROORROOOOOORRRORROOROOOORRORROOORROORRROOOOORORRRORROOOOOROROOOOORROOORRRRRRORROOOORRRORROROROOOOOORROOOOOORORRROOOORROROOROROORRRROOOROROOOOORROOROOOOOOOROROOOORROORRROOOOOOORROORORORROOROOOROOOROOROORRROORROORROOROROROROROOORRORORRORRORRRORRRORROOROROOORROOORRORROROORORROOOOOORORRROROOOROORRRRRROOORROOOORRROOROOOORRORORORROROOOROOOORRORRRORROOOORRROOOOOROROORORRROROOOROORROOOORORORRROOORROOOOORROOOORRORORRRROOOROROROOORORRRRROOORROORORRORRRRROROROROOOOOROOORRRRROOOOORROORORRRROOORRRRROORRRRRROOOOOOORROROOROROORRORRORRORRORROOORRRROORRROORRRRRROOOOOROROORRRORROOOROORROROOROOORRRRRORRRRRROOORRRRORRRORORRRRRORROOROOROOORRRRRRRRRRRORORRORRRROOOORROORRORROOOOOOOOOOROROORROOOORROROORORORORRROOOROOOORRORROROORROORRRROOOOOORRROOORROORROORRRRRRORRRROOORRRRRRORORROOROROORRORRRORROOOOOOOORROROORRROORRRRRORRRORROORRROOROOOOORROROOROORRORROROOOROOOORORRRRORRRROORRORRRROORRRORRROOOROORORRORRRRROOROOORRORROOROROROOOORORRRRRROOOOORRORRRROOORORORORRRRRRRRRROROOOOOROOROROROOORORRORRORRROROOORRRRROOOORROOOROOOORORRRRROOORRRRORRROOOOROROOORROOROOROOORROORORRORROROOORRROOORROOOOORRORORORROOOOROOORORRROOOORRROOROORROORRORORRRORRRRROORRRRRRRRROORRRRRROROOOOOOOOORRRRRRRORRORRRRRRRROOORORRROOORORRORRRORRRRRRRROOORRRRORROOROOOOOOOOOOOOOORROROROOOOORORRRROOORRROOORROROOROOOOORRROOROORORRORROORORRRRROROROROOORRRRROROORROORROOROORORRRROORRRRORROORRROOOROOORRRORROOROROOOOOROOORROROROOOOROORROROROOORRRRRROOORORRROROROORRRRORRROOOROOROOOORORRROORRRORRORRRRRRROORORRROOOOORROOOOOOROOOORORRRRRORORROOOOOROOORRRORROOOROORRORRRRORRRRROORRRRRRRRROORROOORORROOOROOOOORRRORROOROOORORROORRRRROORROORRRRROORRRORORRORRRRRRROROROOORORRRROOORORRRRROOOOOORORRROOORRORROORRRRORRORROOORROROOOORROORROOOROORORROOOORROOORORORRROOOOORRROOOOROROROOOORRRROOOROOORRROOOORRROOOORORORRORROROORRROROOORRRROROROOROOROOORRORORRRRORORROOROROORRRROOROOROOOOROOROROOROROOROROOOORRRROORRROOORRORRROOOOROOROROROOORRRORORRRORORROOORROOOROOORORRRRRORRRRRROOOOOOROOORRRROOORORRORRRRRRROOORROOOORORROOOORROOROOOOOOORRROORORRORRRROOORRRROOORRROROOROOOORROROOROROOOOOOROOOOOOOORROROROOORORRRRROOOOROOORROOOROORROOORORORRORROROROROROORROORRRRRRROROOOORRRRORRROROOOOORRRRRRORROROROROOOORRORRRRROOOROORROOOOORORROOORRORRRROORORRROOOOORRRORRORRRORROOOROOORRRORRROOOOORORRRORRORRROOOOORRORRRRRRRORORRRORRRRORRORROOORORORRRRORRRROORRRRRROOROOROROOROOOOOOORRROROROORORRROORROORORRROROOOROORRRRROORROOOOROOORRRORRRROORROOROORRRRROOORROOROORORRROOOROOORRORRORROOROORRRRORROROOORRROROORROROROOOOROORORROROROROORORRORROOOOORROORRRRORROOOORORRRRRRORORRROOROROORORRRROORROOROORRRORORROOROORRROOROOORRORRRROROORRRORRRRROOOOORRROROORRORRORRROROOOOROORRROORORRRROOROROORORRRRORRORORRROROOOOORORORORORRRRRRORROORROORRORORORRORROORRRRRRRROROROOOOROOOOOROORRRROOROOROROOOORRORORRRORRRRORROROROOOORROOORRRROROORRORROROOORORROOOROOORROORRRROROOOOORRRROROORRRORRROROOOOORRRROROROORROOROROOORROOOORROOOOORORRROOOOOOORROOOROOOROORORROOOORRORORORRRORROOROROOORRORROOOOROOOORORROOROOOROROOOROOOOOORRRROOOROOOORRORORROOORROOROOORORRROOORRROOOOOOROOOROOOROOORROOROORRORROORRROORRORORORRRORROORROORORRRRORROOROOOOROOROOOOROOROROOOROORRORORRRRORRROORRRORORRRRRORRRORROROOORORRROOOOOORROOROOROOROORRROOOROOROOORRRROORRRRROOOOORRRRROROOOROOOOOOOOOROORROROROROOROOOORROORRROORROOORRORROORRROORORRRORORROROORRROORRRORRRRRRRROOROOOOOORRROOROORRRROOROORORROOORROOOROOROOROROOOOORROORRRRRRORROOORORROOOOOOORRRRROOOOORORRRRROOOORROOORORRRORROOORRRRRORRORRRORRORORORORROORRROORRRRROROOROOOOOROOOOOROORRORROOROOOOOORRRROOOOROROROOOROOOOOROOORROOROOROOOORORRRROROOORROOORRRROOROOOORRRORRORROORRRRROOORORROOROROOOOOOORORRRRRRRRROOORORRRROROOORRRRRORORRORRRRORORRRRRRRRRRROORRORROROOOOOOOOROOOOOOROOROOROROOOOORRROOORRRROROROROOORROORROOOROROORRRRORROORRORRROORORORRROOORORORRORORRROOROORORRRRRORORORORROOROOROORORORORROOROOORORRRRORRRRRRORORORRRRROOORORORRRROROROOOORORRRRORRROROROOOORRRRROROOOORROOROOROROOOOROOORRORROOOOROOOOORORRRROROROORRROORROOORRROOOROOOROOROROORRRRORORROOORRRROORORORRROOOORRORROORROOOOROORRRRROROROOORRORORRORRRROORROOOROOROORROOOROROOORRRRRRROORROROOOOOOROOOOOOROORRORROROOORROORORORORRORORORRRORRRRROROORROOOORRRROORROORRROROORRRRORRRRRORORROOOOROOOOROOOORRORROROOROOROORRROOOOROROOORRROROOOOORRRORROOROORROORRRROOROROOOORRRRORROROROROORRRRRRRORORRRROORRROORORORRRROORRORRRORRRRRRROROORRRROROOROORRORRORRRRRROROOOOROOROOORORRRORORROROOROOORORRROROROOOROROOORRROROOOROOORORRORORROOOOOROROROORRROOOORRRORROOOOOORRRORROROOOOROOORROOOORORORORRRORRRRROOOORRORORRROOOOOROORRORRROROORRROOORROOOOORORORRROOROORORRRRRORRRORORORROROORORROOORROOORROROOROORRORROOORRORROOORORRRORRRROOOOROORORORORORROOOORRORRRRORRROOOROORROOORORROOORROROOOOORORROOROROOORRRRRRROOORROROROORORRROORRROOOOROOROOORRORORRROOROOROOOOOOROROOOROROROOROOROOORORROOORRRRRORORROORRRORROORRROOORORORRRRRRRORROORORRORRRORROOORORRORROOOOOROOOOOROOOOOOROROOOORROORORORRRROROROROOORRORROOORROROOOOOROOOROOOOROOOOORRRROOOORRROOOROORRRROOOOROROROOROOOORROORRROOOOOROOOORROORRORROOORRROOOOROOOORROOORROOOOORRORROOROOOOROORRRORRROORRROOOOORROROORORRROOOOOOROORRRRRRRRROOROORORRRRRROOORRRROORROOROORORROOOORORRORROROORORRRRROORORORRORRROROOORROOROORROROORROOOORRRORROORROOROOROROORRROORRROOROORROROORORRROORROOOOOOORROOOROOROOOOORORRORORROOOOORRRORORROOOORROOOORRRRROROORRROORORORROOOROORRRRORRORROOORORRROROOOOORRRROOOOOOOOORROOOOOROORRROOORRRRRRROOORRROOOOORRRRROOROOOROORORROROOOOORROORRORROOOOORRORORRRRRRROORRRRROOROROORRROORORROOROORORORROORRRORROOOOORRORROOORORRRRRORROOROROORROORRORORROOOORRORRORROORORRROROROOOOOROROROOROROORORORRORROORRROOOROOOOOORRRRROORRORROOROROOOOORROOROROROOROOORRORROOOOOOORRROOOORORORRROOORRORROROOOORORRORRROOORORRORORORORROROROROOOOOOROOORRRORRORROORRRROROROROROOOROORRORROOOROOOOOROOOOOOROORRROOOROOROROROORRROORRRROOOORROORRROOOOOROROROORORORROROOORORORRORRROOORROORRRRRRORRRROOOOOORORORRROOOOOOROOROORRORROORORORRRRRRRRROOORRRORRROOROOOROOOORRRRRROORORORORRRROOORORORORORRORRRORORRRROROOOROROORROOORRRORRORRRRORROOOORORRRROORROROORORRORRORRROROROORROOORRRRROROOROORRORRRRRORROROORRROROROOOOORRRRRROOROOORROORRORRORORRRROOOROORROOOROROORRORRROROOOROORROORRRRROROOORRRRROOROROOORORROROROOROROOOOROOORRRORROOORRRRROROOOROORRRROOOOROORROROOOOOOOORRROORRROOOORRRORRRRRRORORORROOROORRORORORORRRORRRRRRORORRORORRRORRROOORORRORRORRROROOOOORORRRROROOORRRROROORORROORRRORROOROOORRRRORRORORROROOORRORRORRRRORORRORRORORORROOORRRRROROROOOORORRORRROOOOROROOOOOOORROOORRROOORORRRROOOROORRROOORROOORRROROROOOOOORRROOOROORORRORORRRRROROOOORORROORRRROOOORRORRORROORROROOOOROOORRORRRRORROORRROROROOOORRRRROOOROOROOROOOROOROROORRRROOROOORRRRROOOOORRROOROORRRORROOOORRROOOOORRRORORRRORORORRRROORRRROOORROOROORORRRRORRRORRORORRROOORRORORROORRRRRRRORRRRRRORROROROOORORRROORROORROOROROORROROORRROOROOROOROOOROOOORROOROOOOROOROOORRORORRROROROROOORROOORORORROOROOOORORORRRRORROORORROOOOROOOOORRRROORRORRRORRRRRRRROOORROOORORROROORORRORORRRRORROOROORRROROOROORROOROOOOOOOOROORROOOOOOOOORORROROOROROROOOROROORORORORORORROROOORRRROROROOROOOORRRROORRRRRRROOORORRORROROOOROOROOORROROOROORRRRRRROORRORRRROOORORROOORROOOOROORRROORORRORORRRROROROROOORRORORROROROOROROROORORRRRORORRRRORROOORRROORRROOORORRROOOORRORRRORRRRRRRORRORRRORROORRRORROOORRRRRRRRRRORORROOOOOOROORROORORRORROROORORORROOOOORROOORROORROROORROOOOOOROOROOOROOOOROOOROOOORROROOOORROORORORRROROROROROOORORRROOORORRRROOOROOOOOOOOOOORROOROORROROORRORORRROORROORRRORRROOROORRORORRRRORROOOORRRRRROROORROOORORRRRRRRORRRORRORROOORORROROROOOOOOROORROOOOOOROORRRRRRRORRROOOOOOORROORRROOOOOROOOROORORROORRROOOORORROROOORRRROORORRRROOROORROROOORORRRORRORROORROORRRORORROORRROROROOOOROORRRORORROROOOORRORROROORRROORRRORRRRORROROROOROROOOORROROROOOOROORRORRRRRROOORORRRORORORRROORROOROROOROOOORROOROROROOOOOOROORROOOORRRORORRORROORROOORRRRROOOORRRRROROOORORROOOOOORRORROOROROORROROOORROOROOOORRROROOOORORRRORRORORROOOOOORORROROROOORORRRRRROOOROORRROROOOOOROOROROOOORORRROOOORROORROROROORORORRROOROOROOORRRORRRRRORROROOOOROOORROROOORRRRRORROOOROOOORRROOORRRRORRRORROORROOORROROROOORRRORROROOROOOORROOORRRRRROROROOROORORORROOORRORRRRROROORROOOOOORRRRRORRRROOROOROOOROROOROOORRORRORRROOROROOOOROROOROOOORRORRRRROOOORROORORRRRORORRRORROROOOOROROROORRROOROOORRRRRORROOOROROOOORRRORROORORORROOORROROROOOORROOROOOOOROOROORRROORORORRRORROROROROROOORROROORROORROOOORRORRROROOROROROOOOOOOORROROOORORRORRRROORROOOROROROROORRROOORROROORORORRORRRROORORRRRORRRRORRORRRROROROOROORRRROOOOOROOROROROORRROROOORORRRRRROOORROROROROOOROORORRRORRRRRRORRRRROORRORRROROOOOROORORRORROOOORORORRORRRRRROOOOOORORRROORRRORRRROOROOOOOOOORRROORROORRROORROOOORROOORRROOOOROROROOOOOORROOORRRORRROROORROORRRRROOORRROORRRRROOROROOOROOOORRORRRORRORORROOOORROORRROOROROORROORROROORRROOOOOORRRORORRRROOOORRORORRRRRROOORROORORRRROORRROROOOOROOOOOOOROORRRROROORRRORORRRRROROOOOROROROORRROROROOORORRRRRROOORRROORROROORORRROOOROORRORROOORRROOOOOOORRORORRRORROORORROOOOOOORRRROOORROROORORROOOOROORRRORRRRRRRRRRRRORORRRROORRRRRORROOROOORRORRORRRRORROOORORRORORRROORORROOROOROORRRROORORROORRORROORROROORRRROOROOORROORORROROORROORROOOROORROOORROOORORROOROROOORRROOOOOOROROOROROROOROROROOOOOOOORRRROOROOORRRRORORROOOORRROOORROOOORROORRORRRORORRROOOOROOORORRROOOOOROORORROROOORRROORORRORROROOORRRROROORRROOOOOOOORROROOROROROOROOOOOOOOOOORRROOOOOOOORORRRRRRROOOORRRROOOOROOOORORRRRORORRORRROOORRRROOOOORROORRORRRRRORRRRRROOROOROOORROORRRRRRORROROOROOROROOROOORORRRORRORROORORRRORORROOORORRRRORROOROOOORROROORROROOORROOOOOORRROORRROOORROOOOORORORRRROOOORRORORORORORRROOORORROORRORORRROROOORROOOOOOORORRRRROROOOOOROOOOOROOORRROOOROROORORROOOORRORRROORRROOROROOOROROROOROROROROOROROOOOORORRROOROOOOOOORORRRROORRROOORROOOOOROOOROROROOORORRROORORRROROROORRROORRRRROOROORROOOROORORROORRORRROROOROOROROORROORROROOORROROORRROOROROOROROROROORRRRRORRROROOROROOROROORROROOORRRRRRORROORRORROOOOORORROORROOROOOOORORRORRRORORROORRRROOROROOOORRRORROOOOORRRRRORRORRROROROOORORORROOORORROROOROOOOORROORRRRORRRRROROROORROOOORROOOORRRRROROOROOROOOORRORROOOOOROROORROOORRRRROOOORROOORORORROOOORRRROOOOOOROOORRORORROORORRROOOOOORORORRORORORROROOROOOROORROOOROOOOORORRORROROOORRROORRRRRORRROOORRORRRORRRROOROOROROOOORRORRROROROOROROOROROOROROOORRRRORRORROORORRRRORRORRRRORORORORRRROOROORORROROOROROOROROOORORRORRROOORORROROROOROROORRROOOROOOORRROOORROORRRORRRROOROROROOORORROOORROROORROOROORROORORRRRRRORORORROROOOOOROOOROOORORORRORORRRRRRROROROOOORRRRRRRROROOORORRRRRRROOORRROORORRRRRRRRRROOROOOOOOORRROORORRORRRRRRRRRRRRROOORROOOOROROROOROOROOROORRRORRROOROROROOOOROOROROOOOORRRRRORROORORRRRRRRORORRORRROORRORRROORRRROOOOOOOORROORRORROOROOROOOROOORRROROROORORORRORRRROOOORROOORROORROORRRORRRRROROORRROOOORROORRRROOOOORROROOORRRRRRRROOOROROOOOORROOOOROOORRORROORRORORROOORRRRRROOORORORORROROROOOOORORORRORROROROORROROORRORORORORRRRORORROORORRRRROROROORORRROROOROOOROOROROOROOROOOORROOORRRROORRROOROOOORROOOORRRROROROOROOOORROOOORRRORRROOORROROROOOORORORROORRORRORRRRRORROORROORORRROOROOOOORRRRRRRRRORRORROORORROROORORRRORRORRRRORROOOOOROORORORORRRRROROOOORORORRROORROORORROROOORROORRRORROROORRRORRRORRORORRRORRROROOROROOOROORRORRRORROOROROORORORROORRROROORORRROOROORORRRRRORORRRORRRRROOROOOORROOOORRORRRRROROROOROOOORORRRORORRRRRROOROOOOOROROOROROOROORRRORRRRRRROOORRROROROORROORORORROOROOORROOORROOOOROROOOORORRRRRRROOOROOOOROOORRRORORORORORROROORRORRROOORRROOORROORRORRRROORROORRORRRORRORRRORRROOOROOROROORRRRROROROOROOROORROOORORROOROROOOORRROROROROORRRRROOROORRROORROOOORORROROOOOOROORRRROOORORORRROOOOOORROOOOROOOROROOORRORRORROOROOOROORRROOORRRORORROOOOORORROROROOOROORRRRROROOOROROORROORORRRROROOOORRORRRRRROROOOROOROROORRRRROOOROORORRORRRRRRORORRRRRRORRORORORROROOROOOOOOOROORROORORROOROOOOOROOOORRROOOOOORROOOOOOORROOORROOORROROOORORRRRROROROROORROOROROORRRROORORROROOOORORRRORRRRORRROOROOOROOORROORORRRROOOOORORRROOOORRORRRORROORROOROROROOROORORORRORORROORORORRROOOORRROROOORORRORORROOOROROORRROOOROOOROROOROROOOROROORROROOROOOROORROOORROORROORRRRORRRRRRROORRRORRROOROROROROOOOORRRORROOOROORRORRRRRRROROROOOOROORRORORROOOOOOROOROOROOROOORROOORRRROORORRRRORORROROROOORROROROORRRROROOROOORORRRRORORORRRRRRROOROOORRRRORROORROROOORRORRRRRRROROROORORRORORROOROROOROOROROORROOOROOOOOOOOOOROOOORRRORRRROORRROORRRROROROROOOROOOOOROOOOOROOOOROOROORROOOOOROROROROORRRORRROORORRROOOORRROROORRORORROROOROOOORRRROOOROORORRRRROROOORRRORRRRORROOORRRRRRORRORROROROORROOROOOROOOROOROOOROOROROROOOOROROOOROOORROORROOOOORORRRRRRROROOOORORRRRROORORRRROOOOORRORRRROOORRRRRRRROROOROORRRRORROORORROOOOOOROORRRROOOROOROOOOOOOOROOORROROOOROOORRRORORRORRROOOOORROOORORORORRRRRROORROOROOORORROOORROORRRORROORRRORROORRRROOROOOROOOOROOOOOOROOOOOORRRRRRORRRORRROOOORRORORROOORRORRORRORROROOOROROROROOOOORRORRRRROOOROOOOOORORORRRRRORORRROOROOORRRROOROROOOORRORROOROROOOROOORORRRORRRRORRRRROORORORRRORRROOOROOROOROROORORROORROORROOROOOORORRROOROORROORORORROOROOOOROROOOROOOORRRROROOOROORROOORRRRORROORROOOORROORRROROOOORRRRRRRRRRORROORORROOOOOORROOOROOOOOORORRRROROOOOORRROOOOORORORORROORROROOOORRROOROOOOORROOORRRRRORRROROORRORRORRROOORORROOROOOOOOOOROROORORRRRRROORRRRROORRROOORRRORRROROOROORROORORROOOOROOOOORORRROORROORROROORROROROORRRROORORROOOOORROOROROOORORRROOOOOROOOOORRRROORORRRROROOORRROOOOROROOOROOROROROORRRRROOOOOOORRRRRROOOORRRRRORRORRORRRROROOOROOROORRROOROOROORRORORRORROOORORORRRRRROOROROROOROROORRORRRORRRRRRRRROORORRRRRRRORORRROORORRORROROOOROOOOORRORRRRRRRROORORRRRORORORRROORRORRORRORORRROROOORRRROROORRRORRORRRRORORRORORROOROORROOOOOOROOOORRROROORROOROROOOROOOORRROOROROORORRRORORRORROOROOOORRORORRROROOOORRRROORROOOROOORRORORRRRRORRRRORRROOOOORRORORRRROROORORORROORRORRROOROORRRRRRRROROOOOOROOORRORRRRROROOOOOOOOOORORORORROROOROORORRRROOORRROOORROOOORRROROORRRROROROROROROROROOOROOROOROROOOOORRRROORORRRROOOORORORORRROOORRRRROOOROOROORRRROOOOROROORRRORORROOOOORROOOORROOOOOORORRRRROROOOORRROORRRORROORRRORORROROOROOORRRORORRRROROOOOORROORRROOOORRRORRRRRRRRRRROOORRORRRORRROROORORORRORRRRORRROOOOOOOORORRRRORROROOOOOOOOROOORRROOOOORROROOROOOOORRRORORRROOROOOOORROOOORROOORRRROROOOOOOROORROOOOORRRRRROOORRRRORRRROOORRORORORORORRORRRRORROOOROORRRORORRRRORROORORROOROORRRORORRRORRRRORORRORROOROOORRORROROOROOOOOORROOORRORORRRORROOORROOOORRORRRRRROORORRRORRRRORORRROOOROROORRORRRRRORROORRROORRORRRORRRRRRRRORRRRROORORRORORRRORROORORRORROOOOOOOOROROROOOORORRRORRRRORROOOROORRRRRROROOOROOROOOOOOOROOROORRRRRRORRRROOROROORRROOOORORRRORROOROROORORROORRRRRRRRROROOROOROROORORORRRROORRRORRORRRROORRROOOROORORRORRORROROORRRORRRROORRRORORROORROROOORORRROROOROOORROOORRRROOORROORRROORORRRORRORROOORORRROOOORROROOOROOROOOOOROROOORRORRORORRROROROOORORRRROOOORROROROOOOOROOOORRROOORRORRROORRROROOOROROOORRRRROORRORORROOOOOORRRROOORRROORROOOOOORORROORROOROOROOORORRROORRROOORRRRRORROORORORRROROOORRRRORRRORROOOROOOROOROOROROORRORROORORORRROORROORRRROOOORRRRRORRRRRRRORROOROOOROOOOORRRRRRRROOROOROOOOORROOORRRROROOROROORORORORROORRORORRROROOOORROORRRORRRROORRRROOORROROOORRRRRROORORRORRROOORORORROORRRRRRRRORORORROORRRROORROOOOOROOOORORRRRRRORROROOROROORRROOORROORORROOROORRRORORRRROOROORRORRROROORRRORRORRRRORRORORRRORRRRRROOOOORORROOROORROROOOOROOROOOORRROOROORORROROOROORRRORORORRRRRRRORROOOROOROROROORROOROROOROORRRORRROOORRORORRRORROOOROROOROOROOROOOOROOOORROOOOORORRRORROOOORROORRRRORRORRROOROROORORROOOOROOOOOOOROORRRRROORROORRORRRRROROORRRORRRORROROOROOOOOORRRRRRRROORRORRRROROOORROOORRORROROOROOORROOROOROROROORROORORRRORORRRRRRROOROORRORRRORRRORRROROOORRORRORORRRORRRRRRRRRRRORRRROOOOOROOOOOROOORRRRRRROOOOROORRROOROROROOOOROOROOOOOORRRORRRRROROOOOROOOORRRORORORROOROROOOOOROOORROROOOROOOORRORRROROROOOOROROROROOORROOOOOOOROOROOOOORRROORROORRRROROROROROORROOROROOROROOOROOROOOROROOOROOROROOOOROOOORORRRRROORORROROOORORORRRORORROROOROORRORROROORRRROOOOORROORORRRRROORRRORROOOOORRROOOROOOOOOOOOOOOOOOOROORROOOOOORORRROOORROORRROOORORORROOORROORRORRRRRRROOROOOORORRRRRORROROROOOOOOOOORRRRROROROORROOOOOORROOOORRRRRRRRRRRRRORRRRRROOORRORRROOOROOROORROORRRRRORRORORRRRORRROORRRRROORORRORROORORRROORORROROOOROORORRRRROORRRROOOORRRORRRRROOROORRORRRROOROORRROOROOOORRRROORRRRRRRRRROORRRRRORROOOOOOOOORROOOOOOOROOORORRRRORROORRROOOOORRRORRROROOOOROORRORRRRRRRRORORROOOOOOOORRRORRROROOROOOORORRROROROOORRRRRRORROOROOORRRRRORROORROOOROOROOORROROROROOOOOORRROOROOROOORROROORROORRRORORORROROOOORORORROORRORORROOROOOORORRROOORORRRRORROROROORORRROOORRORROOOORORRRORRROORRRROOROROORRRRROOROOOORORROROROROOORROROROORORRORORORRORORRROORRORROORROOROORORRRRORORRROORRROROORRRROOROROOROOROROROORRRORORRROROORRRRORORRROORORRROORRRRORROORRRORROOROOOORRORRRROOOOOORORRRRRROORORRRROOROOROOOORRROOOROORRORORRRORRORROOORORORROROROORRORROOROROORRORROORROORORRRRRORRRRRORORRRRROOOORRORRRRORORROOOOROROOOROORRROOORORROROORROOORRRRORROORRORROOOOOOORRROOROROROOROOOORROROOOOORRROORROOORRROROOORRRRRRORROOORROROROORROROOOORRRRRRRROROOORROROOROROOOROROOOOORRRRRRORORORRRRORRORRRORROROOOROOROROORRORRRROOROROOORRORRROORROOOORRORROORRROROROOORORRORORROOORROORROOOOOORRRROOOOROOOORRROOORROOROROROOOOOORROOROOOORRORORRORORRRRRROOOORRORORROORRRROROOROROORORROOORROOORRRROOROORRRRRRORRRROROORRORRRRRORRROOROOROORORROOOOORRORORRRRROROOOROROROOROOORRRORROOROOOOOOROROOROOROOOORRRRORRORORORRROOOOORORRRORORORRROOOOORRRROORORRRROROOOOROROOROOORROORORRROOOOOOORRROOOORORORRRORRRRROROOORRRORRORRROROOOROOROORRORROROROOORROROORORROOROROORRORRRRORRORORRRORORRORORROORRRROOROOORROORRRRRORRRROROORRROOROROROOOOORRORROOROORORROOOOORROORROOORRRROOOORROOOOOORRROOOORRRRRRRRRRROORRORRRRORORRORORORROROOROOOORRORRRRRRROROORROOOROOORRRROROORORRORROROROROOORORRROORRROORRRRRRRORROOOORROOOOROROROORORROOROOOOROROROORORRROROOOROORRORRROOOROROOORRRRRRRRRORORRROROOOOORROROOORROOOROOROOOOOROOORRROOROROOORRRRROORRORORROORROOROROORROOORORROROORORRORRRRRRORORRRORORORORROORORRRROOOOOORRRRORRORRRROOOOOORRRORROORROOOOOOORRORRORRROROOOOOOROOROORROROROROOOOORORROROROROROROOOOOORORRORORORRORROORROOORORRROROROORRROROORROOROOOOORRRRORRRORORRORROORRRRRRRROOOOROOOOOOROORROROORRROOROORORRROOOORRROORRROOOORRROROROROOROOROROROORROOOORROOROOORROOOORORROOROOORRROOOOOORROOROORRROOORROROOOOOOOOORRROOROROOOORROOORROOROOORRROOOOOORROOROORRORORORROORRRORRROOORRORRROOOROOOOORROROROOOROORRORROORROROORRRROORORROOORRRRORRRROROOROOORRORRRRRORRROROOROOROOORORROOOROOOROOROORRORRRORORROROOOROOOOOOROORROOOOOOOOOOOOORROOOOOORORORRRORORRROOOOOORRRORRORORORRRROROROOOOOOOOORRRRRROORROORRRRORROOROOORRROOOOOOOROOOOORORROROOROORRRORRRRROOOOOORRRROROOORRROROROORRRORRORORORRORRORORORRORRRRROOOOORROOROOOOORRRRROROOOOOOOOORORORROROOOORRRORROROORRROROROORROOOROOORRROROROOOOOROOORORROOROORROOOROOORRRROOORRRRROROOOROORRORORRORORRORORRRORROROORORRRRRROOORORRRORROORORORRRRRRROROOROORRRRORRRORRORRRRRRRRORROOORROROOROORRORORRRRRORROROROORRRRORRROOROORROORORROORRROOORROROOOORRRORORRROORROOOROOORRRROOORRRORROOROORORRORORRRROORROOORRORRROOORORRRORROOOOOOORRRROOOOORRORORRORRORRRROOORRORROROOORRROROOOROORRRRRRROOOOORORROOOROORRRRRORORROOROORROORRRORROOOOORRORRORRORRRORRORRRORROROOORRROOROORRORORRRORRRRRRROOOORORRORRROOROOOROOROOOOOOOROROOOOROOORORORRRROROOORRROOOROOORRRORROORROOOOOOORRRORROOOROOOROOOOOOROORRROROROORORROOORROOOOOORRRORORRRRRRRROOORROOOOOOROOORRRRRORRRRRRRRROORROROROROORRRRRRRRRORROORRORRRORRRRRRRRROOROOOOOOORRRRORRROROROOOOOOORORORORORORRORROORORORORORORRRRRRRORROORRORORROOORORRRROOORORRORRRRROOOORORRROROROORRRROORROROOROOORRROOOOOOOOROOROOROROOROOORRRRORROOORRORORRRORRRRORROROROOROOOORRROOOROROOORROORROROROROORORRRRRORORRRRORORRRORORORRRRROOOROORORROROOORORROOORRRORROOROROOOOOROROROOOORORRRORROOORRRRORRROORORRORORORRORRORRROOOOROROORRROROORRROROOORRORRRROOOOOROOOOOOROROOOOROOOROOROOROOORRORORORORRROOOROOORRRORROORRROORROOROOOOOORORRRORRRRORRRORORORRRORRRORROORRROROOROOOOOROOOOROORROOOOOORRORRRRROROROOOORRROOORORRROOOROROORROROORRROORORRRORRRRROOORORRROORROROORRROROORORRRORRRORRRROORROROOROOROORORRROORROOROOROOOROORROORRORORRRRROOOOOOROROROOORRORRRORRRRORRROOORRRROOOOROOOOORRORRROROOOOROROROOOOORRRRRORORROOROROOOORRORORRROOOROOORORRRORORRRRROOORRRRORROORRROOOOOOOOROOOROOROOOOOOOROOOROOROROROOROOORROORORORORORRRROOORORROORROOORORRRROOORROOOORORORRRORORROOOOOROOOOORRORORORRRROORRRROROOORRROORRRORRRRORROOROROOROOROROROOORRORRRRRRRORRROOORRRRROROROROROORRORRORROORRORORRORROROORROOORRORORRRRRORROORRRRRROORRRRROOOOOOOROOROOROROORROORORORRRRRORROOORRRRROOROORRRROORROOROOOOOOORRRRRRRORROOOOOOORROROOORRRROOOOORRRRRORRRORRROORROOORRRRRRROOOROORRRORRRRRRRROORRRORROOROOOORORRRRROOROOOOOOOROORRRRRORORORROOROORRROROROOORORRRRRRROORORROOORROROOOOOORRROOROOOOROROOOORROORORORRROORRORORORRROROOOORROROROOOROORORROOORORROROOORRRROORRROOOOORRRRROOOOROOROROORROROOROORORORRORRROOOROOOOROOOOOOORROOOOROORORRORORROOOROOOROROROOROROROROOORRRRORROOOOROORROORORRROORRORORRORRORORORORORRORROOROOOROOOOOOOROROOOOOOOOOOOROORRROOOROOORRORRRRRROOORRROROROORROOOROROOOORORRORRROORRORRORORROOOOOOOORRRRORRRRORRRORROROOOOOORRROOOROROOOORRRORROORORRROOORROORORRORRROOROORRRRRORORRROOORROORROROORRORRROROOROORRORRRORROOOROORRROROORRRRORRRORRRRORROOORROOORORORORRORORROROROORRRROOROOOROOOORORRRROOROROORRRORROOOOROORRROOOOOOOORRRRROOOOOROROROORRRRRROOOROOOROORORORORROORROOOOROORROROOOROORRRORORORRROROOORRORRRRORORORORRRRORRORROROOORORORRORRRROROORRORRORRRRRRORORRRROORRORRRROOOOOOORRORRROROOROORROOROOOROOORRRROORORRRRORORROROOORORORRROOOROOOROOOOOOOOOORROOOROROOOOORORRRORORORRROOORRORRRORRROOOORORORRRROOOOOOORRORRRRROORORORORROORROROROOORRORORROROOOORROOOOOOROOOORRROOROOROOOROROOOROROROROOOROROORRRRROROROOROOOOORORRORRROROOOROROORROOOORORORORRORRRRRROORRRRORORRRROOORROORORRRRRROORRRROROROROOROOOROOORORRORORRROOROOOORRROOROROORRRORRROORROORRRROORORROOOOROROORRRORRROORORRORROORROROROOORORORRRORROROOOOOROOOORORROORRRRORROORROROORRROOOOORRORROOOOOORRRRRORRRRRRRRRRROOORORROOOOORRORROROOOROORRORRORORRRRROROROOOROOOROROOOROOOOOOOROORRORRRROOOOOORORRROORROOORROORRORRORRRORORORRRRRROOROROOORRRRRORROROOOOROROOROORORRROOOROOROROORROOORRRORORRRORORRROROOOOOOORROORORRORRRORRRROOROOOOOROROROORRRROOOOOOOOOOOORRORRROORROORROOROORRROROROOORRRRRRRROOORRRRROOOOOOOOROORRRORROOROOOOOROORORROOORRRORRRRRROOOORORORORRRRORROOOROORROROOOORRRORRRORORORRRRROOOORROROROROOROOROORRROROOROORRROORORORRRROOOROOORORRRROROROORROORRROORRORORRRORORROOROOOORORRROORORORRORRORROROOROROROROROOROOORRRORRRRRROOOORRROOOOROORORORORRRRRROROORRROOORORORROROROOOOOORORROORRRORORRRRORORROROOOORRROROORRROOORORROROORROOOORRRORROROROOORRROROOOOORRORORRRORRRORROORROOROOOROROROOROOOOOORROOOOOROORROOORROOOROROOOOROROORRROROOOORORORRORRRROOROROOOOOOROOOOOORROORRRRORRRRROROOOROOOROOORRROORRRRRRORROROOOORROOORROOOOOROOOROORRRORROROROOOORRORRRORORROOOOOROOROOORORRROOOOORORORRROROROROORRROOOOROOROORRRRRRORRROROROROORROOORRROORRRROOOOORORRORRORRRORRRORRORORRROOORRROROOORROOROROORORROORROORRRORRORROOOOOROOOORROORRROROOOOOOORORRROOOOORRROOORRRRRORORORORRRROORORROOOOOORRRROOOORORRROOROROROOROOOORRRRROROROROOOROOOOORORRRRROOORROORRRRORROOOROOORRRROOOOOORROORRRRRROORORORROOOOORRROOORRRROOOROORORROORRROOOROOROOOROORORRRORORRROROROORRORRROOORROORORROROOOORORRROOROOOOROROROOOROROOROROORORRROOOOOORROOORORORRORORROORROOROOOOORRRRROOOORORRROOOROROORROOORRROOROOOROROORRRROOOORRRRRROORORROOORRROORRORRORRRRORRRRRRORRORORORROROORRROROOROOROORRRRORORRRRORORRRORROOOROOOROOROORRRROOROOOOROOOOOORORORRRROORORROORRRROOORROOORRRROOOOORRROROROROOROROROORRRORORORORRRRRRRRRROROOORORRRROORROORRROOROORRORRORRROORRRORRRORROROORRRRRRRRORRORROORRORORROORORRRRRORRORROROOOOOROORROORORRRRRRRROOOOROROOORRRROOOOROORRORROOORORORORROOORRRORORORRROOOOOORRRRRRRRRRROORROROOOOOOROOORRRRROROOOOOOORRRRRRROOOORRORORRORRROOORRRROOROORROROOOROOOOOORRRRROOOROORRRRRRRRORORORRROOOOORORRRORROORORRORROOROROORRROOOOORORORROOOROORROOROOOOOROORRRRORRRROOROROOOOORRRROROROOORORROORRRROORROROOOOOOOOOOROROORROORRORRROORROROROROORRRORORORROOOOROOROOROOORROOORRORRRRRRORORRRRROORRRRROORRROORRRRRRRROOORRORROROORRRROORORRRRRROROOORORROORORRROOROOROROORRORRRROROOOOORRRORROROROORROOOOOOOROOOOOORRRROROOOOOROOOOORROORRRROROOOROOORROORRROOORRRROOOROOOOROROROOORORORRROOORROORRROOORRRRORROOORORRORROORRRROORROOOROORORROORROORRRORORRORROORORORRRORROOORORORROOORRRRRROORORROROOOOORROROOOROOOOOOOOOORRORRRORORORROOOORROROROROOORROOOROORRRORORROOOROOOROOOORROOORRRROOOOOROORRROOROORORORORORORROROROROORRRORRRRROORRORORRROORORRRROROROORRRRRROROORROOROOOROOROOROROOOOROOROOOORORRRORRORRROORROORORORRROORRROROORRORRRRRROORROORRRRRRROORORROOOOOROORRROOOOORORRORROROOOROOORRRROROOROROOROOOORROROORRRROORRRRRORORROORROOORRORORORRRORORROROOOOORRRORRROOROORROOROOOOORRRRORRRORROOROOOROROORRROORROOROOOROORROOOROROOOROROROOOROOORRRROROROROROOORRRORROORRROORRRRROROORORRRROOROORRORRRRROOOORRORORRRROORROOOOOORORROOORRROORORORROORRRRRORROOOOROORRRRROOOOORRORORORRORROROROROOOOOROROROROOOORROORRRORROOROOORRROROOORORORORRORORRRORRRORORRORROORRRRORORORRORRORRRRRRORROROOORROOOORORRORORROOROOROOOOORROROORRROOOOOORRRRROOORROOOOOOOORORORRROOORRRRROROROROOORORORRRROROOROOORORORRRRORROOOORROORORRORRROOORROROOOOOROOROOOOORRRRRROORORRORRROOORRRRORRROOORRRRRROOOOROOOROOORROROORORRRORROROORRRROOOORORRROROOOOORORRRRORRRORRRROORROOOORRROOOROROORROOROOOOOORORROROROOROOROOOOOROOOOORRRORROORORROORROOOORORORROOORRORRORRROORROOOOOROORORRORORORRORROOOROROORRRORRROORROROOOORROORRROORROORRRRORROOOOORROOOROORROROROOOROOROOROROROOOROROROOROOOORRRROROROROOOOROOOROROROROOOORRORROORROORORORORORORORORRROOOOOOROROOOOOOROORRORORRRRORRROOORRRROOROROROOORORROORROOOOOOROOROOOORORRRRROORRORRROROROROORRROROROROOROORRRORRORRRRRRRRROORORRRROROROROORRRRRRORROROOOORROORRRROROROOOOOOOOOORRRRROOORROOOOOOOORROOORRRRRROOROORRRRORROROROORRORORRRORROROROOROOROROOOOORRRROORRORRROROORRRORRRROROORRRRORRRORRROOOROROORRRRRROOORROORORROROORRROOROORRRRORROOORRROORROOOOROOROOORRORROROOROOOOOOORROOOOROROROROORROOOOROOOROOORRORORORROROORRROROOORRROROOORRORORROOROROOOOORROOOOOROORRROOORORRORRRORORRRORROORRRROOROROROOROROOROORRORROROROORROOOOROROROOROROORRRRRROOOROROORRRROROOORRRRROOOOROORRROORROOOROORROOOOOROORROOOOOOOOORRRROOOOOROOOOORRORRORORRROOORRORRORRROORORORORRRRRORORROOORRRORRRRRRRORORROORORRROROOOOOROOROOOORORROROORRRRORROROOORRRROOORORROORORRROORROORRORORRORROORRRORRRRRORROROORORROOOROOOOOROOOOROOROOORORROORRRROOOOORRRRROOORROORRRRRRRRORROROROROROOOOORROORRROROOOOOOROROOOOOORORORORORORRORORORORRRROROOORROROOOROROOOOOOOOOOOROORROOORRRROROORORRROOORROOOROOORROOOOOOOOOOORORROOOOROOOOOORRORRRROOOORORRRRORROOORRROOOROOORRORRORORRRRRRRROROROORORROOORROROORRORRRRRRORRRROROROOOORRRRROOORORRORRROROOOORROOORRRORROORRROOOOOOROOOORRRORORRRORRRORRRRRROOOORROOOROOROROROORRORRRRRRRORRRROORRRRROOROROOORRORROROROOOOOOORRRRORRROOOOROROOOOOOORORRRROOORROROOOOORORRROOORRRORORRORRRRRRROOOORRRRORROORRRROORRROOROORORROOORORROOROOROORRRORROOOROORROOORROORORRROORORROOOOOOOOORRORORROOOROOROOOROROOORROOORRRRRRRORRRORROORRRROORRRRRROORORRORRORORRRROOOOROOORRORRORORRRROOOORORROORRRORRROORORROOORRORRROORRRRRROORRRRRORROORROROORRRROOROORORROOOOOOOROORORRRROOROORROROROOROROROORROORORRORRRRRRORRROROROOOOORRRRROORORRRRRORROROORROORROOOROOROROORROOOOORRRORORRORRORORROROOOORRROOORORROROOOOOROOORRRROROROOORORORRRRROOORRRRORORRRRRORORRROROOOOORROOORRORRRROOROORORRORRRRROOOROOOOROOROORRRORROOOOOROOROOOROORRROOOROROOROOOORRROORRRROROOOROORRROROROORORORROOOROOORROOORROORORRRORORRRRROROROROROORRORROOOOROOROORORRRROROOROORRROROORRRRRROOOROOROOROORRRRROORRROOOOROOROOOROROOOOORRRORROROORORORROOOOOROOROOOOROORORROOROORROROOOROOOOROOORORRRRRORRRROOOORROOROOORORRRRORORRORRRRRRROROORRROROROOOOOOOOOROOOOOOORRRORORROOOORORRORORORRROOOROOROORROOOOORRRROORRORORRORRRRROORRRROORRRORROROROROOORORRORRRRORROOOROORRORORRROROROOOOROOROOROROROROOROROOROOOORORROORRRRORRRRROORRRRROOOORROORRORORROOOROOOOORRORORRROOOROROROORROORRRROOOROOORRRRRRRROROROOORROROORORRROROOOROOROOROOROORRRRROROOOROOOROROORRRORROOORRRRORROOOORROOORRROOOORRRRRROORROROORRROOOOORRORORRRRRRRRRROORORRROOORRROROOROROORRORRRROROROOOOORRRROOOOROOOOOOOOROOROROROROROORROOORRROOORRROOORROROOORROOROROORRRRRRORORRROROORRRRRORROOORRRORRORRORRRROROOROOROORROOOOROORROROORROOOOROOOORRRORROOOOROROOORORRROOOROOORRORROORORROORRRRROROORORRRROOROOOORRRRORRRROOROOOORRRRORROOROROROORORRORROOOORRRROORORROOOOOOOORRRORRRORRRROORROOOOROORRROOOROOOOROORROROORRRROOORRRORROORRROOOROROOORRRRRRRROOOOOOROOOOOOORRRRORORORRORRORRROOOORORRROOORRORRRORORRORRRORRRORORROORORROORRORORRROROORORRRRRRRRROOORROOOORROOORORRROOROORRORRRROOOOOROROOOORROOROOORORROROOROROOOORRROOORRORORROOOOOOORRORRRRROOOROOOOROOOOOOORRROOOORORRRRRRROORORORRROOORRRRRRRROOROOROOROOORORRRRRRROOROOOOOOOOROROOORORROROORRRRRRORRROOOORORRRROROROORROOROORORRRRRRORORRRROORROORRRROOROROOOOOOOOOOOOORORORROORRRRRORRRRROROROOOOROROOOORRROOROORRRRRROROOROROOOOROROOROORRRRRRRRROROROROOROROOOOROROOOROOOOOOROOORROOORROORRROOORORRROOOROOOORRRROOOROOOROOORRROOROOORROOORRRORRRORRROOOORRORRRORORRRROORRRRORRORRORRROORORROOORRORROOROORORRRORRRORRRORRRROOOOORORRORORROOROROOORRORORRORRRRORRORRRRRRROORRROOOOORRORRROROOROOOOROOROOOOOOOORRRRRROOOOROROOORRRROORORORRROOOOOOORRROORRRORORRRRROOORRORORORORORROOORORRORRORROROROOORORRRROOOROROORROOOOOROORRRROROROORRORORRRROOOORROOOOOROORRRRORROORROOOOOOROROORROORROOOROORORRRORRROOOOOOROROROROOROROOROOOORORRORROOORROORROOOOROROOOORRROROOOROOORROROORORRRORROOORROORROOORRROOROORRRRRRRRROROROROROORROOOOORROROORORRRROROOOROOOORRROOORRORORRRRORRORRRRRROROOOROORRORROOOROOOOROORORRORRRROOORORROORROOOOORRROORORROORRRROOOORORRORRRROOOOROROOOROOOOOOORORRORROOROORRRORRORRRRRROOOROORROROOROROROOOROORRORRORRRRRROOOORORRRORORRRORORROOOROOROORRROOORRRRROROORRRROROORROOOORORROOOOOROORRRRRRRROOORROROROORROORRRORRROOROORROOORROOOOROROOORROOOROORRRRROORRROORRROORRORORRROOOORROOOROROOOORRORRRORRRROOOORRRROOORROORRROORORRORORRORRROOORROOOROORRORRORRRRRROORORROORORROOOROROORRRRORRRRRROOROORRRRORRROOROOORORROOROOOOORROORRRRROOORRRRORRRORROOORORRRRRRRRRROROROORRRRRRRORRROOOROOOROORROROOOOOOOOOOOOOROROROROOOROROORROOORRROROROROOORORORRROORROOORORORORORRROOORRROORRRRROORRROORRRRROROORRROOOROROOROORORROROROOROOOOOOOOORRRRORRRROORROROOORRRRORRROOORRRROROORORRRRROORRRROORRORORORRRRROOORORRORORORRORRRORORORRRRRROROROROOROOOOROORROROOORROROROOOOOOOORROORORRRORRRORRRRRRROROOOORRRORRRRRORORRORRRRROROOOROROROORORRRORRROOROOOOOORRROOOOROORORRROORROORRROOOROOOOOOROROORRROORORORROOROOOOOORROOORORORROORRRRORRORORRRRROOOOORRROOORROOOOOOOROORORROOROROORRORORRRRROOORRROOOOOROOORROOOROROOOROORORRRRRROOORRORRORRROORROORROOOROOROORROROOROORRRRRORRROORROOOOROORROROOOORRRRRRORRORRRRRROORRROORORRORORRRRRROOOOROOOOOORRORRRORRRRORRORRORRRROOROROROOORROROOOOOOROOOOOROROOORRROOORRRROOORRROOOORORORRORORRRRROROOROROOOOOOROROOOOORRRRORROOORORRORROOORRROORRORRRRRRROROOORORRORROOORORRROOOROOROORORORORROOOROORROROOORRROOOROROROOOROORRROROOROROOOROORRRORROORRROROROOORRRORROOORORRORRRRROORROORORORORROOOOORRORROORRRRROOOOORRRROROOOOORRRROOROORRORROORROOOOOOROORRRORROOOROOOOOROOROORRROOOOOOROORRRROORRROORRROORRORROROOOOROROOOOORRORORRORRRRROORORROOORORROOORORORRROROOROORRROROOOROOROOOOOORORROROROOROROOORORORRRORROOOROOOOORRORORORRRROROOORRRORRRRORORORORRRRRROROORRORRORROORORRRRORRRORRRRRRROOOOROORROROORROORORROROOOORORRROOROROOROOORROOOOROORROOORORROOROOOOROROROOROROROOROOORRORRROORRRORORRROORORROOOROROROOOOOOROOOOOOROOORROROOOROOOORORORORRROOOORRORORROORROORRROORRROOOROOORRRORROOROORROOORORORRRRRORRROORRRORRRRRRORRROORRORORROROOROOOOOOOOOOORORROOROORROOROORRRROORORORROOOOOROROOORRRROROROROOOROROORORRROORROORORROROOORROOROOOORRRORRROORRRRRORRRROROORORRRRRORROROORRRRRORRRRRORROROOORRORRRRRRROORRROROOOORORROOROOOOOROOOOOORORROROOOOROOROOOORRROOORRRORORRRRROOROROOOROOOOROOROOOOOORORROORRROROROOOORRRORRORORORORROORRRRRRRRRROOOROROORORORRRROORRRRORRORRRRROORRORORRRRORRRROORROROORROORROROORROORROROOROORROROOOROORRRRRROORROOROROROORROROORRRRORRRRRRRRORRROROOORRORRRRORRORORRORRRRRRRRRRORRRRRRORROROOORRROROOOOROORRORORRRRRRORORORRRORRRROOOOOOROORRRRRRROOOORORROROORORROOORROROORRORROOOROOROROROOROORRROROORRRRRROOORRRORROROOORORORRROOOROOORROOOROOROORROROORRORRRRROORRRORRROOOOOORRRRRROORORRRRRROORRRRRRRRROOOOOOOOOORROOOROOROORRORRORRORRROOOORRRORORRRROOOOROOOOOOOORROOORRRROOOORRORROOORRROOORROOOOORROROROROORORRROOOOORROORORRROORRROORROROOOROOOROOROOORRROROROORORORORRROORROROROOORRORRRROOOOOOOOOROOOOROOOOROROROORORRROOORORRROROROROORRRRRORRROROOOOOROOOOOOOROOOORROOORORROROROOOOROROOOORROORRORORORRRRRRRRROOORORRRORORRRORORORORROORRORROOORRRRRRRRRROROOORROOOORROROORROOROORORRRRRORRRRROOOROORRRORROOROROOOOROORRRRORRROORROROOOOORROORORORROROORORRRROORRRROOOROORRRROOORORRRRRRRRROOOOORRROORROROORRRRRRRRRRRRORRRRROOROROORRROOOOORORRRRRROOOOOOOOOOOROOOOOORROROOOOOORORORORROROROORRRROOORORRROORRORROORROROORORORRORRRORORROOOORRORORRRROOOOORROROORORRRRRORRORRRRRORROOORRRRROOORORORRORROROOOOOORROOORRRORRROROORROOOOOORRROORRRROOOOOORRROORRRRROOOORRORORRORROOORROROORRRRRORRRROORRROORORROOOROROOOROOOOORRORRRRRRROOOROOORORROOORROOORROROOROOORRROOOORROORORRORRROOROROROORORROOORRRRRRROOROROORRRORRRROORRRROOROORRORRRRRORORORRRRRRRROOROORROOOROOROORROOOORORRORRRROOOOROORRORRRROOOORRORRRRRRRRROOORROOROOOOOOROROROOOOOROOROORRROROROOROROROOOORRROOOROROORROROROROROOOORRRROORORROORRRRRRROROROOORRROOROOROOOROOORORRORRROOOORORRORROOOROROROROROORORRRRROROOORRRRROOOROROOOROOORRRRRROROORORRORRORRRROROROOOOROOOROOORORRRRRORRRRRRROORRROOOROROORRRRORRORRRRRROOOORRORRORROORRRRRRRRRRORRRROROROOROROROORRRRRROOROORRRRRRROORORORROORORRORRRROORORRORROORORRRRORROORROROOOOORROOROROORRRORRORRROOOOOORRRORROROOOOORRORRRRORROROROOOROOOROOORRROOROROORROORORROROROROOOORRRRROORORRRORRRRRRRROORORRROOOROORORROORORRRRRRORROOOORROROROOOOROORRORRORROORRORROROOROROOOOORORROROORRRROORRROROOOOORORRROOOROOOORORROROROORROROOORORRORRRORORROROORRORRRORROROROOOORORROORORRRROOOOROOORROOROORROORROROOOROOROOORRRORORRROROORRRRRROOORRROORORROOROOOOOOROOOROOROOORORROORORROROOORRRORROOROROOOORRRRRORRRRORRROOORORRROORROOORRRRRROORORORROOOORORRORRRRRORRRRRROROROORRORORRRROOOOOOOROOROOROOORORORROOORROORRROOOROORROOOROROOOOROROOOOORRORRORROOOOOOORORRRORROORRROOOOROORRORORROOORORRRRORRRORRROOORORRRRORRRROOOOOOOORRORRRORRROROOROOOROORRRROOOORROROORORRROORRRROOOOORRORRROOOOORORROOROOOOOOORROORRRRORROROOOROORORORROOORORROOROORORRORRRORRRORRORROOORORORRRRORRORRRROOOOORRRRORROOOORRRRROROORROOORRROOOOOOOROOOROOOOOOORRROROOOROORRROROOORROOORRRORORRORRROOOOROOROORORROROROOOOROORORRORRRROROOORROORORRROROROOORORORRORROOORRRORORROOOOROORRROORORROORROOOORORRROOORRORORRORORRRRRRRRRORORRRORRRORROORRORROORROOROOOORORROROOOOOOORROOOOORRORRROOOROOOORRROOOORRRORRROOOORRRROOORORRRRRRROOORROOOOOORRRORRORORRRORRORROROOOROROROROOROOOOROOOOORRORROOORRRROOOORORRROOOOORRRROORROROROOORRROOROOROORRRORRORRRORRROOORRRRRRORROOORROORROROOOOOOOORRRORROOOOOORRRRROORORRRROOOORROROROORRROOROOROOROOOOOROOORRROORRROORORORRRORORRRORRORORORROOOROOOROORRORROOROOROORRORRORRROORRORRROOOROOOROORRRORRORRRRRROOOORORORORRROROOOOOOROOOROORORRROOORORRRRROORRROOOROOOOORROOROROOOOROOOORRRRRORORRRORORRRRRRORRROOOROROOROORROOORORROOROORORROOOORORRRORRRRRROORRRROORRRORROOOORORROOOOOROORROROORRRROROORORRROOROOOORRORROROOORORROORORRRRRRORROORROROORRROOOOROOORORRRRORRRROOOOOOORRRRROOROOORORRORRRORRROOORROORORRRROORRORORROOROORORRROOORRRRRRRROOOORROORORRROORROROOORORROROORRROORROORRORRRRROORRRRRORRRROOROROORORRRRORORROORRORRORRORRORRRROOROORORROORRRORRRRRORRROROORROROOOORRORORROROOOORORRRRORRROROOOORROROOOOOORRROORROOROROOOROROOOOOROOORRRORRROORRRORRROOOOOORROOOORROOOORORROOOORRORROOORROORRRROORRRORROROROROORROOOORROOOROORORRORROOOOROORRRRRRORORRROORORRROOOOOORRRROOROROORROOROORRROORORORORORRRROOORORROROROOROORRRRORRORROROORRROOROOORRROORRORRORORRRROORRRRROROOORROORRRRRORROOOOOROROORROOOORROORRROOROORRROOORROOOOROOORROORRRRRROOROOROOORRORRROORORRORORRORRORROOOROROORORROORROORORRROROOOORORORRRROORRRRRORRROORRORORRROORROORORRRORRORRROOORROROOOOORRRRRORRRRRROROOOOORRRRROORORORRROORROOOOOORRROOROOROOOORORORROROROROROROROOORROOOOOORROORRRRRRRRORROOROOORRROOOROROOROOROOOOOOROORRRROORRRROOOORRORRROOORROOOORROOROROOROOOOOOOOROORRRORRRROOROROORROORROROROOOORROOOROOOOORRROOROOORROOROOORRRROOOROOORRRORORROOOROOOOORRRRORORORROOOORRRRORRRORROOORORROROROOOROROOROORRRORRRRROROOOORRROROORORROORRRORRRORRORROROROOOOOOORORRRORRRROROOOORORRRROOOORORORRORRORROROORRRROROOROORROORRORROORORRROROROOOORORRROORRRORRRRROOOROOROROOORRRORRORORROOOROORRRRORORORRRROORORROOROORRRORRRORROOORORORROOOOOORRRRORORRRRROOROROROORROOORRRORRRROORROORROOOROROOORROOORROROOOORRORRRORRORROORRROORRRORRORRROOROROOORROOROROOOORRRRROROROOORROROROROOOROOORRRRORROROROROROOOROROORRRORRROROORRORORROORRROROOOORROROROOORORRRROROOROOROOOOROOOOORRRROOOOOOOOOOOORRRORORROROROROORRROOOOROROROOOROOOOORORRRRROOOOOOOOORORRORRRRROOORRORRRRRROROOOORRRRRRRORRORRRRRRROROOOOOROOOOROOROORRRRROOOOOORORRRRORORORORRORRRORRROOORROOOOROOOOOOOOROROROORRRORRRORROOORRORORORORORRRORORROROROOOOOORRORROORORROOROOOOOORROORROROROOOROOROOOOORRORRROOOOOOORORROROROORROORRROOROOROROOROROOOOOROROOOOOOROORORRROOORRRRORORRROROOORORRRROORRRORORRORRORORRORROROORRORRRRRRRROOOOOORORRROROOROORRRROROOROROOORROOOORROOOORRRORRORRORORORRRORRROOOROOORRROORRORROOOORORORRRRRROOROOORORRROOOROOORRROOOROOROROROOORRORRRROOOORRRORORRRROOROOOOOROOOROORROOORRROORRORROROOOOORROOORRORROORRORRROORROROORRROOOOORROROOORROOROORRRORROOOOORROOOROROROOOROROOORROOOOORRRRORRRORRORROOORORRRROORRROOOOOOORRROORORROOOROOOOOORRORRROOOROOOOORROOOOORROROROOORORRRRRORRROOOROROOORROROORROOOORRORRORRRROOROORRRORRROOROOORORROOOOOOROOOROOOOOORROOOOORRRRORRROORRRROROROROOROORRROOOOROOOOOROOROOROOOOORRRROORRROOOROOOORROOOOOOORRROOROOROOROOORRORORORORORORORRRROOOOOORRROOOOOOOOORORRROOOROORRORORORRORORRROORRRROOORRRORRROROOOOROOORROROROOOOORRRRROOOORROOOROOORROOOORORORRROROOOROROORRRORORORROOOROROROORROOORORRRORRROROOROOORROOORORORROOOOORROORRORROORROOOOORRORRORRRORORRORORRORRROORRRORORRORORROROOOROOROORRORRRORORROORORRRRRRROOROOOORRORORROORROROOROORORRORROROROORORRRRRRRRROORROORRRRRRRROOROROOROORRORROOORORRRRRRRRRROOOORRRORORROOOOOROOOOOOOOOORROOOORROROOOROOORRRROROROROORRORRROORORROOOORRROOOOROOOROROOOROORORRRRROORRORORORRROOOOROORROOORROROOORROORORRORROOORRROORROOOOROOORROOOROORORRROOOOROROORROROOOOROOORORORROROOORRRRRRROORROROROOOROROOOOORORORORROROOORRROROOOORORROORRRRRORRRROORROOROOOOORRRROROROOOOOOROORORROROORRROOOOOORROOORRRROOROROROORORORROOOOORRORRRORROROROROROROOOOROOOORRRROOROOROOORRROOOOROROROORRROROORRRROORRRRRRROOORORRRROOROROOOROORRRORRORORRROOOOOOOROORRORRRROOOOORRORRRROOORRRRORRRORORRORORORRRRRORRRROORRORRRRROORROOOORORRORRORORROOOOORRORROORROOOROOROOOROORRORRROOROOOOROOROROROROORRRROORRRRROOOOROROOORORORRROOOOOOOOOOOOOORRRORORORORORORROORRROOORRRORORROORORRROORROORRRORROORRRRROROROROOOOORRRRORRORROROROOOOOOOROOOORROOOOROOOOOROROOOROROROROOORRORRRROORORORRORROOOORORORRRRROROOOOORROORRRRRRROOORRRROOROORROORRROOROROOROORRRRORRRROOORROOOOOROROROOOORRRRRORRORRROOORORORORROROOROROOROOORRORRORRROROOOOOORROOOOROROORORROORORROROOOOROROOROROROROROOORORORRRRORROROOOOORORRRROROROROORRORROROORROORRROROOOOOROOROORROROORRRORRRORRRRORRROOORORRRRRRORRORRORRORRORRRORRORORRRORROOOROOORORRRRRRORROORORRORROOORRROOORROOOOOOOOROORRRORRROORRRROROROORORORRRROOOOORORROOORORROORROROOOOOOOOOOROROOOROROOOROOORROORRROOOROORROOROROOOORRRROROORRRRROOOROROORORRRROOROOROOROROORROROROORROORRRORRROROROOOORORROROOORRORRROORORRRRORROOORROOOOROOOOOORORRRORRORROORORRRRRROOOOORRROORRORORROOROOOOROOOOROROROROORRRRORRRRRORRROOOOROROOOORRROOOOORRRRRRROOROOOOOOOROOOOROOORRRRORRRRRROOROOOORRROROROROOOROOROOOOOOROROORROOROORRRROOORRORRROOOORROOOROOORROOOOOOROROOOOOOOORRRRROOOORRRRRRROOOOOROORRROOOROOROOOOOOOOORROROOORRRRORROORRROOROORRROOOROOROOOOOOOOOORRRROROROROORORRORORROOOROOORRRRRRROORRRROOOOOORORRROROOORRORRROORRRRRROROROROOOOOOOOORROORRORORRORORRRROROOOROROROOOROOOOOROROROOOOROOOORORRRRRRRORRROORROORROORRORORORORROROOOOROOORRORORRRRORRRRROORRROORROOOORRRRRORORRORRORROROOOOOROORROOOOORROORROOROOOROOROROROOOROOOROOOOORROORROOOROOORROORRORORORORORORORRRRROOROOOOOORROOOORROROOROORRORROOOROOORRRORORORRORORORROOROROROROROROORRROORRORRRORORRRORRROROOOORROOROOORRRORRORRORROOROOROOOORROOOOROOROOROOOOOROOROOOROOOORROOORRROORRRRRORORROORRORRROROORRROORORRRORRORRRROOROOOORORROOROOORROORORROORROOOOORRRRRORRRRRRORROOOORORORROROROROORORRORROOROOORRRRRRRORRORROORROOOOOOOORRROOOROOROORORRRRRORORORORORORORRROOROORRRROROOOOOORORRRROOORRORROROROORORRROOORRROORORROOOOOOOORORRRRRRRRROROORORRORROOORRROOOOOROORRORROORRROOOOROOORRRRROOOORORROROOOOROOOROROOOROOROORRRROOOROORRROOOOORORROOOORRROORRORORROOORROOORRRRRRRORORRORRRORROOROORRORRROROROORORROROROOOROOOROOOOOROOOORROOOOROROOORRRORORROOOOORORRRORRROORORROROORORORROOORRRRRORRRROOOROOOOROROOOOROOORROOORORROROROROROROOOORRROOORRRORORRRRRORORRROROOROROORROOOORORRRRRRRRRORROROOORORRORROORRRRRORRORORROORORRRORRORRRRROORORROORRRROROROOOOROORORROROOORRRRRROORROORRORRRORORRRRRORORORRRRORRRRROORRRRRRRRORROORRORROROORRORROROROOROOROOORORORRRRRORORROOOOROORRRRRRROOOOOOROOOORROOOOORRROROORRRRRRROROROROOOROOORROOOORROOOROORORRORROOROROOOROROROROOROOOOROOROROORRRROOOORORRRRRROORRRROOOOOROROOROORRROOOOOROORROOOOORRROORROOORRRRORORRROROORORORORORRROROOOROROOOOROORROOORROOOORRORRROOORRRROOORORROOORROOROROORRORRRRRORROOROOOOOOROOORROORRRRRRORROROOOOROROROOORROORORRRRRRRROROROROROOOOOOOROORRRRORRORORROORRROOOORORRRRORORRORRRRORRRRROORROROOOORRORRRRORRRRRRRORRORROROOOORRRORRORRORORRORORORROROROOORRRROROOORRORRORORRRROROORROOOROORORROROOROORROORROOORRRRROROOOROOORROOOOROORROORRRRRRRORROOOROOOROOORORORROROROORORROOROROORORROOOOORORRORORRRROORORORROOOOROORROOOORRRRRORRORORROROORRROROROORRRRRRRRRROORRORRRORORORRRROOORORROROOROOORRORROROOOOROOOOOROOOOROOORORRROROORROOORRRROOORORRROROROROORORRRORRROROOROROROROORRORORRRORRRRROROROOORORRRRORORRROROOROOROORRRROROROOOOROROOOROOORRORRROOOOOORRROROOOOORORORRORROROORORRRROORROORORRRORORROROORRROORRRRRRRRRROORRRRROOOOOORRRRRRROOROOOOOOOOROROOROROORRRRRRRRORRROOOROOORROORRROROROOOOOOOORRRRROOROROROOORRROORROOORRRROORRORRROROROOOOOOOORRORORORROROORORRROORRORRROORRRRROOOOROOROROOROORRORORROOOROOROOOROROROOROROOOOORRRORRRORRRORROORROORRRRORRORORROROOOOOOOOROOORROOORORRRRRORORRRRORORORORORRRRRROORRORORORRRROOORORORORRRORRORRORROOORORORROOORORORRROORRORORORRORORROROOOORROOORRORORRORORRROROOORORROOOROROOORORRROOOOROORROOOROOORRRORROOORORORRROOOORROOORRORORROOOOOOORORRRRRROOOROOORRRORRRRRROOORRRRRORROROOOROOROORORROOOOORRROOOOORROORRRROROOOROROROROROORORORRRRRRRRRRRORORORROORROORRROOORROOROOROOOROOOOOOORROOOROOOROROOOROROROROOOROOORRRORORRRROOOORRRROROOROROOORRRORRRRORORRROOROOROOORROOORRRORRROORORRRROOORORROOOROOOORROROROOORORROOORRROOOORRRORORORRRROROROOORROOOOOORRROROOOOORRORROROORRRRRROOORROORORORRROOROROROOOROOOOROROOORRRRORORRROOROOOOORROROROORROOOOOOOROORROROOOOORROROOOROORORORORORRROORRORRROORORRRRORORRRROROOORROOORRRRRROORRORROOORRORRORRRORROOOOOOOOORRORROROOOROOROROORROOOORRRROROOROORRRROORRRRRROOORORORRRRRORROOOROOROOROORROOOORORRORROROROOORRROORORRRRORORRRRORRRRROOORRRORROORRRRROROOROOROOOOOOROROORRRRRRRRRROROOROOORROOORORRROROORORROROORRRROROOOOORORORROROOOOORORROOOOOOOROROORROORROOROROROORRORORROOOROOOOROOORRROORROORORROOOOOORRRRROOOORRORROOOOOORORORORORRRRRRORRROOORROROORRROORORRRROOROOOOROOOOOROOOOOROOORROOROROROOORRRORRROORRROOOROOOOOROROOOORRRROROOROROORROOOORRRRRRORORORRORRRRROOOOROORROROOROORORRRRORROROOROOORRRORROORRROORORRRROORORRRROOORROROOOOROOOROOROORRRORRRORRRRORRROORRRRORORORRRRRRROOROROORORROOOROOOOOOOOROOROOORRRRRROORRRROORRROOORRRORRRROOOORORROOOORORORRORORRRRRORRROROROOROOOOOOOROROORORRORORRORRRROOROOORRROOORRROORRRRRRORRORROORROOOROROOORORRRORROORRRRROOOOROOOROOOORRROOROORRROOROOORORORRROORRROOORRROROOROORROORROORRORRRORORRRORROOORROROOROORORORORROORRRRRRORORORRROROOORRORROROORORRORROOOORORRRRORRRORRORORRROOORORRROOOROOOOOOOOOOORRRROROOOROOOOROOOOOORRROROROOOOOORROOOOORRRRRROROROOOOROORRRRROOROOORRRORROORROORRROORRROOROOOROROROORRRROOOORROROOOOORRRROORRRROROOROOORRRORROROROOOOORROORORRRRROOORRRRRORRRRRRRORORROOOORORORRROOOOOOOOROORORRRRROROROOOOOROORRROOROROOOROORRORRRROORRROORRRRROROOOORRRROOOOOOOORORROROOROOOOROROROOROROOOORRRORORROROROROROROOOOROOROROROORRROOROROORRORROROROROROOOOROOOROOORRROOOOOOOORORROROOORORRROORROOOORRROOORORRRROORROOOROOROOOORRRORRORRRROROORRORRROORROROROORROORRRRRROORRRRRORROOROOOROOOROOORRORRORORROORORRRROROROOOROOOROORROORORROROOOROORROORRORRROORRROOORORROORORROOOOOORROORROOORRROOOORROOORRRROOOROROORRORRRORROOOOROOOOROOROOROOOORROOOOOOOORRROOROROROOOORROORRORRROORROOOOOOROOOOOORRORROORORORROORORORORRORORRROOOORORRRROROOOROORORRRRRORORRROROORRORRORORORRROROOOROOOOOOROORRRRROORROORRORORORORRRORRRORORRORROOOROROOOORROOROOOOROOOROROOROROOOORRORORROOOORRRRROOORORORRRROORORRRRORRROOORORROOOOOROROOOORROOROORRORROORORROROROOOROROROOOOOORRRORROORORROOROOORROORRRRROOOROORROORROOROOORROOROOOROORORORORROOORORORROOROOOROROORORRROOORROOORRRRORORROOORRORORORROOOOROOOOROORRRROORRRRRRORROOROOOOROROROORROROOORRORROOOOOROOORORRROOORROOOORRRRRORRROOORORROROOROROROOORRRRORROORROROOROORRROORORROOOOOROOOROROOROORRROOROORRRORRROOOROOORORORROOOOOORORORRRRORRORRORORRROROORRORRROROORRORRRRORROOOROORROOORRRRROORRORRRROOOROOORROOOROOOROOOOORRRRORORORORRROORRROORRRRROOOROOOORROORROOROORRORRROORROOORRRORORRORORRROOOOOOROOORRORORRROROOORORRRRRRROOORROOORRRRRORROOROROOOROOROOROROOROOROOROOORROORRRROORRORORORORROOOOOROROORORRRRRROORORRROOORROOORORRROOOOOOOOOOOROOOOORROORORRRROOROROOORROORRRROOROOROROROOROOORORRRORORORROORORRROROOOORRORORRROOORORRRRROOORRORORROOOOROOOORRROOOROOROROOORORRRRRORRORORORROOORROOOOOOORROOOOOOROORROOROOORRRORRRROOOROROROORROOROOORORORORORRORRRRROORRROOROROOOROOOOORROORORORRORORRRROORRROROOOOORROOORORRRRRORRRRRROOORORROROROORRRORRORRRRRRRRORRRRORORRRROROOROOOOOOOROORORRRRRORRORRRRROOORORROOORROOOOROOORRRRRORROOROROOOOORRORRROORROOOOOOOORROROOOORRROROOOOOOOOOORORORORROROOOORROOOOORRROROROOOORORRRRRRORORORORORORRRRORORORORROROOROOOOORROOORORRORRRRORORROROOORROROROOORRRRORRROROOOOOOORRRROORROOORORRORRORROORROORROORORRRORORRRRORRRRRORRORROOOOOROOOORRRRORROROORROROORRORRROOORROOOOOOOROROOOROOOOOOOOROOOOOROOORORRRRRRRROOROORRROROOOORRROOORRROROOROORRROOOORORROOORRRROOOOORROOORRRRROORRRRRRROROOROOOORRRRORORROORRRRRRRRROROOOROOORRRRRRORRRROOOOOOOOOORROOOORRRORROORRRORROOORORORRORROOOOROORORRROORORRROROROROORRORROOOOORRRRRROOOOOOOOORORRRRROORORRRRORROORORRROORRROOORORRROORRRRRRORRRORRRRRORRRRRORRRRRROOOOOOOOOOOOOROORRRRRROROORRORRRROOOORORORORROOOOROORRRRORRRORROROROOOOORROROOOROOROOROOROOORRRROOOORRRRROORRRROOROORRRORORROORORORROROOORORRRORRROOOORORROROOOOROROOORRORRORRORRROOOORRROROROORROOORROORRRRRRRRRRRRORRORROROROOORRORORRORROROROORORRORROOORORORROOOROOROROROOORORRRORRROORROORRROORRRRRRRROOOOOORORRORRORRROOROROOORRORROROROROOOOROORRORRROOORRRORRROROORORRRRRORORROOROORRRROROOOOROROOORRORRRRORRRORORRRRROROROROORRRORRRRRRRORROOOOOOOORRRORORORRRORROROROOOOROOORRRORRORROORORROORORORRRRROROROOOOROROORRRRORRROORRRRRRRROROROROORROOOOROOORORORRORRRRORRORROROROOORRRROORORROORRORRROOROORROORRROOROOOROOROROOROROOOROROORRRRORORRROORORORRRROORRRORORORRORORRRRRORROORROOOORROROORROOOOROROROORRORORORRROOROORRRROOORROOORORRRROROROOROROORRORROOORORROORRORRORORRRRRRROORROORRRRORROOOOORRROROOROOROROORORORRRRORRROORRORRRROOROORROOOOOOOOROOOOORRRRROROORRRROORRROORROOOORRROOROORORRRORORRRORRRRRRROORRORRRROOOORRROORROOROOOOOOORRRRRORRORORRORROOOOOORRRROOORRORRORORRRRRRRORRRRROOOROORRRORRORRRROROOOOOORORROROOOORROOROORRRRRROOORRROORRORROROROORORRRRRRRRRROOROORROOOROORORROOORRORRRRRRRRRRROOORRROOOROORORORRORRORRORRRRRRRRORROOOOORRORRRRRRRRORROOROOOOOOOOORROOOOOROOOROOROROOORRROOROROROOORORRROORROOOROOOROOROROOOORROROOOOOOROORROORROORRROOORORROROOORRORROOORORORRROORRRROROORRRORORRRRRRORRRRORORRRRRRRORORORRRRRRRRROROORRORRRRRRRRROOORRRRRRRROOOOROOORORROORRORRRORORRORROOORRRRROOOOROOOROORRRROROORRRROOOROOROOORROORRRORRORRORORRORRRORRROROROOOROOOOROOROOOOROOOROOOORROROORORRROOORRRROOORORORROORROROROORRORROROOROORRRRORROOOOOOROORRRROOOOROOOORROORRRORRROOORORORROROOOOORRORROOOROROORORORORRRRRROROROROOOOOOROOROROOORROOROOOOORORRROOORROOORROORRRORRROROOOORORORORORRROROORRRORRRORORORORORRROROOOOOOOORRRROOOOORRRROORORROROOOROOORROOROOORROOROROROOOOOORRRORORORRROOORROOOOORORRROROROOROOROORORRRORROOOOROOOOROOROOORRROROORROORROOORRROORRORRRROOOOOOORORROOOROROROOOROORRORROOOROOORORROROORROORRROROROOOOOROORRRRRORRRROOROOOOOROROOOOORROOOROORORROOORROOOOOOORORORORRRRROROOROORRROOOORRROOOOROOROOOOOOROROOOORROOORROOROROROOOOROROROORROOOROOOORROROROOOORRORRRRORRORRRROROOOROORORRRRORRRORROOROOOROORROOORRORRRRROROOOORORORRROORRRROORROROORRRROROROOROOOOOOORRORRRORORRRRRRRRORROROOORRROROOROORORORROORRORROORROORRORRRRRORORORRROOOROOORRRORORROROORRRRORORORROOOOOORRORORORROORRRRRRORORRRRRROROROOORRRRORRRORROROROOOROOROORORRRRORROROORORRORORRROORRRORROORORRORRROORORRRRRORRORORRRORRRRRORORROOOOOOOOOORRRRORRORRRORRORROOROOOORRROROOROORRORRORRRROOOORROROOOOOOOORROOORORROOORROOORRROORRRORRROOROOORORRORORROROOROOORORORRORORRROORRORROOROORRROOORRRRORRRRORROROORRORROOORORRROOOOOORORROOOOOORRORRRROORORROOORROOOOROROOORRRRRORROOOROROOORROROROOROOORRORROROROOORORORORRORRORRROOOROOROOOOROROROORROORRORRRORRROORRRROOROOOOORRRRROROOOORORRORRRORROROOOROROOOOOOOORRRRROROROORROROOOORRROOORORORRRRRRORRRROOOOROORORROROROOOOOOOORROOROORORORROORROOOORORRORORORROOOORRROROROROOROROROOOORORRRROROROOOOOOOORORRRORORORORRRRORRRRORROOOROROOROOROROOORRRRRROROOORROOORORORROROOOORRORROORORRRROORRROORRRRROROROOROROOORORRRORORRRRRORROORROORORRRROROOORROOROOOOOORROOOOORROOOOROOROROOROROROROROORRROOOROROROORROOOORORRRROROOORROROROOROORRRROROROOOOORORRRRRRROROROORRRRRROORROOROROOOROOROOROOOORRORROOORROOROOOORRORORRORRRORORRRROOORRROORRRORROOOROOOOROORRORROOROOROOOOOOROOORRORROORRRROOROOROROOORRRROROOORORROOOORROOORRRRRROOORROROOORROROOOROORORORRRORROROORORROROOROOORORORRRRROORROROOOROOOOROOOOROORRORRORROOOOOOOOROORRROROROORRROROORROOROROROOORRORROORORORRRROROROORROOROORRORRRRROORROORROROROROOROROOOROOOOOOOOOOOORORRRRRRRROORROOROOOROORRROOOOORRORROROORRRROROOOOROROORROROROORRRROROOOROOOOORRRRRRRORRRROROOROOOOORRRROROOOOOOROOROORORORORROOORORROROORRROROOORORRORROROORRORRRRRORRORRORROOROORORROOROOOORORROROORRRORROOOORRRRORORORORROORORROOOOOROOOROOOOOORORORORROROOOOORORRRRORRROOORRROORRRORRRRROROORRORORRORRROOROOOROOROROOROORRROOOOROOOOOORROOOORORRRROOORROORRRRRROOOOOROOOOOROROOROOORORRRRRRRRRRROOOORROOOORORROROORROROOOORORROOOROOOROROORROORRRROOOROROOOOOOORORORRROOROOOROROROROOOORRRROOOOOOOOOORROOROROOOOROROOOOOROOORRROORRORORROORRRORRRROOROORRROORRRRROORROROOROOOORRROORRRROROROOROOORROORRRORRRORROORORROOOOORROOROORRRROOOOORRORRRROROOORRRRRRORORRORORORORRROORROORRRRRRRROROOOOROROOOOORROOOOORRROOROORRROORROROOOORRRRRORORORROOOORORROOROOOOORRRROROOOOOOROORROORROOOROORRROROORROOORRROOOROOORROROORRRRRRORORROOROOROROOORRRORROOOOOOROOOOORRROROOROORRRRROOOORRRRROROROOOOOROOOROROORRROOORRRRRRRORROOOOORORORRROOROORRRORROOROOOOOOORRRROROORRRORRORROOORORRRORROOOOOORROOOOORROROOROOOOROOROORRROOOROOOOORROOROROOORORRRROOOOOROOOOROOORORORRROOORRROROOORRORRROROOOROORORRORORORRROOORROROOOOROORROOOOROROOOORORRROOROOOORRROOOOOORRRRORORRRRORORORROOORRORORRROOROORRRORROOORROORRRRORROOOOOOOROROOOOROOOROORROOROORROOORRROORRROOOOORRROORORORRRORRROORROOOOOOORRROORRRRRORORROOORRRORRORRROOORROOOROORORRRRRRRORRRORRRRRORRRRRROORORRRRROOROOROORRORORORRORRORORRRRRORRROOOROROOROOOOROOORORRRROORORORRROOOROROOORORORORRROOOORRROROORORORRROOORRROOOROOORRRRRRRRROORRROORORRRRROOORRROOOROOROORORRORRROROORORRROORORRRORORRROOOOOROOROOORRORRORRRORRROROORRROOORRROROORROORORRORRORRRROOOOOROROOOROROORRROROOOOOOROOROOORRROOORRORROOOORROOOORORRROOORRRORORORRORRROOOOOORORORRORORRROROOOOOOOROOROOORRROORRORORRRRROROROROOOORROOOORROOOROORRORROROOORROOOROROROROORORROOOORRRRORRRRRROORRRROOOOROROORROOROORORRORRORRORRORORRROORRRROOOORRORROORROORRORORORROOOROORROROORROOROORRRRRRROROORRRORRROROOROORRRRORRORRORRORORRROOROROOORORRRORRRROROOOORRROORORRRORORORRRRRORROOOOROOOOOORRRRRRROROROOROORRRRROROOORRRRRRRRRORRRRRROOROOROOOOROOOROOROORROOOOOOOOROORRROOOROOORROOOOOOOORRRRROOOORRRRROROOORRORORRROOORORRORROOOORORRRRROORORORRORRRRROROOROROROORORRORRRRORORORRORRORRROROORRRORROROORRRRRORORRRRORRORORRRRROOROORRRORROORORROORROORORROOROROOORROOOROROOOOORRROOOOOOORRORRROOOOORROORROOORRRROOORROOOORORRROORROROOOORRORROOORROOORROROOOORROORRROOROOOORRROROOOROOORRROROOOROORRRROROOROOORRROORORROOOORRORRRRROOROROORRRROOORORROROROORROROROROOOORRORROOOOOROROOOOOORORRRROROROORORORRROORRRROROOOROROOOOOOOOORRRRORROROORROOROROOOORORRRROOOOOOORRRRROOROOOORRROORRRRRRROROROOOROOROOOORRRRRRRRRRRROROOOOOORRRRORRROROOROOORRORROROOOORRROOROOOORORRRRROOOOORORORORORRRROORORORRRORROORRROROORROOORRORROOORRRRROOOORROOROOOROROROORRROOOROORRROOOOROROOOROOOORORRRRROROOOOOOOOORROORRRRROOORRRRRROROOORRRRROOOOORROROORROOOOOOORROOORRRORRROORROROOOOORRROOORROOOOROORROROROORROOOORRORRRORROOORRRRORRROORRRRORRROROROORRORRORRORROROOORRROROORORORRRRRRORRRRORROOORRRORRROOOOOOROOROOOOOOORRORRROROROORORRRROORRROROROOORORRORROROOROOOOOROROROROOOORRRRORROROROROOORRORRRRRRORORORRROOOOORRRROOORRRRORORRORRORRRRORORROORORORORRORROROOOROOOOORRRRORRRROORROOROROROOORRRROOOOOOORORROROORORORROOROROOOOOROOORROROOOOORRORRRRROORRORRROOORRROOOORRROOOORORRORRROROORRRROOROROOOROROOOOOROROORORRROORROOOOOOORROORRROORORRRRRORRRRORRRROROROORRRORORRORRORROROOROOROORROORRRRROOORROORORRRORORRROOOOOOROOOOOORORROOOOOOOORRRORRROOOORRROOORRROORRRROOOORROROOROOOOROORRROORORORORRROOORORRRROROROORRORRRORRRRRORROOOOOOOROOOOROROORRRROOOOOOOROORRRORORRORORRRORRORRROOOROROOOROOOROROOOORROOOOORROROROROOOORRRROOOOROOOOORRRRORRROOORORROORORRROROOORRROROORRRROORROORORRRORROOROROORROROROOROROOROOOROOROOORROOROORORRRROOOORRRROOORORRROOROOROROOOOROOORRRROOORRRROOOORRRROROOOORROOORRROROROORRRROOOOOOOOOORRRORORRORRROORRRORROOOROORRROORROORRRRRRRROOORRRRRORROOOOOOOOOOROOOOROOROORRORROROORORORRROORROORRRROORORROORROOOROROOOOORROOORORROORORRRRRRROOOOORRROOOOOOROOOORRRRRORRORROORROOROOOOROROOOOOROOOOOROOORRRORRROORRROROOROOOROROROORRRORRORRRROOROOOROORRROROOORRRRROROOOOROOORROROOOROORRORORROORORRROROOOOORORRROOORROROOOOORRRORRRRROORRRRORRROOOOORORRROORRORRRRRRORRRRROORORORRROORORRRRRRRRRRORROOROOORROOOOORRRRORRRORROORRRRROORROOOORRRRORROORRORORRRORRORRRRRRORORRORRROORROROOOOOOROROOROOORROOROOOROROORROOORORROORORRRRORRRRORORRRRORROOORRRRRROROOROORRRRROROOROOOOORORROOROOOOROOOROORROORRROROROROROOORRROOOORORORROROOORORROROOORROOROROROROROROOOORRRRRRROORRRROOOOROOOOORORRROORRRRRROOOROORORRRRRROOOROROOOROOROOOORRRROOORRORROROOOORRRROOORORORORROROROORRRRRROOROOROOORRORRRRORORORORROORRORORRRORROORORRROOOORRRROORRRRROOROORRRROOOOROOORRRRROOORORRRROORRRORRORRRORRRORROOORRRRORROOOROOORRORROROOROROORRRRROOOOOOROORRRRRRRROOOOORORRORRRROOROROOORORORROROROROOOOOORRORROORRROOOROOOORROOROORRROOOOOORRRORROROORRROOROOOOROOROROORORROROOROOORORRROOORRORORROORROORORRROROOOOROROOOROOORORRRORRROROOROORORORROROROROOOORORRRRRRRROORORRRRORORORRRRROROOOOORRORROROOOROOROOOORRRORRRRORROOROORORRRRORORORRRRRRROORROOROROOORRROROORORRROROOOOORRORRRROORORROOOORROOORRRROOORRROOROOORROOOORRORROOOROORRROOOOORRROROORROOOOOROOROORRRORORRRRORROORRRORORRORRRORORORORRRRRRRRROOOORORROORROORRORORRRRRROOROORRRORRRROOOOORRRORRRRRRORRRORORRROOROORRORRRRRRORROOROROORROOOOORROORRRORRORRRROROROORRRRRROOOOORRORROOROROORORORRRORRRRRRRROOOOORORORRROORORRROORRORRRORROROROROORROOORROROORRRORROORROROOOROOORROOORROORRORROOOOOROOOOOORORRRRROOOROROOORRORORORRORRROOOROOROOORRORROOOOOOOOOOORRORRROORRRROOROOOORROORRROORRORRRROOOROOORRRROROORRRORRRORRRORRORORORRRORROROOOROOROOOOOOOOROOOOORRORRRRROROOORRORORORORORRRRROORORRORROOROROOOROROOOROROROORRRRRRRORROORRROOORROOOROOOROROOROOROOROOOOOOORRRRROORROOOOROOOORRRROROROROROORORROORORORROOORRORROOROOOOROORORRROORRRRRROOORRRRRRROOORRRRORORROOORRORROORRORORRORORORRORROOROOOOOORORRRRRRRORRRRRROROOROROORRROORORROORROROORRORRRROORRRRORRRORRRRRRORRRROOROROROOORRRRRORROOROROORROROOORROOOORRRRRRORROOOOOOORROORORORROOORROOOROOOROROOORRRORORRRRRORORRROOORORORROOORRRROORROOOOORORROROOOORROORRRRRRRROORRROOOROROOROOOOROOOROOROOOOORRRRROOORRRORRROOOORROORROORROOOOOOROOOOOOROORRRRRORORROOROROOORRRROORROORROOOOOORORRRORROROROORORRORRROORRRORORRRRORROROOOOROOOOORORRROOOOROROOROROOOORROORRORORRRRORORORRRROROORRRROORRROROOOROORRRRRORORORRRORRRROOORORROOROROOOOOOORROOOOOROORRROOROOORROORRRORROOROROROROROOROOORRRORRROORORROOOOOORORRROOROOOOOOORORRROROOOOORRRROOROROOROROROROOOOOORORRROOOROOORORROORROORROOOROROORROROROOORRRROROROORRORRRRRORRORRROOOROROOROROROROORRORROORROOROOORRROOOOORORRRROOOOOOORRORORORRRORRROOOOOOOOORROOORROROROROROORROORORRRROOOROROROOORRROORROOOOORRROOROOOORORROORRRRRROORORRRROOROROORRROOROOOROORRRROOOOROORRRRROROORRROROOORRRRRRORRRORORROORORROOOOORORORRRRORORROROOOROROOROROROROOOOOOROOOOROROOORROORROROOOORORORRROROOOOOROOOROOROORRRROOOOORROROORRROOOORRROROOOROORORROOOOOROROOOORROOOOORORORRROOROOORRRRRORRROORRROORROORRRRROOROROOROOORRORORROOOROOOROORRRRORORRRRORORRRROOOORROOROOORRORROOOOOOOROOROOOORRRRROORROROOOOORRROOOORORRROOOROORRORROORRRRRORRORRROROORRRROROOOORORORRRRRROORRORRRRROOROOORRRORRRRRRRRRORORROOOOOOORROOOOORORRRRRRRRRROROORRROROOOOOOOORROOOOOOOOROOROORRRROORRRRRROOOOORRRORRROROORRRRORORRORRORRROOOOORORROROORRRROROOOOOORRRRRORRROORRRRRRRORROOORROORRRRRORORRORORORROROOOOROROOORROOOOORORRROROROOROOOROORRORORROOORRORRORROOOOROOORORORROORRRORORRROOROORRROOORRROORROOROORORRROORRRROORORRROROOORRRRORORRROORRRORROROROORRRRORRORROORRORRROOROROOOOOORROROROOROORRRROORORRRROROORRROOROOOOOROROOROOOOOOOOOOORORRORORRRRROORROROOORORRROOOORORROOROROOROOOOOROOOOOROOROORROORROORROOOORRRRRROORRRRRROOOOORROROROORROOOOROORRRROOOOORRROOROROORRRRROROORRRROOORRROOROOORORRRORRROOOORROOOORRRRRROORRRORORRRORROOOORROOOROOROORRRORRORRORROOROORORROORRROORRRORRRORROROORRRROORROOOOOOORRORRRORORROORRRRRROOROROROROOOOOORROORROOOROORROROORRORORRRORROOROROOORRRRRRRROROROOOORROOOOORROOORORRORRORRORRRRORRRRRROOORRROOOOROOROOOROORROROORRRRRORORROOORORORROROOOROOROOOROOROORRORRRRRORRRROROROROORRROROOORRORORROROOROORROORROOOOOOORRRORRROORORRRORORROOROROROORORRORORROOORROROOOROOROOOOORRRRORROROORRRORRROOORROORROOOROOROORORRROROOOOOOROORORROROROORROOOOOOOORORORROORRROORORRRROORRRROOOORROOOOOORROROROOOOROOORRORROOOROOORRROORROROOORORRRRROROORROORRRROORRROROOOOORRORROROOROORRROROOORORRRRRRROORORROROOOOROORORRRORROROOROORRRROOOROROROOOROOORORRROROORRROROOORROOROOORORRROROOROORRRRRROROOOOOORRRROROORORRRRRRORROOOOROOOOROROORORRRROOROORROORRROORRROOOOROROOORRORORRRROROROOORRORORRRORRRROOROORROROOOOORRROOORORRORORRORRORORRROROORRRROROROOOOOORRORROROOROORROOOOOOORRRROOROROOOROOORRRROOROROORRROORROROOORRROROROOROOOROROROOORRRRRORROOROOOROOOROORROORRRROORRORRRORORROROOORROOOOOOOROORORROOROOORORRRRROORORROROROOORORROOOROROOOOOOOORRRROROOOORORRRORRROROOOROORRROOOOOROROOOOROORRORORRROROROOOORRRROROOORRRROOORROORRORRRROOORROORROOOOROOROOOOOORROORORRRORROOOOROOOROOOORROORRORORRRRRRRRRORROROROOORRRROOOOOROROOROOROROORORRRROOOROORRORORRROOOOOORROOOOROORORORRRROOOOROOORORRRORRROROOOROOOROORORORORROORRORRORROORORROOORORRRRRORROROROOROOORORORORROOOOOOOOORRRRRRORORROOOORRRRORRRROROOORRORRORORORROOOORROORROOOORORORRRROROOORRRRRORORRRORRROORRRROOOOORRROORROOROOOOOOROOROOROOORRRRORRROOROOOORRROOOOOOORRROOOOROOOOOORORRROORRROOORRRORROORRORORORROOOOOORRORRRRRRRROOOOROOOOORROROROROROROOROOROROROROOOOORROROORRRROROOOORRRROROOOOOORRRRROOOROOROORORORRORORORORRRORROORRRRROORRRROOOOORRRROOROOROOORROOROOOORRORORRORROROROOORORRRORRROOORRORRRRRRORRROORRROORROROORORRRORRORROORRORRRRRORRRRROOOROROORRRRORROOROOOROORRORRRROOORROORRORRRROOROOOROROOOOROORORRORORROORROOOOORRROORRROORORORROOOROORRRROOORRORRRORORRRROOOOORRROOROOROROROOOOOROOOOOOORROOROORRRROORRRORORRROROOORRRROOORORROORRRRRORROOROOROOOROOOORRROOOORRORROOOOOORORRORORRRRORROROROROOROROROOOROOOOROROOOOOOOROOOOORROORORRROROROOORORRROOOROOORRORRRROOROOOOOROROOOOORRRORRRRRROOOOOROOORRROROOOOORROROROOOOOORRROORRROOORROOROROOORRRROOORROROOORRROOOROOOOORORRRRRROOOROROOOOROORRRORRORORRROROOROROOORORORORORRRORROORROORROORROROROROROOOORRRROROROORRRRORROROOOOOOROOORRORRROROOOROROROORROOORRRRROOORORRRRRROORROROOOROOORROROORRRORROORRORORROORRROROROOOOORROROROORROROOOOROOROORRORORORROOORRROORORRROOOORRRRRRROROORROOOOOOORROOROOOROOOOOOOOORORROROOORRROORRRRORRROOORRRROORRORRRROORORRRRROOROORRRORROROROOOOOOORORRORRORORRRORROOOORORRRRRROOORROROORORRORROOORRRROORORRORROOROORORRRRROOORRRORROOOOOORROROORORRRRRROOORRRRRORRRROOOOOOROOOOROORRRROOOOOOOOROORORRROORROOOROOROORORORORRROROROOROORRORORORORRROROOORRORRRRRROORRRRORRRRRRRRRRRRROORRRRRRRRRROORROORRRRRRRROOROOROOROORROORORORROOROOOOROOORRRORORROOROOOORRORRRROOORROOORROOOORROOORRROROOOOROOOROORRROORORRRRRRRORRROROOORORRRROOROORRRORROOROOOOOOORRROOOROORRROOOORORROOOOORORRROROOORROOOROOORORRRROROROROROOORORRRRRRORRROORROOOORORRROOORRRRORRRROROOROROOORRROROOOORRRRORORRORRRROORRROROORORORRRORRROORRROOROROOOOOOOORRROOOOOOOOOOROORORRORRROORROOROOROROROROOORORRRORRORROOOORRRRRRROROOROOOROROORRRRORRORRRRRORROROOOOORRRROOOOOROROORROROOOROOOOORRRRRRROOORROROOROORRROROOORROOOOOOROOOOOOORROORRRRRRRROORRROOORORRROOOROOROROORRORROOROORORORRRROOORRROORROROORORRRORORRRRRRRRROORRRROORRORORRRROOOOROROORORRRORRORROOROROROOOORRORRRRORRORROOROORORROORROORRORRRRORRRRRORORROOORRORRRRRORRROOROOOORRRRORORROOOORRORRORROORRRROOROOROROOOORROOOORRORRORORRRROOROROOOOROOROOORORROOOOROOOROOOROROOORROOOORORORROOORORRROROROOROROROOOROOORORRROOORRORRRROOOOORORRROOORRRRRRRROROOROOOOORRROOROOROORRORRRRRRRRRROOOORRRROORROORRRORORROROROOROOORRRROOORRORORROROOORROROOOROORROROROROORRRORRORRRRRRORORRROORORRRRRROOROORORORRORRROROOROROOORRRRRRROOOOOOOROOOOOOROOORROORRORRRROROROROROOORRRORROOOOORROOROORORROROOOROROOOROORRRROOROOOOROOROOOROROOORROORRRORROOOORROROROOOORORROOROOORROROORRROORRRRORRRROROORRRROOOOOROROOROORRORRRORROORRRRORORRRROOORRORRRRROOROROOOROOOOROROOOOORROROORORRROOOORRRROOOOROOORRRORRRORROORRROOORORROOOORORRRRRRROORRORORRORORROOROOOORRRRRORROROROOOOORRRROORORRROROORRORORRRRROOORORROOORROORRRRROOROORROROORRORRRROOOROOOOROOROROORROROROORORRRROOORORRRORRRROOOOORROORORORRORRROOORROOOOORORORORRRORRRROOOOOOOOOROOORRROROROROOROORROOORRRRORORRRORORRRRRRRRROROROORRORROROOORRROROORORRRRRROOORRORRRRROOOOROOROOOROORRORRORORROOROOROOOORRRORORRROOROROROOOOOOOORROROOOOOOROOROORROORROOOOORRRORRORRROOOORRRRRORRRROOORRROOROROROOROOORROORROOROORRRROORRRORRRRRORORORROOROROOOORRORORROROOOOOOOOROORRROROORROORORRROOOORORRROORRRORROROROORRROOROOOROOOROORORROROOORORROOOOOROOOROROROOORRRRRORROORROOORROORROORRORRROORORRROORRRRORORROOROOOORORROOOROORROROOROOOOORRRORROOOOROOORRORORRRROORRORRRRRRORRROOOOORROOOOROOOORRROOROOROROORRRROOORORORROROROROOORORROORORRORRROORRRORROROOROROROOROROOOOOROROROOROOOOROOOORROOORORROORRRRRRORROOORROROROORORORRORRRORRRORRRORORROROOOOORORROORROOROOROROOORRRRRRROOORRROORRRORORRROOORROOROOROORROOROOORRRRORROORRRRRROORRORORROOOOOOROORRRORORRORRRROORORRROROROROROOOOOORORRORRRRROORORROOROOROORRRRROORRROOROORROORROOORORRORORRORRROOROROOOOOORORRROOORRORRRRROROOOROORRROOROOOOOORORROOROORORRRORRROROORROORRRORRRRROROROORRRROROROOOROORRORRORROOOOOROROORORROORRROORRORROOORORORORRORRROOROOOOORRRRRORROOOOORROORRRRROOOORROOROORORROROORRRRROORORROORORROOROROROORORORRORROOOOOOORROOORORRROORROROOOOOROOOORRRRRRROROOOROOOORORROORRRRROROOROORORROOOROORRRRRRROOROOOOROROOOOROORRROORRORRORROOORORORRROROROOORORROOROROROORRORRRROROOOOORRRORRORORORRRROOORRORRORORORORROOROOORRRORROORRRROORORRRORORROROOOROOROROOORORROOORRORORRROOOORORORROORRRRRRRROOOOOORRORRROROROROORRRRORRORRRROOOOROORRRRORROORRRRORRRROOOOOOOORROROOROROORORRORRRRRROORROOORRORROOOOOOOROROOOOORRRROORORRRRRORRORRROOOOOORRORRORROOORRRRRRROOOROOORRROORRRORRRRROOOOOOOORRROOORRRRRRORROROOROOROROROORRORORORRORROROOOOORRORROOROORROROOOOROOOOOORRROOROROORORRRRRROOOORROROOORRORRRRRRRRORORROROOORRRRRRROOROOOOORORROROOOORROOOOOOOOOORRRROOOROOROOOOOORRORRROOORRRORRORRRRRROORROROROORRORRROORROORRRRRRRRROROOOOROROORRRRROOROROOROROORORROOORRROROORRORRROORORORROOORRORRRORRORROORORRORORROOROOORRORRORROOOROOORRRRRRRRROOOORRRRORROOOORRROORROROOROOROROOOOORORRROOOOROOOROOOORRROORORRROOOOOROOOORROORROOORORROOOOROOROORRRRROOOORRRRROOOOROOOOROORRROOROOROROROOROORROROOORORORRORRRRROOROROOOORORROOROORORRRRRORRORRORRRRROOOORORRORORRRROORORRRROROOOOOORRRROORORRRRORRROROROORRROOORRRRRRROORRRORRROORROORRORROOOROORRRRROOORORRRROORRROROROOOROORRORRORROORRORROROORROROOORORORRRRRRORRRRROOOOOOOROOOOROORRORRORRORROOROOOORORORRRORROOOOOROOOORRRROORORRROORRORORROOORRRRRROOROORRRROOROROORRRORRRORRRRRRROORROROOORRORROOOOORRROOROORROOOOORRROOOORROROOOORRORORRRRORORRRORROORRRRORRROROORRROOROOORROROOROROOOOORORRRRRRRRROORRRRROORRRROOOORORRRRRORROROOOROROORROOROOORORRRORROOORORRROROORRRRROOROOOORRRRORRRORROROOROROOROOROORRRRORRORORROORRROORORRROOORORORRORROROOOORRORROOOORORRRORORRRRORROORROOROROORRORROORRROROOROROORROOORROORRROROORORROROOOOOOOOROOORROOOROOORRRORORORRROROOORROROORRROOOOOROOROORORROOROROROOROROOROORRROROROROOOROOOOROROROOORRORORRRROROOOROROORRROOORRROOOOORRRRRRRRORORRROOOOROROOROORRROOOOOORRRROROORRROOOOORRRROOROORRRORRORROORORROOORROOROOOORORROOROORRORRRRORRRORRRORRROOORORRROROROROOROROOROOROOOOOROOOOROORRORRRRORRRRORRROOORROORRRROROROROORRORRORRRRRROOOORRORRORORROORORROOROROOROOROOOROROORORRORORRRRROOOROROOOOORRROORRROORORRRRRORORORORRROOORROOOROOOROOOORRRROROORORROORORRORORROOOOROOROORORROORRROROOOOOROORRROOORRRROOROORROORORRROOOROOOOOOOROOOOOROOOROOORRRRRRORRROOOORORRROOORRROOOROROOOOOOOOOOORRRROROOOROORORRRROOORROOOROOOROORROROROOORRORRORORRORORROOOROROORROOORORROOROOOROOORROROOOORORRROOORRRRRORORORRROOROORRROOROORORRRRROORROOOROORROOOROORORRRROOROOOORROOOOROROOORRRRRRROROORRROOORRRROOORORORORORRORRROOOROORRRORROROROROOOROOOOORORRROORRRROROORORROOROOOORRROORROORRRROORROOORRORRORORORRORORROROORROOOOORRORORROORROORORRROROORROROOORROOORRRROOOOOROROOOROROOORORORORRRORROROOORRROROROOORROORRORORROROOROOOROORORRRRRORROOOOOROROOOOORRRROROORRORRRRORRROOORROOORRROOROOROROORRRRRROROOORRRROOORORORROORROORORRORRROOORRRRROOROOROORROORRRRRRROOORRRORROOOOROROOOOOORRRRORROORRRRRROOOORRRRORRRROOOOROOORRROROOROOORRRRRROOOOOOROROORRRRRRORORROORORRRROORRROORROOOOOOORRRRORORRORRORRRORROROORORRROOROORROOOOOROOOOORRRRORRRRORRORROOORORORRRROORORRORRORROOOROOROROOROOOOOORORRROROORRRORORRRORRROORRRRRRORORROORRRROROOOROROOROROROOROOOOROOOROROOOOOROOOORRORRRROORROOOOOROOOORORRRROOOROOOOOOOOROOOOOOROROOORRORROOORORORRROOOOOOORRRROROROORROROROOORRORRRORRROOROORROROROOROROOOROORROROOROOORRRORORRRRROROOOROOORORROOORRRORRROOOOOOOORORRROOORORROOOROOOOOOORRROROROOOROOORRORRROROROOORRROOOORORORRRRORORROROOOORORORORORORROORRORORROORORRROOOROROOOORORRORORROROORRRRRORRRRRRORRROOORRORRORRRRROOROORRROOROOOOOORORRORROOROOOORRROORROOOORRRORROORRRRROOORRRRRRRRORRORORROOROOOROORRROOORRORRORRRRROROROOOORRROOROOROOOOOROOOOROORORROOORRORRRORROROROROOORRRRROOOOORRRRROROROORRROROOOORRORROOORORRORRRRRORRRRRROORRRORRRRORORRROOROOROROOROORRRORRRORROROORRRROORRRRRROOROOOOORORRRROOOROOROOORRRRRROROOORRRROOROORRROOORORRORROORORRROOOROOOROROOOROROOORORROOORROROORROOORRRROOOOROOROOOOOOOOOOROROORROOROOORORROROOOROROROROOORORRROOOORORRROROOOORORRORROOOROROORRRROROROOOORROORROROOROROORRRORRRRRROROROOOORRORRORORORORROOOROORORROORRROORRRORROORROOROOOOOORORRORRRRROROORROROORORROROOORROORRORROORROOROOORRRROOROOORROROOROROOORROOOOROOROOOOROROORORROORROORRORRROOORRORRRORROROOOOOROOOROOOROOORRROOOOORROROOOROROOORRROOORRROORORORORRORRROORRROROOROORRORRROOOOROROROORORROORROOROOOOORRRROOOOORORROOORROROORRRROOOOOOOOORRROOOORORORROORRROROORROOORRRRRRRRROOROOOOOOOROOORRRROOORROOROOROORROOOOROROOOOROORORRRORORROORROROROROROOORORRRRORROROOROOOOOORRRROOROROOOROOOOROROOOROOORRORRORRRORRRROORRRORORRRROOORRRRORRRROOROORORORROORRRRORRRORROOROORRRORRRROROOOROOOORRORRRRRROROOOOOROOOOOORRROORRRRRORRRRRRROOORORRRROROOROOOOOOOOOOOOORROROROOOOOROORRRRROROOORROORRRRRORORORORROROORORRRROOORRRORORROOROOOOOOORORRRORRRRROOROROOOOOROOORROORRROORORRRRRRROROOOORORORRRRRORRRRROROORORROROOOOORORORROORORRRRRROROOROORRORRROOOROROOORORRRRORRROROOORROOROROROOOORRRRRRORORROROORORRORROORRROOORRRRRRROROORORRRROORRORORRORORRORROORRRRORRRRRORORROOOROOORORRRRRRORRRRORRRROORRORRROROORORRORRORRORRORRRRROORORRORRROOROORRORRRRORRORRORRROROOOOOOOOROROORRORRRROROOORROROROOORRROORROOOROORROROOORRORRORROOOOOOOOOORROROROOOORROOOROOROOORRRROOOROORRROROOOROOORRRRORORORROROOOORRORROROROROROROORROOOROOROOORROOROOOOOORORRRRORRRORORORROOOORRRRORORORRRRRRORRORROOROORROOOOORORRRRORRORROORRORRROROOROROOORORRORRRRRORRRROROOROORORRRROOOOROOOOOOOOROROOOORRRROROOOOORORROOOOROROROORRROOOROOORROOOROROORROOORORRROORRRRORORROROROORRRORORORRRROORRORROOOOOOROROROORRRROOOOOROROORROORRROOOOROROROORRROOORROROROOOOROORROOOORRROOROOROROOOOOROOORRROORORRORRORORRORRRRROOOOORROOROROORROORRRRORORROROORRROROOORORRRORROOROOORRROROOOOORORRROORROOOROOOORRROOROROROROOROOROOORORORORRRORORORRRRORORRRRORORORRROOORROROOOORORROOROOROROOORRORORRRRROOORRORRORORRRRORRROORRROOOOOOORRRROORORRROROOOOORRRRRROOORROORORRRORORRROOORRRORROOOORROOORROORRRRROROOORRORRROOORRRRROOOOROOROORORRRRORRROORRRORRRRRORRORORRROOOOOROORROOOROOOOOOROORORRRRRROORRORRRRROROOOROOOROROOROOROOOROOOROOROOOOROORRROROORROOOROROOORROOOORRORRRORROORRORRRROROOOROOORRRROOOOOORROOOOORROORROOOOORRROOOORRROOOOORROOOOORRORRROORRORORORROROOORROROROOROOOOORORRORRRRRROORRROOORORROORRORRRROORRORRORRRRROROROOORORORORROORRRRRORRROROORROOROROOORROOOORRORRORORROORRRRROORRORORRRROOOOOOOORORROOOOROOROROOOOOOOOORROOORRRROROROROORRRORORORORORROROROOROOOOROOORRORRRROROORORROOOROROOROROOORROOOOOOOORRRRRORORORRROORRRORORROORRROROORRORORROOROOOOOROORRORORRRRRRRORROOOOORRORRROORRRRROOROORRORRORRROOOROOOOORRORROOOOROROOROORRORROOOOORORROOOOORRRORORRRROOOOOOORORORRRRROOOOOROOOROOROROOORRROROOOOORRROOORRORRORORRRROOOOORROOOOOROORRRROOOOOROROORORROOOOOORRROROROOOORRROOOROROOOOORROOORROROROROROROORRROOOORRORROROOROOOORORRRRORORORRROOROROORRROORRROOOOOOOOOROOOOROROOOOROOOORROROROROROORROORRRROROOOOORRROOOROROORROOOORRRRRRRRROORRRROORRRRORORRRROOOORRORROROOOOOROROORORROOROORRORROROOROROROROORRROROORROOOROROORROORRRRORORRORROOROOOORROROOROORRRRRORRORROOROROROROOROROROOORORRRRORRORRRORRRRRORORORRRROORORRRRROOOROOOOROORORRROOROORORRRORROORRRRROOOORROORROOOOOORRORRROORRORROROOOOOORORRRORRRORRRROOOROOOOORROOOROORROORRORORRORORORRRRORORRROORRROROROROOOORROOOOOOOOOOOOOOROROOOOOORORRRORRROOOROORRROORROORRRORORRRRRRORORORORORROOOROORRRRRORRRORROORRRROROORROOORRRRRRRRROORORORORRORRORORRORRRRRRRRRRROROOOOROORORROOOORORROOROOOOROROOOROOORRORRRORORRRORRRROOOOOOORRROOORROORROORRRROOROORRRRORORROOOOROOROORRRRORRRORORROOROOOOOOROROROOORORROOOOOROROOORRROORRRROROROROOOORRROOOORORRORROOOORRROROORROOORORORORRRRRROORRRORRORRROOROROOOOORORRORRRROORRORRRORROOOOOROROROOOOOORROROROOOOOOROOROOORORRRROORRRORRRORRROOOOOORROOOOOROORRROROROORORRORRROOOOORROOORRORRORROORROROOORRORORRROROROROOOORROROORORRROOROROOROORORRROORRRRORRRORRORRRRORRROOOROROORRORROROORRRRROORROOROOORROORROORROOORRORROOROROOORORRRORORORORROOOOORRRROOORORORRRRRROORRRRORROORRORROROROROOOORRORROOROORROOOOOOROOOOOOOORRRORRROOORORRROOORRRRROOORRROORRRORRROOORORROOORORROROOROOROOOOOROOROORORROOORORROROROOOROROROROOROROOOOORRRROOORORRROORRRROORRRROROOORROROROROOOOOOROOROOORROOROORRORRROORROORRROORROOORRRRROOOROOOOORRORORROORRROOORRRRRRROOORRRORROROROORRRROOORRORRROORRRRRORROROOOOOOOOORRROROOOOORROROOORROORRRRROOOOROOOORRROOOORROORRORORRRRRRROOORORORRORORORROROORRORRRRORRORORRRRORORRRROOOOORROOROORORROOROOROROROORORRROOOOOORORRORRRORRROORORRRRRRRRROORROOOROOROOROOROOOORROORRORROOROOORROROOOOORRRROOOROOOOOROOOROORRORROROOOOOOOOOROORRROOROROORRORRRRORRROORRROORRRRRRRORORRRRRRRRRORRORORRORRORROOORORRRRRRROROORROROROOROORROOORROORROORROORROORROOROROROOROROOROOOORROROOORRRRRORORRRRRORORRRROOORROOROROOROOOOORORRRROROOROROOOOOOOOROOORRROOROOROORROORRRROOOORRRRROOOOORRORORRROROROOROOROROOOOOORRORROROOROORROORRROOOORRRROOOROROORRROORRRRRORROROORRORROOOOOOOOROORRORROOROORROROOROOORRRORORORORROOOOORORORRRRRRROOOORROROOOOOORROORROORRORRORRROROORORROOORRRROOOOORRORRROOROOROOOOROOORRROORRRRORROOOOORORORROOORRRRORROOORORRRRRROOOOOROOOORRRRRRRRROORROORORRRRROOOORRROOROORROOROROOROOOROOROORRRORROOOOOROOOROORRROOORRROROORROORRRROOOROROOORROOOOROOORORORROOOORORORRRRRRORRROOORRRORRORRROOORORROROOROOOOOOOROOROROOOOOORORRRRROROORRRORROORRROORROOOROOOOORROOROROOOROOOROORRORRRRORORRRORROOORRROORORROOORRRRRRRROORORROROROOROROROOROOOOOROORROOORRORORORORRORROROOORRROROOOORRORORRRRORROOORORRROOOOORRROORROORROOORRORRROROORRROOOROORORROROOROROOOOOOOROOOOOORRRRORRRROORROOOORRROOOOORRROOOOORORRROROROOOROOROOROOOROOOORRRORRORRROOORRRROOROORRRORORORRROOROOOOORRRRRORRRROOOOOROOOOOOOROOORRRORRRROOROOORORORRROOOOORORRORROOOROOORRRROROOOOOOOOORROORORRRROOROROOROOOORRRRROOOROORROOOOOORROOOROOOROROOROOORRROOROROROOORORORRRROOOORROOROORORROORRRROOROROORROROROOOOROROOOOORRRRRRRRRORORRORRRRROOOORORRROORRORRORROORORORROORORRRRRORRORRORORRORORROORRRRROROORROOOROORORRORRROOROOROOROOOOORRORORRRORRRRORROOROROOORORRRROORROOROOROORORROOROORRRRORRORRRORRROROORRRROOOOROROOORORRRORROROORRORORRRRROOOOROORROOROOOORROOOROOROOROORROOOOOROOOORRRORRROOOOOROROROORORRROOOORRRRORROORRROROROOOORRRORRRROOOOOORRORORRROORROOROOROORRORRROOORROOOORROROORORROOORORROOROOORRORRROOOOOORRRRRROROOOOORROOOROOROORROORRORRORRORRROOOOOORRROOOOROOOROORRORORRRRORORORRRORRRROORRRORORRORRRRORRRRORORROOOOOOOROORORROROOORORROROORROORRROOORORROOROOROROOROOOORRROOOOOORRROOROOROROOOOORORRORROROOORRROORRRROORRROOOORRROROOROORRRRRROORORRROORORROOROROOOROROOROROOOROORROROROORROROORRRRROROOOOROOORROROOOOOOOORROOROORORRORRRROOOOOORORORORRORRROROOROOOROORRRROOOROROOOROOOROOOOORORRRROOROOROORORRROOOORROORRROOROORORRORORORRRORORRRORRRRRORORRROOOOOOOROROOORORRORRRRRROORROOORRRROOOORRROOROOOROOROORROOORRRORROORRRRROROOORROOOROORORORROROOORROOOOOROOORORROORRRRORRROORROOOORRRRORORRRRRROORORRRRRROROROROROOOOROROOROORROROOOOOOROOOOROROROROOORROROROOOORRRRRRROOORRRROOOORRRROOORRRROORRRRRRROOOOOROROROORRROOOROORORROROORORROOOORRRROOROORORRRORORRRROOOOOORRRORRORRROORORROORORROORORORRRRROOOOROORROROOORROOOOORORRORRORORORROOOORRRORORRROOORORRRORROROOOOOROOROORROORRORORROROOROOORORORRROORRRROROORROORRRROORROORRRRRRRRORROROOOOOOROOROOOORRRORRORRORRRRORRROOOORRROROORRORRRRRROOOOORRRRROORRRRRRROROORROOROORRRRRRRRRRROORRRORROORRRORORROOOOROOROORORRRRRRORORRORRRRRROORRRRORRROROORORRROOORORROOOOORROROOOOOORRRRROROOORROOORRROROOROOORRRROOROORROORRORRROROOOOOROROOROORRRROOOORROORROROOOORRRRRROORRROROOORRROORROROOORORRORROROROOORORORRRROORORRRORRRRRROROOORRROROOROORROORROOOROOOORORRRRRRRROORROOROOORROOORORRRORORRRRRRROROORRRROROOROROOROORRORRRRRRROORRROOOOROORORRROROOOORORROROOORRROOORROOOORORRORORORRRROOORORROROROORORRRRORRROORRROORRRORORRRRRRROOOROORRROOOROORRRORORRRROOOOOORRRROOORORORRRROORROORRROOORRROROOORRRRRRORRRROOOORRRRROOOOORRROOOOOOROOOROORORORORROROORRRRRROOORORRRORROOORRRROROROROOOROORRORRRRORROOORRORROOORRROOORORORRRRRRROORRROORRORROOROOORRORRORRORORRROOOORROOOOOROOORORORROORROROORORORORRRORORRRORORRRORORROORRRRRRRROROOOOOOOOROROORRORROORORRRRORRRRORORORRRROOOOOORORROROOROOOOOROORROOROOOORRRRRRORRRRRORORRORRROROROORRROOOOOOOROROORROOOOROOORORRRORORORORORROORRRROOOROROROOROORRROROOORRORRRRRRROROOOOROROOOORROORRORROORORRRRRORROOOOORORORROORROORRRORROORROORORROROOOORORRRRROOROOOROOOOOROOROOOORRRRRORRORROORRRRRROOORRRORROOOOOROOOOROORRROROOOORRRRROORORORRRRORRORORROOOORRROROORORRRORORRRRRRROROORRRRRRRROOOOOOOOOORRORRORRROROOOROORRORORRRROROROORRROOROORROOOORROROORRORRRROROOOOOROOOROOORRROROOROORRRROROORRROORRORORORORORRROROORROROORROROOROOOOROOORORRORRRRORRROOOOOOORRORORORRROROOOOOOOOROORRROORRORRRRRORROROORRROOOROOOROROOOOORORORRRRRORORROOORROOROROOORRRROORRORROROROORRRRROORORRROOOROOOROOROOOORORORRRRROORRRRROOOORRROOOORRRORRORRORRROOROOOOOROROOOROROOOOOOOROOROORROROROOORRROOOORORRROOROOOROOROOOROOOROOROROROROORROORRRORRRROROOOOOORROOORORRRRRROORORRORRROROOORRRRROOORRRROROOORRRRRORROROOOROOOROROORROOOORRRRRROROOOOORRRROOOOORORROOORRORRROROOORRRRRRRORRROORROOORRORRRRROROROOOROORRRRROROORRRRROOROORORRROOOROOORORROORRROROORRRRORRRRRROOOOOROOOOORRRRRORORRORRRRRRORRRRRRORORRRORROORRORRROORROORROOOOOORORRORRRROORRRRRRROORORROOOROROOROROOROOORROORRORORRRRORRRROORROORRORRRRRROOOOOOOOROROORORORROOORRRRRORRORRROORRRRRROORROOOOOROOROORRRORRORORRRRRROOOOROOORROOORORROROORRRRRRROORRROORRROOROROOOROOROROOROROOOROORRROOORROORORROROOOORRROROROOOROROROROOOROROOOORORRORROOOORROOOORRRROOOORRRROORRORRRROOOROOORORRORRRORORRRROORROOROOOROOOROROORRROROOROORORORRROROROOOOORROOOORORROORRRRRORRORORROOOORRORORROROOOROOOORORRORRRRROORRRRORRRRORRROROOOOOROOOOOOOROOROOROOROROORRORORRRORRRROOOOORRORORORRRRRORRROOROROOROOOOORRORROORRRRRRRRORRRROORRRRRROOORORRORRORRRORROOOOOORROOOOOORRRROROOROROORROOOORRROOORRROOOOOORROOORRROOROROROORRROOROOORROOOORRRORROOORROOROOOOORRRROORORRRORROOOOORROORROOORROOROOOROROORRORROOORRROOROROOOORROOORORRRRROORORRRRRROOROOORRRRROOOORROORORORORRORRRRORORROOROORROOROOOORORRRRRRORROORRRROOORRORORRRORORORRRROROORRORROOORROROORORRORROOROORRORRORORORORRORRROROOOROOOOOOROOROOORROORROROOOOOOORROROOORROROOOOOOORRRORRROORROOOOROOOROOOOOOORRROROOOORRRORORORROOOOORRRROOOOOOORRROORORROORRORRROOOROOROOORRRORORRRRORROOOOROOROROOROOORRORROOOOORORRROROORRROOORROOOROOORRROOOROORRORRRORROORRRROOROOOOOOOROORRRRRORROOOOOROORRORRROOOROORRRRRRROOOORRROOOOOOOROORRRRROOROORROOORRRRROORRROOOOOROOOORRRRROORRRORRORRRRRRRORRRORRROORRRORORRRRORRROROOOOOROOORROOOROORRORRORRRRROOORRRORROOOOORROORRORROOOOORRROOOORORROOOOOOOORRORRRROORORRORORORRRRRRRROOORROOROORRROROORRROOOOORORROROROOORROOOOORROOOOROROOOROORORRROOOROROOORRORROOOOORRROROROROORROORROOOOORROROROROOROOORORRRORRRRROOORRRROORRRROOOOORRORRRRRRORROORORROROOOROOORRROOOOOOOOOORRRROROORRRROORRROORORORORRRRORRORRORORRRRROORROOOROOOOOROOROORROOOORRRRRRRROROROOOROOOOROOORORRROOOOOORROROOOOROOORRRORORRRORRROOOOOROOROROROROROOROROOROOROORRROOOORROORORROORROOOORRROORRRRROORRRRORROORORORRROORORRRORRRRROOROOOROORROORRORORROOROOOOOOORRRRROORORROORRRORORRROROORRROORROORRRROOOOROORROORRORRRORRORORRROROORRROOORROOROORROROROOROOROOOORROOOORROOORORROOOORRRORORRRROOROOORRRROORRRRROOOROOOOOROOOORRRROOROOOOROOROOOORRRROOOOOORROORORRRROOORRRROORROROOORORORORORRORRORRRORRORORRRRROOOORROROOROOOORRRRRORROROOOOOOROOROOORRRROOOROOROOROOORRRORRRROORRRORROROOORRRRROROROOORROROOORROOOROORORRORRORRRRROOOORROORRORRRORRRRORRROOOOOOOOOOOROORROROORRORROOOROOORRRORROOOROROORORORROOOOORROOORRRRORRROORRORROOROORROORROROOROORORRROOOOOOOORROORRROOROORRRROORRORRRORROOORORRORROOOORRORRROOROOORORROOOORROROORRROORRORROORORORRRORRROORRRROORROROORRORORROROOORROROOOOOORRRRRORRRRROOROOOOORROOROROROROORORORROROOORORORORORORRRROROOOOORORROORROORROROORRORRORRROOORRROOOOORROOORRORORROOROROORRROROOORROOOOORROROOOOORRRORORROOOOROORORRROOOOROOOORROOROOOORRRORRROOROORRROOROROROOORRROORORROROOORORORROOOORRRROOROORRORROOOORRRRRRORRROOOROORRRROROROORRROOROOROOOOOOORROROORRRRRORORROOORORORRROOOOROOOOOOROORORRRRROOOOOOROORROOOOROORRRROORRORROROOORRRRORROOOOROROOROOOROOOOOOORRRRROROORRROORRORROOORROOORRRRRRRRRORORRRROOOROORRROORRRROOROOOOROOROOOORRRORORRRRROOROOORORRRRRRORORORRRRORROORROOOORROOOOOROORROOOOOOOOOOORROROROOOORROOOOOROOORRROROROOROOOROROROORORORORRRRORRROROOOROOROOOOROROOOOROROORORRORORROORRRROOORRRROOOORROOORRRRORROROOOOOOOOOOOORROOOOROROOROOOROORRROROOORRROORRRROORROOOOOOOORROOROOORRRRROOOOROOOOOORORORORROROOOROOROOORRRRROORRROROOROORRRRORORORRROORRORRRORRROOOOOOROORRRROROROOORRORRRRRRORRROOOROROORRRRROROOOROOROOROOOOOOORROOOOOOOOOOROOOOORROROOOROORRRROORRROOOROORRRROORORRROROROOOOORRORORORRROOOOORRORRRRRRORORORROROOORORROOOROROORORRORROROOROOOOOOOOROOOROROOOOOROOOOORORROOOOORRROROOOOROOORRORORRRRRORRORRRORRORRROOOOORRORORORRORRORORROROORRORRRORORRRROORRORROROROORRORROROOORROOOOOOROOOROORORROORORROOOORRORORORRROOOROROOROOORRRRRROOOOORORROOROROOROOORORRRRRORROORRRORORRROOROROOORRRRRRRRRORRRORRORRRROOORORRRORRORROROORROROROOOOROOORROOROOOORROROOOROROROOORRRROOOROROOROROOROOOROORORRROOROOORRRROORROORRRROOORRRRORROOORRRORROOOROOORORROOORORROOROOOROORROROROROROOOOOROORRORRRROOORRRRRRORRRRROOOROOORRORORRORRORRORRRRORORROOORORORRORORRORROORORORROORRORORRRRROROORROROOOORORORRORRRRORRRRRROORRRORROOORRRROORORROROOOOOOOORRORORRORRRRRRROOOORORRROOOROROOOORROROORORORRROOOOORROOOORROORRRRRRROOOOORORRRORRRRRROOOORROROOROOROOORROORRORRORROROOOOORROOOOROOOROORRRORROROORORRROOOOORRROOORROORRRRORRROROOOOOOORRROROROROOROOROOOROORROORROOORROROOOOROORRROROROOOOORRRROOOROORROOORROOROOOOROOORRRRRORORRRRORRROOOORROORRORORRRRRRROORRORRRRROOORORRRORORORRORROOOOROOOOOOOORRRRORORROORROOOROOORROOORRROOORROROROORORROROOROROORROOROOOOROOORROORORRRRROORROOROOOROROOOORRRRORROOROORROORORROOOROOORRRORORORROOOORORRROOOROOOROOOROOOORROOROROROOOOROOOOORRRROORROOOROOORORRRRROROOORRRORRROROORRRORRROROOOORORRRROORRRORRRRRORROOOOORRRROORRRRRROORORORRORRROORRRORRORRRRRRRRORRRRORROOORORORROROOOOROORRRRRORRORRRROORORRRORROOORRORRORROROOORRORRRORRRRRORRRRROROOROORROORRRRORRRRORROROROORORRROOORORRORRORRORROOROORROORORROORRRRRRRORORROOOOOROROOOROOOOOOROOOROORRRORRRROOORROORRROOORORORRRROOORORRROROROOOOOOOORORRROOROOORORRRROROORROOORRROORRRRRORORORRRROORROROORROOROOROOROOORORRORRORORRORROORORORRRROORROORROROOROOROROORROORORROORRRRRORRROROOORRORRROOORRORROOOORROROOOOOOORROROOOROROORROROORROROOOORORRRRRORROORROOOOOORRRRRORORORORRORROROOOROORRROOOOOOOOROOOOORORORRRRORORORRRROOROOORRRROOOOORORRORROROOROORRROROROROORRROOOORORRRRORRRROOROOROOROOORORORORORRORRRORROOOROOOORRROOORROOROOROOOOOORROOOOORRRRRORRROROOOORROORORORROROROROOROOOOORROOORROORROORRORROORROOORROOORORRROROOOOORRROOROOROOOOOOOROORROROROROROOOOORROOOOROOORRORORRROOOOROORRROOOOORRORORORROOROORORORROOOROOORROORORRRROORORRRROORRORRROROROORRROROOROOORRRRRROORRRORRRROOORORRRRORROOROOROORORROROORROOORORROOROOORROOOORROORORROORORORORROOORRRORRROOOROROOOROROOORROORRRRORRROORORRRRORRORRRRORROROROOOOOOOOOROROOOOOOOROORRORRROOORORORORORORORRROOOOOOROOOROROROOOORORRROOOROORORORORRRORRRROOORRRRRROROROORROOROOOOOROOROORRRROROOORORRORROOORRRORROOORROROORRROOOOROROOROOROORRORRRRROORRRRRRROOOOOOORRROROOROROOOOORRORRRROROROROOOROOOORROROROROORORRRRROROOROOOOORRROOORORORRRORRRRRRROOORORORORRROOORORRRRRORRORRORRROORRORRORROOOROOROORORROOROROORRROOROOOORROORRRRRRROROORORRRROORRRROOOROOOOOROORORORORRROROOOROORRROOOOORRRRORRORROOROOOORRORRRRRORORORROOOROOOOORRROOOORRRRRROROOOORRROOOORROOROORORORROROORROROOOOOORRROROROORROORROOROROOROOORORORROOOORRRORRRORRROROORROORROORRORORRRRRRORROORRORRRORROORORORROROORORROOROOORORROROROROORRORRRRROOOOOOORRRORORRRRRRORRORRRRRRORORROOOROOROROOROORROORRORRRRROOOOORRRRROROOORROOROROOROOROORRRROOROOOOOORRORRRROORRROOOORRRRORORROROROOOORORROOOROOOORRORRRORORORRROOORROOROOOROOORROROROOOOOOROOORRRRORROOOORRRORROROOOORORROOORRROROORRROOROOROOORORORRRRRRORRORORORROOROOOROORROORROOOOOOROOROORRORRRRORROOOORRRRROOORORORROROORROROROORORORROOOORROOOORROORRRROOOROROOOORRROOOOOORROOROOOOOOORORRROORRORROROROOOOORRROOOROORORRRROORRROROOROROOOROOROOROROOOOROOOOROOORORRRROOOOORRROROOOOOROROROORORRRRRRRORORORROORROOORORROORROOOOOOOORROORROOOOORROORRRROORRROOORRRRRRORRROOOROORRORROORRORROOOOOOOROOROOOORRRRRROORRRRRORRROOROROOORORORORROROOORRORROOOORRRROROROROOOROORROORROROORROOOOROOOORRRRORROOOROOOOOOOORROOOOROROORRORRRRRRORROOORRRROOROROROORRRRROOOOOOOOOORROROORRRROORORORROROROROOOORORROORROOOOORRORRRROORRORROOORORRORRORORORRROORORRRORRORRRORRRRRORROOOORROROORROROROOOOROOROORROORRRRORROOOROOORROORORRRORRORRRORRORORRROORROOROOOORROROORRRRROOROORORRROORRROROROORORRRRRROORROOOORORROOROOOOORORRRRRROOORROROROOROORRRROORORRRORROORRRORRRRORRRROOROOOROOOOOOROORRRRROORRORRORORROOORRROORRORRRRRROORROROOROROOROOOOORORROORORORRRORRRRORORRRRROOOORORROORROROOROROORORRROROORRRROROOROORORRROOOORROORRROROROOROORRROOOORORRROOOOOORROROOORRORORORRROROROORRRROOORROOROOROOOOOOROORRORROOOOROROROORRROORROOORRROOROORRRROORROORROROOOROOOROOROROORRRRRROOROOOOORRROOORORRRRRORRRRRRRORORRRORRORRORORRROOROOOOORRRRROOROOROORRRRORRRRROOORORORRORORORROORROOROOOOOOORROORRORRROOOOROOORROOOORROORROROROORRORROOORRRROOROROROOOROROOOORROORROOOOOOOOORORORRRRRRORROOOOOOROORRRORRROOOOOROOROOROORRRRORORORRRRORROOORRRRRRROOOROOROORORRORROOOOORROOOOOOORROOORROOROOROROOORRROORRROROROOORRRROOROOOORORRRRRRRORRORRORRROROOOROOORRRROOROOOOORORRORORROOORORRROORORRROOORRRRRORROROOOORROORROOOORORRROOOOOOOROROOORRRORRRRRROOOOOOOORRROOOORROORRRROOOOOOOOORORORROORORROOROROOOORRROORRROORRRRORORRRRRORRORRROORORORRRROOOROOOORORRORROOOROOORROROORORROORRRORRRRRORROOOOROROOOORORRORORROROOROORRROOORRROOORRROORORRRRROROORRROORRRRRORRRORROORRRRRROOROROROOORRORROOROOORRRORRRRORORROROOOOROOOROROORORROROOOOORRORRRRROROOORROORORRRRRORRROOOOORORRRROROROORORORRORRRORROROROOOOOOOOOOROROROOOOOROORROROORROOORRROOOROORRORORORROOOOROOROOORRORRRORRRORRRRORROROROROOOORRROROOOOOOOORORRRORROROOROROOOOOORRRROOORRRRRRRRRRRORORRROOOROOROORORRRRRORRORRORRRROOORRRORORROOOROOOOOROROOROOOORRRORROROORORRRROOOOOOROOROROROOORRORROOOROOROOOOORRROOOOROROORROROOROOOORROORRROOROROOORROOOOORRRRROORRORORRROOOOOOORRORORROOROOROOOOORROORORRROOOROOOOROOORRRRRRORORROOORRORROOOORROOOROROOOOOORORRRRRORROROROROOORRROORRROORROOOOOOOOORROORROOORROROOOOORROOOORRRORORROOOOOROROOOORRROROOORRRRROORRORRROOORROOORROOORORORROORRRORRRORRRRORRRORRROOORROOOOOROORRORRROROOOOOOOOOOOOROOORRRORORROROORROOORORORRROOOORORRORRRORRRROOOORRRROOOOOORROORROROORORORROOOROOOOORRRRORROOROOORRORROORROOOORORRROROOROOOROOOOOOROOOOOOROOOORRORORORRROOROROROORORORRORORORRORRRRRRRRROOORROOOORRRRROROOROOOORRORRORROOOORRROOOOROOORRORRROOROORRRORORRRRRORRROROOOOOROOOOOORRRRROOROORROOROOOOORORRORORORRORRROOOORROROORORRRORORRORROOROROORRROOOOROOORRRRRORROOOOORROROROORROOORRROOROORROORRROROORROOOOOOORORRORRROOROOOROORROORRROOORRROROOORROOORORRROOOOROOROOORRROROORORROOORRRRRROOROOOROROOROOOOROOOORROOROROORRRROROOOORRROOOORRRORRRORRRROORROOOOROOROOROOORORRRROROOOOORRORORROOOROROOORROORRRRORORORORRRRROROROOORRROOROROOROROORROORROORROOROROORORORORORRRROORROOROOOOOORRRROOROOROORRORRRRRRRORRROROROOROORROOOORRORRRRRRRRRORROORRROORRRRRROROOROORORROROOROOOORROOOORRRRROROOORROORRROOOOROROORRRRRRRROROOORRROROORRROOOORROORORRORROOROOROORROOROORRORROROORROOROOOORRRRRORROORROOOROOOORRORORRORRRRRRRROROROOORRRROORRORRORRRORRORRORORRRORORRRROOOORROROOROROOOORRROORORRRRORRRROORORRRRRRROOROOROROOOORROOROORRRRORRRROROROOOOOROORORROROOORRRRROROOORORROORRRROORRRROROOOOOOOOORRRORROOOROORORRRORRRRROOOROORRORRROROROOOROROORROOROORORRRORRRORRROORRROORORORROORRRROROOROORRRORORROOOROORRORORORROORRORRRORRROOROOOOORRROORROOROOROOOROOORROOOORROOROORRRROOROROORRRRRRORRROOOORRORRRRRORORROOOROROORORRORORORRRORRRRROOROOOROOOORROORORRRORRORRRRRRROORROOOROROOOROOOORORRORRORRORRRROOORROORROORROOOORROOROORORROORRROORRRRRORROOOOROOOOORROOROROROOORORRRRRROOORRORORORROOOOOOOORRRRRROROORRRORORRRROORRROROROROOOOOOROROORRROOROORORROOOORRROORRROOOORRRRROOOOOORRORORROOROROOROOORROORROOOOORROROORROOOORORRORORROROOROOORRRRORORRORORORORRRROORROROOORRORROOORRORROROOROORORORRRROOORRRRROROOROORRROORORRRRRRRRROROORORRRRRRROOROOORORRRORRORRROROOROOOOOOOOROOORROROORROROOROROOOORRROOOORORORRRORORROORRROROROROOORRROOOOORORROROOOROOOORORRRORORROROOORRRRRROORRRROOOORRORRRRORROORRRRRRROOORORROOOOROORRRRROOORRORROOORRROROORROOOOOOOOOROROROOOOOORRORRRRORRRORORORRROROROROROROROROORRRRRRROROOOROOOOOORORRRORORRRORRORRRRORRORRROORROROOORROOROORORORRORRRRORROOROROROROOORROORORRORRRORROORRORRRROROOOOROORROOOORORORRORRRRORROROROROROOROOORROORORROOROORRORROOROROOORORRORRROROOOROORRRRRRRORRRRRROROORROOROOORRRORRRRRRROORORRORORORRRROROOROOROOROORORORRORORRRRROORORRROROORRRRORORRROROOORRRRROORRRRROOOROROROOOROOOOOROOROORRORROORRROOOOROOORORRROORRROOOOORROOOOROOORRORORRRRRROOOROROOOOOORORROOORROOROOROOORRRORRORORORROORORRRRRRORORRROORRRORRRROOOOOOOOROOOROOOORRRROOOOORROORRRRROOORORRRROOROOROROROOROOORORRORORORRORRRORRROROOORRRRROOROOORORORRORRORRORRORRRORORROOOOROROROROOOORRORROROORORRRRRORROROOOORORRRORORROORRROOOOROROORRRORORROORORRROROROOOROROOOOROOOOROROOORRORROOOORRROROOORROOORRROOORRRRROROORRRRRRORRRORRROROORRRORORROORRRRRRRROOROORORRORORROORORROOORRRRRROOORORRORRROROORORRRRRRRRRRRRRROORRORRRRRRORROROOOOROOROORORRRORROOROOOORROROROOORORROROOOOOOOOORRRRROOROOROOORROORORROORRROORORRORRRORORRROOROOORRORORRROROOOOORORROROOORORRRORRROOOROOOOORRRORRORORRROROORRORRORORROROROOOOROORRRRROORRRRROOOROROOOORRROOOOROOROORRRROOOORRROOORRRORROOORRRORROOOORORORRORRROOROROORRRROORROROROOROOOOOORROOOROOORRRORORROOROORRROOORORRORRRROROORORRRRRROROOROOORRROORROROOOOROOROORROROOORRROOORORORORRROROOORORORRRRRORRORROORRROROOOORORORROROOOOOOROORROOOOOORRROOOOROORORRROOORRRRRRROOOOROOROOOOROROORORRRORORRORROOORROORROOOROORORRRROORORROORORORRRORROOOOORROORRROOOOROOORORRRRRRORROOORRRRRORROOORROOORORROORROORRRRORRORROORRROOORRRRRORORROORRORROORROOOROROOOROORROOROOOROORRORORORRROROOORRORRRROORROOORRORRRRRORROOOROROOROOROOOOORORROROOROROORRROROROORRRROOOOORROROOOOOROROORROOOORROOOORRROOROOOORRRROORRRORORRRRROOORRROOOOORRROOROROOROROOROOOOOROORORRRROOROROOOORRROOORORRROOORROOOOROROOOOORRRRRRROOROOROOORORROOOORRROOORROOROOROOORROOOOROORRROOROOOORROOOORRROOOORROOOORRORRRORRRRORRROOOROOOOROOORRROOOROORORRORORROOOOORROOORRRROROROOOOORORROOROOORRORRRRORROROROOOROROOOOOROOOROORRRRRRRRRORROOOOORORROROOOOOORRORRORROROOROROROROORORRROOORROOOOOOORROOOORRRRORORORROORORROROOOOROORRRRRRRRROORRRRROORRRORRROOOORROOROOROOOOROOROORORROOROOOROROORRROOROROROROORROORRROROORORRRORROROROROOORRRRRROORORRROROOOROORRORRRRROOROORROOOORORROROROOOORRRRRORRRORRRRRROOOOROOORORORORROORRRRRROORRORROOORROROOOOROOORRRRRROORRROROORROROOOORRRRROOOOOORROOOROOORRRROORRROOOOOORRROROORORORRROORRROOOOORORORORRORROOOOOOROROOOOOORROROOOORORRRORROOORRRORRRORORORRRROOORORROROORROOOORRORRRRORRORROORROOOOOOORROOOROORRRRORROROROOOOOORRRORORROOOOROROORRORORROOOORRRRORRORROOORRROROROORORROROROOOOOROOOOORROROORORRRORROROOORRROOROOORRORORRROROOORROROROOOOORROROROORROORROOROROOROORORORRRRRORRORORROOOOOROROOOORROORRORORORRORRRROOORRRRRROOOOOORRROORROORRRRRORORROORROOORRROROORRRRRRRRRROROORROOOROROOROOOORRORRRRRRORRROROOROROOROROOORROORRORRROROOOOROROOORRRRORORRORORRORRRROROOORORROOROORORORROORRRROROORRROOOOOROROOOORROORRRORROOOOROORORRROOROORRRORRRORROOOOORORRRRRORRORORORRORORROORROROROOOOOOOORRRRRORORRRRORORROROOOORROROROOOOOOORORROOORORROOORORROOOOROOORRRORORROOOROORRRROOOOORRRROOORROOOORRROOORORROORRROOORROROROORRRRRRRRROORRRROOOOORORROORROOORRRRRRRRROORROOORROORROOOROORORRORROOROOORROROORORRORORORRRRORRRORORRROOROORRROOROORROOROORRORRRRORRORRROORROOOORROORROOORRRRROOROOOOOOORROOORRROOOOORRRRROOORROOOROORROROOOOOOROROROROORRRORRROROROORROOOROORORROROOOOOOOOOROORROOOROROOORRORROORORRROOOROORRORORRORROOOOOROORROOROORORRRRRROOOROOROROOOROOOOORRRRORORROROOORROOOOROROOROROROROORROORRRROOROOOROORROROROOOOOORROORRORRROORROORRRRRRRRROOOOROOORROOROORRORRRORRRRRRORRRROORROOOORROOOOOROOROOROROOOOOOORORORORORROOORORRRRORORRROOORROROOOOROORORROROOROOOOROORRRRROOORRRRRROOOOOROROROOOOOORROORRROOROOROOOROROOROORORORORROROORORORORRORROORORRROROOROORRRRORROROORROOROROROORROOOROOOOORRRRRORRRRRROROROOORROOOORRROOOOOOORORRORRORROROROOROOOROORROORRROROORORRRRROROROORRRRROOROROOOROOORRRRRORORRRRROOROOORROROOOROROROOOORRRORROOROROROROOOORRRROORRROOOOOORORRRROROOOOROOOOORROOROOORROORORROORRORROORRRRORROOOORRORRROROOROROOROOORROORRORRROORORRORORRRROOORORRRORORROOROOOOOROOORRORRROOOORROROOOOOORORORORROOROOOOOOROOOOOORRROORROOORRRRROORRRROOOORRORORRORORRROROOROOROROOROORRRROORRORRRRRRRRROORROOOORORORRORRRROOOOOOOOROORROOORRROROOOOORRROROROROORROOROROROORORRORORORROORROROROORRRRORORORROOORORRRROROORROORRROROOROOROORRRORORRRRORRORRRROORROOOOORORRRRRORRORRRRRRORROROROORROOOOOOOOORRORRRRRRRRORRROROROORRRRROOOROOOROOROOROOOROROOOOOROOROOROORRRORRROOOOOROORORORORRRRRROROROOOROOORRRROOORORRRROORRORRROOORRRROOORORROOOORORROOOOOROOORRRRRRORORRRRROOOOORORORORRROOORRORROORRRRRRRRROOOORORRORRORRRRRORRRRORRORRRRROOROOOORRRRORRORRRRORRRRROOOOOOOOORROOROOOOOOROROROORORORORRROOOOORRRROROROOOOOROROOOORORROORRROORORORRROOORRRROROOOOOOORRRROOORORRRRROORROROOROOOORRRORRRROOORROROROROOROOOROOORROOROORORRRORROROOOORRRORORORORROORRROOROOROOOOORORRORRORROROOORRORRROOORORRRROROORRRRRRRORRRORROOROROOOROORORRROOOOOOORRRRRORRRORRRROORRRORROROROORRRRRRRRRRRRRORROOOORORRORRRRRORRRRORROROROOOOOROROOORORRORRORORROORRROORRROOOOROOORORRORROORRORRROROROOROOORRROOOORROOROOOROOROOOORORROOOOOOOROROORRORRRRROORORRROOOOORRRROORRORRRRORRORRROOOROROROROOROOORRRRRRRROROROORRRRROROROOOROOROOROOROORRROROOROORROROOOORRROROORRRRORRORROOORRRRROORRROORORROORORRORORRORORRORRRRORRROORRROOOOOORROORORRRRRRRORRRROROROORROROROORORRRROOROOOROOOOROROROORRORROORRRORRROOORRROOORRRROORRORROOOOOOOROORORRORROROORORORRORROOORROOOOOORRORORRRRORRRROORRORRRRROORRROOROORROROOOOOROROORRORROOOROROROOORROORRRROORROOOROOROROOORORRROOOOORROORORROROORRRRORRROROOOROROROORORRROROOOROOROOOOORROROOOOROOORRRRROOORRRORRROORRRRORORORRRORROROOOROORORROROORROROOORRRRROROORRRORORRRROROROORRRROOROOROOORRORRORROORRRROROROORORROOOOORRORRROOROROOROROROROORROROORRRROOOOORRROROROORRORRROORROOOOOORROOOROORRRRROOOORORRRORRRORRRORORORORRORRORORORRRRRROROROORRRROOOOROOOOOOOROOOROORROOOORRORROOOROOORORRROROROORORRROOOOORROOOOORRROOROOOOORORRRRRROOOOROOORRROOOORROORRROROORORROOORROOOOOROROROOORROORROROROOROOROOOOORRORORRROOOORROROOROOORRRRORORORORRRRRRORORROOOOOORRRRROROORRRRORRORROOROOORRROOOROOROROOOOOOOROOOOORRROOORROOOROOORRROOORROORRRORORROORROROOOORROROOORROOORORRORRORORRRRROOROORRROOOROOOOOROROORROOOROORORRROOROROORRROOORROOOOROOOORROORROOOOOORRROROROOOOORROOORRRRRORROOORRRORRRRRRROOORROOOOOROORROROOOROOORRORROROOOROOORRORORRORROOOORORROOOOROROORRRROROOOORRORORRROORORORORROOORROROOORRRRRRORROROROORROORORRRRROROROORRROROORRORRROROROOROORRORRRRRRORRRROORORROOOORRROROORORRROORORRORRROROOORRRORRORRROOROORRRRORRRRRROROOOOORRRRORORORRRORORRRRROORORROORROROORROORRORROROORRORORRROOOROROOOROOOORORRROOOROORRRRROOORRRROOOROOOROOROORRRRRRRRRORORRRRRRRRRROOOORROOOORRRRRRRRORRRRRRORRORRROROORRORRORRORRORRORRRRROOOROOROOORROORORROORRRRRRORROROROOROOORROROOROORRORROORORROOORRRORORORRRRROOOOOORRROOROOORRRORRRRROORORROOORRORRORRRROOOOOORRRORRRRRORROOROROORRORRROOOOROOROROOROOROOORORRRROROOROOOORRRORORORRRORORORRRRRROOOOOORORROROOOOOORORRORRORROORORORORRRRROROOOORROOROROOOOOORORRORRORRRRRROORROROROOORRROROROORRORROOROORORROOOOORRRRROORRORRRRORROORRROOROOORRORRORRRROOOOOOORRROORRROORORRORORRRROORRRROOOROOROOOOORROOOOOOROROOORRORRROORROOORRRORORRRROORROOOROOOOOORORORORROOOOROORORORROOROOOORORORRRRORRROOROROORRORRRORORRROOOROOROOROORROOROORORRORRRORRROOOORROOORRORRRORORORRORRORRRRROOOOOORRORRRRRRRRRROROORORRORRORORORRORORRORROROOORRROROROORORROOOOOORROROOORRRRORRORRRROOROROROROROORRROROOROOOOORORROORRRROROOROOOOOOROROOOORORRRRORRORROOORROOORRORRRRORRRROOOOOROOOORRRORORORROORORORROORRROOOOOORRORORRRRORRRROORRRROOROORRROOORRRROROORROOOORRORROOORRRRROORROROROOORROOOROOOROORRORRORRROROORROOOROOOORRROORRRRRORROROORORORRRORROOORRORORRROORROOORROROOOOROORORORRORRORROOOOROROORRORRRORORRRRORRORRROOORRRROORROROOROORRORRRROROOOORRRORROROORORRRROOOROOROOOOROROORORORROOOOROOOROROOORORRORRRRROOORROROOOROORROOORRRROORROOROORRRRRRROOORRRROOOROORRROROROORROROOOOORRORROROOOORRRROOORRROROORRROORROOROROOORRRORRRRORRRORORROORRORORRRROORRRRORRORRORRRROOORROROOOOOOOOOOOOORORORRRRRROOOROOOORRROOOORRROOROORRORRORORORRRROOROOROROOOOOROROOOROORORRROOROROORROOORRRRORORROORRRRROORRROORRRRORORRRRRORROROROOOOORRRRROOOOOOROORRORRRORROORROORRORROOORROROOORROORRRORRORROOROOORROOOOORORROORRRRRRROROOORRORORROOOOORORROOOORRRRRROOORROROOROOOORRRRRROORRORROROORRRRROOOOORRROOOOOORRRROORORRRORROORORORORROOOROOOOOROROORROROROOOOROORRORORRROOORROOOOROORORRROOROROORRRORROROORORRRORORROOROROOROROOROOOOROROORRORORRRROOORORRORROOORRRROORRRRRRORRORRROORRRRRROOORORROOOROORROORORRRROOOOOOOORRORROROROOOOROROORRORRROOROOORORORRRRORROROOOOROORROOOORORORRORRORROROOOORRRRROOORORORRRRRRROORROOOOROROOROOOOORORRRRRRRRRROOOOORORRROOOORORORRRRRRRORROOROROROOOROOORORORORROORRORORRROROORROOOOOORORRRROORORROORRORRRRRRRRORORORRRRRORRRRORRRORRORROOROORRORRRRROOOROORRRRRROORRORRROOROROORRROOOROROOROOOORROOOOORRRRRROOOOORRRROOORORORORRRORORRRRRROOOROOROOROROOROORROORROOROOROOOROOOROOOORRRORORROOOOOROOORRRROOOORORORRORRORROOOORORORRRRRORORORRROROOOOORROROOOORORROOROROORRORORRROROORORRROOROORORORROOOOORRRORRRRROOOROROORORRRRRRROOOOOROOOORORROOOOROROOOORRRRRRORRROROROORRORORRRROOROROOROOORRORORRRROOOOROOROOOOROROROORRRRROROORRROOORRRORROOOORORORRORRORROROORORORROORROOORRROOOOOROOOOOROOOOROOOORRORORROORRROOOORRRORROOORORORORROROORRRRRROOORORRORRROORROROORORROOOORORROOROORRRRRRORROORRRRRROORRRRORRRRRRORRORROOROORRORROOOROOOOOOOOORORROOORRRRRORROORRRROOORRROOROOOOROOOOOOOOORORORROROROORROORROOOORRROROOOROORROOOORORRORORROORRRRORRORORRROORRROORRRROROOOROOOOORROORRORROOROOOOROORRORRRROOOROORRRROROOORRRROORORRORRORORRROOROORRRROROORROOOORRRRRRORORRROORRORROOOOROORRORRORRORRORROORRRRROROOORRRORRRORRRRRRRROORRRRRRRRROOORROROOOOROOOROORRRORROORRORRRROORROORRORRRORRRRRRRRROOROOOOOORROORROROORRORROORRORRRROROROROROROORRORORRRRRRORRRRROROOOORRRROROROOOOOOOOROOOOOROROROROOROOORRRRORRROOORORROOOORORRORRRROOORORRRRRROROOOOORROOOROOOOOOROOOOROOOORORROROROROROROOORRORRROROOORRORROROOROORROORRRROOOOOOROROORRROROOOOORROOOOOROOORRRROROOORROROORRROROOORRRORROOROOROORRORRROORORRRROOOOORORRROROOORROOOOORROROOROORRRORRRRRROORRRROOORRORORRROORRORRRROOROORRORRROOORRRROROOOROOORRORORORROOOOOOOOOOOOORRROOROOOOOOORORROOOOOORRROOOOROOORROOOORRRRROROORRROOROORRRORORORROORRRRRROORRRRRROROROORRROORROROOROOOOOROORORRRORORRRRRROORROROROOORRRROOROOROOOROOROORORROORROOORORROOROROROROOOROOOOROOOOROROOOOOORROROORROOROOORRORORORRROROROROOOOORRORORRRORROOROOOORRRRORORRROOROOOORRROOROOORRROORORROROORRROROROROORROROROORROORROOORRRRRRRRORRROOROROORRRRROROROROORRRORRORRORROROOORRRORRRRORRORORROORORRRRRROOORRRRROOOOORRORRORRRORROOROORRROOOOOORRRRROROORRORORROOOOOOOOORRRRRRRRRRRORRRRROROOOROROROROOOROOROORRROOROROOOOOOROROORROOOROOOORORROORORRROORRRRRROORRRROOORROOOOORRORROROORROORRRORRORRRRROOORROORRORROOOROROORORORRORRORORRRROORORROORROOOROORORRORRRORORROROROORORROOOORRRORORRORROORROORRRROOORROROROORORRRRRORRRROOOROORORRROROOORRRROROOOOOOROOOROOOROOOOOROOOROORORORORRRORROORRRRROOOOROROROROORORRORRORROOOROOROOOORORROOOOROORORORRRRORORRRRROOOROROOOROORRRROROOORORRRRRRRRROORROOROOORRORRRORRRRORRRRRRORRROOORROORRORORROOROOROOROORORRROOORROOOOOOORORORROOORROOORRRRROROORORORORROORROROROORORROOROOOOORORROROORRORRROROROOOROROORRROOROORRROORORORORRRROOROORRRROORROORRORORROOOOROORRRORRRRROOORORORROOROORRRRORORRORRORRROOORORRORRROROROOOORORRRROROORORRROORORRROORRRORORRROORORRROORROROROROORROORORRROORRROOROOOROOORRROOOROOORORORRROOROROOORRRRRORROOOROOOOOOORORRROROOORRRRRRRRROOORRROOOOROOOORORRRORRORORRORRROOOOOROOOOROOOOROOOROOOOROOROORORORRROOOOORRROROOOORORROROOOORROOOOORROOOOOOORRROORRRRRRROOOORROORROROORORORRRRRORROOROOROROORRRROOORROOOROOROORRROORORRRRRORROOORRROOOROOORRORROOOORORRORORRROROORRROROROOOROOOOOOORORROOROROOOROOROOOORORORRROOOOOROOOROORRRORRRROORRROOOOOOOROROOOOOORRROROORRROORROOORRRROROOORRROROORRROOROOROORRROOOOORORRRRRORRRORROROROORRRROOORRROROOROOOROORORRRRRROORROROROOROROROORRRRRROOROORORORRORORRROORORRROROROORRRROOROOOOROOOOROOOORORORRRROOROORORRRRROROOORORORRROROORORRRROOOROOROORORORORORROROOORORROROOOROOORRORROORROOOOROROOROOORRROOROROOOROORROROOOROORORRROOROOROOOOORROOOOOORRRORORRRRRRRROOOORORRRRROOROROORORRROROOROORROROOOOOOORRRRORORRRORRRROOOOOOOROOORROORORROOORRORORRORRROOOOROROOORRRRORRRRORROROORRORROORRROROROORROORROROORROOOROORRRRRRRORORRORRRRRROOROORRORRROOROOROORORROORORRRRROROROOOORRROROROROOOOOOOORORRORORORORORROROROOOORRRROOORRRRRORROORRRORRORROOORRRROROROORORORRORRORRROROORRORRORRRROOOOORORROOROROOORRRORORRORRRRROOOROOOOROORROORROROORROOOOOORROOOOROOROROORRORORRROOROROROORORROORRRROROROROOORROOOOROROROOROOOOROORRRRRORRRORRROOORROOOORORRROROOROORORROROOOOORROORRROROOROORRROOOORORROOOROROOOROORRRORRROOROROROOOOOROOOROROORORROROOOORROORROOOROOORRRRORORRRORROOORRRROOROORROOOROOROORRORORRORORRORORROOOORRROOOOORRROORRROORRORRRORRORORROOORRRRORRRRRRROORRRRRRRRROROORORROOROROORORROOOOOOOORORRRRRROOROROOROROOOOORORORRORRRRRORROOOORRORRRRORROORRRRRRORRORRROOORROORRORRORROORRORRORORRRRROOORRROOROROROORORROORORRRRRROOORRRRROOOOOROOOORORORRRROROORRRRROROOORRRRROOOOORORRORORRRRRRRRROROORRORRRROOORRRRRORORRORRORORROOOOORRORRRRORRORRRRRRROROOOROOORRORROOOORORROOOOOOORROROROOORROROOOROROOOOORRRORRORRRRORRRORRRORRRRORRROOOORRRRRORROROOROROOOROORRRRRROOOROOROOROOORROROOOOROROOROORORROROROORORORRROOOORROROOOORORROROROOOROROOROORRROOOROROROROOROOOOORRORRRORRRRRROOORROOOOORROORRROORROROROOROOROOROOORRRROOOROROROORRRORORRRRROORRRROORORORRRROROOOOOROROORORRRRRRROOOROROROOOOORRROOROROROORORRORROORRROROORRRRORRRRORROOOORORORRROROOROROOOORRORRRORROOOROORRORORORROORROOOOOROORRORORRROORRROORROROROOORRRRROOOROOOOOOORROROROOOOROROOOOOOOORROORROORRRROROOORROROOORRRROOORRRORRRORROROROROORRORRRRRRRRRORROORRRORROORORRRROOOOOROORROROOROOROOROOORORORROOORRRROROOOOOORRRROORRROORORRROOOOORRRRORORORROROROORROORRORRRORRRRRRROROOORRRRORRRORORRRRRRRORRORRORORROORORRRRRRORRRRRRRRROOOROORRORRROROOROROOOOOOROORRRROORRRRRORRORRROOOOROOORRORRRRRROOROOOROORROOOORRRROOORRORRORROOOORRRRORORORORROOROROORROROORRRORRRROORRORRRRRRORORORRROOORORRORROROROOROOROOROOOOOOOORRRRRRRORORORRRRROOOROOORORORRROROOROROROOOOROORROORRORRRRRRRROOOOOOOOORRROROOOORROROORORRRROOORROOORRORROOORRRRRRRROROOOORROORORRORRROOORROROOROORRRRROOROROORROORROOOOOORORRROORRORRRRROROORORORROOOROORRORROROOOOOROOORRRRRORROOOOORROOORORRROORROOOOORORRRRRROOORROOOROROOOROOORRRORRORRORROORRORORORROOORORORORORROORRORRRORORRRRORROOROOROOOORROROORRORORORRORROOORROOOOROOOOOROROOORRRRORRRROOOROROOOROROORROOOOOROORRRRRRRORROORRROORRRORORORORROOROORORRORRRORORRRRRROROOOOOROROOOOOROROORRROOROOROOOOOORRRRRRROOOOOROOOOOORRROORRRROOORRORROROROROOORROOROORORROOROROORRORORROOROOROOOOORROOORORRRRROORRORROORRRORRROOROOOORORRRRORORROORRORROROOROROOOOORORRRRROROOOOROOOOORRROROOROOORORRRROROORRROORRROOOOORRRRROOOORORRROOOROROROORORORRRORRORRROORROORRRROORROOOOROROORROROORORROOORORROOOOORRROOOOROORRRORRRRROORRORRRORRRRRRROOOOROOOOROORORRORRRRRRORROOOOORRRROOORRRORRRRRORROROROORRROOORORRROORROORRRRROROORROOOOOROROOOOORORRORRORROROOOROOOROOOORORORRRRORORROORORORORORRRROOORORRRRRROOOROOORRRROROOOOORORORROROOOORROORRROOROOOOOOORRORORROOORORRORORRORORORRROOOROROOORRROOOROOOOROOORRRORROOOORROORRORROOOORROORRRRRRRORROOOROOOOOOROOOROORORORROROORROROOOORRROROROOORRRRORROOOOROORROROROROROOOORRORROORROOOROOORORROOROOOOORRROOOOOOROOOORRROORRORROOORRROORRROOOORRROOOOOORORORROOORRRROOROOROROOROORORORORRROOORRORROROOORORORROROOOOOORORRROOOOROROOOOORROOOORORRRROORROOORRRROORROOOROROROOOROORORORROOOOOOOROOORORRRROOORROROOOOOOORROORROROROOORORROOROOOOROOORRRROOOORROOOOORORROOOOORORRROORRRROOOROROOORROORROROROROOROOROOROROOROOORRRROORORROOOOROORROOOOOOORORORRORRRRRRROOORRROOROOORRROORROOOOROOOOROROROOROOOORROOOORRROROROROOOOORORRRORRROOORRRORROROOOOOOORRROROORORROORORROROORRORROOORROORROOOROORRRRORRORORORROROROOORRORROORRRRROOROOOROOOOORORRRRORRORRRORROORRRRROORROOOROROOROORORRRRORROOROOOOOROOOROROOOORRRROROORRRROOROOORRRROORRORRRORRORROOOOROOOOORROOROOORORRORRRROORORRRORRROORROOOORRRRORROROORROOOOOOOOOORRORORORROOOOOORRRORRROORROOORRRORRRRROOORRROORORRRRRORRROOOORORRRORRROOROROOROOROOOROORRORROOROOOOOOOOOROOOORRROROOORRRORRROROOROROROORRRRRRRRORORRORRORRORROORRORROOROOROOOORORROROOOOORORORRORROOORRRRROOOOORRRROROROOROORRRRRRORRRRRRRROOOOOOOROROOROROOROROOOOOOOROOROOORRRRORRROROOORRORORRRROOROORRRORROROOOORORROORROOROORORRRORROORROOORROOOOORRORRROOOORORRORRRRORORRORORORORORROROROOOOOORORROOOROORORRRRRROROROROROROROORORORORORRRRRORRORORRROORROROOOORORORRRRROROROOOORROROOOORORORORRRORROOORORRRORORRORORORRRORORROROOORRRORROROOROOORROOOORROORORORORORRRRROROOROROOORRRRRROOROOOOOOROOROOROOORROOORRORRRROOORORRRRROOOROOORROROOORORRORORRROOROORORRRROOOOOOOORROORORORROROROROOROORORRROOORROROROORROOORROOORROORORRORRORROOOORRRRROOOORRROROROOOOOOOOROROOOROOROOROROORRRROROROROROOROORRRROOORROORRRRRRROROOROORRROOOOOOORRRORORRRORRORRROORRRRRRORORORRRRRORRORRRRRRRRRORRORRRORRRROOROOORRORROROORORRORRRROROORRORORORORRRROORRROORORRROOOORRRROROOORRORROOOROROORROORRRORROROORRROROOOORRORROOOORRRRORROOOORRORORORORORRRRROROORRORORRROROORROORRORROROOROORORROOOROORROOOROOOOOOORROOORRRRORORRRROORROOOORRRRROOROOOOOOOOORRORRRORROORORRORRORROOORRRRROORRRRRROROOOOROOORRORRROOOROORRRRRRROOOORROORRRRRRORRORORRROROORORRROORORORRORRROOROOROOROORRRRRRRRORRRRORROOOORROOORRORRRORRORORORROOROORRROORRRRORRRORRROOOORORROROOOOROOORRORROORORORRROOOOORORRORORRROOROOROROROOOOOORORORRORRRRORROOROOORROORROORRRROOROOORROROOOORORORRRORROOROORROORROOROROROROOOROORORROOOOOOROROORRROORRROROROOORRRRRROROROOOOOROORRORROORRROROORRORROROOOOORRORORRRROORORRORORRORROOOORRROOROOOOOROROOROOOOOOORORRROOOOORROOORRORROROOOORORRRRORRROOOOROOOOORORROOROORROOROOROROOORRROORRRORROOOROROORORRRROORRRORRRORRRRORRRORRORRROOOOOOROORORORRRRRRROOOOROROORRROORRRROOOOORORROROORRROROOROOROROOOORRROOOOROOORRORROOOOOORROOOROROORORRRORRRRROOROROROROOORORRRROORROROROOROOOROORROROOORORRRRROORRROORRROOOROROOROOOROOOOOOROOORORORROROROROOORORRORORRRRORORROORROROORORRROOOORORRRRRRRRORROOROROOOOOOOOOOORROOROORRROROORRRRORRRROROROROROOOROORROROOOROORRRORROORRORRORORRRRORRRROOOORRORRRRROOOOOORROOROORRORROOORRRRRRRROORRROOOOORORRRRRROOORRRORROOOORRORROROROOOOORRRROOOOOORRROOOOOOROOOORROOOROOROOOROOOROORORORORROORROROOORRORORROOORRRRRORRORRRORROOROROORROOOORRROROOOROOROORRORROROOORRROOOOROOORRROOOROOOOOOOORORORRORROOOOORROORRRORORORRROORRRRRROORRROOOROROOROORRORROROOOOOOOORRROOORROROROOORRORROORRROOOROOOOORRRRORRRRRORROOROORROROORRROOORORROORROORRORRROOOOOOOOROORRROROOORRORORRROORRROOOORRRRRORRORORORRROOOROOOROOROOORORRRRORRRRORRORROOOOOORORRROOOOROORORORROOROOOORROOOROOROORRROOROOOORORROROROORRROORRRRRORRRROROOOROOROROORRRRRRORRORRORORROORRRORRROORRRRRRROROOROOORORROOROOROORORRRRRROOORORORORORRORORROOORROOOOOORRROORROOROROORROORRROORRRRORORROOOROOROROOORORORROORROROOOOOOORRROROOOORROROOOOOOROORORORORRRORRRRROOOOORORORROORRORRORRORROOOROORROOORRROOOORROOOROORORRROROOOROROOOROROROROOOROOORORRRROROOORROOOOORORORRRORRROOROORORROOOROOROOORORORROROORROORROOOOORRRRROROROORORROROOOOOROORRROOOOOOROORRORROORRORORRROROROOORRRRRRROORRRRRRRRROOOOOOROORRROOOROOROROORORROROOORRRORRROROORRRROORRROORROORORORRRRORROOORROROOOROORROORRRRRRRRRROOROROROOOORROOOROOORRRRRRRRRRROOROROOOOOROOORORRRORROOOOOORRROORRORRROOORRROORORROROROOROOROROOOOOOORRRORORROORORROORROOOOROROROOOOOOORRRRRRORORRRORRROOOOOOOOORORORORRRRRRRROROROOROORRROOORROORORRORROOROOOORORRROOROOOOOOOROROORRORRRROROOROOROOOOROROROORROROOROOROORORORORRROROROOOOOROOOOORRRORORROOOORROOOORORROOOOOROROOROOOOOORROOOORRRRRRRROROROROOOORORORORRROOOROOOOOORRRROROORROORROORRRRROOORRRORRRRRRROROORORORRROROOROOOOOOOROOROOROORRRORRRRROORRORORORORROROOOOOOROORROROORRORRRROROROORROOOORRRROORRORORROOROORROORRORRRROOROOOOOOORRRRROROROOROOOORORROORROOORRRORROOORORRROROROOROOORROROROOORROROROOOOOROROOORRROOORROOROOOOOOOOOORORROORROOOORRRORRRRROORRROROROROORROROROROOROROOOOORROORRORORRRORORRRROROORROOORROORRROOOOROORROOOOOOROOOROOOOORRRRRROOOROROROROROOORRRORRRRORRORROORORRRORRRRRRROORORORRRRORRRRROORRROOOOOOOOOORRORRORROROOROOROOOOORRRORORORRRRORORROORORRRRROOOOROORROOOOOOOOROROORROOOOOOOORORRROROOORRROOOORRROROROROROROOOOOROOORRORRROOOOORROORROOOROROORROOOROOOOOORRRORROOOORRROROOOROOORROOORRROROROORRRRORROOOOORORROORRRROORROOROROOOOOOOROROROOROROORROOORRROROROOORRRRRORROOORROOROOOOROOOOOROOOROORORRRROOOORROROROROOORRORORROOOOOOOOOORRRRRORRRRROOROOOOROOORORORRRROOROOOOROOROROOORRRROROROOOOORORORRROORRRROROOOOOOOOORORRRROROROORRRORROORORORRROOOORROROOOOOOOROOOROOORORORROORRRORORRRRROOOROOOROOROOOORRROORROORROOROORRRRRORROORRRROOROROORRROORROOOORORRORRROOROOOROOORROROROORORORRORRRRORORROOOORRRRORRRRROOOORORORROROOROOORORROORROOROOORROOOOROORROORROOOROOORRROORORROROROROOOOORROOORROOOOROOORORRORRRRRROORRRROOOROORROORRRROOROORROORRROROORRRRROOROROROORROROROOOROORROOOROORRRORRRRROORORRRRORROOORROOOOOOOOOROOROOOOOROROROOROROORRRROOORRRORROOOOROORORRRORORORRROROROROROORRROOOROOOOOROOOORRORORROORROOOOOROOOORROOOORRRORROOOOOOROORROOOORRRRRRORORRORROOORRROORRORRRRRORROROOOOROOOROROROORROOOROOROOORRRROORROOOROORROORRROOOORRORRRRRRROORORRRROORRORRORORORROOROOROOORROORORROORORROORROORROORRRORORROOROOROROOORRRORRORROOOOOORORRRORRROROOORRORROORROROROROROOROOOOOORORORROROOOROOOORORRRROORORORORORRROORORORROOOROROOROORRRRORRRORRROORROORORORORRRROOOOOOOOOOOOROOOOORRRRRORRRRORRROOOORRRRROORRROOOORORRRRRRROROORRROOOOOORRORRRRORRRRRORRORRROORRROOORRRRRORROROOROORROORRORORROROROOROORRORRROOROOOORROROOROOORRROOROROOROOROORRROOROOORRORRRRRRORORRRRROORRRORRRRORORROOROORRRRRORRORORROORROOOORORRORORORRORROOORROOOORRROOOROOOOORORROROROORRRROROROORORORRROORRRORRROOOROOROOOOROOOORROORORROOROORORRRROOORRRRRROROORRRRRORORRROORRORRRRORRRROROOOOOROORRRORRRRORRRRRRRROORORROOORROOOOROORROROORROORROOOOOOORRRRRROOOOORROORRRORRROROROROROOROOROOOORROROOORORROROOORROORRORORROORRRRORRRORROROORORROOORORROOORRORROOOORRORRROORRRRROORORRROORORRRROOOOOOOOOOOOOOOORROORROOOOOROORORORORROOORRROOROROORORROROOORORRROOOORRRRORORRORRROORORRRORRRRROOORRRRRROORROOROOOOORORRORRORRRRRRRROORRRRROOOORRRROORORRRRRRRRROORRRORROOOORRORROOROOROORROORRRORROOROOOOROOORROORRRRROORORRORROROORORRRROOOOOROOOOROOOOROOOOOROOOOROOROOOOROOORRORORORRRROOOORRORRRORRRROOORROOORROOOORORORRROOROOORORRROOOORRORRRRORRRROOROROOOOOOROOORRROORROROOROOROOORROORORORORRRRRROORRORORRRROOOROOROOOORORRORRRRRORRROOOOOORRROROOOORROOOROORORRRRROOOROROOOOROROROOROOOOROOOOROORRORRRROOORRROORROOORRRRORORRRRROOROOOORRORORROOORROOOOROROOROOORROOOROOORRRRROOROROROROOORORRORRROORRROROOROROOROORRORORRORRRRRROOROROROORROROOORRROROORROOROORRORRORRRORRRRORRRRROROORRRORROORROROOROROOOOROOROOROOOOOOOOORRRRRROOORRROOOORORORRROOORRRRRRRRRRROROOROROORORRRRRRROORORROROOOORROOROORRRRORRORROROOOOOORORRRRROOOOOROORRORRROORORORORRRORRRRRORORORORROOORRROROOOROORORROROOOORORRORORRRRRROROOOORROORRROOORRORRROROORORROORRRORROOOROOORRORRORRROORORRROORORROROORORORORRORORRROORRORRROOOOOORRRRRROROOROOROORRRRROROOOROOOROOROORRRRRROORRORRORRORORROOORORROOOROOROROOROROOOOORROORRROOROOORROOROORRRROROROORROOOOOORROOOOORRRRRORRORRORROOROROROOOOOOROROOROOROOOROOROOORRRRORORORRRROROROOOORRRROOROOOOOORROOOOROORRRRROOOROOOORRROOOOROOORRROROOOOOOORRRROOORORROORRROOOOOOORRROOORRORROOOOORORORRORORORRRORROOOROOOOOORRROOOOROORRRROORRRRRRORRROROOOOOOORRROOROOROOORORRORRORRORRROOORRRROOROROOOROOOOROORRORORROORORRORORRRRRROROORROOOOOROORRRRRORRRRRRORRORROOOOORRROROROOROOROOOOROROORRRROOOOOOOORORORROROROOORORRROOROOOOORRRROOORRRROROOORROORROROOOROROORROROOROORROORRRROOOOOORRROOOROORROOOORROOOOOOOOORRROOORRROORRROORRROOOORRROROROOOOORRORRROOORRRRRROOORORRRROOOORRRROOOOORRRRRRROORRRRRRORRROOOORORORORROORROORRRROROOOROOROORROORRRORROOROOOOOORRROOOOOROROORROOROROOOROROORORROROOORRROROORRRORORORORORORRRORROOOOOOOROROOROOORORRRRRRRRRRORROOORRROOOORORRROROOOORORRORROOORRRROOORRRRORROOORORROORORROOOROROOORROROOROROOORRORORRRRRORRROROOOOOROROOROOOROOOOROORROOROOOORRRORRORRRROOORRROORORRORROOOROROOOORROROROROOORORRROOOOORRRROROORRORROORRROROOOORORORORRRRROORROROORROROOROROROOORROOROOOOOROOORORROOORROORRORRRRROOORORRRROOOORORROORORRRRORRRROOORRRRRRROROORROROROOROORROORORRRRRORROROOORROOROOOROROROROOOOOOOOROOROOOROOOORRRORRROROOORRRRROORRORORROOORROOOOOOOOORRRRORROOROOORROROROOOORRRROOOROORORRROOROROORROORRROOOOOORRRROORORROOOOROROORRRROORRRORORRORRROORORROORRORRORROOOOROORROROORRRORROROROOOOORORROOOOOROOOOOOROOOOOORROOROROOOOOROOOROROORRRROOOOOROORROORORORRROOOORROOROOROOORRROOROOOORORRORRRROORRRRRRROOOOOORROOORRORRROORROOOOROOROOORRRORRROOOROOROOOROOORRRRROROROROOOOOORRORORROOROROORROOROOOOOORROORRRRORROOORORRROORORRROROROROROOOOORRORORRROORRROOROOOOOROOOORRRROOROOOOOORROORRRRRRROORRRORRORRROROROORRORRROROOROORRORRRRROOORROOOOROOROORRRORRRORROOROOOORROOORRROOROROOOOOORORRROOROOOROOOROOROROOOROOORRRROROORRROOOOOOROROROROOOORRRRRROROROORORROOORORRRRORRRRORRROORROORRRRRRROOOORROORROROORORRRORRRRRRROROOOROROOOROROROORRORORRORRRROOORRRROOORRORRORORRROROORROORORORRRORORRRRORORRRRRRORORRROOROOROORRRORROOOORRORROORORRRRROOOOORROORRORRRRORROORRRRRROROOORRROROROORORRORRRROOROOOOOROROOROOOOROORRRRRORRORORROOOROOROROROROOOOROOROOOOROOOOOROOORROOORORROOOROROOORORRROROORRRORRRRORORORORROOORRROORORROOOOORRROROOOORROORRRRRRRRORORORORRORROORROOROOORRORROORORROROOROOOROROORRORRRORRRORRRRORORORRORORRORORRROORRRRROOOOOORRROOOORORROORRRRROORORORORORRRRROOORROOOORRORROOROOOORORORROORORRRRROOOROROORRRRORRRRORORRROOOOOOOORROROOOROROROORROOROOOORROOORRROROOORORROORRRRROOORORROROOOOOORROROOOOORRORROORORRRRROROROORROROOOORORRORORORRRRRRRORRRROOROORORRROORORRRRRRRRROORRORROORROORRORRRORRRORROOOOORRRRORRORROOOOOOROOOOOORRROOOOROOROOOORORORORORRRRROOOROOORRROORORORROORROORRRORRORORROROORRRRRRRORRRRRRORRRRORRRROORRORRORRORRROOROOOOROOROOOOOORRROOROORORRRROOORRROROROROROOOOOOROOOROOROOORRRRRROROROOOORROORRROROOOROOOROORROROROOOROORORRORRRROORROOOORORRRRRRRORRROOROOOOORRRORRRORROORRORRRRORORORRROOOROOROOOOROORRORORROROOOOROORRORRROOOOROOOROORORRORROORRRORRRORROROOOORRRRRORORROROROORORRRROROORRRORRRRRRROORORRRROOOOROOROOORRRRORRORROROOROORORROOOORROOOOOOOOOOORORRROORRRORROOORRRROOOROOORRRRRRRRROORRRORRRORRORRROROROROOOOOOOROROOROORROORRRRROORRRORORORRROROOOORORROOROORORORRORRROROORRRRORRRRORRRRROOORORRRRORRRROROOROOROORRRORROOOROOOROOOOOOORORRRRORORORRRRRORRROOOORRROORROOOOOORRROOROOORRORRROOROORRRRRRROOORROOORORORRRORRRORRRORRROOROROROORRRROORRORORROORORRRRROORRROROOROOORRORRORROOOROORORRRORROORRROORRRRORRRRRORROOOOROOROORROROOOROORRRORROOROOORRORRRRORROOORRRORRORRRROROOORRROORORORROOORROOOOOROOORROOORRRROOORORROOORROROROROOOROROROOROROOOOROORRORRRROOROROORROORRRORRROOROROOORROORORRRROOROROROOOOROROOOROOOOORROORRRROOROROOOORROORROORRROOORROOROOOROOOOORRRRRORROOOROROROORROOORRROOORRRRRRRORROORORRROOROROROOROOROOROROORRROOOORROOORORRROROOORORRROROOROOOORRORORORORROORORRORRORROOORRROORROOOOROORRRORORRORORRORORROROOROROOORRRRRORORROORRRROROORROOOROOOROORORORRRORORRRRROROORORRORORROOOOOOROORROROOROOORRRRROROOOOOROORRRROROROOOOORRRROOOOROROOOOORRORRRRRORRROOOOOORRROORROROOOOOORRORRRORROOORRRRRORORORROOORRROORRORRORRROOORROROORORROOOROROROOORROORRRROORORRRORRRROORROROOORRORROOROOOROOROOOROOROORORRROORROORRRROOOORROORROORRROROOOORRRROOROORRRRORRROROOROORROROROOOORRRRROOROOROORORORRRORRRROOROROORROROROOOOROOOOOOOORORORORRRROOROOOOORROORRRROOOROROOOOROOOOOROROROORORORRRROOOORORORRROOORROROORRRORRRRRRRORORRORRORROROORROOORROOROORORRRRORRRORROROOORRRROOROOOORRORRORROOOOROOORROOOOOOROORRRORROROROOORRORRROROROROOORRRRRRORRROOORORROOROROOOROOORRORRORRORROORROOOORRORROOOORRRRRRRRORRROORRORRROORRORRRRRORROOOOOOORROOOOORROROORORORROROORRRORROORORORRRRRRROOROOOOORORRORRORRROROROORRORROOOORROOOOROORORORROOOROROORROROOOROOOOROOOROORROOORRORRROOROOORORORORORRROOOORRROOROOOORRROOOOROOOOOROORRORRORRROOORROORORORRRROOORORROOOOORRORORRRROORRORRORRROOORROOORORROORRRRRROOOOOORRORORRRRROOOOROOORORRRROORROOOOORORRORROOORRROOOROORORORROOORRRRROROOROOROOROOOOROOOOOOOROROOROOOROORRRROORRRROROOORROORROOOOOOOORRORRROORRRRORORROROROOORROOORRORRORROOROOORRRORROORRRRORORROOOOOOOORROORRORORROROOROOOORROOOORRROORRRORORRROROOORORROOROORRRRRRRORROORRORRRROOOROORRRROOROOOOOOROOORORRORRORRRROOROORROOORRRROROROROORRRRORRORORRRORRROOOOOORORRORORRORORROOROOROOORORORROORRROORRRORRRROORORORRRORROORORRRORORROROOOORROROOOOORRORROROORORRROORORORROROORROOROROORROORRORROOOOOROORRRORROOOOROOOOOROORRROOORORRRRRRRORROOOROOORROOOROORRORORRORRRRROORRRRORORROOOORORROORROOROORRROORROROOOOROOORORRORRRROORORRORRROROOOOORORORRRORRORROROROORRRRROROROROROOORORORRRRROROOORRORROOOORROOROORORRRRRROROOOOOOORROROROOOROOORORROROORRORORORRROROOORROORRRRRRRROOOOOOROOOROORRORORROOOROOROORROOOROORRROOOROROOOROOOROOROROORRORRROOROROROORRRRRRORRROROORRRROROOORRRROROROROORORROROROOROOROOORRORRRRROROOORRRRRRRRROORORRRORROOOOOOOOOOROOROROOROORROORROOROROROOORROORROOOOROOOROORRORORROROOOROORROORRROORRROORROROOROOOORRROOOOORRORROORORORROORRRROOORRRROORROROROOORROROOROOOOOOOOOOOORRRRROROROOORORRRROOOROROROROROORROOORROOOOOROROOORROOOROROOORRORRRRROOORROORORORRROROOOORRROOROOROOOORROOOOROOROOOOROOOOORRRRRORORRRORRROOORROOOOOORROOOORROROOOROROORORORRRRROOOOOORRRORRRRRORRORORRROOOOOOOORRROORORORRORRRRRORORRRORORORRRRRRORRRRORRROOOOORRORROORRRRRRRRROOROOROROOORRROORROOOOOOOOOOROOORRRRROROOOOOOORROROOORRRRRORORORROROORRRORORORRRROOORRORRRROROOOROROORORROOOOOROOOROOOOOOOOORRRRRRROOOROROOORORORRRROOORRRRROROOOORRRROOORRROOORORROOOORRORORORORROOORRRORRRORRORRROROOROROOOORROOOROOOROOOOOORORRORORRRROORRORORORRRORORORROROORROROORORROROOORRORRRRRORROOORROOOORRRORROROROOOOOOORORRROOORORORRORRRRROROROOORRRRRRRRRROORROORORRORRORRORRRORROROOOOOOOROORRRORRORORROOROOORRORORORRROROOROOROOORRORROOORRORORORORRROROROOOORORROOOORROORRORRORRORRRROOORRROOROORRRRROOOROORROROOROORROROOORROORORRROROOORROORRROOOORROOROORROROORORRRRORRRORROORORROROOOROOOORRRRORROROORROOROOOOORORRRROORORROROORROOORROORRROOOOOOOOOOOOROROOORORROOROROORORRROOOORRRORRRROOOOOOOROOOORRRORROOORROOROOROOOORORRRRORORRORROROROROOOORRROOORORROORROOOOROOOROROOORRRRRRRORRRROROORROOROOOOOROROROOROOOOROROOOOOROOOOOOROROOOOOORRORRROROOOORRROROROOOOROROROROROOROOOOOOOROORROOORRRORRORRORROOOORRRROOOOOROORORROORROORORROORRRROORRROROROORRORRRRRORRORRRRROROROORROROORRORRORRRRRRROROORORORRRROROORRORORRRROROOROROROORRRRROROOOOOORRRRROOOORRRORORRRRRORRROROROOROORROOOOOOOORRRRRRRROORORRORORROOOORRROOOOROORROOROROOROROROORRROORRORORORRRRROORRRROROOOOORROROORORROOOOOOOOROOROOROOORRRRRRRROROOORRROORORRRROOOORRRROOROORORROOOORROORRRRRROOOROROOOROROOROOORORROOROOROOROROOOORRRROOORORRROORORROOOOROOOOOOOROOOROROOOROOORORROROOORROOORRRRRROROOORRORORROOORORORROOROORORROORROROOOOORORORRRORROORORORROROOORROOORRRROROROOOORRRRROOROORRRORRROOOOROOROOORRRRRORRRRROOOOORROOORROROROROROOOOORRRRRROOORRRROOROOORROOORORORORRORROOORRRRRROOROROOORRRRORORORRORORORORROROORORROOOOOORROOROOORRRROROOOORRRRORRRORRRORROOORORRORRRRRROOROOROORORRORROROOOOROOOOOOROOOROOOORRRORRORRROOORROROROOROROOOORRRROROOORROOOOROOROORORRRRROOOOROOOROROORRROOOOOORROORRRRROROORRROROOOORROOORRROORORROROOROROOROROOORROROORROROROROOOORROORRRORRRORROOORRORRORRRRORRORRRROORROORROROROOORRORRORRORRROOROROORRRRRORORROORORROOOORORRROOOOROOOOOOOOOOORRRORRROOOROOROROOORRROOORROOOROORROORORROOOOOROROORRROORRRROOOOORRRROORRRRROROOOROOROOROORRRRORRRRROOORROROOOORORROOOORRROORRORRORROORORRROOORRRROOORRORORROORROORRRROOROROOROORRRORROOOOOOOROROOROOOROROROOORROOOOORRORRROROOORORORORRRRROOROROOOOORRORRRROOOORORRRRORROROOOOORRRRRRORRRROOORRORRORORRRRORORORROROOOOOORROORORRORRORROROOOOROOOORRORORROOOORRORROORORRRROOROORROROORROOOOORORROROOOOORORORORRRRROOROOROROOOOOROROOOROORROROOROOORROORROOORRRRRROOOORRRRORORRRROORRRRRROOROOOOORRORROROORROROOORORRORRRROROROORRRRRORORRRRROOROORORRROROOROROORORORRROOROOOROROORRRRORORRRROOORORORRROOORROROOOOOOORRRRRRRROOROOOORORORRORRRORORORRORRRRRRRRROORROORRRRRROROORORROROOROOROORRORRRRROROORROOOOROROOOROROORORRRRORROORRRRRROOOOOORRRRROROOOOOORRORROOROOOOOROROROROORROOOROROOOOOORROORROOORORRRRORROORRROOORRROORRRRROOORORROOOOOORROORRRRRRRROOROORRROROOORRROOORROOROORROORRRROORROORRROROORRORRROOOROOOROOROROORRRORORORROROOOORRRRORORORRORRRORORORRRRRORORORROOROOOOROOOOORRROROOOOOOROOROORRRROOORRRROOOORORRROOOROORROOOOOROOOROOROORORRRORORRROOROOORROORRRROROOOROROOORRRRRROORRRRRROROORORRRRROORROOROORORRRRRRROROOOOOROROORRORRRRROORRORRRORRRRRORORRRRORROOOOOOORRRRRRRRORRORRRROOORORRRROOORRORRORRORRORORROOOORROOROORRRRRRORORROORRRROORRROOROROROOROOROROOOOOROOROOORRRROORORROOOOORRRROROOORRORORRRRRRROOOOORORORROROORRRRRROOOOOORORRROORROORRORROOORRORROOORRRRRORRROOROROOOROOOOROOOOORROROOROORROOOORRROORORORROOORROOOORORORROORORRORRRROROORRROORRRROROOOORORRRRRORROROOORORRROOROOOOROROOOOOOOOROROOORRRORROOOORROORRROOORROOOOROOOOOROORORRORROORRORORORRROORROOORROOORRRRORROORORRRRRRRRRORRROORROOOOROOOOORRRORRRRRRRORRORROROOORRRRRORORRRRRROROOROROOROROOORRORRRRORRRRRRRROROOOOORROORROOROOOROOOOOOOORRRORORORROOOOORROROROOOOORRRORRORRRORORROORRRRROROORORORRORROOOOOOOOOORRRRRRRRRROORRRORROORRRRROOORRRRRRRRRRRRORRORROORRRORROROROOOOROORRRORRRRROORRRORRROROOOOORRRRRRORRRRRROOORORRRRRROROOOOROORROROOROROOORROOROROORROROROOORRORRROOOORRRROOOORORORORRRRORROROORROOOROROOORORORORRRORROOROOROROOORRRRROOOORRROOOOORROOORORRROOORRORRROOOOROOORRRORRORROOROOOORROOROORROORRROOORROROORRROROROORROOOROOORRRROOOOOORORROOOORRRRRROOOOROOROOORRRROORRRRROROORRORRRRRRROOORRRRRRRORRRROROOOROORORRORRROOOOOOOOOROOROOOORRROOROORORRRROOORORORROOORROOOORRRORORROOROOOROOOORROROORRROOOOOROOOOORROORRROOORRORROOROOORRORRROROORRRRROROROOROORRRROOROROOROORRRORROROOORROROROOOORRORRROOORORRRROOORRRROOORRRROOROORROROORROOOORRRROOORRRRRRROOOOROORORORRROOOORROOOROORORRRORORRRORROORROOOOROOORRROOROOOOOOROORORRRORROORROOOOROOORORRROOOOROROORRRORORRORRRORORORORRROOOOOROOOOORROOOROORORROROOOOOOOROROOOROROOOORROOOOOOORORORRRROROOORRROROROROOORRROOOORRRORROORRRRRRRRRORRROOORRROOOOROOOORRRRRRRRRRROROORRRORRORROORRRORROROOOOOORRRROORORORRORRRORROORRROOORROORORRROROOROROOROROORRRROOOROOORRRRRRROROOOOROROOOROORORORORRROROOROOOOORORRRROOOROORRORORROOOOROOOROOOORRRRROORORORORRRORORRRROOOORRORRORROOROORROOOOORORRORRRRORRRORRRROOROOOOORORORRRORRORRORRRRORROOOOORRRROROROOROROOROROOROORRROOORRRRRRRRORORRROOROORRRRRRRRRROOROOOOOOOROROORRORORROROOROORORRROOOROROOOORRRROROOOORRRROROOROORRRRORROOOOOORORORORROOOROROOOROORRORRROOOOOOROORROOORROOROOOORRRRORRORROOOROROOROROORROROROORROOOOOOOORRRRORROROOORRROROORRRROOOORRRRROROROOOOROOROOROROOOOORROOOOROROOOORRORRRORORRRRRROOORRROORORRROORROOROOOORORRORROOROORRRRRRRRRORRROROROORROOOOORROORRRRRROOROROOOROROROORRROORRROOROORROOORROOORORORRRRRORRRRRRROROOOORRRRORORROOOOORORORRORRRRORRROOORROOROORRRRORROROORRORRROORRROOROROOOOROOROORROOOOORORROOROORRROROORROOROROORORORORRORORORRORRRROORRRRRORORORRRORROOORRRRRORROROOOOOOOOOOORORORROOOROOROOOOOORORORORRROORRRROORRROOROOOROORROORROORORORROORRRRORORRROROROORRRRRORROROORORRORRROORORROORRRORROROORRORROOROROOOROOOOOORRORORRRROROROORORRRROROOOOORRRRROROORRROROOORORRROROORORORRORRROROOROOOOROORRORRRRROROOOOOOOOOROROORROORRRRRRROROOROROOOORRRORROROORROOROOOORRROORROOORRORORRORRROOORROROROOROROOORORRORRRROORORRRORRRRROROOOROOOOROROORRROOROOROROROORROOOOORRRRRRROOROORORORRROORRORRRROOORORRORROORROROOOROROOROROORORRRRORRORRRROROORROROOORORRROOOOORRRRROOOOORRRORRRROOOROOROROOOROOOORRROROORORROOROROOOROOROROOOORROOOROROOROOORORORORROORROOORRROOORORRRORRRRROROORROOOOOORROORRRORROORRORROOORRRRROORRROORRROORRORRRORROOORROOOOORROORRROORRRRROORRRORORORROOORRROROOROROOROOOOROORRORRRROOORROROOORRROOOOOORRORORRRRORRRRORRROORRORORORRRORROROOOOORRORRRRRROORRRROOROOROOORRROORROROOROOROOOROORRRROOORORRORORROORRRROOROROOOOOOOROOOOROROOOORORROROOOORROOORROORRROORROORORRRRRORORRORRROORRRORRRRRRRORRRRRROORORROOOOOROOROOOROOROOOORRRRROORRROROROORRRORORRRORRROOROOORRRROROOROROROOOOOOOOROORROORRRRORRROROOOORORORORORROOORRROROORRORRRROORROOOORROOOOOROORORRRORRROROOORORROOOOORRRROOORORRROOROROROOOOROOORRRROOROROROOROOOOOOOOORRRORRORRORRROOORROOORRROORRROORORROROORRROOORRORRRRRORORRROOOOROOROROROOOROORROROORRRRRRROROORORRRORRROORRRROROROOROORRORROORROORROORRRROOORORRRORRORRRRROOROOOROROROORRROROORRORRRRRRORRRROOROORROOROOROORROROORORRRORROROOROROOORORRROORRORORRORROOROORRROORROORRORRORROORRORORRRORORORRRORRROROOOORORORROOOOOOOOROOOORORROOROROROOOOROROOORRRROROOORORROOOOOOROOOORORROOOORROORRRRROROORRROROROROORRROOOROORORROROORRRRRROROROROOROOOORORROORRORORROROORRRRRORRRROOORRRORRRRROROORROOORRORRORRORROOROOOOOROOOOROORRORROORORRRRRROORRORORRRROORRROOOOORRRRORROORRRRRORORRORRRRRROORROROORRORORROOOORORRRORROORORROOORRRRROOOROROROORORRRRROORRRRROOROOROOOROORROOOOROORROOOROORORROOORRRORORROROOOOROORRRRRROOOROOORORORRROORORORROOORRRRRROOOORROOOORRORORRROOROORRORRORRRRRRRROORRORORORROOROROORROOOROOROORRRRRRORROORRROROOOOOORRRRROROOOOOOORRORRRRRRORRROOORORRRROROROORRRRORRORROOOOOORRRRORRORORRROORROROORRRROOORRRRRRROOROOOOOORRORROOOOOOORRRRRRRRORRRROORROOROOOORRORRROROROORORORROROORORROOOROOOROOROOOOROOROORORRROOOOORORORORROORRRROOOROROOOROOORROORROOROORRRRROROROOOOORROOORROOOROOOOROORORRRRORRROOOORROOOOORROROROOOOOOOOOORROOOOROOORRROORORROORRROROROOOROOORROOOROORROOROOOROOORORROOROROROOORRRRORRRORROORROOORROOOORRRROOROOROORRORROORROOOROOROOOOORRROROORORROOROOOOOORRORROOOORRORRRROORROOOOOOROROROOOOOORRRRROOROORORRROROROOOORORROOORORRRROOORROOROROOORROOROORORROROOROOORROOOOOOOORROOOROOOOROOOOORORRRORRRROOORRORORRROOOOOOROROORRORORROROROOORRRORRROROROROOOOOORRRRRORRROOOROOOORORROOOORRRORRRRRRRRORRRROROROOROORRROOORORRORRRORRRORROOOROROROOROORRRRROROORORROROOORRRORRRRROROORRORRRRORRORORORRRORRRRRRRRROROORRRROROOORORORROROORORORROROOOOOOOOROOOROORROOORRORROOROORORORRROOORRROROORORROOOOOROOORORRRRRRORORRROROROROOORROORRRORORROROOROOROOORROOORRRRROOROOOOROROROORRRROOOOORRROROORRORRRROOOOROROOROORRRORORRRROOORROROOOROORRORRROORRROROORORRRORORRRRORORRORRORRORROORROROORORRRRRRRRROROORORROORORRORORORROROOROROORRROOROROROORROORRORRRORORORRRRORRRRROROROOROROROOROOORROORROROOROOOOOROOOORRRROORRRORROOOORORRROOOROOORORROOORROROOOORRROOROORRROOORROOORRRORRROOOROOROROOOROROROROORRRROROOOORROROROOORRRORRRROROORROROROROOOOROORRROORRRRRRORRROORROOROROROORRRRORRRRRRORRRRRROOORORRRRRROORROROOROOROROOROOOOORORROROORRRRRORORORROORRRORRROORROROOOOOROOROORORRORRRRRORROOOOOROOOORROOOOROOROROORORRRROORRROORRRORORRROROOROORROOROROROOORRRROROOOOORRROORRRROOROORROOORORROOORRRORRRRRORRROOOOOROORRORROOORRRRROROOROOOOOROROROROORRORORRORRROORROOORRROROOOOROOOOOOROORRRRROOOORRRRRRORROOOORROORROOOOOOORROOOOOOROROORRRORRROOROOORRRRRRROORRROROORRORRORROOROROROOROOOORROOOOORROORROORRRRROROOORORRRRROOORROROROOROROOROOOORROROORROOOOROOOORROORROOOORRRRRRORRRORRROORRRROORRRRRRROORORRORORRRORROOOOOOOOROOORRORORRORORORRORORRROOROOOROOOROOOOORORRRROOOOOROROROOORROROORRRROOROORORRROORORRRROORRRORORRRORORRRRORRORORRRRRORRRRRRRRRRRROOORORRRRROROOOOOORROOROOROOOROROORROROORROORROOROOORRORRROORORORRROOOROOOOORRORORORRRROOORORROROOORROOOOROORRORRRROORRRORORORRRORROOOORRRORRRRRORORRORRRORORROOROORRRRRRRORRORORROROOROORROOOROROOOOROORRORRRRRROROOOOROOOROOROOORRORRORORRORROOOORRRROOORRORRRORRORRRORROORRORORRORORORRRORRORRROORORRRORROORROOOORRRRRRROROOOORRRORROORROOROROOOOORRORRROOOROOROORORORRROORRROORRORORRROOOOROOOROORROOORRORRRRRROROORORROORRRRROORRROORORORRORRROOROORORRRRRRRRORROROOOOROOORORORRRORRORROOROOORORRROOOROROOOOROORORRRRRROROROOOOOOOORORRROOROOOORORRRRROORRROOROOORORRRROORRRROROOOOROOOOOOORORORRORROOOROOOOROORRRRROOORRRORRRRROORRROOORROOORORRORRRORRRORRROOORORROOOOORRRRORORRORROOROORORORRORRRORORRROOOORRRORRROROORROROROOROORROORRRRRRRRORRORROORORRRROROROOORROOROOROOOROOROROOOORRROROROROOORROROROROOORORRRRRRRRROROOOORRROORORRROORRROORRORRORRRRORORRROOOOROOORROORRROROORRRRRRORRROROROROROROOORRORORORROROOORROROOOORORRRROROOROOOOROOORROOOOROROOOORROOROORROORRRROORORORORRRROOORRORORORROOOOOORRRRRROROOOROROROORORRRRROOOORROOROOORORORRRORRRORORRORRRROOROROROROORORRRROROOOORORORRRRRORORROORRORROORRRRORORRORROOROOOOROORORRRRROORORRRRROROORRRROORRRORRRRRRRORROORRRRROROROOOORRORRORRORORORROOOOOOOORORORORRORORORRORORRRRROROROOOOOROROORORORRROOOORRORROORROROROORROOORRROOROROROORROOOROOOOOORRROOORORRROOOORRRRRROOOROROROOOOORORRRROOORRRRRRRORRROROROROROOOORRORRRORRRROROOOOOROOOOOOROROOOOOOROOOORORORORORROOOORRRORORORRROROOOOOOORORRRRRRRRORROORRROORORROOORRROROOOROOROOORRROROORROORORRORROOOORROROOOOROOROOOROOROROORRRRROOORORROOOROOOORRORRRRORRRRRRORRRORROROROOORRORRRORROOOORORRRRRORROORRRROOROROORRROOOROOOORROROOOROOROOORRROOOOOORRORORRRRRROOOROROOOORROROROROOOOROOROOOOORROROOORORROORRORRROOROOOORRRRRRRORRRRRORORROROOORRRROOOOROORORRRRROROROROOOORORROORORORROORROOORORRRRORORROOOOORRROOOOORORORORRRROORROROOORRROOOORROROOOORORRROROROOOORORRORRROOOOROORRRROOOORORRRROORROORROROROOORRORROROROORRORRORROOOOORROOORRRRORRRRROROOROORROROORORROOOROOROROROORROOOORRORRRROROORRORRROORRRROOROOORRRRRRRRROROORORRRRRORRORORRRORRRRRRRORORRRORROORROORORORRORRORRORRRORORROOROOOOORROORROOROOOOOOROOOOROOOOOOROROOOROOORROROROROOORORRROROOOORORORORRROROORORRORROORRORROOOROROROROORROOOOROROORORRORROOORORRROORRRRRROOORROORORRRORRRORROROOORROOROORRRROROOOROOORRRORRRRORRRROORORRORRRRRORROOOOOOROROROOROOORORRRRORRORROROORRRORROORORRROOOOROORRORRRRORORROORROOOORROOORRRROORROOROOOOORRRORRRORORRROOROROROORRRRORROOROOOORORRRRRROORROOOOOOOOROORRRRORORRRRRRORRROROORRROOORORRORROORRORRRRRORROROROORORRRROOROOOROOORRORRROOROOOORRRORROOORORRROORRORORROOORRRORRRRORROOOOOROOOROORORRRROORRRORRORRRROOORRORRRROORORRORRRRRROROOROORRROROOROOOROOOORROROORORRRORORROOORRRROROOOOOROOOORRORRORRORROOOROOORROORRROROROROOOOOROOOORROOORORROOROORRORORRRORORRRRRRRROOOORORRRROORRRROROOOORRORRORRROOOOROOROOOOOOORRROOOROOOROOROOROROOOROOORRRRORROOROOOROORRROORROOOOORRRORROOOOORORRORORRORRRRROORRRRRRORORRRROROORROOORRORRRRRORRROORROOOOOORRROROORROROOOOOOOROOOROORORORORRROOOROOOORRRRROOROROOOROROOOROORRROOORROOOOOOORORRROORORORORORROORRRROOORORORRRRRRORRRRRROROORORROOORRRROOOOOOOROORRORRRORORRROORRRRRROROROOROOOROOOOOOROORROOOOOORROOROOOROROORRRROROOOROOROROROORORRRRRROROROOOORORORORROORRRRRROROOROORORRROOOORRROORORRORRORRROOOORRORRRROORRRRROOOROOOOOOROOOOOROORORRROORRORRROORRRROOOOORRROOOOOOOOORRORROORRROROOORROOROORROOORRROROROOOROORROOORROOOROOROROOROOOORORORROOOORRORRRRRROORROOOORORROOROOORRRORRRROOROOORRROOORRRRRROROROORORRRORORORORROROOROOROORROORORRRORRRROROOOROORRRROOORROROORRORORROROORRRRRROOROORRRRRROOOORRROORROOORRRRRROORRORROOROROROOOORRROOOROORORRROORRORRRRORRRROOOROOOROORRRORRRRORROOROORRORROOOORORRRORRORORROORORORRORRRRROOORORRORRROORROROORRORROOROOROOOOORORRRRROOROORRRRROROOOORORRROOORRORROROORRRRRRROOORRROOOOOOOROORROOROROOOOOOOORRRROORRROORROOOOORROOORRROOOROROORRRRROROORRRROORROROOROORROORRROROORROOOROORORROORROOOROOORRRROROROORRRRRORORRROORRRORORRORROORORORRRORRRRORROROORORORROOOOORORRORROORORRRROORRRORRRRROROROROORROOOOORORROOOROOOOOORRRROROOORRROOORRRORROOROOORROOROORROORRORROOROORORRRORORROOORORORRRORROROROOOOOROORRROORRROROOOOOOORRRRORRROOORRRRRRRORROOOORRRRRORROROOROOOROOROROOOOROOOROOROOROOORRORORROOORROORORRROORORRRRRRORRROROORORRORORRRRRRROROROOROOOOOORROORRORORRORROOOORORRRRRROROOOROROOROROORRORRROOOOROORROOROROOORROROORRORRORRORORROOROOOORRROOROROOOOOROORRROROORRRROOOROOOROOROROOOROOROORROOOORROOORROROOOROROROROOOORROOORRRRRORRRROROROORORROOORRRROOORRRORRRRRRROROROOROORRRRRORRRRRRRRORRROOROROORRRROOOOROOOOROOROORORROOOORRROROOORORROOORROOROROOOORRROROORRROROROORRRORROORRORROOROROOOOROOOOROROOROORORORRORRROROOROROORRRORRROORRROORROOOOOOORORRROOOOOOROORROORORORROORRROORRRRROOORROROROOOROOROORRRRRRRRORROOOOROOOOORRRORRRROOOOOOOROOOROROROOOOOOROORRRRORORORRORRROOROOOOOOORRRROOROOORRROOOOROOORROOOOORRRRRRROOOROROORRROOORRRORORORORRORROOOORRRROOROORRRRRRORRROROOOOROROOOOOOORROOROORROOOOOOROORRRRRROORRROORRRORRRRROOORRORRRRRRRRROOROORRORORRORROORRORORROROOOORRORRRRRRRORRROOORORROORRORORORRROORRORRRRRRROORRRRRRORRRROOROORORRORRORROROOROOROORROROOOROOOORROORRRRRORORRROOOROROROOOORRRRRROOROORROOOOOROROOROORRROORRRRRRRROOOOORRORROORRRRRORRORRRRRRRRRRORROORORROOORRRRROOROOROOROOORRRRROORORORORROROORRROORRROOOROOROOROROOOORORRROOROOORROROROOROOORORRROORRORROOOORORROORROOOORROOROOROORORROOORROOROROORROORORORRRRROOOROOORORRRORRROORORRORRRRRORRROOORORRRRRRRRRRORRORRRRROORROOROROOORRORRRRORRRROOOORORORROROOOROROOROOOORRORRROROORROOOOROOORORRROOOORRORRORRORORROOORROOOOOROROOORROOOOOROOORRORORRROOORROORORORROOORRRROOROOORORROOORORORRRRORORORROORORRRRRRORRRORRRRRORROOOROROORROORRORRRORROORRORRRRRROORRROOROOORORRORROOOROOORORRRRRORRORROOOROROROORRRORROORRORRORRROOROOOROORROOROORRORORRRROROORORROOOOORROOOROROORRRRORROORROOROOOORRRRRROORRORRRRRRORRRRROOOORRROROROORRORORROROORROROOORRROOOORORRRRROOOROOORRRROOORORROROROROOOOOORRROROROOOORROORROROOOROOORRROORROORORRROOROROORRORRRROOOORORORROOOROORRROOORROOOOOOOROROORORRROOOOORROROOOOOORORORROORRRRRORRRROROORROOOORORORRRRRRRORRORORRRRORORROROOOORORROORROROOORRRRRRRRRORROROROORRORRRRROOOOROORROOROORRROROORRORRORRORRROOROROOOROOOOOOROOOOORROORROOROROROOORRORORORRRROOORRORORRRORROOROROORRORRORRORORRRRORRORRRRRROROOOROORORORRRRRRRRORROORORRRRORORROOOOOORORRORORRRRROORRORROOOROORRROORRRRRRRORRORRROROOROROROROORRRRRRRRORRRRRRRRRRROOROOOOROOOOOROORROOROROOROOROORROORRRROORRRRRORRRRRORORROORRRROOOOOROROOOROOORORROORORRRORRROOORRORRORORROOOOROOROOOOOOROORROROOOOOROOOORROOORROOORRROOOROROOOORRROROROORRROORRROROOOROROOOORRORORRRRRRORRROOORROOROOOORRROROORROORROROOOOORRORRRROOOROOROOORROOORORRROORRORORRORORROROROOOOOORRORROROORRROOROOOOOORORRRORORORRRRRORRROROROOORRRROOOROROOORRORROORROROOOOROROOOOORROORRORROOORORROORRRROROOORRRORORROOOOORORRRRROOOOOORRROORRRRRORRROOROROOROROROROOOOOORRORROOOROROORROORORRRRORORORORRRRORORROORORROOOOOOOOOORROORORROROOOOOOOOROOOOROROROROOROORROOOORRRRROOOOROOOOROOROORRROORORORORRRRROOROOORORRROROORROOOORROROOOOOOORORORRRORORRROORRRRROROOORROORROORRRROORRORROOOOROOOORRRROOOOORROOROROORORRROOOOROROOORRROOOORORORROOOOROOROORROOOORRORRRROORRRORRRROOROROROORORORROOOOOOROOOOROOROROROOOOORRRRORROOORRROOORROOOOORROORROOROORRORORRRRRORRORORROOROROORRRROORRROOROOOOROOOOOROROOOROOROOOOOOOORRROROORRRROOROOOROOORROOORRROROORROOORORRROROOORROORORORRRROROORRROORRORRORRRRRROORRRORRORROROORORORROROROOROORRRRRROROORORRRRRORROOORROOOORRORRORORRROROROORORRORORROOORROROOOROROORROORRRRRROORRRRROORRROOORRRROOROOOROOROOOORRORRRRRRRORRORROORORORRROOROROORRORROOORRORRORORROROOORORRRROOOOROORRRROORORRRROOORORRRRRRROOOROOROORORROORRROOORORRRRRRRRRORROORRROROOOROORRRRRRRRRORROOROOORRORRRROORROORORRRRORRRORORORORROOOOROOOOOROORORROOROOOORORORROORRORRROOORRRRORRRORORROOOORRROORRRRRROOOORROORORRRORRROOROOROOROOROROROORORRRRRRRORRRROROORRRROORROOOOROROOROOROOOOOOROROOOOOROOORRROOORROROROROROROOOOORRROOORRROROROORRROOOOROROROROROROROROORRORRROROOORRRROROOOROROOOORORORRRRRROROOOOOOROOOROOOORRRRROROOOOOOROROROOOOORRROORRRRORROROOORROORRORROOORRRRRORROROROORORORROORROOROROOROOOOROROOORRRROOOROROOROORROOORRRORRRRROORROROROOROOORRRRRRRRRRROROOROROOROOROROOOROOROROOROOROROROOORORRROROOROORRROORRORORORORORORRROORRORROOOROOORROORRROROOOOORROOORORRORORRRRORRRRRRRRROORRRRRROORRRRRRORROROOROOOOOOORROOOOOOROOOOOOOROOORRRROROROROROOORRROOORRROOOORRRRRROORROROORRRORROOOOOOORROOOOOOROROROORRRRRRORRROROROORRROOORROOOOORRORRORRRRROORROROOROROOROROROORORRORRORRROORRRROOROOOROOROORRRORROROROORROOROOROROROORROOROOROORRROROOOORRROORROOOOROOOROOOORRRRROROROOROOROORRROORROORRRORRRRRROORRRORRRROOOOOROOORROROOROORROROORORRORORORRRROOOOROOORRRORRRRORRORORORORROORRRROROROORRRORRORRROOOORORROOOOORORRROROORORRRRRRROOOOOROROOORRORORRRRRORORRORORRROOOOOOORRRRRRROROOROORRORROOROROROROROORROORRRRORRRORRRRRORRRRRRORORRRRROORORRRRRROROORORRRRRRRRRORRORRRRRRRRRRROORRROOROORRORRRORRRRORRORRRORRROOROROOOOOOROORROORRROROOOORORROORRORRROOROOOROOOROOOORRRRORROOORORROROORRRRROOOORRROOORORROOORORRORRROOOOOORRORROROROOOOORORRRORROORRROOOOOOROOORRROROOORRRRROORRRORRROOORROROOROOOORRORROOORRORRRRROOOROOROROOOROOROROROROORROROORRRORORROROROOORROROOOORROROOOROORRRRRRORROOOORORRROROORROROORRRORRORORROORRRRRRRRORRRORROROOROROROOOORRORRORRRROOOORROROOORRROORRRORROORRRRRROORRRRRRROOOOOORRROOOOOORRORROOOOOOOOOOORORRROROOORORORROOORRROOOOORRROOOOORROOROOOORORRRORROORRROROOOROROORRRROOOOOROORROOOOOOORORORRRROORROOORRRROOOOOORRROOOORRORRORROORRROORROOOROOOOOOOOOROOOROOROROOROOORORORORORROROROOOROOORRORORROORORRROOORROORROOOOORRRRRORRROOOORROROOOOOROORRRROORROOROOROROROOROROROOORRRRRRRROORRRROOORRROORORROROROORORRORRROROOOROROORRRROORRORROORROORROROROOORROOOOOORRRRORROORROOOOORROROROORRRORORRROROOORROROROORROORRORRORRRRRRRROOORRORORROOOOORRRRORRRROROOOOORRROROOOOOOORRRRORORROOORORORORORRRRROROOOROOORROOORRROOOORRROOROOOOROOOROOORORRRORROOORRRRROOORRRROOORORORORROROOORRRORROROOOROORRROOOORRROROORRRRROOROOOORROORORRROROORRRRORRRROROROOORROROORROORROOOOOROORROROOROROOROROROORRRRROORRORRRRRORORRROOOORRRRORRRRRRRRRRORRORRROOROROOOOOOOROOROROORORRRROOOOOROOOOORRRRROROORROOOOROORRROORROORRROOROORROOOOOROOOORORROOOORRRROROROROORRORORRRORRRORRRORRORROOORORRROORROROORRORRRROOROOOOOOORORRROROORROOORRORROOORORORROOOOOORORRRRRROROORRRRRORRRRRRROROROORRORROOROOORORROROORORRRRORRROOROROORROOORORRROROOOOOOOOOOOORROOORROROROOOOROOROROROOORRRRORRROOOORORROORROOORROORRROOROOOOORROOOOROROORRROORRORRORRROOOROOROROOORROOOOOROORORROOOORROORRROORRRRROORROORRROORORRRRRROOOORRRRRORORROROROOORROORORROROOOROOOORRRORRRROROROOROORROOROROOORRRORROOROORRRRROORRROOOROORRRORROOOOORORRRORROOORRROOOORRORRORORORRRROORORROOROOROROROOOOOORORRRRROORROORROORROROOOOORRRORRRRRROOOROOOROOOOOORORORRRRRRORROOORRROROOOOROOORROROOROOOORRRRROOROOOORRRROOORRORRROROROORROORRRRORORRRRROROOROORORROORRORORROORROOROORRRRORRRORRROOOOOROROOOROOORORRORRRRRRRRORRROOORORRROORRRORORROROOROOOOROOROROORORRROORRROOROROROOROROOROROOOROORRORORROOORRROOORORORROORROORRRORROOROOOROORRRRRORORRRORRRROORROROORRROROOOOOOOOOOORORRROROROOOORRRRRORORORRRRORORRRRRROOOORROOROORROOOORROORROOROOOORRRORRRORRROORRRRRRROORRROROROORRORRRRORROOORRORRRROOROROROOORRORRORRRRRRORROOROOROORROORRRROROOROOROOOOROORROOROROOORROROOOOORRROROROOORROORROOORORROORRORRRRRRRRORRROROROOORRRRORROOOOROOROORORRRRRORORRROROOOROOORROOOROORRRRRRRRRRRRRROOORRROOOORRROORROROOROOROORORORORRORORRORROROORROOOOORRRRRRRORORORRRRROOOOORROOROROROORORROOORORRRRRRROOORROROOOOOORROORRRROROOROOOROROROORORORRRORORRORROOOORORRRROORRROROROORRRRORRROORRROOOOORRRORROORROROOROROOROROOOORROROORORRROOROORRRROROROOORRRROROOORORROROROROORRROROOORRRORRRROOOORROORROOROOROOOORROOOOROORRROOOOORRRROORRRROOOOROROROORRORRROOOOOOOORROOOORRROROOORRRRRORROOORRROOORRROOOOOOOROROOOROOOOROROOOROROORRROOOOORORORORRROROOOOORROOORRORRORRROROOOORORROROROROOOROROOOORRORRRROOROOOOORORORORORORRRROORRORRORRORORRRRROROOORROOOOOOOROOOOOOOORRRRRRRROORRRRORORORORRROROOORROROOROROOOOOOORORROROOROORRROORROORRORORORORORROROORROOORROOORRRORRRROROORORROORRRRORRRRRROOROOOORROORRORROROOOROOOOOOOOOORORRORROOOORRRRRROOOORORRRRORORROORRORORRRRRRRRORORORORRRRORORRROORROORORORROROORROROOROOOOROROROORROORORROOROORORRRORRRROROOORROROROOOOOROOORRRRROOOOOORORRORRROORRROROOOOOOOOOORRROOORRRRORROORORRRRRROOORRROOOORRRORRORRROOOOOOOOOOORRRRROORRRRRROOOOOOORRROOROOORRROORORRORROROOORROOOOOOOOORRORROOOOOOORORRROOOOORRRROOOROORROOOORRRRRRORROOOORRORROORRROOROOORRRRRRRROROOORROOOOOOOOOOROOOROORORRORRROOORROROOORRRROORRORRROROORRRORORROROOORORRORRORRRRORROOOROOOOROORROOOORORRORORROROORORROOORRRORROOOORRRRRRRORORRROOOOORRRRRRRRROORRRRORROOOOROORRRROOROROOROROROOOOORROOORROOOOOROROROOORRRRORRROOOOORRRRROORORRRROROOOOOORRRRROOOOOOOOORORRRRRRROOORRRORRORROORRROORRRRORRORRRROOOROROOROOOROOOORROROOROOOROORORRORRROROOORRROOROOORRORRRRORRRRRORRRROOOROOORRORORRRORRRRORORROOOROOOOROROROOROOROORRORRRRORROROOORRRROOORRORORRRORRRRORRROOOORRROROORRORRRRORROOOROOOOROROOOOORRRORROOROORROROROOOORRORORORORRRRORRRORORROOOOORRROORROORRRRRRRORRORORROROROROROOOROROOROOROORRORRRORRRRORRROROROORORORORRROOOOOOOOOOOORROROOORORRRROROOORRROOORRROORRRRRROORORROOORORORRRROORORRROROORORRRROOROROOORORRORRRRORORROOORRORROOORROOROOOORRORRROOOOORRRRRRROORRORRORORORROORRORORORORRORRRORRRORRROOOROORRRRRROROOOOOORROOROOOOORRROOORORRORRRRROROROORRORORRRRRORORROORRRRRRRRORROOORORRROROORROOROOOOOOOOORRRRROROOORRROROROOOROOORRRORRRRRRRROROOROORROORRRROOOROOOROOROORROORRRRRORROOOOOORRROOOROOOORROROOOOOOOORRROOOORROROOOORRRROROOORRRRRRORROOORRORROOORROORORROOOORRORRRRROOORRRRROROORRRORROORORRORRORRORORRORROORRROOOROOORORROOROROOOOOOOROORRRROOORORORROOORRORORORORRROORORROOOOORORRROOORRRROOOORROOOOOROOORRRORRORROROOROOORRRORRROOOORRORROORORROORRRRROORRRORROROROORRORRRROROOROORRORORROOROORRORORRRRRROROROOOROOROORORORRRRRRRRRORROOOOROROOORROROOORRORORRORROOOOORORRROOOROROOOROORROORRROROROOOORRORORRORRROORRORORRORRRORORORROROOORORROROORRROOROROOORORRRRROORORRRORROOOROOORORORORROROOROOOORROROORROORRROORORRORORRRORORRORRROOROOOOROOOROORRRRORROOORROORORORROOOROROOOOROORRRRROOOOOROROOOOORORRRRROOOOOROOROOOOORROORORRROROOORROOORORRRORROOOROOOORROROORRRORRRRRRORRORROOOROORRRROORRRRROROOROOORROORROOOORRORROOROORRROROORRRORROORORORROOOROOOORORROORRRORORROOORRROOROROOORROOOOORRRROORROROOROORORRRROORROOOORRORRROOROOOOROROOOROORRRRRROOOORRRRROROOORROORRRRROOOORORROOOROORRRRROOOOORRORROOOORROORORRROOOOOOOORRROOROOOORRROROROOOROOOOORRRRRORRRROROROORROROOOROORRROOOOROOOOROOOOROOROOOORRRRORRRROOOOORRRRRROOORRRROOOROOOROOROORROOROORORROORORROORRROOOORRROORRRORRRRORORROOROROOROORRRRRRRRRRRORRRRRRORRRRRRRROOOROROOROORROOOOOORORORRRRORROOORRRROROROORORRRROROORORROORRROORORORRROOOORROOROOOROOROROOROORRRROORORORORROORRRRRROOOORORRRRRRROORROOROOORROROORORORRRORRORRRROOROOOORORRORRRORORRRRRORRORRORORRROOOORRORRORORRORROROORROROOOROOOOROORRORRRRRRORRORORRRRROOOOORORRROOROOROOROORORRRRRRRRRROOOORORRROOORORRROORROOOOOORROROOOOORORRRORRRRRRROORRROROORORROOOROOOOOOROORRRORORRRRRROOROORROORRROOOROOOOOOROOROOROORROOROOOROORRROROROROOORRORORORRROORRRORORROROOORROOORRORRRRORROOOOOORORROOROROORORROROORRORROORROOOOOORRRRORRROOOORORRRROROOOOORRORORRROROORRROOORRRRRRORORRRRROORRORRRORRORROOROORORRRRRORROOORORORRRORRRRROORROROOOROOOROROORROOROOORORRRORRROOORROOORORRRORORROROOROORORRORORROROOORRRROOORROORRRROORRRORRRRRRORORRORRRRORRRRRORRRRROROORROORROOOOROOOOOOOOOORROORRRROOROROOORRROOOOROROROORROOOOOOOORORROROOROOOORORRORORROORRROOOROROROOOOOORORRRRROROOOOROORROOORRRROORRROROORROROOROROOORRROOOROORORRORORRRRROOOOORORRORRORORROORROOOOROOOROROOOROORORROOROORRRORORORROROOORRRORRRRORROOORRORRRRORORORRROORORRORROOORRRORORROOROORORROORROOROORRRRORROOORRORORORRRORORROORROOROORRROOORROORROOOOORRRRROOROROROOROOOOROOROORRROROOROORROORORROORRRROOOROROOOOOORROORORORRRORORRRORORRROROROOOROROOROOOOOOROOOOORRRRRRORROROORROROOORRROOORRRRORRRRRRORRRROOORROOORROROOOROOROOROORORRROOORROOOOROOROROORRRRORRRORRROROROOROROROROOOORRRRORROORRORRRRORROROOOOROROOOOOORRRROORRROROOROOORRROOOOORRORORRRRROOROROROORRROROORRROROOOOROORROROOOOOORROORROORORRRROOORRRORRRRRRROOOROOOOOROORORROORRRRROROROORORORRROOOORRRRORRRRRRRROOOROROOOORORROORRORRORORROROOORRRRRROOORRRRRORROOOROOOOORORORRORROROOORORROORROROOORRRORORORRRRORORORRRROOROOOORRRRRRRRRRORROROOORRRRRRORROOORROOROOROORROORRROORROORRRRRORRRROORORORROOOROOOROORRROROOOROORORORORORRROOORORRROORRROOOROOORROOROOOOORROORRORRRORROOOOOORRORRROORRRORRRORRRRROROOORORRRRROOROROOROOOOORORORRRROOORRRRRRROOOOORRRROOOOOOOROOROORRORROOOORRRORORROOORRROOOROOORORORRROOOORROROORRROROORRRRORROORRORRRRRRRRORORROROOOROROROORORRORRRRRRRRROROORRROOOROOOOORORROOROOOROOROOORRORRORROOORRRRORRRROOOROOORRROOOROOOOORRORROROROORROORRROROROROROROORROORRROORRORRRRRRROOOORORROORRORORROROOOOROOROORROOORROORRRRROROOOOORRRRRROROORORRORRRORROORROOORROOROORORROOOROOOROOOOOOROOROORORORORROOORRRRRORRROOOORRRRROOROORORROOORORRRRORROOOORROOROROOORORRRRROROOOOOROOROOOOORROOORRRRRORROROOROROROORORORORRROOOOOOOOROOOROORROORRRROROOROORRROORRROORORRRORROOROROORRRRRRRRRORRRRROROOROORORROORRRROOOOOOOOOORORRRROOORROORORROORRROOORRRRORRRRRRROROORORORROROOROOOROOOOOOOOOORORROORROORRRRORROOOORORRROOOROOROOOOROROORRRRRROORROOOOORORORROOORROOOOROOROOORROOORROORROOROROORRROOORRRRROOROROORORORROORRROORORRRORORROOROORORORRRRRORRRROOROOROORROOOROOOORORROOOOROOROORORORORRROOORRRORRORORORRROORRRRORRORRRRROORRRORRRROOROORRRRROOROOOOOOOOOOOOOOOOOOOROROOORROOOORROROROOORRROOOOOORORROROORORORROORRRROORRRROOORROROOOOORORRRRROROOROOOOOOOROROOOORORORRRRRRRROROORRRRROOOORRRROORRORRORROOORROOORRORRROORRORRORROORROORRRORRORROROORRRORRORRRROOROOORRORORORROORRRRROORORORROOROROROOROORROROORRORRROORRRRROOROOROROORRORROROORROROOOOOOOOORRROROROORRRRRRROOROOORRROORRRORRORRRRRORRRRRROOOORRROROROOORROROOOOOOOOOOROOORRRROOOORROOOOORORRROOOROROOORROORRROOOOORRROOOOOOOOROOOOOROORRRORRRRRRORRRRROOORRRRORROORRROROROOROORRRORROOOROOOROORRRRRROROOOORRRROROORROOORORRRORROORORRORRRRRRROOROORROORROORRORORROORRORROOROROOOORORORROORORROORRRRROORRRRORROROOOOROOOROOOORRORRORORRORRROROOORRRORORRROOOOOROORORROOORRRROORROROORORROORRORRRROOOORRORROROORRRORRRRROORRROROOORRRRROOROOORORRRRRRROROORRRROROORROOOROROOOROOROROOOORROROOOORRORRRRRRRROORROOOORRRORRROOORROORRORRORROORROOORRORRRORRRRORRRORRRORROOOOOORRROROORORRORRROOOROOORRORORORRORRRRRRRORROOOORRRRORORRRROOOOOROOOOOOOOOORRRORRRORRRRROROROROOORRRROOOOROOORROROOROORROORROORRRRRRROOORRRORRROOROOOROOOROOOOOORROROROOROROROROOORROROOROROROORORROOOROOORORRROROOOOORORRRRROOOROROOORRROOROOOORROOOORORORRROORRROOOROOORORRRRRRORRRROROORRRRRORRRORRROROOROOOOROOOOOOORROORORROROORORORROOORRROROOORRORORRRRRROOOORRRRRROORRORRROOOORORORRORRRRRRRRRORRROOROORORORORROORORRRORROORORRRROOORRORROROORRRROROOOOORRORROROOOROOOOORRRORROOORROOORRRRRROROROORROOOOOOORORORROORRRRRRROORRRORROOORROOOORRRRRORRORRRRROOROOOOORROROROROORORORROORRORRROOROROROROOOOOORRROROORRORRRROORROORROOROOORROORORORROROROORRRRROORRORRRORROOOORRRRRRRORORROOOORRRROROOOORRROORORRORRRRROROROORROOOOROROOROROOROOOOOROOOROOOROOORORRRROORROOOOORORRORORRROORROOOROOROOOOOROORROORORRORROORROOOROORORORRRROOROOOOROROORORRORORRROROROORRROORRRROOOOROROORRORORRRRRRRORROOORORROOORORROROOOOROOOROORORRROOROORRRRRRROORRRROOORROROOOOOOOORRRRRORROOOROOROROOOOROORRROOOROOORORRROOOOOOOROOORRROOROROOORROORROORRRROOORRROOOROROOROOOOOORRRROOOOOORORRORRRORRROORORORORRORRROOOORORRROORORROROORROORORRRROORRROOROORRRROOROOORRROORROOORRRRRROORRORRORORRRRRRRRRORROOOOOOORRRORRRORROORRRRRRRRRRROORRROROOROOROOOOOORRORROOOOOOORROOROOOROROOOOORRRRROOORRROOORROROOORROOROROROOROOORRRRRRORORRRROOOOORROORROROROROROOROORORRORRROOOROOOORORRRROROOORROORRORRORRRORRROOOORRORROORRRRRORRRORRORROORRRROOOROORRRORRRROOROORROORRRRRRRRRORROOROOROORORORRORRRORRORORRORRORORRROROORRORROOROOORROROOOROORORRORRROORORRRROROOROOORRRORORRRROOROOORRRRRRRROROOORRORRRROROORRRROROORRORRRROROROOROORORORORROOOROROORROORRRROOROOORRRRORORORORRRROOORRRRRROROOOOROORRROORRRORRORRROROOROROOORRRRROORRRORRORRRORRRRROORRORRORROORORRORROROOROOROORORRRRORRRROROOOORROROOOOOORRRORRORRORRRRRORRROOROORORRRRORROOROROOOOOOORRRROOOOORRRORROOROROOROROROOROOROOORROOOOOROOORORRRORORRROORRRROORROOORROROROOROORORRORRROROORRRRROORROORROROOOORROROORRRROOROOORRRRRROORRORRRORORRRORRORORROOOOORORRRORRRRRROROORRRRRORROOORRRRRORROOOOOOROOROROOOOORRORORRORRRORRROORRORRRROROROOOROORROROROOOORROORORRORRRORRRORRRORRROORROROORRRRROROORRRRROOROOOROROORORRROROORORRRRORROOOOOOROOROROOOORORRROOORORRRRRROROOOORROORRROORROOOORROOROROORROOORRORRRRROORORORORROORRRRORROOOORORROOORRRRORORORROORORRRRROOOROOORRRORRORORROORRROROOOOOOOOOORRRRRROOROOROOOROOOORRRORRROOOROOORROOORRRROROROOOROOOROORRRROOOROOOOROOOOOOOORRROOOROOOOOOORRORRRROOORROOORRORRRORRROOORROOOROOROROORORRRRRRROROOOORRRROOOROOORROOOOOOOOOROOORRROORORRRORROOOOORROROROORORORRRROOROOOOOORRROOORORROOOROORROORRRRROOOORRORRRORRORRRORRROROROORROOOORROOOROROORRROROORRROORRRORRRRORRRORRORRRRRROORRORRROOOOROORORRRORROOROORRRRORRRROOORRRRORRORROOROOOOROOROOOORROOOROORORROOOORRROOORRRRROORROROROOORRRRROROORRORORROORRRRROORRROROORROROORRRRORORROOOOOOORROORROROORROORORROOROORRROORRRROOOOOROROOROORRORRRROROORRRROROROROROORRRROOORROROROOOROORRRROROOROROOOOORORRORRRROOOOOROOOOROROOORRRORROORRRRRORRROOORORORRRORRRRROOROROORRROOROORROROOORROOROORRROROORORROOOORROROORORROROOOROOORRROROORRRORROOOOOOROOOORROROROORRRRORRRROROOORRRORRROORORRROROOROROORORROOOOOOOROORROROORORRRRRORROROOROROROROOOOOOROROOORRORRORRRRROOOORORORORORROORORROROOOROOROOORRROORRROROOROROROOOORRROOROROOORORORROOROOORORRROOROORRRRRRROORROOROORRROORROROROOORORRRRRRORROOORORRORORROORROOOROOROORROOROOOROROOOORORORRRORORORROOOORROOORRROOORRORROROORORRRORORORORORORRROOOOROORRROORRORORRRORORRRROROOOROORRRORRRORORRROORROORORRRRORRROOROOOORRRROROOOROOOOORORROOROOORRRROOROORRROOOOOORRRRORORROROOROOROORRROORRRRROOROOORRROROOOROORRRORROOORRRRROOROROORORROOROOOOOOROOROOROOROROOOOOORROROORORORORORROOOORROORROROROORRRROROORORRROROROROOORROOROOORRORROOOROROOORRRROOOORROROOOOROOORORORORRROORORROORROROOORRRRROORRROROOOORRORROOOOOOORROROOROOOOOORRROOOOORORRROOOROOOROROOORORRRRROOORRRORRORRRRROOOOOOORROORORROOORORORROORORRROROOOOROOOOROORRRROORRRROOROOOOOORRROROOOROROOOOOROOROOORRRROOORROROOORRROOOORORRRRROOOOORORORROORORROORORORRRRRRRROROOOORROORRROOOOORORRRRRORROOROOORRORRROORRRROOOOROOROOOOOORORORRRORRORORRORORORRROOORRROOORORRORRROORRORROORROORRRORRROROOOOOOROOOOOOROORRRROOOOOROORROOOOORROROROROOOOOOORRROOOORRRRROOOROOOORORROROROROORORORRORROROROROROOROORROOROOORORORROORORORRRRROROOORROROOOORORRRORORRROOOOROOOORRROROORRROROORRRROOORRROORROORORRRRRORROOOOOOOORRRORROORRROORRORORRRRORRROOORROROROORRORRROROOOROORORRORORROOORRROOROORROORRROROOOOOORROORRRORROOOOOROOROOROOOORRROOROROOOOOOOROORROOOORRRROOOOOOOROROORRROOROROORROORORROOORORORRORORROROOROOORRROOROORROOORORROOROOORRROROORRORORRRRROOORORROOROROROOORRRORRRRRORROROROOOORRRROOORROOROORORROROORRORRROOOOOOOOROORRROOOOROOOOORROORROOOROOORRROOROOORRRRRROOOOORROROOROROOROORROOOOROOROORORORORROOOOOORROOOOOROROOROOOROROOOROOORROOOOORORRROOORROOORROOORROOOROOOORORRRORRROORORROORRRORRROORRRRORORROOOOOROOROOOROORRORRROOROORORRROOORROOOOOORORORORRORRROOOOOOOORRROROROOOROOOOOROOOROROOORROOOOOOROROROROOORRRROROOOORRORRROOORRROOORROOOOOOOOOORROROOOOROOORORROOOOOOROROROROORRRROOOROROOOOOORROOORORRROORRRRRROORRROOORRROOROROORRORRRRROROOOROOROROROOOROOROOORORRRORRROOOROROROOORROOORROOOROORROOROOOOOORORRORROROROORRRRRROORRRRORRROOORROORORRRRROORROORRRRRRRORRRORORRRORRRRRRRROORRRRRRRRRRROORROOROOROORORRRRRORROROOROOROROOORROOROROORORROROORROOOOORRROORRRROORORRRRORROROROORRROOROROOROORORORRORRROROOORRRROROROORRRRROOOOROROOROROORROROOOORRROROOOORRRRRORORRROOOORROOOORROOOOROROOROORROORRROOORORRROOOORROORRROORROORRRRRRRRRRORRROOOOOOROOROROORRRROOROOROOOOOOOOORRRORORRRRORRRRROORROORRRORORORROOOOROOOOROOROOOOORRRRRRORROOROROROROROROROOOROROORROORROROOORORROROOOORORROROOORROOORORRROORORRRROORRRORRRROROOROROOOOOOOOOROOROROOROOROORROOOORORORROOORROOOORORROROOORORROOOOOROORROOROROOOOROOROROOOOOORRROORRORRROROOORROORROOORRROOOOROOORORRRRRRRORRROORORORORRROOROOOOOROORROOROORORROORRRORRRRRROOORRORORROORRRRORRROORORORRORRROOOOOOROOOROORORRRROOOOOROROORORRROOOORRORORROOROOORRROROOORRORROOOOOOOROOROROOOOROOORRRROORRORROOORRRROORROROROOORRRRORRRRRORRROORORRROOROOOORROROOOROOROOOORRROROOOOOROROROORROOOROROOOOOROORROORRROROOOORRRORORROORRROOORRORRORROOOORRROORRORROOOOORROOROROOOOROOOROORRROROOOORRROROROORRROORORORRRROORROROROOOOROROOROORRRRROORORRROORROOORRROOORRRROOROROOORRRRROOOORROOROORRRRRORORRORORORRRROORRRROOOOOROOROROOORRRROOROORRROROORROOOROOOOROOROOROOOROOROORROOROOOROOORRRRRORORRRRROOOOOROOOOORRRROOOORORROROOOOOORORORROOOROOROOROROOOOORRRROOORRRRORRRROROROROOOORRRROOROOOOROOOOROOOORORRROOORRRORRRORRROOORRROROROOROOROROOOOOROOROORORORRORORROOOORRORORORORRROROROORRORRRORRROOORORRRROROOROROORRRRRORROOROORRRRRRRRROOORORRRORROROORORORRRRRRRRRROROROOOOOROORROOOOORRORRORROORORRRROOORROOORRROOOROOOOORROOOOROORORORRORRRRRROOORORORORRROOORRRRORRROORORRORORROORORRORRRRRRRROROORRRRORRROOROORORROORRORRROROOOROOROROORRROOOOROORRORRRRRORORROOOORRRORROOOORRROROOROORORRRRROORRORORROORORROOROROOORORRORRROORORRRRRROROROROOOORRRRORRRRRROORROROOOORORRRROOOROORORRORROOORORORORORORROOROROORRRORROROROROORROOORORROOOORRRRRRRORRROOORRRORRRROROOOOORROROOROORRRROOOOOOORROROROOORROOORRORORRORORRRROROORROOROROORORROROORORORORROROOOOOOROROOOORROROROORROORROROORORORROOROOOROROOOORROROOOOROORORRRRRRRROORORRROOROROOORROORROORORRRRRROORRORRRRRORROOROROORRORROOROORROORROROOOROOOOOOOORROOROROOOOROROORRRORORORORORRRORRRROOROROOROROOROORRORRRRRORRRRRROROOORRRRORORROOOOROROORRRRRROROORRRRRRRORORRROORRRRORRORROROORRORROORORROROORROROOOOOROROOORORRRROOOOOORRROROORRROORORRROOROORORRROOOROOOROROORRROROOROROROORRORRRORRROOOOORRORORRRORRRRROORRRORRRRRORRROOROOOROOOOROOROROOROROOOOOROORRORRROROOOROROOORROROOORROORROROROORROOOORROOOOOORRROORRRRROOOROROORRRRORRORRROOROROOROORRROORROOOORROORRRRRRROROORRRORRORRRORORRORRRRRRROROOROROOOOOORRORORRROROORROORRROOOORORRRROOROORRORORORROROROORRROOOOOOOOROOOROROROROORRROOOOOOOORRROOOOORRORRORRRROOROOORRRROROOROORRROORROROOROOOOOOROOOOORORRROORROOOORRRORROORROORRROORRORROROORRROOROOROROOROROOROOOOORROORRRRROOOOROOROROOOOROOORROOOORROROORRROORROROOORORRRORRROOOROOOORRORRRRROOORRROOOOOROORRROROOOROOORORRROOOOOORORRROORORRORRRRROOROOROOORRRROOOROOORORRROOROORORRRORRRORRRRROORROORROORORRROOOOORORROORROORRRRROOORRRROROROROROOOOOOOROROOOOOOORRORRORRRRORORROOORRRROOORROOORORORRRROORROORORROOROORRORRRRRROROOROOORORROROORRRORROROOOOOOOOORROOROROORROORRRRORRRROOOROROROOROORROROORRRRRROOROOOOOROROORRRROOOOROROOORROROOORRROOROOORORRROROORRORORRORRROOOOOROROROORORRORORROORRRRRRORORORRROROROOROORROORORORRORROOORRRORRRRRROORRRRROORRORRROOROROORRRRRORRORORRORORROOOOOOORRROOOOORRRORRRRRROOORROOORORRRORRROOOOOOORROOROOOOROOOORRRRRRORROOOOROROORORORRRORRRRORROORORROROROROOOORROOOOORROORRORORRROROOORROOOOROORRROROOOROROOOROROOOROORROOOOOOOOOOORRORRORORRORORROOOORRROROROORRRROOOOROROOOORROOOOROOROOROOOOOORROOOORRROOROOORORRRRROORORORRORRROROORRROROOOORRORRRRORORRORORROORRORRORROORRORRORROORRORROORRROROROORORORROORORRORORRORRRRRRRROORROROOOOOORORRORRRROORORRRRORORROOORRROOOORRRORRRROOROOOORROOROORROROORRRRRRRRORRROOOORRORORROOROOORROOROOOORRORROORROROOROROORRROORRRRROOOOOORRRORRORORRRROOOROROOOORORORROOROOOOOROROROOORROROROROOOROORRORORORRROROOORORORRROORROORRRRRORORRORRRRORROORRORRROROROORRRROROORROROROORORROORRRORORRRRRROOOROOORRRROORRORRRRRRRRORRRRRROROROOOOOORRRROOOOOOOROOOORORRROROOORROOOOROOORRRRROROROOROOOORORROORRRROROROROORORRROOOORRROORROOOOOOORROROOOOOROOORRRROORRRRROOORRORROOORRROOOORRORROOORRORRRRROROOORRRRRRROOOOORORROOROOROORORORORROROORORRROOROORROROROROORRRROROORRROOOOORROORROORROOOROOROORRRORROOORRROORRORRRRROROOORRRRRRROOORRROOORROROOROOOROROROOOOOOORRROOORRRRRORORORORROROOOORRRRRORRROOROORORRRRORRORORRROOOROORRORRORRRORRRORRRORROOROROROORRORORORROOOROOOORORRORROORORORRORRRROOROROOOORROOOOOOORROORRRRORORRROROOORRRRROROOORROOROORORROOROOOOORRORORRRRROORRROROORRORORRROOORORROORRORROOROOROOOOORRORROOROROORORROOROROOORORORRORRRRRORRRRROROORROROOOROOROOROROOROROORROROOOOOORORORORROROOOOROOROROORORRROOROOOORRROROOOORROOOOROORRRRRROORRRRRRRRORRROOOORRRROOOOOOOOORRRORROORORROOORRRORROOORROOORRROROORRRROOROROORORROOROORRRRROROOOOROORRROORRORROOOOORROROOOROROROOOORROOORORROROOOROORRROOROOROOOOROOORROROROOORRRRORRROORRRRROROOORORRRRORORRRRRRRRRROORROOROOORROORORRORRORRRRRRRRRRORRROROROROROOOORRRRRRRRORRORROOROOROORROORRORRORRORROROOROORRROROOOROROORRRRROORRORORRRROOOOOROROOOROROORORRRORRROOROOORRROOROROROOOOORRRRROOOORROROROOOORROORROORROOOOOOORORROROOOOORRROORRORRORRROOOOOROROOOORROROORRROROOROROORROOOROORRROROOOOOROOOOORROORRRROOOROROOORROORRROROROROORRRROORRRORRRROORRRORROORROROROORRROOROORRORROOROOOOORROROOOOOOOOOOROROOROORRRROOORRORRROOORRROOOROOOORORRRRRRORROROORORRORROORORORORRRRRRROOOOORORORROROORROROORORRRROROOOROROOROORORRRRROOORRORRORRRRORROORRRRRORORRRROOOROOOOOROOOROORRRROROORORRRRROOOOORRRORRRORORRRRROOOROOROOOORRROOROROOROOROORORRRORRRORORORRRROORROOOORROORORRRRORROOORORRORRRRRROOOOORRORRORRRORRROORRRRORRORRORORORROOROOROOOOOOROOROOOOORROORRROORRROROOOROORROORRROOOOROROOOORRROROORRRROORROOROOORORRRORRRORROORRRROOORROROORRRROOROROOROORORRRORRROORROOORORROORRRRORROORRORRROORRRORORROORROOROORRORORRRRORRROORRROOROOOOORROOOOROOOOOOORRRROOOOOROOORRROORRROORRRRROOOROOROROROOORROORRRRRRROOROORORROROOOROOOROROROOOOROORORRROOORORRRRORORROORRRORORRRORORRROOOORROORROOOORROORROORORROOROOOOOOOORROORRRORROOOORRRORRRRRROOORRROOORRORRROROROOORORROOROORRRRORRRORRRORORRRRROORRRROOORROORORRORRRRROROORROROORROOORRRROORRORRORROOOORRORORRRRROOOOOOORROOORORROOORRRRRRORRRRRORROOORRRROORRRROORORRORRRRORRORROOROOROOOROORRRRRORRRRRRROOROOORROOOOROROROOROORRORROORORORORORRROROROOOORRRORROOOOORORRORROORROORROOORROORROOORRRORRRRORRRRRRORRROOORROOROROOROOROORRRRROROORORRROORORORROOORORRRRRRRROOOROOOOOORRRROOROOORORROOROOOORRRROOORROOOOORROOOROROOORRROORRORRORROROROROORRRROORRORRORORROOORRORROOROORROROOORROORORRORORRRRRORRROOORORROOOOOOROOROROROORORRRRORRRRRORRROROROROOROOOORROOROOOROOROOOORRRROOOORROOORROOOROOOROOORROOROOROOORRRORORRRROORORROROOROROOOORRRORROOROROORRRROOROOOROORRROOROOROROORROOOORROOORRRORORROOOOORRORROOOORROORORRRRRRROOROROOOOORROROROORRRORORROROORRROORRRRORRRORORRRRRRRRORORRROORORORRRRRRRROROORRRRRRORRRRRRROROOOOROOROORORORRORORRRRRRRORRRRRROOROORRRROROROORROOROORORRRORROOOORROOOORORRROORRRROORORROORORRROROROROROORROOROOOOOORORORRRRRROOOORORROOOORRORRROORORRRRRRRORORRRRORORORORRORROOOOROORORROORRORRORRRRRRRROOROROOROROOROOORORORROROORORROOOORRRORORORROOOOROORRRROOOROOOROROORROORRORORROROROORORORROROOOORROOOROOOROORRROROORROOORROORRORRROOOORROOROORROOOOOOOROOOROOOROROROROOORORROOORRORORRROROOOROORROOOROROROORRRRRORROOROOORRROOROORROOOROROORRRRORROOORRRROROROROOOORROOROOROORROOOOROOROROROROROROORORRRORORROROOOORRRROORROORROROOOOOOOOROROOORROOOOORROROORORRRROOORRORRORORRROOORRORROOOORORROORORRRRRORROOROROOORROOORRRORRORRRRORROOOORROORROORORORRRRRROOROORROORRRORRORROORRRROROOOORRRROOORRRRRRORRRRRRORROOORROOOOOOORRRRRRRRRRRRROORRORRRRRROOORRRORRRORROROOOORRRRRRORRORORORROOOROOORRRRORORROORROORORORRRORRRRROOOOOORROOOOORROOOORRROROROOROOORROROOROROROORRRRRORRRRORORRROOOOROOOORROROROROORRORRORRORROROROROROOROROORROOOOOROOOOORRORROROORRRORROOOOORORORRRRRRORRORRROOOOOORROOORROROOORRRRRRORRRORRROOOOOOORRROROOROOROOROOOOORRORRRROOORRORORORROOOORROOORORROOOROOOORROORRROORRROOOORRROOROOOROROROOROOOOORROOORRROORORROOORRRRORROOORRRORORORRRROORROROROOROORROOOROOORORRORRORORROOORORORRRRRROORRROROORROROOOORRRORROOROOROOORROROOROORRORRRORRRORRRORRRRORORRRROORRROOOOOOROORRORRRRRRRRRORRORRRORRROOORROOORORRRROROOROORRRORORRORROORORROROOOORRROORRRORORRRROOROROOROOORORORRORORORORRRRORRRORORORRRROROOOORRROOOORORROOROOOORORRORRROORROROOORROROORRRROOOROORORRROOOORROOOROOOORRORROOOROROORRRROOOROROROOOOOROOORRROOOORRRRRRROROOOORROROROROROORRORORRORRROROOOOROORRORRRROOOOOORORRORROROOORORORROROORROOOORRRRROROOOOORRROOOROOOOROORROOOORRRROROROROROOORROROROROORRRROOROORRROROROOOOROOOOOROOOROOROOOOROOOOOOROORRRROORORRROOROORRRORRROOORORORRORROORRRRRORRROROOOOORROOORORRORRROOROOOOOOOORORORORRROROOOOOOOOOROOORRROOOOOROROOOOORORROOOROOOORROROORROORORRROORRRORRRRORORORRROOOOOORROORRRRORROOOOROORRORRRRROOORRORRRRRRROROORRRROOROOROORORORRRORRRRRROOORROROOORORORORRORRORRORROORORORRROROROOROORRORORRORRRORORRRRRORRRROOOROROOROOROROORORORRORROORORRROOORORORORRRRORORRRROOROORRRRROORROORRORRORORRRRORRROOOROOOORRRRROOROOROROROORORRRRRORRROOOOOOOORORORRRROOOOOOORORRRRRROROOORROROOOOOORORORRROROOROOROORRRRRRORRROOOOOROOROOROOOORORRRRRRROROOROOROROOORRORRROORORRORRRROOORROROOOOOROORRORRRRRRRROOOOORRRRORRROORRRORROOOORORROROROOROORRRRRORRORRRRRORORRRRRROORRRRRRORROROORRRRRROORRRRORROORORRRRRORORRRROOROORROOOOOROROORRORROOOORRORRRORRORRROOOOOROROOOROOORORROROORROROOOOORRRROORRROOOORRROROOOROROROROOOOOOORRRORORRRRRRORORRORRRROOORRRRRRRRROOOOORROROORROORORROOOOOOOOORROOOOOROOOORRORROROORRROROOOOROORORORRROOOOOORORROOOOOROROOORRRROROORORORROORROROROOORRROOOORROORROOOORROOOOROROOOROOOOORRRRRRRORORRRRRRROORROOROROROROORRRORRRRORRORRORRORRRRROROROOORROROOROROOROOORROORORRROROOOOORORRRROORRRROOORORORRORROOORRROROROORRRRRRRRRRROROORORRRORRORRRRROORORRORRORROROOOORORRRRRRRRRRRORRRRROROOOORORORRORRORRRRRRROOOOOOOROOORRRROORROOROOROOOOOORROORRRROROORORRRRROORRRROOOOOOOOROOROORORORRORRORRORRORROROROROOOOOOROROORORRORROORRROROOOOROOOORRRRRROOOROORORORROOOORRRRRROOOOROOROOORORRORRORRRORRRRRRORORORRRORRRORRRRORRRROOROOROORRROOOOORRRROOROOOROOORRRROORORRORORRRRRRRROORROOORORRORROORRORORORRORRRRROORRRROOOOORORORROOOOOROOROOROOORROORRROOOOROORRRROOOOROOORORROORRRROROROROOOOOROROOORROORRRROORROROOOORRROORROORORROROROOROOORORRRORORRROORROORRRROROOOOROROOOROOOOROOROORORRORRRORORRRRORRROROROOOOROROROORRORRRRRORROOOOOROOOORRRRORROOOOOOORORRRRRRROOORORORRORORROROROROOROOROOOOOROORROORRRROORROORRORORORRRRORORORRORRORROOOOORROOOOROROROOOOROROROORRORORRRORRROORROROOORRRRRRORORROORRORRRORORROROOOROORORRRORORROOOOOORORRROROOOOOORRRORROROORORORORRORRRRORROROROORORORROOOOROROROOROOROORORRRRROROROORRROOORRRROORRRROOOOOOOOOOROOORORORORRORRROOROORORORRRROORRROOOOROORORRROOOORROOORROORRRROOORRORRRRORROOOROOOROROOOROORORORRRORRORORROOOORORORRROORROROORORRORRROORORRORRRROROOOROOORROROORROROROORROORROROOOORRROORORRROROORROROORORROORRRRORRROORRROOOORRRRRROORRRROORRRRORRORRRRROOORORRORROOROOROOOOOORORRORRRROOOOOORROROOOORORORORRORROOROORROORRORRRRROOOROOOORROOROOOOROOOROORRORRORROORRROOROOROROORORORRRORRRROROOOROOORROROOORRRRRRORRRRRRROORRROROROROORRRORORRORROOROORRRRRRRRORRRROORRROROOORROOOOOROOOOOORORRRORORROROROOOOORORORRROORRORRORRRROOROOOOORRROROOOOROROOOROOROOROROOOOORRORRORRROORORRRORRRROOOOORROOOOOORRRRRRROOOOOOROORROOOROORROROROORORRORRROOORRORROORROOOOORORORROORRORROOOOOORORORROOORORORRRORORROOROOOORORRRROORRROROOORROOROOOROORROORRORRROORORROOOOOORRRORORORROOOOORORRROOOOORORORRROROOOOROOOORRROOROORRROORRRRORRRROOOOORRROORRRORORRRRRORROROOROORRROOOOORRORRRORRORROOOROOORRORROROOORRRORROROOOOOORORRRRRRRORRROOORORRRRORRROOOOORRORRORROOOORRRORROORORRRRRORORRORROOOOORRRRROROOOROORRORRRROORROOORRROROROOOORRRROOROROOOORRRROOOOOROOOORRROORROOOROROROROOROROOORORRRORROROOROOOORORRRROOOOORROOOOOOOOOROOROROOOOROOOOORRRRORORORORORORRRRORORORORORRRRRRROROOORROOOOOOOORRROORRRRRRRRROOROROORRRROOOROOROOORRORRORRROOOOOORRRRRROROOORRRRORROORRORRRROOOOROOROOROROROOROOOORROROOOROROROOORROORRROOOOORRRORRRRROOROROOOOOROROOROROROOROOOORORROORROOOORROORRRORORRROOROROOROOOOOORRROOORROOOROROORRRROORROOORRROOOORRRORRROROOORRRORORRROROORRROOOROROOROORRRRRRROOOOOOROOOROOOROOOORROOOOORORROOOOOOROROORRRRROOORRROOOOOORORRROOOROOOOROORORROOROORROOORORROORRRRROOOOORRRRRORRROROROROOOORROORRORORORROOOORORORRRORRROOOOOORROORROOORORORRRROROOOOROROOOORROOOOOORROORRRORRRRORRRRORORRRRROOOROROOORROROOOORROROOOOOROOROOROOOORROORROORRORORRRROOOOORRROROOOOOORRRRRORRRROOROORORORRORRORORORROOROOORORROOORROORRORRRRORORORRROROROOOORRROORRRRRRORRORROROORORRRROROORROOOROOROOOROORORRROROORROORRRRRROORRORORROROOOOORROOOOOROOROOOORRORORRRROROOORRORROOORORROROROROORRORRORRRORROOROROOOROOOORROROROOOORRORRRRRRRROROROORRROORROORROOROOOOORRORROORRRRORRROORRORROOROROOOOOOROORRRRRRRRRRRRRRORRRORROROOORROOROORRRRRRRRRRRROOORRORROOOROORROOOOOOOORRORRRORORROOROOORORROROOOORORROROOOORORRORROOORRRRRRROOOROROOOOOORROOORROROROOROOROORRORROOOOORROOOOROOOOOORRRRRROORRRORRROOOROOORROROROROROORORORROOOOOROROOORROROOROORROORORRRORRRROORROOORROORRORORORORRRORRRRRRRRORRRRRRROORRROORROOROOOORORRORRROOROORORRORRRROROROORRRRRRROOORRRROOOROOORORRRROOOROROOROOORRORRROOOOOROOOOOROROOOROROOORRRORRORROOORORORORROROROOOORROORORROOROROORROOOOOORROROROOOORROORRRORRRRORRRROOOOOOROORRROOROOOOOOOOOOOROROOORORRRROOOROROORRROORROOORRORORROOROROOOROORRRROORRORORRRROROOROOORORORRROROROROORRORRORORRRROOORRRRORRRRROROOOROOROOOORRROROROOROOROOROOOOORROOOOOOOROORROOORROOOORRORRROORRRROROROORRRROOOORORORRRRRRRROOROOOORRRORROROORROORROOROORROOOOORORROOOOOOOOROOORRORORORRORRROORRORORRRROROOORRRROROOORRORROOORRRROORROORRRORROOROROORORROORRORORORROOROOROOORROROROORORORRRRROROORORRROOORRROORROOOOROOROORORROOOROORRRRRRROOROOOOROROORRRORRROORROOROOOROROORRROOOORROOROOOOORROOOROROOOORROORRRORROOORROORROROOOORORORRORORRRRORORORRROOROORORORRROORORRRORROORRORORRRORRRROROOROROOOROROORRROOOOROOROOROOORROROORROROOOROORRROOROROROOOROORRROORORRROORORROOROOOOROORROORRORORROOROROROORORRRROORRRROROORROOOORRORRRRROROROORRRROOOROROOORRROORRORROROOOORROOORRROROOORRORRRORRROROOOOOOOORRRRRROROOOOORRRRORRROROORRROROORRROROORROOROORRORROROROOOOROROOROROOROOORORRORORORRRROOORORRRRORRROROROORROORROOROOORRRROOORORROROROOOROORORRROORORROROOORORRORRRROOOOOOORORRROROOOOORROROORRORROOOORRRRROROOOOORRRORRRRORROOROOORRRORROORRROROOROROOOORORORRROROORRORORRROORRRRRROOOORROOOORROOROOOORRORORROROOOROROOORRRRRROORORRRORROORRROORROOROROOROOORORRRORRRRROOOORRRRRROROORROORROOORORROROROROOROOROOOORROOROORRROROOORORROROROROOOOOOOORROOORROORROOOROOOROOOOOROROROORRRRORRORROORROOROOORRROOOOROOORORRRRRORROOROORORORRROROROORROROORRORORRROORROORRROROOOOROOOROROORRORRRRRORRRRORRROOORROORROOOROOOROORROORRORORROOOROROORRROOORRROROOROORORORROOOOOOORRORRROOORORROORRRROOOOOOROROROORRRRROROOOOOROORORORORRRROROOOOOOOORROOROOOOROROOORRRROROORROOORRRRRRRROORROORRRRRRRROROORORORROOOROORRRRROOOOOORROROORRROROROOOROROORORRROOOOROOORROROOOORORORRRRORRRRORORRROOOROROOOROROROROOOOOOROOORROROROROORRROOORRRORORORORROOOOROOOOROROROROROORORRRORORROORORRROOORRROROOROOOORROOOOROROORRORROOROORRRORRROOOOORRRRRRRRORRRROOOORROORRORRRROOOORRORROROOOOOROROOORRORORROROOOROOROOORROORROOORRRROORRORROOOOORROOROORRRRROOOOROOOOOOROORRRORROORORORRRROORRORRROORROORORRRROROOORRORRRORRRORROOOOOROORORROORRRRRROOOOROORROROROORRROROORRRORROOORRRRROOOOOOROOOOOOOORROROROOORRRRRRROOORROORRROORRRROOORRROORRORRORRORROOOOORORRORRROOROOROORRORRRRORORORRRRORRRROOOROOROROORORROROOORRRRRROROORRRORRRRORROOOOOROOOOOOOOOOROROORRROROOOOORRRORROOORRROOOROROROORRRRORRRORORRORORRORRRORRRRORROOROOOOOOORROROOOOORORRRRRRRRORORRROOROOOOOROOORRORRORROROORRRORRRORRROOORORORRRORRRRROOOOOOOOOOOOOOORROOOORORRORROOOORRRORORORORRRRRROOORRORRROOORRRRRRORORRRORRRRRRORRRRORROOOROOOOROOROOROROOROOOOOOOOROROOOORORROROOORRRROOORRROROROOROROOOORROORRRORROOORRRRRORORRRRORORORROROORRRORORRORRRROROOROORORRROOROROORRROOROOROORROORRRORORRROORRROOROROORRROOOORRORROOROOOORRORRRRORRROROOORRORRRROORORORORORROORRORORORORROOOOOOROOROOROOOOOORROORROORRROOOROOOOROOORRROORRRRRRRORORORRRORRROORORORROOOOOROOROOOROROORORROOOROROROORROOOORRORROROOORORRROOOORRROOROOORRRRRORRRROOOOOORORORRRRROORRRORROROOOOOOOOORRRROOROORROOOROROOROOORROORRRORROOOROOOOOORROORRROOOROROOROOORRROOORRROOOORRRRORORORROOOOORRORORRRRRRORRRRRRRORRRORROOORROOORRORRORRRRRRRORORRORROROROOOORRORROROOORRORRROOOOROOORRRORORROOOOROORRORRORRRRORROORORRRROORRROROOOOOROOOORROORRROROORROOOROOOORRRORRRORROROOROOOOOOOORRRRRORORRRORRRRRRORORRORRROORRORRRRORRORROOROOOOROROROORRRORRRRRROOROOOORROOORRORRRRRORROOROOROROORRROOROOOROOROOROOROOOROORRRROORROROOORRRROROORORRRRROOOOOOOOOOORORROOROOROROOOORROROOORRROOORRRRORORRROROOOROORORRROORRROOOOROOOORORRRROORRROROOOOOROORRRRRROOOORRORRORRORRRRRROOORORRORROOROROOOROOOOOOORORROOORORRRRORORRRROOOOOOORRRRRORROOROORROROORORROOROOORRORROOOOOROORRRRORORRRROORORORROOOOORRROOOOOOOORORORROOOORRRRROOORROOOORRRORORRRRORROOOROOOORROOOOORRRROROOOOOOOORORORRORORRROOOOROORORRROOOOORROORROROORROROOORORRRORRORRROOROROORRORROROOORRRRRRRORRRRRROORROOORRORRRRORORROROORRRROROORRRRRORROOROOROOOOROOOROORORORROOROOOOOORORROOORROOORRRRRRRORRRORRRROOORROROOOROOOOOOOORORORRROORROOOROROOOROORROOORRORRORRORORROOOOOOOORROOROOOROOORROORORRRORRROORRROORRRRRROROOOOORROOROROORRROROOOROORRORORORORORRROOOORRORORRROOROORORORRRORORROOORROOORORORRRORORRROOOORROOROROOORRROROOOOOROOOOORROOROOOROOROROORORROORRRROOOOROOOROROORORORRRORRORORRORROORROOOOROOORRRRORROORORRRRORROOOOOOORROOOROOOOROOROOOORRRORRRORRROORORRRROROORORRRRRORROORROOROOORORROROORRROOROOROOROROORORRROOOOOORRROROOORRORRROORORORORRROROROROOORRRRORRRRROOOOORROOROORORROOORRRRRRRRRRORORRROROROOROOOORRROOROOROOOORRRORRRRRORORRRRRRRRROOOOOORRRRRRRRORROROOOORRORRORROROROOROORRRRRORRRROORRORRORORRRRRROOORRORRRRORROOOOORRORROORORROROROOOOROOROOORRROORRRRRORRORRRROORRRORORORORORRROORROROORRORORORRRROROOORROORRORORRRROROROOOOOOOOOROROORRRORROROORRORRRROROOORRROOOORRRROOOOROOOROOROORROOORORRROROOROROOOOORRORORRRORROORORRRRORRRRORRROORROORROORROROOROOROROORROORORRRRROOROROORORRRROOOROROORROOROOROORROOROORRORROOOROOORROOOROROOOROOROOORROORORRROOORRROOORRROOOROORRRORRROOOOOORRORRORORROROOROROORORRRROOORROORROOOOROORROORROORORRORORORROOOROOORRORRORORROOOOROROROOOOROOOORRROOOOOOOROOOOROOOOOORROORRRROORORORORORROORROOORRRRROOOOOROROROOOORRORRRORRROORORROOOORRORRRROOOOOORORRRRRRROROOOORRROOOOOOOORRRORRRRRRRRRRORROOOOROROROROROOOOROOROOROORRORRRROORRROROOORORORRRRROORRORRRRRRROOROOOOOORORRRRRRRRORROORROOROORRROROOORORRRRORROOOOORRRROOORROORRORORROROORROROROOROORROOOOORRRRORROROOOROOOOORRRRRORRROORRORRORROOORORRRRRRORRORRRRROOOOORORROROOORRRRRRRRORORRORRROOORORROROOOROOROROORORORRORRRRROORROROOROORRROORRROORRRRORRORROOOOOOORORORRROOROOOROOROORORRROROOORRORRORROOOORROROROROOORROORRROORROROORRRORROORROOROOROOOROROROORRRRORRORROOOOROORRRROORORRRRORRORRRROORORROORRRRRROOOOROOOOROROOROOORRORRRORRRRRROORROOOROOOORROOROORRORRORRORROROORROROROROROROOOOOOROOOOOROORORORORRRROROOOROROROORRRRORROORRRRRORROOROROORRORROOOOOOOOORORRORORROOOORROOROORRROOOORRROROOORORRROOOORORORORRORRRRORROROOOROORROOORRORRORRORORRRRORRORORROOOOOROORORRRORROOOOOOOORORRORRROOROOORRRRRRRORORRROOORORRRORRRRRROOOOOOORROORRORRRROOOROOORRORROOORROROORORROOOROOORRORRORRRRRROORORRROROOOORRORORRORROOROOROOOORROROOORRROORROOOORORRRROOOOORROOOORRRRORRRRROOORRRRRROORRRORRROROORRRORROORRRRORRORORRORRROORROOROORORRROROORRROORRRROROOORORORRRRRORRROROROORRRORROOORRRROROORROROOROROROROORRRRRROORORORRROOROORRROOORROOOOORORRROROOOORRRORORRRRROOROROROORRORRROORRRRROOOROORROOOORROOORORORROOROORORORORRRRRRROOROROOROOOOOORORORROORRORORRORRRROORROOOORORRRRORROROOOOROROORRROORRROOOOROOORROROOOOOOOROOROORRRRRRORRRROOOOOORORORORORORRROROOROROOROROROOORORORRRORRRRRORRROROOOOOROORRRROORROORROOOOORORRORORRRRROOOROOOROOOROROROORORROORRRRORORORRROORRROORORRRORORRROOOOORORRRRORORRROROOOOOROROORRROOROOOOORRRROOOORORORRRRORRRORRRORORROORORRROORORRRORROOOOORORRRRRRRORRRRORORRROORROROOOORORRROOROOOOROOOORORRRORRRORORORRORRRORROOOOROROOOORRRRROORRRORROORORROOOORORRRORRORRRROOORORROOOOOROROROROORRORRRRRRORRRRORRORRRORROOROORRRRORRRORRRRRRRRROOROOOOOORRRRRRRRRRRRORROOOOOORRRROORROOOOOOOOOOOOOOOORRRORRRRRRRRORRROOORRRROOOORORRORRRRRRROROOOOOROOOOOROOOORRRRRORROOOOORORORRRROORRORRROOROORORRROOOROOOOROORRRRROOROOOROOOOROORROORRROORROOROORRRROOROROROOORROOOOORROROROOORRRRROOROOOOROOOORRRRRRROOOOROROOROORORORORORORORRRRRRROORRROOOROROOOORROOOOROOROORROOOOORORORRRRORRORRROOORRRROOOOOROROOOOROORORROOOOORRORROORORORRRROOOROROROOROOORRROOROOOOROOROORROORROORROOORRRRRORORORROROOORORORRRORROOOOOROORROORRRROROROROOOORORRRROOORORORROOROOOOOROORORRRROOROOOORORRORRRRROOORORRRRORROORROOOOROROOOOOOOROOOOROORRRRRRORRORRRROROORORORRRORROOOOORRRRORRRRRROROROOOORRROOROOORRORRORROORROOOOROROOROORRRROOORRRRROOROROOORROROOOROROOOROROOROOORORRRROOOOORORRROOORORRRRROOOORORRRRROOOORRRRROOORRRRRORRROROOOOOOOOORORROROOORROROOORROROOROOORROROOOORRROOOOOORRRORRRORROOOROOOOOORRORRROROOOOOORRROORORORRRORRROROROORROOOROOROORRRROROOROOROOORROOROOOOORRRROORROROOOOORRRROORROORRROOOOOOOOROOOORRROROOROOOOORROORRRRRROOORORORRRORRRORORORORRROROOROORRRROROROOOOOOROROORRORORRROOOOOOOOORROORRROOROOOROROOOOOORRROOOORROOOROORRRROORORRROOOORROROOOROROROOOOOROROOROOROOOOROOOORRRORRRRRRROORROOOOROORRRORORORRROORORRORRROROORRRRORROROOROORROOOOOOOROROORRRRRRORROOOOOORROROORRROOROOORRORRRROROOORRRORRROOOOOOROROROOROOOORROOOROOORROROORRROROORROORROOOORRROROOOOOOORRORRORRRRRORROORRRRRROOORRROOOOOOORRRRRRRRRROORRORRORORRRRROROOOOOOOOOOOOROOOROORORROOOOOOROROROROROORRRRROORRRRROOORRROOROOROOROORRORRORRORROORRRORRORORORRROROORORORRORORRROOOOROORORRRRRORRROORORROORRORORORORORRORROORROROROOOOOOOOOROROORROROOOOORROOOOROOOORRROOORRROORORRROORRRROOROOORRRRRRRORROROORROOOOROOROOOORRORRORRRRORRORORRROOORRRRROOROORROOOOOOROORRORRRROOOROORRRORORROOOORORRRROROOROOOOROROORORRORORORORORROROOOROOOORORRRRORROOOROROORROOROROROOORRORRRRROROROROORRRORORRRRRROORROOROORRROOOROROORORRRROROOORRORORRRRORRROORRORROORRROORRRORRROOOOOORROROOORRORRRRRROOOOORROOORRROOOOROOOROROORRORROOORRRROOOOORRRORRRORORRRORRRROOORRORRRORORROROOOORORROOOOOROROROOOOROORROROROOOROROROROROOOROOORRRROOROORROOORROROOOORORRRROOOOORRROROROOOROORROOORROOOOOORROROORORRROORRRORROORRRROOOOOOOOROOOOROROROOOORORORRORRRRROOOORORORRROROROROORROOROROOROORRROROOROOROOOOOORRORORRRROORRORROOOOOORROORRROORORRRRORRROROROORRROOOORRORROOORRORROORORORORORROOOORROOOOOOROORRORROROOOORORROROROROROROROOORORROROOORRORROROORRRROROOOOOROOOOORORORRRORROOOROOOORORROOOORROORORROOOOROOORRRORORRRRROROORRRRRORRROOOROROOOOOOROOORRRROOROOROOOROROORRORRROOORROOROORROORROOOROOOOROOOOOROROOORROOORRROROROROOORROOOOOOOROROROORRRRROORRORRRORROORRROOOOORROOOOOOORRRRRRROROOORROOORRROOROOORROORORRORRROOORRROOOROORROOORRORORRRROROORRROORORORRRRRROOOORROOORROORRRROOOROOROOROORRRROORROOOOORROOROROORORRROROOROOROORORRROOROOOOROOOOROOROOORROORRROOROOOROROORRROOROOOORORROOOOORRRROORRORORROROORRRRORORRROOOOOROROORORRORORRROOOOORORRORROOORORROORROOOORRRROOOORRRRRRRROOOOORRRORROORRORRROOOROOOOROORRORORRORORRROROOROORORRRRORRRORRRRRRRORROOROOORROORRORRORRORRRORROOOROORROOROORRRRRORROROROORROOORROROORRRROOROOROOORROORRRORORORRORORROOOORORRRROOROROOOORORRORRRROROOORRRORRORORRROOORRROORROORRROOOROORRRRRROROOOROOOOOROOORROOORROORRRRRRRRROORRROOOROORRORRRORORRORROOROORORROORRRROOROOROOORRRRORRRORRRROOORRORROORRRORRRRRORRRRRORRORRROORORRRRORROOROORORROOOOROOOOROOOORRORRRRROOROOOROORRROROOOOORRRORRRORRORROOORROOOORRORORRRORRORORRRROOOORRRRROROORORRORROOORROOROOORRROOROOROOOROORRRRROOOOORRRROORROROOORORRRROOROORROOOROROORRRRRORORRRORROOOOOORROOORRRROOROOORROOROOOROOOORRRRRORRORRRORRROORRORRRORROOORORROROORROORROOORROROOOROORRRRRORRRROROOORRROOOOORROROOOROOROOOOOORROOOOOOORRRORROORRRORORROOORRORRRORORORRRRRROOOOROORROOOORROORRRRROROROOROOORRORORORORORRORRRRRRROROOOORRROOORORRRRRRRROOROOROORRRRROORROOORRROROOROOOROOORRRRRORROOOOOORRORORORROOORRRROORROROOORRROROOROROOOOOROOOOOORROROOORROOORORROOROOORROOORROOOOROOROORRROOOROOOORRRROORRRROOOORORRRORRRROORRROORROOOOOOOOORORRRRRROOROOROORORRRROOORROOORRRRRRROROROOOORROOROOOORROROOROOROOOOROORRROOROOORROOOOOORORRRORRROOOOROOROORRRRRROORROORRORRRORRRROOROOORRORROORRRROOOOORRRROROORROOORRORORROOROOORORRRORROOORROOORRORRORROOORRROOOOORRORRRORROORORORRORRROOROOOROOOOOROOROROROOOOROOOOORRRRRRRROORRRRORORRRROOROOOROOROOROORORORROOROOOOOORRRRORORORRRRROOOOOROORRROOORROROORRORRRRRRRORRROORROROOORRROORROORROOOOOORRORRROOOROROORROOOOORRROOOROROOOOOOORRRORRROORRRRORRRROOOOROOORRRROORRRRRROOOOROOROOROROROROROOOOOROORROROOOOORROROOOORORROOORRRORRRRRRROORRRRROROROOROORRRRRRRRRRRRRROROOROOORRRROORROOROOOROORROORRRROOOORRORRRRRRROOORRRRROORRRRRROROROORRRRRRROROROROOROROOOOOOORORRRRROROORORROOROROOORORORORRRRRRRROORROROOORROORROORROORORROROORORRRRORRRORORROOOOOOROOOORROORORROROROOOROROOORRROOOROROOORRORROOORRROOROOORROOOORROOROROORROORORRORRRROOROOORRRORRROOORROORROORORROROROORRRROOOOORRROORRRROOOORORROORRRRORORORORRRROOOROOORORRRRRROOROOORROOOOROOROROOOORORRORORRROORRRROROROOORRRROOORORRROOOOOORROOOOROORRRORRRRROOROOOORRRROORROOOROROORRORRORRROOORRRRRRROROOORRORROORORROORRROOOOORRORRRRORORROROROOORRRORROROOOROOOORRROROORROOROOOOORRORROROORRRRORRORROOROORRROOOROOOROORRRRRRRROROORRROROORORORROROOORORRORORRRRROORORROORROROOOORRROORORORROROOORRORRROORROOORROROROORORRRROOOROOOORORORRROORRRROOOROROORORORORRRORROOROOOROOOORRROORRROOOROROORRORRRROORRROOOROOORROROROOOORORORROOORRORORORRRRORRROORRRRROORROROROOORRROORORRORROOORRRRROORORRRORORROROOROOOROOOOOOOOOORROOOOORORRRRROORRROROORRROOOOROOORROORRORRORRRORRROROORORRROROOROOORRORRROORRRRRRORRROOOORROOOOOOROOROORORRORROORRORORORRROROOOROROOROOOOORRROORORRRRRRORROOORRRRORRROOROOROOOOROOOOOOROOOOROOORRORORROOOORRROOOORRROOROROORRRRRORORRRORORROOORROOOORORRRORRRRROOROOROOROROROROOORROOROOOROOROOOORORORRRROORORORROOOOORROOROROORORRORROOOROORROROOORRORORRROOOOOOORROOORRRORROOORRORROORROOOORRRORRRROORORROOOROROORORRORRROROORORROOOOORRROOOOORROOORRORORRROROOOOORRRRRRRROOOROOOROROOOOOOORRROOOORORRRRROOROROOORORORRROOROOOOOOOROORORRRROROROOORRORRROORRROOORRROROOROORRRROOROOOORRROROOOROOROROOROROORRRROROOOOOOOROROROROORRRORROOOROOROOORORORRORRRROOROORORROOOOOORORROROOOOORORRROORRRRRRROROROROORORRROOOOOOOROROOOROORORRROROROOOOROROROOORORORORRROOOOORROORRROORRRROOORRROORROOORRROORROORORRORRORORORROOORORORROORROROOROORROOORROORROOOOORRORORRORROOORROROROOOROORRORORROORRROORORORRORRRROROROORORRRRROOOOORROOORROORRRRORROOORRORROOORRRRRROOOROOOOOORRORRRORRRRROOOOOOOOROOOORRRRORRRORRRORRORORRROOROORRROORROROOROOROOOOORRRRROROOOROORRROROORORORROORRRRROORRORORRROOROROROOOORORORRRORRROORROOROOORORRRORORORROOROOORROOOORRRROORRORROORORRORORRORROROROOROOOROORROOOOOROOOOORORROOROOORRROORRRORORRROROORRRRRRROORRRORROROOROROOROOROOOOOOOOOOOROORRROORRORROOORRRRROOOOROROROOROORORROOOOORORRORROROOOORORROORROOOOORRROORROORROORORORRROOOROOORROOROORORRRORRRRROROROROROOOOOROROROORROROROORORROORROORORRROROOOOOROOORROORRRRROORROORRORRORORROORRORROOOOOOOOOOOORRORRRROROORROOOROOOROORRROOOOROOROORORROROOORROORROOOOOROOOROOOOROOROROOORROOOROROROOOORRORRROORRORROOORRROOOORORROOOROROOROOORORROOROOROROROORROOOROORORRRORRORORROOOORRROOOOORRORORORROOROOORROROOOROORROOOROOOROOOORRRRRRORRRRROOROOOORRORRRRROOOOOOOOOOROROORROROROORRRRRRRRRROOORRORROORRORORRRRRORRORRRORROOOROOOOOOOOORORRRORRRRRRRRRORRROOORRRRROOOOOOOOOROOOOOOOOOOOOORRRRRORRROROROOOROROROROOORRROORORRROORORROOORROOORRRROOOROOOOOOOROROOOORRROROORRORRROROOOOORRROROOOROOROORRRORRRROROOROROROORRROROOORRRRRRROROORRRROROOOORROORRORORRORROOORORRRRRROROROROOORROORRORROOORRRRRRRRRROROOOORRRRROOROROORRORRORRORROROOORRRORROOOOOOORRORORRRRROORROOOOROOORRROOORROOORORRROORRROOORRRRRRORRROOOORRROOROORRRRORORRRRRRRRRRRROROORROOOORROOORROOROORRRORROOROOOROOORRORORORROOROOOROOOOORROOOOORRORORORRRROROOORROORROOOOORORROROROOOOOOOROOOOORRORORORORRRRRROORRRORRRORRRRORROORROORRROOROOOOORORRORORRRRORROORORORROOORRROOOOOOORRORRORRORORRRRRRROORORROORRROROOOORRRROROOOOOOROROOROROOROOOORORRORROORRROOOROOOORORRROROOROOOOORROOORORORORRROOOROORORORRROOROORRROROOROOROOORRORROORROROROOORORRRRORRRORRRORORROOOORROOORRRRORROOOOOORROOORRRROORROROROORROOROOORROOOOORRORROOROOORRROORORRROOOOORRROORRRRRRORORRORROORRORRROROORRORORRRRRRROOROOOORRORRROROORRORROOROORROROOORRRORRRRRROORRORRORORROROOOORRRRRROROOOORRRROOROROROOOORRRRRORROOORROOOOOROROOORRRORORRRRRROOOORROROROROOOROOOOOOROORRORROROROOORORROOORROOOORORRRORRROORORRRRORORRROOOOORORORRORRRORORRRRORRRRRRRROOOORRRRORORROROOOOROROOROORROOOORRORRRORORORRRORROORRORRRORRROORRRORRROORROOROORRRROOOORRORRRORROOORRRORROORRROROOORRRRRORRROOROROOROROOORROOORRROROROOOOROOORROOOROOOROORRRORRRROORRROOROROOROROOOORRRORRRRORROOOOOOROROOORRROOORRORROOOOOROOOORRROROOROOROOORORORROOORRRRROOOOOOORORRROROORORRRRRRRRRRRORRROORORRRORRRROORROROROOROOROROOOROOOOOOROOOORRRORRRROORRRRROOORRROORRORORORORRRRORRROROORORRRRROOOOOROROOOROORORROOOORROOOOOOOROOOROOORRRROORRRROOOROROROOORRROOOROROORORORRORORORRRRRROORROROOOORRROROORRRORORRORRRROOOOOOOORRRRROOOROORORORROOOOOOROOORRRORORROOOROROROROORROOORORORORRROROORRROORRRROROOOORRRRORRORROROOOOOOOOROOOOROROROOORRRRRRRROROOORROROOORROORORROROORRORRRRORORRROORRROOORRORROORORROOROORRRRORRRORROOORROORROORROOORORRRRRRORROORRROOOOOROOOROOORRRRRRRORRRRRRORROOOROROROROORRORROORORRORROROOROORORRRRROOOORRORRROOROOORROORRRORRORROROOORORRORRROORRRROOOOORRORORRRRRORRRRRRRORORRRRROORRORRRRORROOROOOOOOOORRRRRRROOROOOOOOORRORORORORORRRORRORORORRRROOORRRRRROROOOOROORROORRRRORRRROORORRRRROROOORORRROOOOOOOOOOORRRRORRORROROROOOROOOORRROOOORROROOOOOORORRRRROOROOOROORORRRRROROROOORORRORROORORORRROOOOOOOOROOROROOOORRORROROOORRROOOOROROORRROROROORRROROOOOOOOOORRRROROORROORRRRORRROROOORROOOROOROOROROOOROOROOOOOROROOOORRRRRRROORROOORROORRROROROROROOROOROOROROOOROORROORORRORRORRROOOROORRRROORORORRROOROOORORRRROOOORRORRRORROROOORRRROOOOOOOOORRRRROOOOOROOOROROOROORRROOOORRORROOOORORRRRRROROROROOOORRROOROORRRROROROOROROOOORRROOOROOORORROORORORRRRROROROROORRRORRRRRORROOORRRORROOOORORORROOROOROOOORORORRORORRROOOOORRORRRROROROROOOOORRRROROROROOOOOOOOORROOOOORRRRORRROORRORROORRRORRRRRROOORRORROOROROOROORRRRROORORROROOOOORROOOORORROOOOORRROORROOOORRRROORRROOORROOORRORROOROOOROOOOOOOROOORORROOOROOORRRORROORRROORRRROROOOOORRRRRRRRRRORRROORRRRRORRRRRROOOORRRRRRRRRORORORRORROOORRORROOOROOROOROOOOOROORORRRRRORRRRROOOROORRRORRROORRRROOROORROROORRRRROOORORROROOROORRRRROORROOORRRRROOOOROOROROOORORORRRORORRRRRRRRROROROOROOOROORORROOOOROORROORRORRRROORROOORROOOORRROROORORORRRRRORRRRROOOOORRRORRORROOORORRRORRRRRRROROROOORORRRRRROOOOORROOROOOROOOOOOORROOOOOORRROOOROOORROOOOORRROOOORROORRRRRROROROOORORORORROOROROOORROOROORROORORROORRORORORRRROOOROROOORORROROORROORROORRORORRRORRROOOOOOORRRORRROOORROORRRRRRORROORORORRORRROOORRRORORRORRORROOOROROROOOOOORRRORRRORROORRORRROOORRRROOORROOOORORRRRRRORRRRRORORROROROROOORRORRORRORRRRRORRRRRROORRRORORROOOOOROOOOROORROORRORORROROOORORORORRROOOOORRORORRRRORORORORROOOOROROOORRRORROOROORRROROROORRRRROORRROROROORRORORRORROOROOROORORRORROOOOROOORORROROOORORORROROOROROROROOORROOORROORROOOOOORRROROOOORRRRORROOOORRRROOORROOROOROOOORROORROROORRORROORRORORORROROROORRRRRROROORROOOOOOROOOROOOORRRORRROORROOOOORRROOOROROORROOROROOROROORRRORORROOROOOORROROORRORROOROOOOOROORRRRROOOORORROOOOROORRROOOROORRRRRRRROOOOROROOOOORRORRRROOOOOOOOOOOORRRRRRRROOOROORORROOORRROOOORRROROOOOOORRRROORROORORROOROROOOOROROROROOROROORRRORORROORROOORORROORORRRRORRRORORRRRROOOOOROOOOOORRRRRROOOORROOROOOOORRROOOORRROOROORRRROOROROOORROOOORRROOORRRORRROROOORORORORRROROOROOOOROOOROOORORORRRROROROOOORRORRRORRROROROROOOORROOROOOROROOOOORRRRRORORROOOOOOOROOOROROOOOORRORRORROOROOOORRROOORRROROOORROOOOOROOOOOORORRORORROOROOORORRROORROORRROORRORRRORROORROORRORRRORORRORRRROOOOOOOOOROORRORRRRROOOROOOOOOORROROROOROROORROROORRRORORORRRRROORROOOOROOOOORORORROORRROORROROROOOROOORRRROOORRORROOROROORROORRORORORRORRRORRROORRRRORRRORRROROOOORORORROORROROORORRORRRRROOORRRRRRRORROOOOOORROORORRROORRRORORRORROROROROROOORRORRRROOROORRRRRRROORROORRROOOOOROOROOORRORROROORRRRROOROOORRROOROOOROORROOOOROOROOROORRROOOORROOOOORRRRROROOOOORROOOORRROOOOOOORRRORROROORRROOOORROOROOOROOORRORRRROROROOORRROOOORRROROOORRORROORORRRRROOROROOOROOROORRRROOOORRORRRRRRRRROROROORRRORRORRRROOROOROOOROORORRROOOOOOROOORRRROORORORORRROROOROROOOORORRORRORORORORORROOORRRRROROROOROOORORROROOOORRORORROORORRRRORROOOOOOORROOORRORRRRRROROOORRRRROORRRORROOROORRORORROORROORORROORORROROROOORORROOROROORROOOOOORORRROROROROROORRRROROROROROROROOOOORRRRORROOOOORORROROORORROOORROOROOOROORRROOROOOROROOROROROORRROOORRRORROOORRROROOOOOOOROROROOORRORRRRROROOROROORRROOOROOOOROROOOORORRRRRRRORORRRRROORROOOORORRRRRORRRRRRRRRRROROOOROROROOOOOOOOOOOOOORORRORRRROOORROOOORRRROOORROOORORRORRRRRORROROOOROORORRORRRRRROROOROOORRORROOOORRRRROROOOOOOOOORRRROORORROOORROOORORRROOOORRRRORROOOOROORRRRORORRRRRRORORRRRRORRROOORRRRORRRRRRRRROOOORRORRROORORRRRRRROOOOOOOROOOROROOOOOOORRROROORORRROORROROROROOORRRRRORRROROORRORORROROOOOROOOROOOOORROROOORRROROORROOOOOORRROOOROORORORRRORRRROROOORRROOOOOROORRRROROORRRRROORORORRROROROORRRRRRRORROOROORRRRORRROROOOORROOROOROOOORROOORRRRORROORRRROORRROOOOORRRRRRRRRRRROROOROOROOOROOOOORROORRORRORROOORRRRORROORORORORRORORRORRRORRRORRRRORRROROOROORRRRORRRORORRORRORROORORORORROORORORROOORROROORROROORROORRRROOOROROROROORORORROROROORROOROORRRRRRORROOOOROROROOOORRRROORRRROOOOOROORROOORRRROOOOOROOORORRROOOROOOROOOORRORRRORORRROOROOOORRRROOOROOOROOORROORORROOORROOOOOOROOOORRRRRRORRROROOROOOOORRORORRROOOORRORRRRROORRORORORORRRRRORRRORROROORROROORORROROOOORROROOROORORRORROORRRRORRRRRRRORRORORRROORROORRRORRROOROROOROORORRRRRRRORROOROOOOOORORROOOORROOROOOOOOOROROOOORRRROOROROROOORROOORORORRRRROOOROORROROOOROROORROOORORRRORRROORRRROORROORROOOORRRORRORRRRROOOOROROORORRRROOOOORORROROOROOOOROOROROOOOOOOOORRRROOOOORROORORRROROOORORRROOORORRROOOROROORRORROOORRROORRROORROORRRRRRRRORRRROOORRRROOROOOOROROROOROORORRRORORRORRRRORORRRROOOOROOOROOOOORRRRROOROOORROROROROORRROORRROOROOROOOORRRRORRRRRROORROOOOROOOOROORROORORORRORRORORRORRRORORORORRORORORRROROORORROROORROROORRRRROOORRORRROORORRORROOOORORRORRRRROOROOROOOROOOOROROROROROOROORROOOORRROROOORROOOORRROORRRROOROOOOROORRORRORRRORORROOOOOORRRRRORORORRRRRROORORRRRROOORRRROOOORORRRRORROROROROOROROOORORRROOOOROROROORRRROORRROORRRRRRRORORRROORROOORRORORROOOROROOROOOORROOOOOORORRORRRROOOROORRROORRORRROOOORRROROOOOORRORORORRRORRROOORRROORORORORORROOROOOORORRROOORROROROORROORORRROROORROOOOORORRORRRROOOOORORRORRRRORRROOOOOROOOORRROOOORORRRRORROOROOOORRRORRRORROORRRRROORORROOOORRROROROORRRRRRORRRORORRRRROOOROOROROOOROOOORORROROROOROOORRRRRROORRROOOORROOROROORRRORRRRRRORRRORROROROORRROOORRORORROROOORRORORRORROOOROROROOOROROROOORRORRORROOROROORROORRRORROORROOOOROOOOORROROROORROORORRORRORORORROROROROORROOOROROOROOOOOORROOORROOOROROOROROOORRRROROOORORRRORORORRORRRROOORROROOOOORROOROROOOOOORRORROOORORROOORRRORRROORROORRRRRORRRORORROOOROOOROOORROOOOOOOOOOORORRRRROOORRROOORRRROORRROROOORORROORORORROROROORORRRRRROROROOOROROOOORORROOROOOROOOOOORROOORRORORORRRRRROORRROOORRRROORRROOROOOORRORROROOOROROOOOOORROORRROOOROORRRRRRROORRROOORORROOOROOOORORRRRRRRRRORRRROOOORORRROROOORORROROOOOROORROROROOOROORROOORRORRROORRORORROOROOORROOOOORRORRROORRRRROROORORRRRORRRORORRROORORORRRRROOOOORORROORRRORORROOOROOOOOOOOORORROORROOROOROOROROORRRROROOORORRORROROORRRROORRRRORRRRRRROORRRORROORRRRROOOROOROOOROOROOORROROORRORROORRROOOROOORORROOORROORROORRORORRRROORRROOORROOOROORRRROOOOROOOROOOROORROORORORORROORORORRORORRRROROORRRRRORROOROROORRRRRRRORRORROROOROORRRROOOORRRRRORROOOOORROORRORORROROORRRRRRROOROROOROORRORORRRRRROOOOOOOROOOOOROOOOROORROORORRRROOOROROOORRRRRROROOOOOOROOROOROOORORROOOOORORRRROOOROROROOORORORROORRROOROOROOROOOORORRROORROROOOROORRRRROROORRRORRRRRRROORROOORORORRORROORRORRORROORROOOOORORRRRORRROOOROOOOORROROORRROOOOROOOORORRRORRROROORORRRRRRRORRRROOOOOOORORRRRORORROOOOOOROOROOROORRROORRORRORRRROOOROROORROOROROORORORORROORRROOOROROROOORROROROOOROOOORRORROOORRROOORRROROOOORORRRROORRRRRORRRRROOOOOOROROOORRRRRRRORRRRRORRORORORRRRRRRRORRORRORRRRRRROROOOORROOROOROORROROOOROOOOROROOOROROOOROOOORRRORRROOOOORROORROORRROOOORRROOOORORRROOOROROORORRRRROOOOORORORROOROROOORROOOROOROORRROOOOORROROOROOORRORRORRROROOROOOOOOROOOOORORORRRRRRORRORRRORORORORRRRROORROROOROORRRRORROORROOOOROOROOORORRRORORRORRRRROORROOOROROORRRRRRRRORRRRORRRORORROOOROOOOROOOOOOOROOROOOOOOROOOORRRORORORORORRRORORRROORRORORORRRRORROORROOROOOOOOOOROORRROROORORRORORRRRORORROOORORORRORROROROOROOOOOOORROORRROROORRRORROROOROOORRRRRRRROOROROOOOOOOORORRRORORORRRRRRRRORRRRROOOOORROOROOOROOOOOOOROORROOROORORORROOOORRRROORRROOROOOORRRROROOOOORRRORROORRORRRROOOROOROOOORRROOROOOROROORRRRRROROOORORRRORROROOORRORRRORROROOROROROOROOOORROOOORORROOOOOOORROOOOORROOORRORROOOOROOORRRRORRROROROORORRORORRROOOROROOORORRRRORORORRRRRRORROROORORROOOOOROORRORRRROOOOOROOORRRRRRRORRRORORROORROOORRRORRRORORRORRRRRROROOORRORRRORRRRRRRRRORRRRRROORROORRRRRRRRROOROOROOROORORRROOROOROORRORRRROORRRRRRROORROORRROROOOOOORORRROORRRORROOOROOOROOOOORORORRRRORRRORRRRROORORORRRROROOOOROOORRORORRORRRROROOORROROOOORRORORRRRRORRRORROORRRORRORRROOOOROOOOOOOROORROOORORROROROORRRORRROOORRRRRORRRORRORORRRROORRORROROOROOROORORRORORRRRRRRRORRRRROOORORROOOOROROOOOOOOROORRRRRRROOORRORRROOROORRROROORRRRRRRRORRRORORRORORRRRRORROROOROOOROOOOOORORROORORRORORROORRROOOROROROORORRORROORRRROORRRORORORROOOORROROROORORRORRRORRROROOOOORROROOOOROROOOOORRORORROORRORRRRROROORROOOOORRRORRORRROORRRRROORROROOROOORRRRROORRORRRRORRORORORROOOORRORROOORROROROORRRRORRRORRROORRRORRROOROORROOROOROOROOROORORROROOOOOROROROROOOOOOROROORRRORRRORORORROORORRROROROOOOROOROROORRORRORRROROOOOROORRRROOOOORORORRORRRRORROOORRROORORROOORROOOOOORORRRORRROOOOORORRORORRORORORROROORORROROOOORRRRROOOOORORROORROROROOROORROOROOOORRROORROROROORORRROROORORORORORRORORRROROROORROROORRRORRRROOOOOROOROOOOROOOOOOORRROROOROOORRRRROORRROORORRRRORROROOOROROROOROOOROORORRRORROORORROOOORRORORRRRORORRRORRROOOROROROROOOORORRRRRORRRRROOOORRRROROORROOOROROORORRRRRRROOOROORRORORROOORRROORORRORROORRRRRRORRROOOOOROOROROORROOROOORORRRRORRROOOORORRROROORORRRROORRORROOOOOROROOROORORORRORRORORRRRRROROOORRROOROORROORORRROOOROORRROROROOROOROROORROROOROOOOOOROORROROROORROORRORRRRROOORRROOORROOOORROOROOORORRRRORRRORRRRRORRRORROROORRROROROORRORROOROORROOROORROOOORORROROROOROOORRRORROORRRORORRRROOORORORRORORRORRRROOROROOORORROOOORRROROOOOOOOOOORRROROORORRROOOOOOOROOOORORRROOOOORROORRRRROORRROROOORROOROROOORROROORRORRRORORROOOROOOOOOORRRRROORRORORRROOOOORRRRROOORRRRRRROOOOROOOOOORRRRORRORRRRORROROOOROROOORRRORORROOOOOOROOORROROROOORRROROROOOOORORORROOOOOORRRROOROOROOOOORRRRROROOROORRRORRRRROROOORRROOOOROOOOOORRRRRROROOROOORRRORRRRORRROORRRRRRRROORROOORRORRRRRORRORRRRRORROORRRRRROOOOOROOOORRRRORROROROORRRRRRRROROROOOORRORROOOOOORORRORRORRRROROOOORRORORORORRRORRRRORROOROOOOORRRROOOROROOROOOOOORORRROOORRROOROOOORRRROORROROROOOOROROROORRRORRRORROOOOOOROORORRRROOORRORROORORORROORRRORRRROOROORRORRRROOROOROORRRRRRRRRRROOOOOOORORROOOORROOOROORORRORORRROOORROOROROORROOOOOORRRRRROOROROROORORORRRORRORRROOROOOROROOOOROOOORORRRORROOROORROORROOROOOROROORORRRROROOOORROOOOORRRROORRORORROROOORORORORROOORRORRRRRRROROOORORORRRRRRRRROOROOOOOOOOOORROOOOOOOOOORORRORORRROROOOOROROOORROOOROROOROOORRRRRORORRROOORRRRROROOOOOROROOROOOOROROOORRRRRRRRRROOOOROROROOORRRORORORRRRRRRRORORRRORRROROORROROOOOOOOOOOORORRROROROORROROOROROROROOORRRRROROROOORRRROORROROOORROOORRRRRRRRORROOROORRROOOORRORORRRORROROORRORORROOOORRROOORROOOOOROROOOORORROOORRRORRRROORRROORROORROOOOORORORRORORRORRRRROOOOORRRROORRRRRRORRRORROORORROOORRORROORROROORORORRRROOOOOORRROORROOOROROOORRRROROORRRROOOORROOROROOORORRRORROOORRORRORROOROROOROOOROROORRORORORRORORROORORRRRROOORROOROOORRRORRROOOORROOOROORORRORORROOROORRRROORRRRRRRORORRRRROOROOORORRORRROOROORROROORRRRRRROROOORRORRRRROORORROROROOROOORORROOROROOROORORRRRROROORRROROOOORROROOOROOOOROORROORORRORROOOOOOOROOOOORROORRRRROOOROORROOOORRRRRROOOROOORORRORRROROORORROORORRRROOOROROOOORRRRROROROOOORROORROROOOOROOORRORRORRRRROOORORORROROOORRORORRRROROOROOORRRRORRROORRRORORRRRORRROROOOORROOROORORRORRROORORRRROROOROROORRROORORROOOROROOOORRRORORRRRORORRROROROOOROORRRORROROROORRRRRORROOOROROORRRROROOOOORORRORROROOORORRRRRORROROROROROOOROORORORRRROROOROORORROROOOROOOORRORORRORORRRORORRROROOROORRROORRRROOORORRRROROROOOOOROROOROOOROORRRORRORROORROORROOORORRORORRRORRRRRRORROOROOROOORROOOORORRORRORRORRORRRRROOROROOOOORROOORRORORRORRRORRORORORRRROOOORRRORRRRRRROORORROOOROROOROORRRRROOOOOOORRROROOORRROORRRROORORROOORRORRORRRRROOROOOROORRRRROROOOROOOOORORRRROORRORRROORROOOORRRRROROOROOOOORROOOOORORROOORROORRORRRORORORORORORRRROOORRRROROORRORORRRRROORRRORROOORROORORROOROORROOOROROORORROOORROOOROORRROOOOROROOOORRORROORORRROORRRORRRRRORORORORRRORRRRRORRROORROORRORROROOOOROORRROORORRRROOOOORRORROOORRRORRRORRRORORRORROOORROORRROOROOOOOORRRRORROOORORORROROOROROOORRORRORRRORROOOORRRORROROOORROORORRORRORRRROOORRORORRRRROOROROORRRORRORROROROOROROOROORRRROOROORORROORRRROOOOOROOOORRROORRRROORRORRORRORORRRRROOROOROROOOORRRROROOOOORRROROORRRROOORRRRORRORRRROOOORROOOORRORRRROOROORRORRRORRRRRORRROOOOOOROORRRRROOROOROROOOOOROOOORRROORRRROROORROOORRROOOROOORRROOORROOORROOOOORRRRRROROOOOOOOORRROORRRRROOOOROORRROORROOORROOOORRRRRRRRROOOORRORRRRROOOROROROOROORORRORORORRORORRORORRROROOORRRRRORORRRROORROOROROOROOOOROROOROOOOROOOORROROOORORORORORORRROROOOROROROORROOORROROOORROOOOORORORROROOORRROOORORROOROROROOOOROOOOROROOROOOORORORORRRROROROOORRROROOOROOOORRRRORRORRRROORRROORORRORROOOOROOOOROOORROROOROORRROORRORRROOORRRRROOOOOOORRRRORROOORRRRRORORRORROORROOORRORRORRRRRRRROROOOOOROROOROROOROROOOORRORROROORRRORRORORRORORRORORRORRRRRROROORRRRRORROROOROROOOOORROORROORRRRROOOROORRROROOORORROROROOORORORRROORRRRRRRROOORRRRRROROORRRRORROORORRRRORORORRRRRRORRRORROROROROOROORRRROOOOOORROORROORRROORRRRORORROORRROROOROROORRRORORRORROOROORRRROROORROOOROORORORRORROOOOROOOOORRRORORORRRORRRORRRROORRRROOOOROOORORRRRROOOOORORORORROORORRROOORRRRRRROOORRORROORRRROORRORRRRORRORRRROORORORRRORRORORRRRORROROOOOOOROORROOROOROOOORRORRROROOORRORROOOOORRROORRROOROROOORRROOOOROOORRRORROOOOOOORRROORRORRROOORROORORRRROOROOOROORRRRROROORROROROOOOOOROORRROROORROOROOOROROOOOORORRRROOROOROOOOORROOROROOOORORRRRRROOROROOORROOOOORORROORROOROORROOOOOROROOORORRRROROROORRRROOOORROROOORRROOOOOOOROROROORORRROOOOROOORORRRORORORROOOORORRORRROOORRROROOOORORRROOORROROORROORRRRRORRORORORORRROOOORROOORRROROOROROOROORRORROROOORORRRORRROOORORORROOOORROROORROROORRRRRROOOROROORROOOOOOORROOORRRRROOOORROROOOOOORROOORRORRRRRORROOORORORRROROROORRROROROOOOOROOOOORROOROOOOOOOROOORRRROOORROOOORRORORROOORRROOOOROORRROOROOORRROORROOORRROOORRRRRORROOOORRORROOOORRROOOORRORRORRORRRORROROOOROROOORRRORROORORRRORRRORRROOORORRROORROOROROOROOROOROROORRRRRORRORRRROORORORRRRROORRROOROORORORRORROOOOROROOROORRRRROROOOORRRRRORRRROOROOORRRRRORROORRRRRORRORRRRRRORRROROOROOOORORROORORRRORRORRORRRRRROORROROOORORORRORRRORROROOOOROOORRROROROORORROOROROOROROROORRRRRRRRROROOROORROOROROOOORRRORRRRORROORORORORRROORRROOOOROOORROROROROOOOROORROROORORROORROOROOORORRROOOOOROOOORRRRORORROOORRROROORORROOOORRORRORRRROOROROOORROOOROORRROORORRORRRRROORRRROORORORRRORROORRRRRRROROOORRRRROOROROORROORRRRROOOOOROROROOROOROOOOOROOORORORRROOOROROORRROORORORORROOROORRORRRROROOORROOOOORORROORRRROORRRORROROROROORRROORROROROOOOORROOOOORORROOOROOORRORRRRROOORRRROOOOROROROROROOOOOROOROROOOROORORRROORRORROROROROOOOROOORROORRRRRROOOOOOORORRRROORROOOOORRRRRORRORRROOOOOROORRRRROOORRRRORROOOROOROROOOROOOROORORORORROORRRRORORRRROOROOORORROORROOROOOOORORRRROORRRRROORRORORORORRRORRRRORRRROOOROOROOROROOORORROOROORORORROOOROOROROROOORROOOOORORORROORRROOOORORRRRROORRRROROOOOROOOROOOOORROORROORRRRROROOORRORRRRRROOOROORRORORRRORRRORORROOOORORRROOOOROOOOOROOOOOOROROROROORRORRROOOOROOORORORRRORROORRROOROROOORORROOOOORORROOOROROORORRROROROOOROOORROROOROROOOORRRRRRRORORRRORRRORRRORROORORRRRRRRORRROORORRORRRROOOOOORORRORRROOOOOOROROORROROOORORORRRRRRROROROOORORROORORORRRROOOOORORROOROOORROOORRRRROORORORORORRRRROORRROROORRORROROOORORRRROROOOOORROOORRRRRORROORRRROROORROORROOOORRRRRORRRORORRORORRRORRORROOORRRRRRROORRROOROORRORRORORROOOOROORROOOROORRORRRRRORORORROORORRRORROOROOORORRORORROORROORROOOOOROROOROROOOROORRORRRORORROOORROOOORROORRRRRROORRORRROOROROOOORROORORRRRRROROROOOOORRRRRRROOOOORRRRRRRRRROOOORROOOOROOROOOOORRORRORROROORRRORRROOOOROORRROOROORRRRRROOOOORROROORRRRORRRROOOOROOOROOOORRRRRROOOOROOOOROROOORORORROOORRORRRROOOROORORRRROOOROROORRORROOOOOOOOOORROOROROOORORRRROOOOORRRORRROOROOOOOOORRROOOOOORRRORRRRORRROORRROORRRRROOOROOOOOOOOOORRORRRRRRRRRRRROOORROOOROOORRROROROORORRORRRROOORORROORRRRROROOOOROOOOOOOROOOROOOOORRRRORRRROORRROOOROROOORROOOOROOOORRORROROORORROROOORORRROOORROOOOOROORORORRRRORORROOROROROOORRROOOORORORRORRROORORROORRRORORROORRRROOORORRRROOORROOOORORRRRRRRRRRORORROOROORRRRRORRRROORRORROORRRRORRROOOOOROOROOROORRORRRROOROOOOOOOOROROOOOORRRRRRRORRORRRROOOROORROORORORORRORRORROOOOORRROOORRORRRRORROOROORRRRRROOOROOOOOROOOROORRORORROOROROORRROORORORRROOROROOOOOORROROOORORRROROOOOORORRRROOOORROROOOROOOORRRROORORRRRRRRROOORORROOROROOOOOORRRRORRORRORROOOOOOOROOOOORORORRROROORORORROORORORROOORORORORRORORROROOOOOOOORORROOROROOOOROORRORRRROORRROOROORORROORROOOOROORRORRROORROOOORRROORORROOOOOORRRRRRRRRORRROORORRROROOROOORRRRRRRRORROOROOORORROOOOROOORROROOROOOROOORRRROOOROOOORORRORRRRORROOOOOOOOOOORRORRROOROORROORORROOROOORRROORORORROOOORRRROOOROOOOORRRRROOOOOOROOORRRORROOOROOROROORRRROOORROROROROOOORROOORROORRORRORORROOOORORRRRORRROOOORRORRROOOOROORRROORRORRORROOOROORRRRROOORRRRRORORROOOOROOOOOORRORRRROOOROORORRORORRRRROORRROROOROOROROOROOOOORRRORRORRRRROROROOORRRROORRRRRRRRRORORROOOORORRRRORRRROOORRORRORROROORRRORRRRRRRRRRRORORROORORRROROORRORRRRRROOROORRORROOOOOROOOORRRRRRRRROROROOOOOOORROORROOOOOOOOROOROOOROOORORORROROORORRROOOORORORRROROOOOROORORRROOOROOORORRROOROOROOORROOOOOROOOROOOROOOOORRRRORRROORORROOOOORROORORORORROORRRRROOROORORRROOOORROORRRRORORRORORORROORRORORORRRROOOROOOORORROOROORRORRROOOROORRRROROROORRORRRROOROROOORORRROOROOORROOORRRRRROORORRROORROOORROROOROROOROOOORRRRORRRRRRROOOROORRRRRROOOORRRRROROOOOOORRROORORRORROORRROOROORRROROOOROORROOOOOORRROROOOROROOOORORORRRROOORRROOROROOORROOORRRROORROOOORRRRROOROOROROOORORRORRROOORRRRRRRRROORORRROOORORRRRRRROOOOOOOOOROROORROORRRRRRRRRRRROORROORROORRORORROOOOOOROORORORORROOOORRORORRRROOOROOOORRORRRROORORORRROOOROORRORRROOOORROROORROOROOOOORROOOORRORRRRORRROROOROROOOORRRRRORRRRRRRORRRRRRROOOOROORORROROROOROOROOORRRRRRROROORORRRROORROOOORRRROOROORRROORRRROROORRORRROORRORRRORRORROOOORROORROORRORROORORROOROOOOOROROORRROOOROOORRROROROROOORROORROOOROOOROORRRRROOORORORORROOOOOORROORRROOROORRROOOOORORRRORORORRROOROOORORRORROOORROORROOROOOOOOOOORRROROOOOOROORORRRROORRORRROOOOORORRROORORORRRRRRORROROOROOOOROOOOORORRRROROOROROORORORRROROOOROROOOROORROOOROOORORRROOORORRROORRRRROOOOORROORRROORRROORRORRROOOOOORRROOORRRROROROORRRROROORRROROORRORORRROROOOOROOOOOROROROROOOROOROOROOOOROOOORRROORORROORRROOOOOOROROOROROROORRROROORRRRORRRROOOOROROOOOROOOOORROORRRRROOROOORRRRORROOOORROOOORORRORROOORRRORRRORROORRRROORRRROORRORRORROROROOOORRRRRRRORRRRROORROORROROOOOROROOROOORORRRRRRRRORORROORRRORORRROORRRRRRRRORROROOOOORROOOROROORRRRORROOROROOOOOROROOORRRROROORROOOROROROOORRROROROOOOOOOOOOROOORRORRRROOOOOOOOOORRROOOORRRROORROORORRROOOORRROOOOOROROORORRRRROORRORROORRORROROROROROOROOROORORRORRROOROORORRORRORRROROROOOOROROORORROOOROORROROOROROORRROOROOORROORRROROROOOORORROOOROOORORRRORORRRRORROOOROROOROROOORROOOOOROOROORROROORRRROORROOOROROROOOORROROORORRRRRRROORRROORROORRROOORROORORRORRORROOROOOROOROORORRRRRORRORRRORROROORRRORRRROOORROORORRROORRROROOORROOOOORRROORORORORROOOROOOOORRORORROOROOORROROOOOOOOOORRRRORROOROOOOORRRRRORRROORRROOOOOOOROROOORRROROOROOROOROORORRRROOOOOORRRROOOORORORROORROOOOORORORRROROROROROOOOROROOROROOOROOOROOOOORORRROOOROOROOOOROOOROROROOORROROOROROROROOORROOORROOOORRRORRRRORRRRORORORORRROOROORRRRRRORRRRORRORRORRRRORORORROOROORRORRORORROORORROOOOOROORORRROOROORRRROORRROROOORRROROROOROORROOORORRROOOORORORRRORRRROOORROORRRRRRRROOOOOROOORORRORROROORRRROOROOOOORORROOORORROOORROORORRROORROOORRRRRROOROOORRRROORORROROOOORRRRRORROOOORRROOROROOORORRROOOORROROOOROROOORRRRRRROOROOROORORRORRROORRROROORORRORRRROORRRROORROORRRRORROOOOROROOROOOOROOROROOORRRRROORRRROOOOROORRRORRROOORRRRRRROOOOOROOOORORRORRRORORORRRRRRORORRORRROOOOROORRRROROOROORROROOROOOOOORROROROOROOORORRRORRRRORROOOROOOORORRROORORRRORRRROORROOORRROOOOORORROORRORRRRROROROROROOROORRROROOORRORRRRRROOORORRRRRRROORRORRROOOROORORROORROORRRRRROOOOORORROOOOROOOOOOROOOOROOROOOORORRRRRORRRROORROORRROOROROROROOORORRRORRROOOOORROORRROOORRRRORROORROOROOOROROORRROOORRRRRRRRRRORROORROOOORRORROROROOOOOORRORRORORRORORRROROOROOROOORRORROOOOROROOOORROOOORRROOROROOOROOOOROOROROORROOOROOROOOORRROOOORRROOOOORRRRROOOOROOORRRRROOORRRRRORRRORROROROROROROORROOOOROOROROORORRROROOOOROOROROORRRORORORRRRRRRRRRROORRROORRROOROOORROOOROOROOOOOOROOOOOROOROORRROROOOROOOORRRRRRROOORRRORRROOOOROROORRRORRRRRRROORRORRRROOORROROORRRRROROOOOOORROOORORRRORROOORROOROORRROORORROROOROORORRROOOORRRRORRORRRROOOROROOOROORROOOROOROROORORRORORORORORORRRRROROOOOOROORORRRORORROOROROORROROOOORRROOOOOOOOOOROORROORORROORROROORRRROOOORRRRROOROOORROROOOOROOOOORORORORROROROORRORRRROOOOORROROOOORRORRRROOROORROORORROOOOOROROORROOROOOOROROORRRRRORORRRRRRRRORRROROOORORRORROROOOORROORRORRRORRRROORRORRRROOOROROORORROOOOOROOROOROOOROORRRORORROROOORORORRRRROOROROOOROROORROROOOORORRRRRRROROOOOOROOOORROOORROOOOOORORRRRORROOOROROROROOOROOOROOOROOROOOOOORRRROOOORORORORRROOORORORRROOOROORORORRRRRORORRROOOOOROOROROORRRROOROOROOOROORORRRRORORRRROORORRRORRRROORORORORRRROROOOOOROOROORRRRRRRORORROOROORRROOORROOOORORRORRORRRRRROOROOROOOOROOOOOOOROROORRRRRRRRORRRORRROOROROROROOOOROROOROOORROROROORRRROROORROOORRRROOORRRROOOROROOROOROROORROROORORRRRRROOORORRRORORROORROROOORRORROORRRRORORRROROROROOORORROORRORORRORRORRORRROORRROOORRORORRORRORRROOOOORROOOROOROROOROOROOOOORROOORRROORRROOORORROOORROOOROROORRRRRRROOROROOOOOORORROOOORROOOOOORORROORROROROORORROORRRRORORORROORORORORRROOOOROOOOOOOOROROORORRORRRRORRROOOROORRROOOOROOORRRRRORRORRORROOOORRORRORRRROOOOOOOORRRORRROROROOORROROOROOOORRRORRORRRRROORRROOOORRRORROORRRRRORRORROORRRRORRROORRORRROOROOROOORROROROROOOOOOOORORRORORRRROOOROOORRRORORORROOOOROOORRRRRROOOOOROORORORRRRRORORROOROOROOROOORROOOORORROOORROOOORROOROOOORRRRROROORROORRRROOORRRRRORORRORROOOOORROOORORROOORORRORRRORRRORRROOORORORORROOOOORORRORRRRROOROORRRROOOOROROROROROORRORORRROROOROORRROORRORRORROROOROOOOOOROROROOROORORRRROORORRROOORRROROORROROOOOOROROOORORORRROROORROOORRRROROROROOORRORRRROOOORRORRORRORRRROORORORORRORROOORRORRRRORRRRRROROOORRRORRRORORROOOOOORRORRROROORRRRRROORORORROOORRRRRROOROROROOROOORRRROROORRRRORROOORRORRRROOORRRRRROORRRRORRROOORROROORRROOOORORROOROORORORRROOROORRRRRRORORRRRROORROORORRRROORRRRROROOOOOOOOROOOROROOROOROROORROOOORRROOOROOOROOOOROOOROROOOOORRRORROOROOOROOORROOORRRROOORRROORRORROROROOORORORORRORRROOOROROORRRRORORROORROORRRRRRORRRORROOOROORORRORORRORRORRORRRORORRORORRORRRRROROORRORORROROOOORRRORORRRRRRROORRORORORROOORORRORROROORROORORROROOOORRRROORRORRRRORRRORORRRRRORORROOROOORORORRORORROORROOROOOOOOORROOOOOOOROORORRROOROROOOORRRORRROOORRRORORRORROOOOROOORROOROOROROROOOROROROORRORROOOOROROOORORRROOORRRRORRROROORORORRRROORORRRROOOOORRRRROORRROOOROOORORRRORRORROOOOOROOOOROOOORORRRROOROROROORRROOROOORRORORORRORRROORROORORROOROOORRRRRROROORROORRROORROOORRRROOOOOOOOOORRRROROORRROROOOROOROOORRRRRROORROROORRRROORRRORORRROOOROOROROORRRORRRRROOROROOOOOROROOOROORRRORRRRRRRRORRRROOOORORRRORRROORORRRROROOOROOOOORORORROOOOOORRORRORORRRROROOOORRRRORRROORORROORRRROOOOOROROOOOOOORRORORRRROROORRROOORROORORRROOROOORORROROOROORORORROORORROOROOORROORROOORORROORROOOOOROORROOOOORRORRRORRRRROROOORRROORRORRRROORORRRRRRORRORRRORRRROORRRORROOOORRORROROROOROOOORORORROROORRRROOROORRRRROORRRRRRORRRRORROOROORROOROORORORROOROOROORRORRRORORRROOROORROOOORRRROROORORRORRRORRORROOOOORRROOROOROROOROROORORRRRRROOOOOOOORRRROROROORROOOOOOOOOROOORRROORORROOROOOROOOORRROOOOORRORROOOOROOROOORROROROOROOORRORRRRROOOOOORORRRRRORROOOORRORRRRRRRROORROOOROOOOORROROOORORRRRORROOROORRRORORORRRRORRRORRRRRROROOOORRORROROORRORRORROOROOOORRROOOROROORRRRRRRORRRROROOOOROOOORRRRRROOOROOROOOOORORRORORRROOOORRORRROORORRRORROROORROORRROOOROOOORROORRROROORRORROROROORRORORORROROOOOORORORORROORROORRROROOOOOORRROOOOOORORROOOORRORROORRRROROORORRROOOORROOORROOOOORRRRORROOOORROROROOROROOORRRORORROROORRRRRRRORORRRROORRRROROOOOOORORROOROORORRORROOOOROOOOORORORRRROROOOORROROORORRRROROOOOROORROROORROORORROOOROORRRROOOOOOROOORRORRROOOOORRRROOOOROOOORORRROORORRORORRRRRRRORRRORORORRRRROORORRRROORORRORORRORRORRRROOOORROOOROOOOOROROOORRRRRORROOORRORRRRORORORROOROOOOOOOORROOOORORRORROORORRORROOORRROOOOOROROOOOOORRROROOROORRROORORRRROOORRRORORROROORRRORRORRROOOORORORRORROOROOORROORROOOOORRROORRRORRORRROORRRROOOOORRRRORRRORRORROROOOOOROORRROORRRRRRRORRRRRRRROOOORORRRORRRORRORRORRRRROOOOOORROORRORROROOOOOROORORRORORORROORRRORRORORORORORORRRRRRORRRRROOOORROROROOOOORROOROROORRORRROROROOROOOORORORROORRRROOROOROOOOROOROROOORROORROOROORRRROORRRRROOOOOORRRRRORROOOORRORROORRORROOORRROOROOROORRRORROORROOROORORRROROROORORORROOROOOOROROOORRRORRRRORROROOOOOORORROORROORRRRROROORROROROROORROOOORROOROOROOOROROORRRRRORRRRRRROORROORRRROOOORORRRRRROOROROOROOOOOROOROOOOORORROROORROOOORROOORRROOOOOOORROORROOOROOORRRRROORRRROORRROOROOROOORROROOROOOOOROORRRRRRROROROOORRRRORORRRROOORORRORRORORRRROOOOOOORORORROORROORRRRROROOOOORRRROROROROORRORRRORRORORRROORRRRORROORROORROOROOROROOOROOOOOROROORRRRRRORRROROORRORORRROOOOOROROORROORRORROROROOOOROORRRRORRRRROORRRRRORRRRORORORRROOORORROOROROOOOOOOORORORORORRROOOOROORRROOOORORORROOROOOOOOOOOORROORORROOORORRRRRRRROORRROOORROOROOOOORRRROOOOOOOORRORROORORRRORORRRORROOORROROROOOROOROOOORORRORROOORRROORROOOROROROOOORROORORRRROORROOOORRROROOORRROORRRRRRRORRRORRRROOROOOROROORRRRRRRRORORROROROORRRRRROROOOROORORORRRROROORROORORRORRRROOOORORROOROOROOOROROORROROOOOORRRRRORRRORRROOORORRRORRROOORRRRRORRRROOOOOORRROOOOORROOORROROORRRRRROOROROORRROORROROROOOROROORORRRORRRROROORRRRORRRROROOOOOOORORRRRRORROOOORRRORRORROROOORROOOOOOORROROOOOOOOROOOROOROROORRROORRRRORRROOORORRRRORORRRRRRRRRORRRRRORROOROOOOOOOOROORORRORORRORROOOROROOOORORRROROOROOORORROOOORRRROOROROOOOOROOORRROOOROORRRORRROROOOORROORORORROOORRROORORORROORRRORRROORRRORROOROOROORROOROOOROOOOOOROOROOOORROOROROOOROOOROOOROORROORRROOOOOORORORRRROOROROROROOOOROORRROOOROOOROORRRRROROOORORORRRORRORORRROOOOROOROOORROORRRORROOOORORROOROROOORROOOOORRRRROROOORROOORRRROROOOOORRROOOROOROROROOROROOOOOROROOOROOOORROROOOOOOOROROOORRRRRRROORRROORORROROROROORORORROROOROROOOOORRROROORRRROOROROORORORRRORRROOROOORORRORRRROORROROORROROOROOOOROORROROROORRORRRRRORRROOROROOOORRRRRRORORROORRORRROROROOOORRROROOROROOOROOOOOOOOORORRROROOROOORROORORROOORRROROORROOROOORORORORRRROORRROROOROROORRRROOOROROOOOOORRRRROROROOORRRRROORRRROROOOOROOOOOORORROOOOORORORROOROOORORRROOOOORROROORRRRRRORRROROORORRRRROOOROORROOROORORORROOOORORRORRORRRRORROOOOROORORROROROROORORORROORROORRROROORRORRORRRRRRROROORRRROOOOORRROORROORROROOROOOOOOOOOOROOORORRROORRRROOORROOOORRRORORRRORORROOORORRROOOOORROOROOOOOOROORRORRRORROORRROOROOOOORRRRORROORORROOOROOOOOOROOORRRROORORROOOOORORORRROOOOOORRRROORRROORORROOOORORRRRROOORROORORORROOORRORORORRRRRRRRROORORORROOROOOROOOOOOROORRRORRORROOROORRORRROROORRROROOROOORORROROROOROROORRROOROOOOOROROOROORRORRROOROROORORROOOORROOOORORRRRORORORRRROOROORRRRORROOORRORROROOOOROOROOORRRRRRRRROOOROOOOOROOOORORRORORRORROROORRRRROORRORRRROROOROOOOORRRRROOOOROOORORORRORORORRRRRRORRORRRROORROOORORRORRRRRORRORRRORROORORROOOORORRRRRRRRROOOROOORROROOOOOORRRRRRORROROROROROROROOOORRRRRORROORRRRROOOORRRROOOOROROOROOROROROORORORORRORROOORROORROORROORROORRRROOOOORROOOOORROROROOROROOOROOOORRRRORRROOOOORRRORORRRROROROOOOOOOORROROORRRRRRORROORORRRRROOOORRRRRROROOROOORRORORRROOROOROROOROROOOORRORORRORRRRRROORORRRROOOOORRROORROOOOROOROOROOOROORROOOROORORORRROOORRRRRROOOROROORRROROROORROOORRRROOOOORRRRORORORRRRROOOORRROROOORRROOROORRROROORORRROOROORRROROORORROOOOOORORRRRRRRORROOOOORORRRORRRROOOOROOROOROROORROORRROORORROORORRRROORROROOROORRORROROOOROOORRORRROOROROROOOOOORRROROROOORRORRORRRRRORORRROOROORORRRRORORRORRROROOORORROORROOOOROORORROROROORRROOORRORRRRROORROOORORRRROROOROORRRROOROROOORORROORRORRRRROORORRORRROOOOROORRORORROROOROOORRRRRRRORORRORORROOOOOORORROOOOOOOOROOOROORROORORORORRRRRROROROOROOORROOOOORROOORRRORRORRRRROROOORRORROOORORRRORROORRROROORROOOROOROOOROOOOORRRROOOORRROOROORROOOOOORORROOOOOOORORRORRRRROORORRRROORRORORRROORRRRROOROORRROORORRROOROOROOROOROOOOOROROOOORROORRORORORRRRROOORRROORRRORORROORROORROOOOOOROROOROOROORROORRRORROOROOORROORROOORRRRORROOOOOOOORRORORRRROOOOORROOOOROORRROROROORRRRRRROOORRRRROOORRROROOOOORRRRORRORRRORRORORRRORRRRROORRRRROROOOOROOOOROROORORRRRRRORRORRROOOORROORROROOOROROOROROORORRRRROROORRRRRORRROROROOROOOROOROOOOROROOROROOROOROORORRRORRROROROORROORRRROORRORORRRROROORORORRROROOOOOOOROORRRORRRRORORORRRRRRRROOORROORRORROOROOROROOOOROOROOOORROROORORROOROROOOOROROOOOOORRROOOORRRRRROORORRROOORRROOOORRORORRRORROOORROORORROOROORROOOOROROORRROOOROOOOROORRRROORORORORROOOROOORROORRRROOROORROORORRORRRORRROORRRRRORRRRRRORRRORRROOROORORROOOOROOOOOOOOOOOROOROOOROORORRROOORORORORROOOROOORROOOORROROORROOOROROROOORROOROORRROOOROOOROOORRROOOORRORRRRROORORROORRRORORROORRROORORROORRRRRRRROOROOOORROOOOOORROOOOORRORRORRROORRRRRRROOOORROROOORRORORRRRRRROOROOROORRRORRROOOROORRRRROROORRROROOORORRRRROOORRORRORROORROOOOROOOROORROORRRROROORROROOORRROORRRORRRORRRRRRROOOROORROOOOOORRORORROOOOOOOORROOOOROORRROOOROROOOROROOORRRORRRORRROORORRROROORRRROROROOORROROOROOORORRORRROORORROROORRRRRRROOORRROOOOOOOOOOOROOOOROOROORORRRORROORROORRROOOORRORRROROOROORORORORRROORROOORRRRORROORORRROOOOROOROORROROROOROOROOOOORORROORROOOOOROOOOOOORRRRRROOOORRORORRRORORORRROOOORROOROOORRRRROOROORROOOROOOORRRORORRRORROROORROOOOROOOORRROROOOORORRRROORRORRRRORRROOROOROOOROOOROOOORRORORRRRRRRROORRROOORRROOORRROOROORORRORROROROORROORORRRORROROOOOOROOOOORORRRRRROOOROORROROORORORRRROOOORROOROOOOROROOOOORROOORRORROOORROROOORRROOORRRORRRORORRRRRORORROROROOORRROOOOROORROOROROOOOOOORORROOOORRROOOORRRRROOOOROOORRRRRRROORRORRROOROOROOOROORRRORRORROROORORROOORORRORORRROORORRRRRROORROOOROROOORORRORRORORORRORORORRROOOOROORROORORRORRORROROOOOROOROOOROROORROROOOOOOROOORORORRORORORRRORRORORRROORROORROOROORROORRRROORORORRORORRRORROOOORRORRORROOORORRRROOOROORROROOORORRRRORRRORRORROOOORRROROOORRROOROORRROROORRORRRRORRORRROOOORRRROROORROOOORROROOOOOROROROROORRRORORROOORROROOOORORORRRORRRORROORRORORROROROOOROROROORRORROROROOORRRRRRRORRRORRROROOOOROOORRRORORRORROOOOOROOROORRROORORROORROOROROORRROORRRROOOOORRROORRRROOOOROROOROOORORROOOROROOORORROOORROOOROOOROOOORRROOOORROROORRRORRRROROOOOROROOOORRORROORORRORORRORROOORROORRROOOOROORROORORRRRRORRROOOORRRROORRORORROROOORORROOORRROORRORRRORRROOOOROOORORRORRRRROOOOORORORROOOOROOOROOOORROROORROOORORRRROROROOORROORRORORRRRRROOOOROROOOOOORRORORROOOOROOROORRRORRRROOORRRROOORROOORROOOOOROORRORRORORRROOORROROROORRROOOOROORRORRORRRROOORORRRRRORROORORRROORRORROORORORRRRORROOROROOOORORORORROROOORRRRRROROROOROOOORORORRROOOORRRRRRORORRROOOORRROORRRRRROOORROOROOOORRORORRRRRRRORROORORRRORORRRORORRRRORROOOOORROROOOOORROORRRRRORRRRORORORORROORRORRRRRROOROOROOROOOOROORROOROORRORROORORRRORORRROORRROROROOOOOORRRROROOOOROORROOOOORRROOORRROROORORRROOOOOROORORORRRROOROOROOORORORRRORRRROORRRRORROROOORRRROOORRORRORROOROOROOOOOOORROOROORRRRRRROOOORROOORROORRROOORROROOROOOORRROOOOORROOOROROROROOOOROOORRORROORRROOORRRROROOOORROORRORROOORRRROOORRORROOOORRROOOROOOOROROOOOORRRRROROROROORRROOOOORROOORRROORRORRRROOOORRRROORRRORORRRRRRORROORRRROOOOOOORRRRROOOROOROORRORRORROROROROROOOROOORROOOOROOOROOOOORORRRORRROOROOOOOROOOORRRROORRRROOOORORRROOORROROROROOOROROOORRROORORRORORRROORROORRRORORROOROOORORROORORROOOOORROOROOOOORROOOROORORRRORRRORORROOOOROOOROOROORRRORRORRORRRRRROOOROROROROORRRROROORROROOOOROOOROOOOOOROOOOOOOROOORORRORORRRROOORRRORRROROROOOORROOOOROOOOOORRRRORRORRRRRRROOOORRROOORRROROOROOOOORORRRRORORORROROROOOOROROOOOORRORRRRROROOOORRROROOOOOROOROROORROOROOOOOORRORRROROROOORROORRORRROORORORORRRROOOORRROORORRORORROOOORROROOOROROOOOOOORORRORRRRRRORORRRROOOOOORRRROOOOOOOROOOOOOOOROOOOOROROROOOORRROOORROOORORORRRROROROOOOROROOOOOROORROORRORRRRROROOOOOOOROOORRROOROOOORORRORRRROOORRRORROOROORRORRROORRORRRORRROORRRRRROORRROOOOORORROOOOOROOROOROOROOORRRROORRRRORROOOROORROOORRRRORRORROOOOOOOOORRROROORRROORORORROOROOORRRORORRORORRRRROROOOORROOOORRRROOOOROORRRRRORRRROORORRROORRRRROORRROOROORORROROORORRORORRORORORRORORRORRRROROROOOOORORRRROORRORRRORRRROOORORRROOORORRORRROROOROOROORRROORRORRROORRRRRRORROOORRRRRORRRRORRROORRRRORROOOOOOOROOROOOOOOORRRROOROORRROOORORORRROROOOOROROOROROROORROOORRRRORRRRROOOROROROOROORORROORROROOOOOOOOORRORORRRRRROROOORROROOORROORRROORROOOORORRRROOOOOROROORRRORROOOOORORROOROORRRROORROROORORRROOOORRRORORRRRRRRROROOOOOOOROORORRRRRRORORRORRORORRROROROROROOOOOOOOOOOROOOORROORRORRRROROOOOORRRORRROROORRORRROROOROOOOORRRORRRORRRRROORRRORRRROORRROOOOOOOORORRORRORORROOROORRRRRROORRROOOORRRORRORRORORROOROORROOOORROOORRORORORROOOROOORROOROORRRRROORROOROOOORROOORRROROROROOOROOOROORORORORRROOORROOROOOOORROORRRORRRROOOOOOOOROORROOOORROOOOORORROORRROOOORROOOOOOROROOOROROOOOORRORRRRRORRORRROOORORRRROOORRROOOROOROORRRORROOORRRRRRROOOORRROORRRRRRRRRORROOOOOOROORROROOROROORORRORRORROORRROOROOOOROOOORORROORRORRRROROORRRRROOOOORRROROORRORRROORORROOOOOOOOROROOROORRROROOOORRRRRROOORRROORROORORORROOOORRRORRORORORROOOOORRORROORRROOOOORROROOOORROOOORROOOOOOROORRRROORRRROOROORRROOOORROOORORORRORORRORROORRRRRROROORORRRROROORRORROORRRORROOOOROOOOROOOOOORRRRRRROORORORRROOROROORORORRRRROROORORORROORRROORRROORRROORROROOOROORRORRRRRROORROOOOROOOOORRROORRRRROORRORROROOORRORRROOOOOOROOROOOOROORROORRROORRORROROROROROOROROORRORORRRROOORROROORROROORROOORRORRORRORORORROOOOOOOROROOROROOORROORORRROORORRROOOROORRROOOROROOOROROOORROORORRRORORORORORRRROOORROOOROORRRORRRRROROOOOOOROOOOROORRORORRRRRRRRROOORORRRRROOORRORROOROOOOROOROROROROOROOROOOOOROORROORRRROORRORORRRRRRORORORORRRRRRORRORRRORROORORRORROORRORRORRRROROROOOROOOOOROROORRRRROROOOOOOOORORORROOOROOOORRORROOORRROOORROORORRROROOOORRORORRRORRORORRROOOOROOROORRROORROORRRORRRRRORRROOORRRRORRRROOORRRRRRRROROOOOOOORROROORORROOOROOORRORRRROORORORRROOORORROORRROOOOORORORORRROOROOORRRORRRRRRRRROOOOOOROOOOORRRORORROOORRORRORRRRROOORRROOROORROORROROORROROROORORORROOOROROOOOROOOORRORRRORORRRRORORORRROOORRROOOOORRORRRRORROOORROOROROROOOOORORROROOORORRORORROOORROOROOORRRORRRROOOORRROROOROROORORORORRORRORRRRROOROOROOOORROORROORORRRRRROOROOOROOROROOROOOROOOOOROOOOROROOORRROORORORRROORRROOORRRORRRROOROOROORROOROOOROORROOROOOORORORRORRRORRROROROOOROOORROOOROOROORRORRRRRROROOORROOROORROORRROOROOORORRORRORORRRRRROOROROOORRRRRROROORORRRRRORRORRRRROROROOOROOROOORORRRORRROROOROORRROROOOORROOOOROOROROORROOOOROORORORORRROOORROORRRROOOORRROOOROROROROORRRRROOROORORRRORORRRORORORORORRORROORORORRRRROROOROOOOORORRRROORORRORRORRORORRRRORORORRRRORRROROOROOOROOOOROROOOORORRORRRRRROORROORROORROROOOORROORRRRROROOORORORRROORORROORROROROOOORRROOOOOOROOROORROOOOOOROOORRRRRRROOORROORROOOROOOORRRROOORRORRORROOROROOOORROROROOROROOOOOOOOROOOOROOORRROOOORORROORORORORROOORRRRORRRRROORRRORROORRRORORRROROOROOROOORRRRRRORRRORROROOROOOORRRROROROORRORROROOROROOORORRRRRORRRRROROORORRRROOROORRRRRORROOOOOROOOOORORRRROOOOROOOORORROOOOROORRROOROOOOORROOOROROOOROROOORRRRRROROROROORRROORROOOROORORRORRORORRRORRRORROOOORRRORRROORORROOOROORRORORROORORROOORORORRRROOORRROROOOROOOOOROORROROOOOOOORRRRRORORORRROOOORORROORORORRRRRRROOOORORROROORROOOORROOORRORRORRROROOOOOORORROOORROOOOROOOOOROOOOORRORRRRORRROOOORRROROROROOOORRROOOOOOOROORRROOROORORRRRRRRORROOOORRRORRRORRRROROOORORRORRRRORRROROOROORRROORROOORORRRRRRROOROROOOOORRRORORROORROORRORRROOOOROORRROORORORROOOOORORRRRORORROOORORRRORROOROORRROROOORRRRORRRORRRRROOOORROOOOOROOORRORRRRORRRROOROROROOORRRROROOROOORRORORROROROORROORRRRORROOOORRORRRROROOORORORROOROOOROORRROORROOORROOOROOROOORROORRROORROOORRROOROROOOORORORROROOROOROOOOROORRRORRROOOOOOROOOOOORRRRROOOOOROORRORORRROOROROORRRRORROOORRRRORRRORORROOOOORORRORRRRROOOOORORROROROOROORRRRORRORRORROOORRORROOOOORRROORROROORRORROROROOROOORORORRRRRORRORORRRRRRORORRRROROOOOOORORRRRROOOROORROORROROROOOOROROOOOOOROOORORRORORORROORORORRRROOOORROOORRRRROOORRORORRRRORRRRROOORRROORORROOOOOOROOOOOOORRORRRRORROROOOOOOOORRRRROOOOOROOOOORORROORORRROOOROROORROOORRROORROORROORRORRRORORRRRRROOROORRORRRRRROOOOROOROOOOOOOORRORORROOOOROORRROORORORRROOROORORRORRRRORRRORRRROROROORRRORORRORRRORRORRORROORORRRRRORRRRRORRRORRRROOROROOOROORROOROOROORRRROOROORRRORRROORORROROOOOORRORROOOOOROORRORRORRRROORRROOOORRRROORRRROROROORROORRRORRORRRORROROOROOOOOROOOOOORROROOOOOOOOORROOOROOORROOORROOOORORRROOOORROORRRROOOORRRORORRRORORRRORORRROORRRROOOOOOOOOROORORRORRRROOOORRORRORRROOORROORROOROROOROOORRRORROOROROOOROROOORRORRROORRRROROOOORORROOROORRROROOROORROROROOORRROROOORORORRRORORORROOOOROOOOORORRRROOOOROOROOOORROOOOOORRROORORROROROROOOOROOOOOOORRRORROROROORROROORRRROROROROROOROROOROORRRRRRROOOOOOOORORROORROOOROOOROORORRROOOORRRORORRRORORRROOORORROORROOORRRRRORROORROOOOORRRRORRORROORRRRRROROOOROROOOOROOOOOORROROOROOORORRROORROROROROROOOROORORORRROROORRRORRORROOROROROOOOORORROROORRORROROROOORORRRRROOOORRORRRRORRORORRRROOORRRRRRRORORRRRRRRRORORRRRRRRRORRORRORORRRORROOROORORROROOROOOOORORORORROOORRRROORRROORRROORROOORORRRRORORRORRROORORORRROOROROROOOOOOROORORRROROOOOOOOORRORORRROOOOORRRRRROROOOORRRROORORRRRORRRROOROOROROOORRRORROOOOOORORORROROORRRRRRRORRRRORORRRRORRRRORRRROOROROOROOROOOOOROORORROORRORORORROROROROORRRORRROORROOORRRRORROOORROOOOROOOROORORRORRRRRRROORRRORROOORRROOROROROOOOOOOOOORRROROOORORROORROORROORRROOOOROOOORORRROOOORRORORRRORRORORRROORRRRORRROOOOOORORORRRRRRRRRRROOROOOOROOOORRROORORRRRRRRRROOORRORRRORRROORROOOOROOROOORROOOROOROORRORROOROOORRRORRROOROOOROOROROROORORRROOOOOORORROOORRROROOORROOORRORRROROROOROROOOOOOROOOOORRRORROROOOOORRRRRROOORROORRROOROORROORRRROORRRRRROOROOOROOORROROORRRROORRRRRRRROOOOOOROROROOROROORROOORRORRROOORRROOROROOORORROORORRRRROORORORRRRROROOORRORROOORRRRRRROOROORORRRROROOROOOOROROOROORROROOOOOROOROOORROOOROOOOORRRORRRRRROOORROROROORRROOOOROROORROOOROOORROROROOORORROORROORRRROOOROROORORRORORRORRROOROROOOOORRORROOORRORORRRRORROOOORORORORRRORROOOORROOROOROORRRORROROORRRRORRRROOROOORRORORORORROOROOROORROROOOROOOOORROORROOOOORRROROROOROROOOORRRORRRRROORROOROORORRRORRRROOOOOORRORROOOOORRROOROOROOOOOORRROOOOORROOOOOOOOOOOORROOOROROOROORRRORRORRROOORRROORRRROOORRRRRORRRROROORORORROORROROOORRORORRRRORRROOOOROOOORROOOOROORORRRROOOROORROOROROROORORRRROORRROORRROROORRROROOORRRROORROOORROOOROOOORRORRRRROORORROOOORRRRRROORRROOORRORRRROOROOORRROOROOOOOROOOOOROOOOROROORRROROOORROOORRORRROORRRROROORRRROOORORROOORRRORRROOROORRRRRRRRROOOORROOOOOOOOOOORROOORRORRORRRROOOROOOORORORRRORRRRORRORRRORROORROOOORORORROROOROORROOROOOORRORORORORROOROROROOROORRRRRRRORRRROOORRORRRRORORRORORROOROOROOOOORRRRORRORORORROORRRROOOORORORORORROORRROORROOOOOOORRROORROOOOOROOORRORORROROROOOROORRORRROOOROROORORRROOOORORORRRRRROROOOROORORORRORRROROROOORORROROOORRROOROROORROROORRORRRRORROOORROORORRRROORRROOOOOROOOOOOORRRROROOORROROROORRRRORROOORRORRORORRRRORRROORROOROOOOOROOOOROROOORRORORRROOROROORRRORORORROORRRORRRRRRRRORRRRRORRRRROROORRRROROOORRORRORROROORORRORORRRRRROORROOROROOOOROOORORRORORRORROROOORRRROOORRRRORORORROROORRRRRRROORORRRORROROORRORROORORROROOOORROOROOOORORORROORRROROROORRROOORRRRORROROOOOORRRRROORORORROOOROOORROROOORRRRRRRORORROROOROROORRRRRORRRORROROORRORRRORORRRRORRORRORRORORORRROOROORORRRRROROOOROOOOROROOOROOOROROOOOOROOORRROROROORRORORROOOORROOORRORORROROORORORORRRRROOOOOORRORRRROORROOOOOORORROORORORORRORORROROROORRROORRRRROOORRROOOOOOROROOORROROOOROOORRROOOOORORORROORRRORORRRRRROOOOORORORROORRORORROORRRRRRRRRRRROORRROORRRRRROOROROOROROORORRORRORROOOOOROORRRRRRROOOOROROOROORROOORRRORORRRRORROOOROOOOORORORRROOROOORRORROORRRROOOORRROORROROROORRORRRRORRORROOORRRRRORROORRRORROORROROORROORORROROROOROROORRORRRRRROOOOOOROROROOOOORRRROOOOOOOOROOORORRROORROOORORRORORRROOOORORRROOOOORRORRRORORORRRRRRROOOROORORORORRRORRORROROOROROORROORRRROOORRORRRORROOOORRORRROROROORRRROOROORROOROROROROOROOORRRORRORRRORRRORRRROORRRROORROOROOROROORROORORRORROORORRRORRRROROOOORORRROROOROOOROOOORORROORROROROROOROROOOORORRRROORROROROROOORROORRORORRRROOROOOROOOORRRROOROROORORRRRRORORRROORRRRORRROOOOOORRORRRRRRORRORRROOROOROORRROOOORORRORROOROOOOORRRROORORROOROROOROOOROOOORROROORRORORORRROROOOROOOOOORRRRROROROOROORRORRRORORROORRRORRORROOROROOOROOOROOOOOORRORROORRRRROOROORRRRRORROOORRRRRORROOROROOORRRRRORRORROORRORRRORROORRRROOOOOROOORRRRROOROROORROOOROORORRRROROOOOOOOORRROOOOOORRROORORROOROORROOOROROORRROORRRROORORROROROORORORRRRORORRROROOORROOOOROORRRRORRORRORRRROOOORORROOOROOORRORRRRROROOROORRRRRRORRRROOOOROOROORORROOORRRROOROOOORROOORROOOOROROOROROOROOORRRRORROOORRRROOORROOOORORORROORORRRRRRORRORROOROROROOOOOROOORRRRROROOROOOORRRRORORRROOROROOROOORROOOOROOOOOOOORROROROOOORRORRRRRROROOORRRROOOOORORRROOORRORRORROOROROOROOORRORRRRRORRRRRORRORRROOOOROORRRROOROROROOROOROORRORRRORORORRORRRRORRRROORRRROORORRRRRROROORROROOOOOOORROOROROOROOROORROOOOOORRROORORROOORRROOROORRRROROROROOORORRRORORROORORRRORRRROROROOOOROROORRRORROORRRRRORRORROOROROROORRRRRRORRRRRRRRROROOROROOORROOOOOROOROOOOOORORRORORORRRORRROOOOROROROOOORRORROOOOOROOROOOOORRRORRRRROOORORRROOORROROOOORRRORRRRRRRRROOROOROOOROOOORRROOROROORORRRRRORRROROROORRROOORRRRRROOROORORORROOORRRORRRROOOOOOROOOOORRRORORRRORRORRORRROOOOROORRROROORRRORROORRORRRRRRROROOOROORROORORRRRRRROROORORRRROROROORRORROROORROORORRRORRORROORROOOOOORORROOOORRORROROOROORRRROOOROOOOROOORRROROORRORORORRORORRROOORRRROORRRORORORROORRRRORORRROOOOOOOOOROOOORRRRRORRORRORROORRROOROOOROROROORRRRORRORORROOOOORRRROOOORORORRORRRRRROROORRRROORROROOOOORORROROOROORRORORRORRRRRORORORRORROORROROROORORROOROOROOROOOOOROROORRROORROROORRORRRROORROORROOROROORRROROOOORORROROOROOOOOOROROOORROOOORRROROOOORRRROOORORORRROOOORRROROOROOORRORRORORRROORORROOOOOROOOROROOOOROOROORROOOROORRROOOORORORORORRROORORRORRRRORRORORROOOORORRORRORROORORRORRRRROORROOORROOOOROROORRRRRROOOORORORROOOROOOOROOROOOOOROORROOROORRORROORRRROOOOORRROORROOORROOOOOOOORRRRRRROOOROOORROROROOORRROROROOROROORRROOORRORORRROOORROORORORRORORRROOOROORRRRRROOOOOOOOROOROROOROOOORRRORRORRROROOORRORORORRRORORRRRROOROORROORRROORROORRRRROORRORROOROOOOORROROROOOOOOOORRRORRRROORORORORROORRORRROORRRRRROROOORROORROOROROOOROOORROOROORRROOOOORRORORRRROROOORRRROORRRORRROORROROOROORRRRORRRRRRROORORORRROROOORRORRORRRORROORROOOORORROORRROORORROORRORROOOOORRRROOROOOOOORRRRRROOOOOORRRORRRRRRORROORRROOROORRROORRRROROOROOOOOORRRRRROORORROOORORROORRROROROROOROOOOOROROOORROOROROORORRORROOORROOORORRROORRROROORRROORRORRORROOOOOROOOOROOROOOROOROROOROOOOORRROOOORRRROORRROOROOOORRORRROOORRROOOROORRROOORROOORORRRRROORRORROOROROORRROOOORROROORROOOROOROOORORROORORRROORORROOROROROROOORRORROOORRORRRORRRROORRRRRORORROROOROROOROORORRORRRRORROROOOOOOOOROROROOORRORRROOOOROOORRROORRROOOOROROORORRRROOOROOOROORRRRORORORRORORROROORRRROOORORRORRROOOORROOROOORORORROROROROORRORROORRRRROROOOORORRROROOOORRORRROOOOOOOOOORROORROORROROOOOOOROOORRRRROOORROOOORORRORROORRRORRRORRORRRROORRRORRRRORROOOOORRRRROROOOOOOOROOOROOORRORRRROORRORROROROOORRROOOROROOOROOROROOROOORRRROOOROOOORORORORRRORROROROOOOOOORORRRRROROOORROROROORORRROOORRROORORROOOOOROORORRRORORROOORRRROOOROOROROROROOOROROROOROOROORRROORORRROORROOOOOROORRROOOOOROORRROOROOOOOOROROROROOORRROOORRRROROROORRRORRRRROORROORORROORORRRRROOOORORROORORRRROOOROOOOOOOOOOOROROOOROOOOROORORRROOORRROOROOOORROOOORRROOOOOROOOROROOOROOORRORRROROOROROROOROROOORROOORRRRROROOOORROOROORRRORORROOORRORROORORORORRROROOROOORRRRROOROROOORORROROORORROOORRRRORROOOORORRRRORRRROORORORORRRROOOORROOORROORROOORRRROROORORRROOOROOORRRROOORRRORROORRRORRORRROOORRRRORORORRRRORROORORROROORRROOROORRROOOOOOOORRROROORROROOROROORRORROORROORRORROROROOROROOORRRRRORORROOOROOROOOOROROOOOORRORROOOORROOOROROOORRRRROOORRROROORRRRRRROOOROOORRRORROORRRROOORROOOOOOORORRRORRORORRROROOORRRROOOROROROROORROORORRROORROOROORRORRRRRROROOORRRRRRRROORORRORORRRRORROORORORRORROORORRRRRROROOORORRROORRROORROORROOOOOORORROROOOOOOROOOORROOORORRROORROORRRROOROOOOROROORRRROORORORROROORRROORRRORRRRORORROORORRRRRORORRORRORRORRRROORROOORORROROOOORORRRRORRRRORORROROROROORROOOROROOROOOROORRRORROROOOOORROOOOOROOOORRRRROOROROOOOOOORROROORRRROORRRRRRRROOORROOORRRRRROROOROOROOROROOROOOROOOROOOOROOOORRRROROORROOOORROOORRROROORRROROORORRRORRRRORRROOOOROORRRROROOORORRORRORRORRRROOOOOOROORORRRORRRROOOOOOORORROORORORROORRROOOOORORORORROOOOOOROROORORORROOOOROOOORROORRROOOROORRRRRRRRROORROOORRRROOROORRRRROOROOROORROOROROOOOOOORRROROOROOOORORRRRRORROROROROOOOORROOOORROOOROORRORROORRORRRORORROOORROOORRORORRRRROORORROROOOOORRRROOORRORRRRRRRROORROORORORRORROROORROORORRORROROORRRROOROOOOOROOOOOROOOOOROOOORORRORORRROOOORRROROROROROROROORRORROORROROROOROORROORROOROORROROORRROROOROROOORROOOORORRRORRROOOOOORRROROOORRRROORROORROOROOORROOOOOOOORROOOOORROORROROORRRRROORRROROORRROOOOOORROOROROROOROROOOOOOOROORORORORRRROROROOORORORRRROOOORROORROORROROOROROROOOROOROROROORRORRRRRROOROOOORRROORORRRROOOOOORRORROOORORORRRRROOOROOOOORRROORORROROORROROOROROOORRROROORORRORRRORORORROOOORORORRROORRRRROROOOOROOOROOORRRRRORROROORRORRROOOROROROROROORROROOOROROORORROOROOOORORRRRRORRROORROOROOOROOOROROROOOOROORRRROOOOORROOORORROROOOROOOROOROORORORORRRORORORRRRORROOOOORROOOORRRRORRORRORRORROOROOORRORRROOROOROOORROROORROORROOOORORRORROROROOOROROOORRROOROROOOORORRRROROOOROOOORORRORORRORRRROROOROOOROOOOROOOOROROROORRORROROOOOROORRRRORORORRRRORRRORROOOORROOORRORROORRROORRORRORORROORROROROOOOOOROROOOROOOOROROORRRROOORORRROORRRROOOOOORROORRROORORORROORORRORROOROROROOORROOORORROOORROOROOORRRROOOORRRRRROORORORORROOOOORROOOORRRRRRRRORRROORROORORORRRORORORRORROOORRORRROORRRROOROORRORROROROORRRRRRRRROOOOROROOORRRORRRROOOOOOOOOOORRROOOORORRRRRRRRORRROROROOOORRORRROORRRRROOROORROROORROROOORORRRRRORRRORORRRORORRROOROORRRRORRORROORORRRRRROROOOOORRRORROROOROOORROORRORROOOOORRRRRRORRRROOORRRROOOOORRRROOOROORORRRRRRORORRORORORROOROOORRROORROORROROOOORROOOROOORORORROROOOORROROOOORROOORRROOORRRORROORRRORROOORRROOORRORROOROORRORORRORRRROOROORRRRROOROROOORORRRORROOROOOROOORORRROORRRRROROOROOORRRROOROOORORRORORORRORROOOROROOROOOROROROROOOOORROROORORROORRROORROOOORROOOORROOOORRROORRRRROOOORORORROOORRROOOROOOOOROOROROOORORORROOROORORRROOORRRRORRRRROORRRORROORROOOOOORRRRROROOOOOOOROOROROROORRRORORROROOOORRRROOORORRRRORRORROOROOORORROORORROOOORRORRORRRROOOORRRORROORORRROOORRORRROOROOOROOOOORORORRRORRROROOOOROROROROOORRORRRROORRRRRROROORROORROOROOROOOOROOOROOROROORRRROOROOOOORROROROOROORRRORRROOROOOROOOORRORROOROORRRORRRRORORRRORROOOROROORORRROORORRRROORRORORROOOOOROOOORRORORRORRORORRROOOOOROOOROROOOOOOOROOORRRROROOORROOORRRRROROROROORORRORRORORORRROROORORRRROOOORRROORRORROOROROOOOROOOORROOOROOOOOROOOOOOORROOORROOORROROOORROOOROROROOOROOORRRROOORRORORROROROOOORRROOORORRORRORROROOOOOOOROROOOROOORRROOROOOROOOORROORRRRORRROROROROOORRROORORORRROOROOROORORRORROOOROOOORORRORROROOORORORRORORRRORROOORRORRRROORRRROORRORRRORROORRRRORRRRRROOOOROOOORORRORROOOOOOOOOROORRROOOOOORRRRRROOOOORRROROOOORRRRRORRROOOROORORORORRRRRRROOOOOORRORROOORORROORORRORRRRRROOOOROORRORORORROROORRORRORRRRROOORRRORRRORORRORRROROROOOOOOROOOROOOOROOOOROOOOORRRORORRROORRRRRROOOOORRRORRROORROORRORORRORROOROROROROROORORORROOOOOOROORRROORROROORROOOORORRROROOORORRORROOROORRRRROOORRORRORRROORRRRRRROROROOOOROROORORRRORROORORRRRRROROOOORRORRRORROORROROORRORROOOROROOORORRROOROROOROOORROORRROOROOOROOOOOORRRORORRRRORROOROORROOOOORRRRRRRRRROORORRORRRROOOOOORRROOROOROOOOOROROORROOROROOORROORRRROOOORRRRRORORRRROROORRRRROOROOOORRRORRORROOROORORRRRRORORRORORORROORORROORRROROORROOORROROOORROROROOROROORROOOROORRRRRRRROORROROOORROOOROOORORRRRROROOROROORRORRORRROOROORORRORRRORORRROOOORRORORROOORRRRRRROORORRRORRROOOOROOOOOOROOOOOOROROOROORROORRRRRROORROORRROOOROROROORROROROOOOOOROORRRRRRROOROOOORRORRROROOORRORORROOROOROOORRROOOOOOOOORRORRRRRRROOROOORRRRRROOORORORROROOROOROOROROROOROORORROOOOROOROROOOORORRRRORORRRORRORORORORROORROROOOROORRORROROORRROOORRRROORORROOOORROROORRRORRRRROOROORROROOOROROOOORRRRORROOROOORORROROOORRROOOORROROOOOORROOORRRRROROOROORORORRROOORRRROOORRRRORRROOOOOOORORRRROOOOOROROOOOOORORORORORORROOROOOROOOORRROOORRRRRORRORROROROOOOOORRRORRORORRRRRROOROOORORROOORRRRRROOORORROROROROOORROORORRRRRRROOORROORRROORROOOOORRORRORRROORRRRRROOROOORROROOOOOOROOORROOOROOROOOROOOOOOROOORRRRRROOROOOROROOORROROROOROROOOOOOOORRORORRRRROORRRROOOROOORRROOOROORRORORRORRORROOORRROOOOOORORRROOROOOOOOOOROOOROROOORROROOOOROROOOROROROOROROOOORROORROOORROOORRRROOROROOOOOOOROOORROOOOORRROOOOORRORORORRROOOORRORRORORROOORRRRROORRRRRRRROOOORRRRORORRROOOOOOORRRRRRORROORRORRORROOROOORRROOORRORROOORRRRRORORROOOORRRRORRRORRORORRRRRRRORRRRRORORRRROOROOOORROOOOOOROROORORORRRRRRROORROOOORORORORRRRORORRRRRRRRORRRRRORRRROROOOORRRORORRORROORRORORORROORROOOOROOROOOOOROORRORRRORORRRORRROOOOORRROOORRROROOROORORROROOROROOOROOROOOOOROOOROROOOOOROROORORORORROOOOORORORRRROROROOORRRROROOOOOOORRRROROORROORROOOROORORRRORROOOOOORROOOOORROROOOORRORROROORRRORORROOORRORRRROOORROOROOROROOOROROORROROROOROOROORRORRRRORORORRROORORRRROROOOORROROOROOOROROOROROOORRRRORORORROOOORORROROORROORROOROOOROROROORRROOROOORRRRROOROROROOORROOORROOORROOOROOROOOOORORROOOOROROORRRORRROORORRROOORROORRRROROOOROOOOOOOOORRORRORRORORROORROOOORRROORROOOOOOOOROOOORRROORORRRORORORROOOORRRROROOOOOOOOROROOORORRRRRRROOROOROORRROORRRROOOORRRRROROORRROROOOROORRRRROORRRORRORORRROORORRROOROROOOORRRRROORORRRORRROOROOROOOROROROORRORORRROROROORRRRRROOORORRROOROOORRRROOOROROORRRRROOOOROOORRORRRRRRROOOOROORRORROORRRROOORORROORROROOROOOROOOORRRRRRROOROOROROORORRRROOOOOORROROOROOOOOORRRRORORRORRRROOOROOOORRORRROOOOOROORRORORROROROROROROROORRROOOOORROOOOROOROORRORORRRRRORROROROORORORRRRORORRROROROOROROOOOROROOOROOROOOOOROOORROOORROOORROOROROOORORRROORORROROROORRRORRROROOOROROORROORROROOROROORRRRRROORRRRORRORRRORRROOOOROROOROOOORROORRROROOROOROOORORRROORORORRRROOOOOROOOORRRRROROROOOROROOOOOORRRRORORROOROORROORROOORRROOORROROOROORORORORRORRRROOOOOOORROORRRORORRORROOROOROOORRRRRRORRRORRORROROROOORORORRROROOROOOORRORRRROOORORORRRORROROOOORRRORROOOROOOORORRROORROOOORROORORROROROOROROOOORORORRROOOORRORROROORROORRROOOROOOROORROROORRORORRORRRORROOOOOORROORROORRRROOOROOOOOOOOORROOORORORROOOOROROROORROOORRRROROROORORRORRROROOORRRRROOORROROOOOORORRRRRRRRRROORRORROOROOOORORRRRORROROOOOOORRORROOORORRROROOROORROORROOORRROORORORORROOOORRRRORRRORORRRORRRROORROOOORRRRRRRRORROOORROOOOOOORRROOORRRRRRRRROOROROROOORROOORRORORRORRORRORRRORRROROOROOOROORRROORRORORRORRORRORORORRRROROROORRRRORRRRRORRORRRRRRORROROROROOROOOROOOORRRROROROORROORRRRORORORRROOOROORORROORRRROOOOOROORROOROOOOOORRRORRROROORRORORRRORRORRROROROOOOROOOOORRRRORORROORORROORORRORORROROROOROORORROOORRRRROROOOROROROOOORORRRROOROROOOOOORRRROOOOROOOORORRORROORRRROOORRRRRROOOOOORRRRRROORORRRRRROOOROOROOROOORROOROORRRRRORRORROOOOROORROOOROOOROOOOORROOROROOORORORRORORRROOORORORROROROOORRRROOOOORRRRRRRORRRROOROORORORROOOORRROOROORRORRORROOOROOOORRROOOROOORROORROOROORRRRORORORROROROROOOOOROORRORRRORROORROOROOORORROOORORORRROORORROOOOOROOORROOORRROOOORRRROOROORRROROOORROORRRRORORRORROOOROROROOOORORROOOOOOORRORRROROROOORROOOORORROOOOORRROROORORRRRRORROOORROOROORRRORROOOOOORORORRRRRROORRRRROOROOOOOOORRRRROROORRORROOROORORORORORRRORROROORRRRRRRROOORROOROOOOOROOORROROROORORRRROOOOROORRRROOROOOOORORRROOROORROOORORORRRRROROROROROORROORRORRRORRORROOROOOORRRROROOOORROROOOOOORRORORRROOOOOOOORORORRORROOORRRRRRRORRORRROORORRRRORRRROORRRROROOOROOROOROORRORRRORRROOOOROOORRROOOROORORORRRRRRRRORORORROROOROROORRRRRRORRRRRRRRORRRRRRORRROORRRROROORRORRORORORRORROOOROOOROOORROOORORRRROORRORORORORRRROROOOOOOROOROOROROORRROROROOROORROOORRROOOOOOORORRRRROOOORRRRRRROOOOORROOORRRRRRRROROROORRORRORORRRORORORRROOROORRROROROOOOORRRRRORRRROROOOROOOOOOOROOORORRORRRRORRORRROOOOORORRROROOORRORORRORROOOROOOROOOORROROORRRRRRRRRRORROORORORORORRORORRORROROOROORRROOOORRROOOROORRRRRORRORORRRRROROROROOORRRRRORRORRORRRRRRRRROORRRROOORORRORORRRRROOROORRROROROORORORRRRRRRORRRRROOOOOOOOROROROOORORROROOOROORRRROOORRROOOORROOOOROORRROOOOROORORORORRRORROROROROOOOORRROORRRORORRRROROORROOOROROOOROORROORORRRROROROROOORORRRRROORRROROROOROORRROROROROOOORRORORRRRORROOOOORROROROOORROOOOOROOROOOOOORORRRRROOOOROORORROOOORRROOORORORRORROOORORORRORRROROORORRROORROROOORRRRORROOOOOORORORRRRROOOORORORROOROORRRORRRROOROOROOORRRRRRORROORROORORROOOOROROORRRROROORROROORORORORROOORORRRORROOOORRORROROROOOOROROROOORROORROOORORRRROROOOROORRORORORRORRRROOOOOOOOOOORRRROOORROOOROOROOROROORRROORRRROOORRRROOOROOOOROOROOOOOOOOOOORRROOOOORROROROORRRRROOOOORRRRORRROOOROORRORRROROOOOORRROORROOROORORRROORRORORRROOORRORORROORROORRRRROORRRRORRORRRRROOOROOOOOROOROORRORRORORORRORRORORROOORRROORROOOROOOROOOOORRROROORROOOOORORORORRROORROORRORRRRRRRROOOROROOOOROORROOORRORROOROOROOOROROOORROROROOORRORORRROOOROROOOROROROOOORRRRORROOROORRRRRRROOORRROROORROROOOORRRRORRORROROOOROORRROORRORORORRROROOOOOORRROOOROOOOOROOOORRRRRROORRROROORROOOORRROOORRRORRROORRRROROOOOOORRROOORRROOOORORRROOOOOROOORRRRRRROOOORRROORORRROOORRRROOOOOOOOOROOOROOORROOOOORRRRRORORORRRROORRROOOOROOOORRRRRORRRROROOROOROOROOOORORORORRRRROOROOOOOORRRRORROORROORRRRRRROOOROROOORROORORRROOROROROORORRROORRORORRORORORROOROOROOOROOROOORRROROOROOROOROROORRROOOORRROROORORRORRRORORRRORRORRRROORRORROORRRRORROOORROOOOORRORRRORRORRRRRRRRRROOORROOORORROOROORORORROROOROORROOROORROORRRORORRRRORORRRRROORRRRROOROROOROROROOOOOORORRORROOROORORORRRRORRRROOOOROOROROORRRRROROOOORROORRORORRROORORRRORORROORROROORORROORROROROOOOOROOOOORROROOORORROOORROROORROOOORRROORRRRORORORROOROOOORROROOOROORORROORRORRRROOOORORRORORRRORROOOOORRRRORORRROOORRORROORORORRROORRORRORRRRRROROORRORROROOROORRRROOOOROROORORROROOOOORROORRRROROROROROOORRRRROROORORROORORROOORORRRROROORRRRORRRROOORROOROROROROOOOOOOROOROROOOORRRRROOOORROOORRRROOORRRROROOOOOOORROOOROOORRRORRROOROOOOORROOOROORROORROOOOORROROROOORRORRRROROOOORROROROOROOORRROOOOOROOROOORRRORRRRROROOORRORRRRROOROOORRRORRRRRORRRROOROOORRRRROORRROORORRORRROOROORROOROOROORROROORRRORROROORROOOOROORRRRORROORRRRRRRROOORROROROORRRRRRRORROOOORORROROROORROROOOOOORRORORORORROORROROORORRRROOOOOROOOOROROORORROROORROORROROOORROOOOOORORORORRRRORROOOROORORROROOORRROOORORROOOROORRORRRRORRRRROOROOOORRRORRROROORORRORORROORORORRROOOOORRORORORRRRORRRRROOROROORRROORRORROORRRRRROROOOOORRRROOROOOROROORRORROROORORORRRORROOOROOOOROOROOOORRROORRROORRRRROOROROOROROORRRORROORORROOROOROROORRRORROOOOORORRRORRORORRRORORRORROOROROORROOROORROORRROROOROOOOORROROROOORROOOOOOOROOORRRRRROOOOROOOORRRRRRROOORRORORRRORROOORROORRORROOROORORRORRORROORORORORRRRROROOOORROOOROORROOOOOROORROROOOROROOOROOOROROORORORROOORRRROOOOROOOOOORROOOOROROORORORRORORORROROOORRORORORRORORRRRRROORRRORROROROORROORORORRRROOROOORRORORRRRORRRRRRROORRORROOOOROOOORORRROOOOORRORRRORRRROORRRROOORROORORORORRORROROOOORRRRRORRRRRROOORORROOOROOROOORROROOORRORROOOORORROOORRRRRROOROOORRRRROORRROORRRRRORRORROROOOORRORRROOOOOOOOOOOOORORRRRORRROOROROORRROORRROORROORRORRRRORRROORORORRROORRROOROROOOOROORROROROOOOROOROOROOORORORRRORORRROROORROORROOOROROOORORRORROOROORRRORRROOORRRROOORRORRRORROORRORRORRRRROOROROROROOROORRORORRROOROOOOOOROOOOROROROOOROROOOOOOORRROOOOROROROROOORRROROOORORORORROOORROOROOOOORRORRRROROOORROORROROOROOORRROOOOROOORROOOROOOORORROORRRORORORORORORROORROOORRORROORROROOOORRRROOOOORROROOOOOOORRRRRORRRRORRRROOORRORROOOORRRRRRRROROOROROOROROORRRRRROOOOOOORORRRROORRROOROORRORRORRROORRRORROORORRRORORRRRRROROOROOOOOROORORORRRRROROORROOROOORROOOROOORROROOROORRORRORORRRRRRROROOOOROOOORRRRORRRRRRRRRORROORROROROOORORRORROOOOOOORORORRROORROORRROROOROROROROROOROOOOOORRORORROOOORRROROOOOORRRROORRROROORRORRROOORORRRRROORRORORRRRRROOORROROOOROOROOROOOOORRRRRRORORORRRORORROOOOORRROORRRRORROOORRRRRRROORORRRRORROROOROOORROOOOOORRRROORRRRRRORROROROORROROROORRORROOROORROROORRROOOROOOOORRRRROROROOOROOOOOROORRROOOORRRRRRROORROOORORRROOORROROOORRRORROROROORROORRORORORRROOORRORRRRORRRROOOORRRORRRRRRORORORRRROOOROOROOORRROROOOOOOORORRRRORORORRRORRROROOOORRRORORRROORORORRRRRORROROOOOOOOOOOOOORORORROOROOOOROOOOROOORROOOROROORRRRROORRROOORRRRROOROOOOROROROOROORRRORRROOOOROOOROOORROORRROORRRORRRRORORORRRORROOOOOOOOOOROORORRRRROOOORORORROOOOORRROOOORROROOROOORRROORROROOORRORRRROORORRRORRRORRROOROOOORRORRRRRRORRRROOROOROOOOOROROROOOOOOOOOOROOORRRRROROROROROROROOORRRORORROROOROORROOOOOROORRORORRRRRRORRRRROOORORROOORORORRRRRRRRRRRRORRORRRRRRRROOOOROORRORRRORRORRRROROOROOROROROOROROOOOOORORRORROORRROORORRORORORRROOOROROORRORROORORROOROROORRORROROOOOOROOORORORRORORROOOROOORORROROROORRRRROORORRRRROOROOOOOOOORORRROROOROROOOOORROOOOORORORORRORROOOROOOOOROROORORRROROOROOROROROROROROOORRROORROROOORROROOOOROOORORORORRORRRORROOORROOROOOROOOROROROROOROORRRRROOROOROROORRRROORRROROORRROOROOROOOROORRRRORRROORORRROOORRRROORRRRRRORROOOOOORRORORRROOROOORROOOOOORROOOORRROORORROROOORRRROOOROOOOOROROORRROROOROROROOROOOROOORROOOROROORRORORRRRORORORRROORROROROOORORROOORROOROORORROOOROROOOOOOROROOORRORRROORORROROORRORRROOORROOORORRRRROORROOOORRROOROROROOROROOROORORORROROROROOORORRORRRROOOROORORRROROORORRRROOOOOROOOORRROOOORROROOORORROORRRROORROOOOORRROORORRRROROROOOOOOOORROOOOOOOOORORRORROROORRROOORORRORRROOORROROOROOOROROOROROORROOOOORRRORRROROOOORORRORRRRROORORRROROOOOORROORRRRROOOOOOOOORRRRRROROROOROOOOORORRROOORROROORORRRORORORROROROOOOORRROOORORRORROROOOORROOROOOROOROORRROOORORROORRROROOORORROOOROROORROOOORROOOORRRROROOORORORRRRROORRROOOORROORORRRRROOROROORORRROROORRROOORROORRORRORRRROORROORROORORROOOOOOORORROOROORROORRRROOROOROROOORRRROOORROORROOOOOOORROOOOOORROOROOORROORRORORORORORROORRROORRRRROORRRORRRROROOROOROROORROOROOOOORROOOOOROORRRROORRORRRROORROORRRROOORROOORORRROOROOROOOROROOROORRRORROORORROROROROOORORROOOOOROORRRROORRRRRRRRORRORRRRROOORROOROORROOROOOOROROORRORROOOOROORROOROOOORRRORRRRRORRORORORORRORRRORROOOORORRRRRRORRRROORRRRRORRROORRROORRORRORROROOORROROORROORRRRORORORRORORORRRRORRROOOORRRRORORORRRRROORORRRRROROROROORROOORROOROOORRRRRRRRROORRORROOOORRRRROORRROROOROOOOORRRRRRROOOROORROOOROROROORRROOROOROORRROORRORRRORRORROOOOOOOROROOROORORORORROOROOOOORRROORROOOOOORROOORORORORROOOROOOORROOROROROORRRORROOROORROORRROORROORROORRRRRRRORORRRRRROOOOORRRROOROOOOOORRRROROOOROORROOORRRRROROOORRRRRRRRORROORRORORRRRRRORROOORRORRRORRRRRORRROOOOOOOORROROOOOORROROOOOOOOOROROROROOOOOROOORRROROOORRORRROROROOOORRRRRROORRORORRRORORRORROORRROOOROOROROORRRORRRRROROROOOROOORRRROORROORRRRORRORRROORRRORORORRORORORRRRRRROOROORORRRRROORRRRRRRRRORRRRRRRROROORRORRROROOROOROORRORROROOROORRROROOOOROROORROORROORRROOOORRRRRORRROOORRROROOOOOOROORRRORRRRRRORRORRRRRORRROOORROOOORORRORROOORORROORORROROOOOOROOOOROORROOORORROROROOROORRROORRROOOOROOORRORRROROORORORROOOROROOORRROOOOOOOOOORRRRORORRRORRRROOOOOORROROROOOROOOOOORORRRRRRRRROOOORRRRORORORORORORRRRRRROOROORRRORRORRORRRRRRORROORROORRROOOORORRROORRORRORRROROROOORRRROOORORRRROOROROOOOOORRRRORRORROOOROOROOORROORRRORORRORORROORORORRROOORRORORRRRORRORORORRROOORRRROOORRORROROOOROORORRORROROORRORORROROOORRROORRRRRRROOOROROORROOOOOOORRORROOOOOOORRROOORORORORORRROOORROROOOORORROOORROORROOOOOOOORRORROROOOOROROROOROROORRROROROOORROORRROORROOOOROROROOORROORROOROROORRRRRRORORROROORRRRROOOORROOOOROOROOOOOROROROORRORROOORRRROOORRRRROOOORROORRRRRRROORRORROOORORRRRROOOOORORROROOORRORROOORRRRRRRRROOOOOOROROOOOROOOOORROOOOOOOORRROOOROOOOOORROOOOROOORRROOORROROORROORORORROOORROORRORRRRROROOORORRRROROORRROROOROOOORRORORORORRORROOORRORROOORORORROROOOOOROORRORRRORROORRRRROROORORRROOOORROOOROOOOORRRRRRRORROOOOOORROROOOROOORORROORRORRORRROOOROOOROROORRROOOOOOROOROOOOROOORORORRORRRRRROOROROOORORORROOOOOROOORRORRRRRORRRRORROORORRROOOOROROORRORRORROORRRRRRRROROOORORRRROORRRRROOROROOROOROOOOROOOROORROOROOOORRRORORRROOROROOORRORRORORRROOOROOOORRROOOORORROORRORROOROOROORRROROORROOOOROOORRRORRRRRRORORROOROROORRROROROROORRRROROOOORRROOROOORORORRRROROOOROOOORRRRRRROORRROOOOROORROROROOOORRORROROORROROOORRORROROROOOORRORRRROROORRROOORORROROOOOORORROOROORORRRRRROORRRRRRROOOORORROOROOOOROORRORORROOROORORORORROOOORRORRRORROOROOORROORRRRRORRRRORRRORRORORORRROOOORRRRRRRORRRRRROROORROORROROORRRRRROORORORRORRRRORRRORRROOOROOOOOORRRROORORRROROORORRRRROORRROORORRORORRORROORRRRROOROOOOOOOORORRROROORROROORROORRRRROOORRRORROORROOORROROROOORORROROROOROOOORROOOOROOORROOROOOOOOOROROROROOOORRRORRRRROOOORRROOOROORROROROROOROOROORORRRORRRROORRROOOORORRRORRRROROOROORORROOORRROOOROOROOOOOROORRRROOROORRORROROROOORORROOOORROORORRROORRRRRORRORORRORRRORORRROOOOOOORROOROROOROORORORRRRORROOORORRRORORRRRORRROORORRORRRORORROOROOOOROROROORRROROORRRRROROORROORRROORORROOROOROROOROORROORROOOOOOORORROOORRRRORORROOROOOOOORRRROORORORORRROROORRROORRRRROOROOROOORORRRROROOROOROROOOROOOROORRROORRORROOOOOORROOORRRRRORRRORROOOOORORROOORROROROORORRRROOOOOROOORORROOOROOORROORRORROROROORORORRRRORRRRORROROORORRRORORORRRROROOOROORRRRRROOOOOORORRRRRORROOORORRROOROORORRRROORRRRRRROOOORROORRROORRROROORORRORRORRRROOOROROORORORRRORORORROORORRORROOOORRRORRORRRROROOOOORROOROOORRROOOOORRORRORRRROORRRRRORROOOOORRROROOROORRORORORROORORROOOORROORROROOOOOORORRRORORORROORORROOORORROOORRRROOOORORRRRRRRRORORRRROORRRORORORORROOROROOROROOOOOORORROORRRROROORRROORRRROROROOROOOOORRORROOORROROROORRRORORRRROOOROOORRORORRRROORRRORRRORRORRRROROOOOOOORORROOORORORROORRRORRORRROROROORROORRRROROOORRORRROROOOOROORRRRROORORRRRORORROROOOOORRRROOROOORRRRORORORRRRROOOOROROOROORRROORROOORROOROOORORORRRRORROOROORRRROOOOOORORRRRORROORORROOORRORRORRROOORRROROOOOORRROORRRRROORORRORROOROOOORORRRRRROOOORORORRRRORROOOORROOOROOROOOROROOOORORROOROROROORRRORORORRRRORRROORRORORORRRRRRRRRRORRRRRROOROOOROORRRROROOROORORRRRORROROORRROORRORROORRRROROOROORRRRRRROOROROOOROORRRRORROOOOOROOROOOORRRRROOOROOROORROROOORRROOROOOROORORROORRRROORROOORRRRROOORRRORROOROROORRORORRROOROORROROORORRORROOROOOORORROOOROORROORRRROOOOOORROOORRROORRRROOOOORRORRROOORRROOORRRORORORROOORRORRRRRRORORROOOOORORRRRORRRORROOROORRRRRORROORRRROOROORRRROROOOORRRRRRRRROOOOOOORROOROORRORORORRORORRORRROOORORROROOOOOORORRRORROORRORROOROOOOORORROOOROOOOORROOOOORORRRROOORROROOOROORRROOROOROROOROORORRRORROOORRRORRRORROORROROOOOROORORROOROOROORROORORORRRRRROORRRRRORORRRRRRORRRRROROOOOOOOOROOROOORORROROOOOOOOORRRRORORORRORRRORRRRORRROOOORORROORRORRRRRORRRRRRRRORROROOOORORORROOROROOOOOOORRRROROORRRORROROORROOOORRROOROOROROOORROROORROORROOORRORRRRROORRORRRRRROOOOROOROROROOOOOOOROORORROOOOOROROOORORORRROOOROORRROOROOORRRROORRRROOOOOOROOORRORRRORRRRROROROOOROROORRRROOOOOOOOOOROORRRROORRRRORORROOOORRRROROOOORRORORORRORROROOORRROORRORRROOROOORROOROORORORORORRRORRRRRROOROOROOORROORROOOOOROORRRORRORROOORORORROORRROOOROOOROORROORROOORORRRRRRRRRRROORRRROOOORORROOORORRORRRRRRRRRROOROOOOROOOOORORRRRRRROROOROROOORROOOROROORROORRORROROOOOROOORRORORROORRRRRRORRORRRORRRORORORRRRRRROOORRORROORRORRRRROORROORROOROOOOROORROOOOOROOORRRORROROOOROOORRRRORRROOORORORRORRROORRROROROOROOOOOORRRRRORROOOOORRORROROOOORORORROOROORROORORORRRRRRORRROORROROOORRROROOOORORRORROOOOORORROORROORORROOOORORROROROROOOORORORRRORRRRRROOOOROORORROROROORROOOOOROROORORRROROOROORRRRROORRROOOOOOORROOOOORROORROOROORRRRRROOOROROOOOORRRRROROOOROROOROOOOORROOOOORRRRRRRORRROOROOORRRROOOOORORORRORRRROOROOROOORRORROOORORORORRORRRRROOORROOORROOROORROORROOOOOOOOOORRRRROROORRORORROOOORROOORRROOROOROOROROORRRORRRRRORRRORRORORRROORROORROROOOOOOOORORORROOROOOORROROORORRROORRROROORROROORRROROOOORRRRRRRORRRRRROORORROORORROOOORRORRROROOOOOOOORORROORRORRROOOOOOROOORRRORORORROORRRRRORRROROOOROOORORRRRORORRROROOOOOOROORRROOORROOROORRORROROROOOORROOOOOORRROOORORRROOROOROORRRORRROROROOORRROOOROOORORORORROROOOORORORORRRRROORROORRORRORRROORRRROROORORROROOROROORROOOROROOROORRRROROOROOORORRROROOOROORRRROOOOOORORROOOROOROORRROOORRORRRORORORRORRRRROOOOOROOORRRROOROOOOROORRRORROROROOORRROOOOORRROROOROROORRORORROOOOOOORRRORRRRRROORROOOOOOOROORRRORRRRRORRORRORRRRRORRROORRRORRRORROORROOROOOOOROROORROOROOOOOORROOORRRORORORROOROOROROOORRRORROOOROORROOOOOOROOORORRROORROOROOOROORROOORROOORRRROOROROORRORORROOOOOROOOORRRROORRRRRROOOORORROORROOORRRORRRROORRORROOORRRRRRORRROROOROROOROOORORRORRRRRRROOROORROOORROOORRRORORORROOROOORROOROOORRORRROROROOOORROOOROROOOROOORROOROORROORRORROROOOORORORRROOORRRROORRRRRRORRRRROOOOOROOROORRORROROOROORRROROORRORRRROORRRROOOOROOROROORRROOROOOOOOORRROORRROOORROOOROOROROOROROROOOROROOROOOROROOORRRROOROOOOROOORORRRRROORRRROOOOOORORRROOORRROOOROORROOROORROORRRROOROROOROORRORRRRROORRRROOOOROOOROOORROOOORROROORRRROORRROORRRROOOROOORRORORRRRRRRROORORORRRRROOOORRROOOORRRRRRRRORROORORRORORRROROOOROOROOROORORRORROORRRRORROOORRRROORRRROROORORROROOROROORRROOORORORORRRROORORORRRRRRROORORRRORROORROROORRROROOROOROOOOROORORROOOORORORRORORORROROROROOOROORORRORRRRORRROORROOOORRORORRRROROORRORROOOORRRRRROROORRROOROOORRRROROOORRORROOOOROOROORRRRROORROROOORORORROOORORORRRORORROOOOORORROOOOROOOROROOOOOROOOOORRRORRRRROOORORROOOORRRROROROROORORROOORRROORROOORRORROOORORRRROORORORRROROORRRORRRRRROORRRORRROROORRRRORORROROOROORORRRRRORROORRRRRRROROORROOOOORRRRRRRRORRROROROOROOOOROOROOOROORROOROROOORRRROOORRROOOOORRRROROOORROROROOROROOOROOORRROORRORRROORORORORRORROOOORRROROROOROOROORRRROOOOOOOORRROORORRRRRROOOORROROROROOORRRRORORRORRORROOOOORORRRRRRROOROOORORROORROORRRROORORRORRRROOOOORORRRRRRROORORROORROOOROOROOORROORRORRRROOOROOOOROROORRROOOROORORRRRRROORROOOOROROROOORRROOROOOOOOOORRRRROORRROOORRROROORROOORRRROORRORRROROORRRRROOORRORRRORRORORROORRORRRORRRROOOROROORORROOOROORRRRORRROOROOOROOOORROORORORORRORRORRORORRORROOOORROOORRROOORORROORORRROOOOOORRRRROOROOROROOOOORRRORRROOORRRRORROROOOOOROROOOOOOOOROOOORROORROOROROOOOOOOORORORORRRORORROOROROORROOORRROORRORORROORORROOOROOOROOOROOOOORRORRRRRRORORROOOORORORRROORRRORRRRROOOORORRRORORRROOOORRRRRROROOOORRRORRROROOOROROOOROOROORROOORORROOOOOROOOOORORORRRORORROOROROORRRORROOORRROORRORORRRRRRRRORORRRRRRROOORROOOOOOOROOORRORRRRRRRRRRRORORROROOORROOORROROOOOOOOROORORRRORROOORROOORRORRROOOORROOOORRROORORRRRROROORRORRORORROORRRRRROOOROORROORRORRRRROROOORROROOOOORRORORRRORRRRRORRROORROROROROOOOOOOOOOOROROORRRORORRORORRRROORROORRROOROOORROROROORROOROROROOORRORRRRROORROORRORRRROOOOOROOOROOORORROOOOOOORORRORROROROOORRRROORRORROOORRRRROROOORORRORRORROROOROORRORROROOOOOOROROROOROORROORRRORRRRORORORORORRRORORRROROOOOORROROROOOOROOOOOOORORROOOORRROOROOORORORRROOORRRORORRROOOOROROROROROOOOOOORRORROROORORRRORROORRRORORRORORRROORROROROORRRRROORROOROORRORRRROORRRRORRORRORRORROOOORRRRRRRRRRORROOORORROROOOOORRROOROORORRORORROOOORROORRROOOOROROORRRORRORRORORRRRROORROOORROORRRRORROOORORRRRRRRROOROROOROROROORRRROOOORORRORROOOROORORRRROROOOOOOORORRRRRRORORORORRRROOORORORRRROROORORROOROORORROOORRROORRRROROOOORRORRROOOOROOORRRRROROORORRORORROOROOORRRRORRRRRROORRRROORROOROOOORROOROOROORROROROOOORRROOOORROOOORRRROROORORRROOORORROOORROOORROOROOOORROROORRORRRRROOOOORRORRRORORRROROOOROOOOOOOORRRRRRROOOOROROORRROOOOROORRRORORROROOORRRRRROOROOOROROROORRRRORORRROORRORROROOOORRROORRRRRROOOROOROORORRORRRORORROOOOOORROOOROOROROOOOORORRORROROROOOROOORORORRRROOORRORROORORROROROOOOOORORRORRROORORRROOROOORORRORORORRRRRORROOOORORRROOOORORROORROOROORORROOOROROORRROOOOORRROROORORORRRROORRRROORORROOOROORORORROROOROOROOROOOOROORRRORROROOROOOORRRROROORRROORRRRRORROOORROOORRORROORRRROORRORORORROOOROOORROROOOOOOOORRRRORRRRORROOOORRORRRROROROORROROOOOOOOOOORRRORRRRROOOORRRORRRROORROOORORRORORRRRROORRRRRORRRRRORRRRRRORRRORRORORORRORRORRORROOORRORRRROROOOOORORROOOOROOOOOORROROOOOORROOORROOROROROOORRROOORROOOROORORORROOOORORORORRROOOROROOORRRRORROROROORROORORROORROORRRRRRROOOORORROOOOORRRRROORORRRORROORRROOOOROROROROOROROOROOROROORRORRORORROROOORRORROROOORRROOOOOROOOOOOOROOOOORROROOORRORRROOORROROROORORORORROORROOOOOOROOOOOOROORRRRORORROROOORRROOOROOOORORRROROOORRRRRROOOROORRRROROROOOOOROOORRORORROORROOOOROOOOROROORROORROROROORRRRROROOROROROROROOORROROOROOORORRRORORRROOORRRROOORORRRRRRORRRRRROORROROOOOOOORROROOOROORROROOROOOOOORRROOOOROOOROOOORROOROROOOROOOROORRROOORORRROOORRROROOORRROOOOROOOORRROOOOORORROROOORRRORORROOORRRORORRROORRROORRRROORROOROROROOORRRRRROORROOORRRROOROROORROROROOROORORRRROOROOROROOOOOOOORRRROOOORORROROOROROORRROOORROOROOORRROROROORRRRORRRRRRROORRRRROOORROOROOORRORRRRRRORRORRORRORRORROOOOROORORROOORORRRORRRRRROROORRRROOOROROROROOOORORRORORRRROOOOOOORRORRRROROORROOROORROORORORROOOOOROOOOOORROROORRROOORORROORRROORROOORRRORROOORROOORORROOOROROORORORRROOROORROROROOOOOROORROROOOORRRROOORROROOOORRROOORROOOORROROORORORRROROROOROORRRRORORORORRROROOOROOOOORRRROORRROORROORRRRRORRORRROORRORRRRRRRROORRROROOOOOOOROOROORORORROROORRRRRROOOORORORRORRROOOOROROOOROORORROORROORROROOROROORORRRRORORROROROORRRROORRORROROOOOORORROOORORROOROORRRROOROORRRRORRORRROOROORRRROORRRROORRROROOOOOROOROORRRRRORORRORRRRORRRROORRRRROOOROOORORRRROROOROROOROOOOOOROOORORORRRROOOROROOORRRRROROOOORRRORORROOORRRRORRROROOROORRRRRRRROROROOOROORRRRRRORORRROOOOOOROOOROOORROOOOOOOORROORRRROOORROOOOORRRROORRROROORORORROROROOROORRRRROOORORORRRORRRORRORROOORRRRRORORORRRROORRRRRRRROORORORRRORRROORRRRORRRORROROORRRROOOOOORRRROOROOORROROOORORRORROOORROROOROROROOORORRROORROROOORRRROORRRRORRORORRRRRRORROOORORRORORRORRRROROOOROOROOROOOORRRRROOOROOROORRORORRRORRRROORRRRRRRRORRRORRROROOROORRORRRRORRORORROOROROORORRROROROOROOROORRRRORRRROORRRRRORRROROROOOOOOROOROROOROROOOOOOROOORORROORRRORORRRROORRROOORRRORORROROROORORRRRRRRRORROORRORRRRRROORROOOOROOROOROORORORRRORRRORRROORRROOORROORRROROOOOOORRRROROORRORRRRORROOROOROROROOROORRRROOROROOROORORORORRRRORORRRORROOORORRRRROOROOOOROORORRROOOROORRORROOROORRROOOROOOOROROROROROOOROORROORORRROOROROROORROORRROOORORROOOOOOOOOORROORRRORRRRRRRROROORROORROOORRORRORROOOORORRORROOOOOROORRORROORORRRRROORRORRORORRORRROORRORRRROOROORRRROROOOORROORROOOORRORROOORORROOORORORORROOROORRRRRRRROORORRRROORRORORROOORRRRRORROROROORRORROORORRRRRRRRRRRROORORRROOOOOOOORRRORRRRORROROORROROORRROOOORRRRRRRRORORROORRRRRORRORROOOORROORRORRRRORROORORRRORRRRRRROORORORROROOORROOOROOROOOOOOOOORRRROORORRRROOROROOOOORRROORROOOOOOROOROOROOOORROOORRRROOOORRRORRRROORRROROROORRRRRORRROROORORROROROOORROOOROOOOOORORRORORROOOROROOOROROROOORRORROORRRROORRROOOORROROOORRRORORRORRORROOOOROOOOROOOOORRORRROOOOROOOORRRORROOOROROOOROOORRROOORRRROORROORRROORRRROOROOROORRRORRORRRRRORROROOOOOOOROROOOROOOROOOROOROORORORORRROOORORRROOORRROOROOORRORRRRRRRROOORRRRROOOOORRORORORRORRORRROOORROOROOOOORROOOOROORORRROOROROORRRORRORORROOOORRRORROORORRRRRORRRRRROROOORRRORRRRORORRRRRORRRRRRROROOORRRROOOOOORORROORRRRRROOOOROOOOORORORORRROOROOOROOROROROORRRROORROOOROORRRORORRRRRRRRROOOOOOOROORRRROOORRRRORRRRRRRRROOOORRROOOOOROOOROOROOOOOOOORROOOORROROORRRROOORROROROROORROROROROOROROOROOROORORRORROOOOORORROOOROOORROOROROOROROORRROROOOOORROOORROROOROOORORRROROOOORRRRRORORROROOORRRROOOROROROOORORROROROORROOOOROOROROORORRROOROOORORRRRRRORRRRORRRROORORROORRROOOOOOOORRORROROORRROORROOROORORORORRORROORORRRRRRRORRROORRRRROORROROORRRROORRORRORRORRORRORRROOORORRRORRROORROOOOOOOOROROORRROOOOOOOROOOOROORROORROORROORRORORORRRORROOOOOROOOOOOROORRORRRORORROOROOOORRRRROROOOOROORRROROOOOORROROROOOORORRROOOORRRRROOORROOOOOOOORRROROOROORRRROROOOROORROOORRROROROOOORORRORRROORROORROOORORORRRRROROOOOOROROROOOOROOORROORROORRORRROOOOOROROROROOORROORROROROOOOOORRRORORRRORRROOORRRRROROROOORROOOOROROORRORROOOOOOOOOOOOORROROROOORORRRRORRRRROOORORRROORRRROORRRRRRRRRRRRRRRRRRRORROROORROOOORORRORRORROOOROORORRRORORROORROROORRORORROOOORROOROOOROORRORORRRORORRRROOORROOOOOOROOOROROROOROROROOOORROOORRROOORRROORORRRRRRROROOOOORRRORRORRORROOOOOROORRORORRROOROORROOROOOOOROORROOOOOOOOOOORRORORROORRRORORORROOORROORRROOOROOOOORRROROOOORROOOOORRORROOOROROOOOOOOROROOROOORRRRRRORRRRROORRRRORORROORROOORROORROORRORRRRRORRRRROOOROOORRORORRORORRORRORRROOOOORRRROOORORRROORORROOROOOOORRROORROROROOORRROORROROORRROOOORROOROOORORRORROOOOOROROOROORORROOOORRROROOOOORORORRROROOOROROOOROOOOORORORRRROROORORRORROORRORORORORROOOOOORROOOOORRRRROORRRROROORROOORRRORRRROOOOOOOORORRORORRRRROOOOOORRORRRROROROORROORORROORORORRRORRROROOOOROROROROOROOOROOOROOROOOOROROOORRRORORORROOOORRRRROROOOROOOORRORRROORRORORRORRORROOORRROOOROOORRROOROOOOOORROORRROORRORORRORRORRRORORORRRRRRRRRRROOROOOOOROOOOOOOROOOOORRORRRRRROORRRORRROOOOOOROROROORORRORRRRRORRRRRRRROOORROORRRROROROOROOOORORRORRORROORORRRORRRROROROOORRRORROOOROOOOOOOOOROOORROOORRRRORROOORROROOORRRROOORROROOORORRRRRROOROORRROORROOOROOROROORROOOOOOOOORRRORORROOOROROOORRRROOOROOORRRRRRORRORORORROOOROROROROOORRORRRROOROORROORORROOOORORROOROOOROORROOOROROOROORRRROROOORRORORRRRROOOROORRROOOOORORROOOOOROROOOORRROROROORRORORROORRRRORRORORORRORRROROOOORORROOOOOROORRRRORRROOROOROROROOOROROOROOOROOROOROOOOORRORORRRORRORRRROOROROOOROOOOROORROOORRRRRORROOORORRROROOORROOOOROOOOOOOOOORRROOOROROOORROROOROOORRROOORRRROORRRROROOOROORORRROOROOORROOORRRRRRROOORROROROORORROOORRROOOOOOOOOORROOORORRRROORORRRRRROOOORRRORROROROOORRORORRRRRRRROROROOOOROORORRORROROOOROORROORROROROROROORROROORRORORROOROOOOORORRORROOOORROORRRORORRRORORRORRRROOOORRRORRORRORROOROROOORORRRORORORORRRRRORORROORORRRRORORROOORORRRRROOORORORORRRORROOOROORRRRROOROOORRRRROROORORRROOORORROOROROROOOROORRRRORRORRORORRRRRROROOROOOOORROROOROOOOORORROOROORRRORRROOOOORRROROROOOORROROOOROOROOROROOROOROOROOORORROORRRRRROROOOROROOOOOORORORRRRROOOOROORRROOOOOOORORRRRORORRRRROROORRRROROROROOORRORROOROORORRRRRORRRRORORROOOOOOROOROOORORRORRORRRRROROOROOORRRRROROROOOORORRRRORRORROOORRRROORORORORORROORRRRORRRRROROORROOORROORROROOOROOROROOOORROORROOORORRRRRRROORROORRROROOROROOROORORROORROOOROOORRRRORORROOOROROORROOOROROORRRRRRRORRRRROOORORORRORORROROROOROOOOROOOOORORRRRRRRORRRROROOORORRROROROOORRRRRRRROROORORROORORROORRRROOROORRORRRORORRRROOOOOROROORORRORORRORRRRRROROOORORORRRROROORORRRRRRRRRRRROOOORORRRROORROOOOROOOROOROOOROROOOOROOOORRROOORRRROORRRROOOORRROOOROOOROORRRRORROOOOOOORRORRORRRRROOORRRRORRRRROOORRRORRRROOOOROOORRORRRORRORORORROOROORRRROORRRORRORRORROORRROORRRRROORROOOOORROROOOROORORROOOORORROORORORORROOOORROROOOORROOOOOOORROORROORROOOROOOORORRORORRROOOORRRRRRRRROOOORRRRRORRROOOOORRRRRRRORRORRROOOROORRORROORRROOOROOROROROOROORROOROOOORROROOORROORRRRORRROOOORRRROROORORRROORROORORRRRRRORRRRRORROOOOROOORROROORROOROOOOOOOOOROOORRROOORRRORORORORROOORORORRRROORRROOOOOOOROOOOOOORROROOOROOROOROORRRORRRROROROROORRORRRRORRRORORRRRRRRRROROOOOOROOOOOROOROOOROOROOROROOOOROOOROROOROOOROOOROROOORRRROORROOOROOORROOOROROORROOROOROROOROROOORRRRROROOOOOROORROOOOROROORRROOROOOORORORORORROROROOROORROROROOORRRROROROROORROORORRRRRROROROOOOOROOROOROROORORRRORROORRORROORRRRRORORRRRROROOROROOOROROORRRROOROROROOROOORRRROOORRORROOOOROROROOOORRORRRRRORRRRRRORORRRRROROORRROOOOOOOOOROOROROORRORROROROORROOORRROROORRRORRROORRORRRORORRORORRRRRROORROORROOOOOROOROOROOOOORRORROROORRORRROORRRORRRORRORORROORORRRORORROOOOORORROOORORRRRRROROOOROOOORRROOOORROROORRORRRRRORROORROOOOORROOROOOORRORROOROOOROROORRRRORRROORROORORORROORRRORRRRORRRRRRRRORROOOOROOROROORROOROOOOOOROORORROROOORRRRRRROORRRROOOOROORROOOROOORRORORRORRRRRRRROOORRRROOOROROORORORRORRORRRORRRRORRORORRORRROORORRRORROOOOROOROROROOOOOOOROROORORRRRROOOROOORROORRRRRROORRRORRRRRRRRRRRROOROOORRRORROOOOOOROOROORRRRRROOOOORRORRRRROORROORRORRRORRORRROOORRRRRRROORROROROROORRRRRRRORORRRRRRORRRORRRORORRRORRRRORRRRORROORORORRRRROORRORROROORRORRORRROOROOOOOROROOROROOOORRRRORROROORROOROROOOORRROOORRROOROROROOOROORROORORRRRRROOOORRRORROOROOOORROORROOROORRROOOOOOORROROOORRROORROROROOOOOOORORRRORRORRRORORORROOROOORROORROOROOORRRRRORRRRRRROORRRRRROOROOOORORROOOOROOROOROOOOOOOROROROROROROOORRRRORRROROROORRRROOOORROOOORROROORROROORROOOOOROROOROOORRRRROROORRRROOROOOORROROROOORRRRRRRROROOROROORRRRORRRRORORRORROORROORROROOOROOROOOROOORORRRRRRORRRRRRORRROROROOOROOORORROOOOOROOOOOOROORRRRROORORORRROOORRROROROOOOORRRRRRROORROOOOORRRRRROORORORORRRRRRRRROORRRORRORROOORROORRORROROORORROOOOOROORRROOOROROOROORROORRORRROOORRORROROROOOOORORROROORORRRROOORORROOROOORRROOOOORRRORROOROROOROORROROROROOORROOOOOROORROOOORORRRRORRORRROORRROOOOOOROOROROOROORORRORRORROOROROOORRRRORORORRRRRORROROROOOROORRRRRRRROROOOROORORRROOORRRORORRORRORRRRROOOOORORORRROOROORORROOOROOROOORORRROORROORRROORORRORRRRORRROORRRRROROOORORRROROROOROORRORRORROROROOORROORORRRORORRRRRRORRRRRRROROROOOROOOOOOROROOROORRRROROOORORORRRROOOROORROORRROROOORRROORROOROORROORRRORRRRRORRROOROOORROROOOOORRRRROOROROOOOOOROORRRRRORRRROOROORORROORRROORRROOROORRRORROOOORROOOORROOORRORRROROROORRORORORRROOOOROROROOOOROOROOORRORRRRRRORRROORROOORORROROOOROORROOOROOOOOORRRRROORRRROROOORRRRRROORROOORROORROROORORROOOROOOROOOOORRRORROOOORORRORROOORROOOOORRRORRORROORRRRORRORRRRROROROROOROROOOORRRRORRRROOOOROOOORORROOORORRRORROROORROOOROOORRRORROOORORROROOORORORROOROROOORORRROOORRRRRRROORORRORORRRORORRORROOOROORROORORRRRROOOOORROORORROORRRORROOOORRRRRROOROORORORRRROORRORRROOOOROORROROOOROROOROOORRORRORRORORROORORRRROOORRRROOOORORRRRROROORRROOOOROOOROOOORROORRORRRRRRROORRRROORRROROROORRRORROOROOROORRRRRRORROROOROOOOOOROOORORRRRORROROOOOOROROOORRROOOORROROOROORORRRROOOOORRROOORRROOOOOORROOOOOROORROOOROOROROOORRROOORRROOORROOROOOOROROOOROROORORRORROOORORRRROOORORORORRROOOOOOOROOOROOOOOOOORROORRROORRRROOOOOORRROOORRORORROORORROOROORRROOORRRROOROROOOORORRRRROORRROOORRRORROOROORRROORRRRORRRROORRRORRROORORRRORORRRRRROOOOROROOROOOOORROOORRRRORROOORRROORRROORRRORORROOOOORORRRROOROOOOROOOROROORRORORRRRRRRRRRRORORORRROROORRRRRORRORRORRRORROOORRRORORRRORRORRRORROOOROOORRROOROOORRRRROOROOOOROORRORRRORROOOOOOOOOOORRRROROORORROOROROORRORRROOORRRRROOROROOOOROORRORROROOROROROORORORRROORRRROORRRRRROOOORRORORRRRRORRRORRRRROORRORRROOROOOOROOORORRRRRRRRORORROOROROORRROOORORRRRORROORORORROROROOORORORORORROORRORORRRROOROOROROROORRORRRRRRORRORRORRRRORORRRORRROORROROOROORORROORRORORORROORROOOORROOOORROOROOROOORROORROORORRRORRROOOORRRROORORROOOROOOORRORRORROORORRORRORORROOOROORORROORRRRRROROORROOOOROROROORROORORRORROORROOORROOOROORROROOROROROOROOORRRROOROROOORROROOOORROOORRORORRORRORRRROOOOOOOORORROOORROORORRRROOROROOORROORRRORRROROOORORRROOORORRRORORORROROOOORORRROOOOORRRRROORROORRRROROROORRORORRRRORRRRROOOORRRRRROORORORORRRORRORRORRRORORROROROROORORRRRRROORRORROORROORORORRROOOOOOOOOORORROOOORROROROROROORROOORRROOOORRRROOOROORROORROOROOORRORRRRRRRRRROORORORRROROOROROROROOROORORRORRRROROORROOORORRRROROOORRORRROORROOROOOORRRRORRORRROOOOORORROORORROOORRORROOROOROOORRORRRROOOOROORORROOORRRRROOORRRRORORRROOORROROOROOOOOROOOROROORROOROORRORRRRRORORRRRROOORROOOROROROORORRRRRRORORRORRRORRROOOOOROOOROOROOROOOOROROOROORRORORORRRORRRORORRRORROORROROROOOOOOROROOROOOROORORROOROOORROORRROORROOOOOOROROOOORORRROORRRORROOOROOOORRROORROORORROORRORRORRROORRRROORORROROORROOOROOROOOOOORRRRORRRRORROROROOORRROORRROOORORROOROOOOOOROORRROROOOROOORRROOROOORRROOOROOOOOROROROORORROOOOOOROORORRORORROORROORORRROOORRROORRRORROOOROOOROORRRORROOOROROOOOORROROROROROROOROOOROROOROOORROOROOOOOROOOROROORRRRRROORRRRRRORORORORRROOORRROROOROOORRRRRRROROOOOORROOORROOOOROOOROOROOROOOROOORROROORROOOROOORRROORRRORORRROOOOOOOROOOOROROOROORRORRRROORRRROROROORRROROOOROROORORROROROOOOROROROORORRROOORORROOROORROORRRROROOORORROOORRRORRRRROORRRRRORRRORRRROOOORRORRORRORROOOOROOOOOOROOORORORROORRRRRROOORRRROOORROORRRROROORRORROROOORRRRRROORORORRORRORORROORROOORROOROOOROOOORROOROROROOORROOORROOORRRORORRRRROORRROROOROOOORROOORORRRRRRRRRRRRORRROOOORRRORRRRRRORORROROOOOOORROOORRRRORROOROOOOOROOOORRRRRORRROORROOOOORRORORORRRROORRRRROORRRORRROOORRRRROROROORRRRRRORRRRRROROORRORRORRROORRRRROOOOROORROROROORRRRROOOORRRRORRROOOOOOOORRRROOROOORRRORRORRRRRRRRROOOOROORRRRRROORROORORROORRORROROROORRORRORRORROOOOOROROORRRRRRORORRORROOORRORORRROROROOROOOOORRROROOORRRROOOROOOOOROROOORROOOOOROROROOROROROOORRRRORRRRROORRRORORORORRRORORORROORRORROOOROORRORRRROORRRROROORRRRRROOORRRORROORRRROOOOOOROOROORORRRORROROOROOOOOORRRRORRRORORORROOOOOOOORRROOORROROOOORORRRROOOORRROORRRRROOOROORRRROROOORRROOOOORROROOROROORRROORORORRRRRROORRRROORRRROOOROORRROOORRORRORRRRRRRORRORROOOOOOROOOOROOOOOROORRROROOOOOOROOORROOORRROOORORRRRRRORRROOROOORRORRROROORROROORRORROOROROOORROOOOOROOOROOORORROROOORRRRORRRROORORRROORORROORORRRRORRROOROORRRRORRORORORRRORORORRRRRROORROOOOORRRRROROOROORROOROROORRROOORROOROOROORRRROOOORRROROROOORRRRROOOROOORRORRRRORRRRRROROROOOROOOORRRRORRORRORROOROORROROOOROOORRRRRRRRRORRRORRRROOORROOOROROROOROOROORRROOOOOORRRORRRORRRRROOOOOORRRROROROOOROORRROROORROROORRRORROOORROOORRRRRRROROROOROROOOOROORROROROROOOOROOORRRORRRRORORROORORRROROROROOOROORORROOORORROOORORROORRORRRORRRORORORORRRRRORROORRRORORRORRORRORROORROORROOROOOOOORORRRRRRORRROROROORROROOROROROROROORORRRROOOORRRRRRORRRROROOOORRRRRORORRROROORRORRORROROROOOROOOORROORROORRORRRROOROOROOORROORROROROORRORRRRORRRRROORRRORRORROORROORROORROOOOOOORRRRORROOOOORRROROORORROOORROOROOROROORRROOORORROORRORORRORORRROOORRORROOOROOROROORRRORRROOROOORROROOROORORORROOOORORRORORROOOORORORRRORRRORRROOOOOORROOOORRORRRRRRRRRORRRRRORORORROOOOROORROOROORRORORRORRRRRORROOORROORROOOOORROORROOORORROORRRRORRORROORROOROROOROROOROOORRORROORROOOROOORORRRRRORORRORRORORRRORRROORRRRRORRRRROORROORORRORROORRORORRRROOROOORORROOOOOOORROOOOOOOOOROOORORRRRORRRROOOOROOORRRRORORRROOROORORORRORRROORRRORRRRRRORRORORORRRRRROORORORRORRRRRRRRROROOOORORRRROOOOROORRRRRRRROORORRROORORRORRROOROOOOOOOORROOOOROORRRRORRRORORROROROROOOOORRROROROORORRRRORORRRROROORRROORROORROOOOOOROROOOORROOROOROORORRROROORRRORRRRROOOOOOORRRROORROROOORRORRRRORROORROOOROORROOROOORRRRROOROOOORRRROOOROOROOOOORRRORRORORRRRRORRRROOORORRROOOOOOORORROORRRRRORRORRORRRRRRROROROROORORRORRRROROOOOROOROORORRRRROOOOROORRORRORORORRRORRRROROROOORRROOROOOORROORORROOROROORROOORRORORRRRRORRROOOOOOORROOOOORORROOOROOROOOOROOOORRRORRRORRRRORORORROORROOROROROOROOORORROORROOROORRORRROROROOOOOORROOOOOROOOORRRRROOOORORROORROORORORORRRRRORRRROOOROROORRORRROROORRRRRORRRRORORRRROROROROOROOOOROOOOORRRRROOOOORORRRRORROOORRRROOOROORORORORORRRRORRRORORRORRROROOOORROORROORROROOROROORORROROOROROORRRRROORORRRRRRROOOROORROORRROOROOOORROROOROOROOOROOROOOOOOORROOORROOOORRROORRRROROOORRROOOOOORROROROOROOOROROOOORRRRROOORRRORROROOORRROOOOORRROOROORROOOOORROOROOROORORORRORRROOROORROOORRORORORRRORORRORORRROORRORRRRRRROROOOROROROOROOOOROROOORRORROOROOOROOROORRRRORORROOORRRRORROORRORRRORORROOROOROOORRORRRROROROOOOOORRRORRROOOORRROROOOOORRRROORROOROROOROROROOROROORRRORRRROORORRROROOROOOOORRROOOOORRORRORRRORRORROORRROOOOORRROOOORRRRRRRROOROORRRRRROORROROOOROOROOOOOOORROOOOOOOORRORORRROORRROROROROOORRRORROOOORROOROORRORORRRRRORORROROORROROORRROOOORROOOROORROOROROOROOOOORROROOOROOORROORORORROOOROOORRRRRRROOOORROROROORORRROOOORROROOROORORORRRORORRRRORRORROORORORROROROROOROOOROOROROOROOORRROOOORORRRRROOORRROORROOROROROOORRROOOOOOROROOOOORROOOOOOORORRRRRROOOOORORORORORROROROROROOOOOOOROOORRROROORORROOROOOOORRROOOROOOROORORRROROOORROOROOOOOORORRRRRROORRRRROOOOROOOOORRROOOORRRRRRROOROOOOORRRROOORORROOROOROOOOOORRROROROOROOORRRORRORRROOORRROOROOOOROROOORRROROOOROORRRORROOROOORRROOORRROROORRRRRRORRROORROOORRRROORRORORORROOROOORORORROOOOROORORROORROOROOORRRORROOROORORRROROOORRORROOORROROOOORROROOOOOORROOOORRRROOOOOORRROOROORORORROORRROOROORORRRRORROOROOORROOROROORRRRRROOOROORRRROORRRORRORORRRRORROORRROROOROOORROROOOORORROORROOORORRORORORORROOORRRRROROROOOORRORRROOOORRRRROOORRORRRROOROROORROORRRRORRORROOROOOORROOOORORROOORORROOROORRRRROOOROOOOROOOOOOROORORORROOOOOOORRRRRRRORORRRROOORORRRROORRROOORORRORRRROORROOORRRRRRRORRORRRRRRRRORORRROORRRORRORORRRRORRORRORRORRRROOOROOROOORORRORRRROOOORORRORROOOROOORRROROOOOOOORROORORRORRROROROROORRROOORROORORORRRRRRRRRRRORRROOROROOOOOROOOOROOOROOROORRRRRRROOOORRORROOOORRROORRROOOOOORORROOOROROORORORROROROORROOOROOROOOROOOOOOORORRRRROROOOORRORORRRROROORRROORRORRORRRROOOOOROOOROOORRRRRROORORRRRORROOORRROOOROOOOOOOOORRRROROORROROROORRRRORORORORRRORRORRROOROOORORRRRRRROORRRRORRRRORRORRRROOORORRORRORORORROOROORROOOOORRROORRORORORRROORORORRORRRORRRRROOOOROROOOROOOORROORORORORROOROROROOOOORRORRRORRROORRRRORRROROOOOOOORROOOOOOROOORRORROOOOORORRRROOOOORRRROORROOOOROROOORROOOORORORRORRORROORRROOOOORRRORRROORRRRRROORROROROOORORORROOORORORRRRRRROOOROOOORORORRRRORORRRROOOOOORROOOORRRROORROORRRRORRROROROROORROOOORROOOROOOOOORRORRRRORRRRORRRRRRRROOOORRROOOORORRORRRRRRRRRRRRRRRROROORRORORRRRRRORRORROORROORROROORORRRRORRRORRROROORORROROORORORRRRRRROOROROORROOOORRROROORROOOOROORRRORROOOOOOOOROOROORRORORORROOOOOROOROOORRRORRROOOOOROROORORORORORROOORROOOOORRROOOROOORORRROORROROOOOORRRRORRORRRROOOOROORRROROOOROOOOOROORRRRROROROROOOOOORRRROOORRRRRROOROORRROOOORRRORORROROROROOROOORORROORRROORROORRORROORROOROOOROOOORROORORROROOROORRROORROOORROOORROROOOOORORORORRRROORRRRORRRROORROOORRRRRRORRORRORORROROORROOOOORRRRORROROORROROOOOOROOROOORROOROORRORORORRORORORROOOROOOROOOOOOROOROORROROOOOOROROORRRORORRROOORROOOOOOORROOOOOORRORRRRORRROOOORRROOORROOOORRRRRRORRROOROOROROORRROOORORORRRRRRRRORRROROORRORORRROOOOROOROORRORRRRRRRRROORRORRORRROOORROOOROOROOOORORRRORRRROOROOORROORORRRORROOOOROORROORRROROOROOOROROOORROOORRRRORROOOOOROROOROORROORRRROOORRORORRROOOOROOOROROROOOOOOOOOROORORROOOORROORRROOOORROORRROORRRROORRRRORRRRRORRROORRROROOOROOORRRRRRRRRORROOROOROORORRROOOORRORRORRRRROOORRORROOOORROOORRRRRORROOROORRROROORORORRRROORRORROROOOROROORRORORORRRRRROROORROROOORROOROORORORRRRRRROOOORROOROROOORRRROOORORRORRRROOORRROOOORORORRROOORRRRRROROORRRRRRROOORRROOOOORRORRORRORRROORROORORRRORRROOOOORRRRORORROORRORORRRORRRRORRROOROORRRROROROOOOOROOORRORRRRROROOOROORORORORORORROROORORRORORRROROROORRRROORORROOROORROOOORRRROROROOROORRRROOOORORORRROOROOROOROOOROOOOORROOORORRORROOOOROORROOOOORRROORORORROORROROOROOOROORRROORORORROOROOORRORRRORORORRRRRRORRRRRRROORROOOOROOORRRRORRRROROOOOOORORORRROOORROOROOORRORRROROROROOROOROOOOOOORRROROORRRROORROROROOORORRROOROORORRRORROOOROROOOOORROOOOORROOORRORROOORRROORROORROROROORROOOOORRRROOORORORROOROOORORORROOOOROOOOORROROOOOOOOORROROOROOOORROOORROORROOOOORRRRRROORROOORROORORROOOROOORRRORROROROORRROOORROOROOROOORRRROORORRRRRORRROOOOORORORRROOROORRRRRRORRORROROOOORORRRRROORORORORROROOOROOROOORROORRRRROORRORRRROORROOOROORRRRRORRORRROORORRROROROOORRROOROOROORORROROROOOOORRRROORORROORRORRROOROOOOORRROOROOORRORROOROOOOOOROORRROORORRRROOORORRROORRRORRRROORORORRRRRRORORROOROROOOOROOROROROOORRRRRRORRRROORROOOROOOROOORORRRRRROROROORORORROOOORROOORROOROOOORRRORORORRRRROROORORORROOORORORROROOOORROORORRROOOOROORORRROOROROOORRRRROOOOOROROROORORRORORRORORORRORRRORROROOOORROORRRRORORRRRRROOOORROROOOOOROORORRORORORRRRRROROORRRROROROORROOROROORROOROOOOORRORRORRRRORRROORORORRROORROOORRORRRORRRORROROORRORROROORRRRORRORROROORROROOORRRORRORRRRRRRORRROOOOROORROORRRRRORORRORROROROOORRRORORRRORRORRRORORRRRROOOORORROOORRORRRRRORRORRRRRRROOOROOOOOORROOOOOORRORRRROOROOORORORRROOORRROORRORRRROROROOOORRROOROOOROORORROOOOOORROORORRRORRROROROOOOROORRRORRRRROOOROORRORRRRORROROOOROOOROOROOORRRRORRROOROROOOORRROOOROOOORROOOOOROOORROROROROROOOROORRRORRROOORROROORROOOORROORROOOOOOOOOOOOOOORORORROOORORORRORORORORORRROORROORROOOORORRROROOOOROROOOOORROOOOOORROOORROOORRRORRORORORORROOORRORORRRRROOOOROORORRORROORRROORORORROROORRRORORRRROOROOROORRROOORROORRRRORROORROOOOORROOOROOORRORRRORROOROOORORORORRORORRRRORRRORRRORORROOOORORRORRRROOROOOROOOROOOOROOOORRORRROOROORRROOOOOORORORRROOORRRRRRROORROROORRROOORRRORROROOROOROORROOOROROOROOROOROROOROROORRROORRROOROOOROOOORRROOORORRRORRORORRROORRRROOOROOOORRRRORROOOOOOROORRROORORORRROOOOOOOROOOORRROOOROORRRRORROORRRRORORRORRRRRRROOROROOOOOOORRROORROOOOROORORROOORRRORORORROORRRROOORRRORRRRORORRRROROOOROROOOOORRORROOROORROROORORROROOOORORORROORORORRORRRRORRORRRROOROOOOROROORRORROOOROOOORRRRRRRORORORROROROROOROROOOOROOOOOOOOORROOORROORROROROOORORRROOOOORRRROORROROOORROORRORRRRRRRROOOOOORRRRRRRROORORORRRRRRRORROOOROOOOOOOROORRORROORRRRRRROOORRRROOOROOOOROOOROOOROOROROOORRRRORRRRROORROOORORORORROORROOROOORROOROROOORRROOORRRORORRROOROOOOORRORORORRRROOOROOOOOOOOOOORROOOORROOROOROORRORRROOORORORROROOOROORROOOORROROORRRROOORRORROOOROROORRROOROOOOROOOORRRRRORRROOROOOROOOROORRRORRROOROROROORRORRRORROOOOROOROROORROORORRRORRRRORROOORRROOROORRROOORORROOOOORRRRROOORROOOORRROOORROOOORRROOROROOORRORRRROORORORRROOOROOORRORRROROROORROOOROOOOOOORROOORORRORROROOROORRRORORROOOROROROROORORRRRRORORRORORROROROOOOROORORRRROROOOOROROOOOOOOROOOORRROROROORROOOROOOORORRROOOORRRORRRORRROOROROOORORRRORRRROORROORRRORROOOORRRROROROOOOOOOOOROROOROORRRRORRORROOOORRROROOOROROROORRRROROOROOORRROROORORORORRRROORROROORRROOOORORRROROOOOROORRORROOOROOROROROOOORRRROORORORROORRRRORORRRRRROOOROORROORROORRORRORRROOROOROOOOOORRORORRORRRRORRRRORORRORRROOORRROORROOROORORRRRRORROROOROOOOOOORROOOROOOOROOROOOOOOORROROROOOROOORORORORROOORORRROOOROOOORRORRROROOROORRRROROOROORROOORROOOOOROOOROOOROORRROORRRROOORRRROOOROROOOORROOROORRRRROOORRRRRROROOORORORROOOORRORORRRORRORORRRROROOORRORRRRORROROORORRROROOROOROOOROROOROOOORROOOROOROOORROOROOOOOROOOORORROOORROORRROORORRORORORRROROROORRROROOROORRROOROORROORRORRRRORROROOORORORROORRRORRRRRRORRRRORRRRRRRRORROOOROORRRRRROOOOOOROORORROROORORORORRORRROROROROORRRORROORRROOORRROROORORRRROORRORORRORRRRROROORORRORRRRROOOROROOORRRRRRRRORROROORRORORRRORRRROOOOOOOORRRORRROOROROROORORRORRRROROOOOOOORROOORORRRRORORROOORROORRROOOORROOORRRRRRORRRROORROROOROOOOOROOOOROORROROOOORRRRRRROORRROOORORORROORORORRRORRORRORORROOOOROROOROROROOOOOOROOOOOOOROOORORORRROROOOOROROROORROOOROOOROROOORROORRORROOROORROROOROROORRORRRRROORORROROROORORROORRORORRRRRRRROOOORORRORORRRROOROROOOORRORROOROROOOOORRRRRROOROORRRORROOORORRRROOORRRRRRORORRRORORROROROOOOOOORROOROOROROOOOORRRRROOORROORROOOORRROOROROROOOOORROOOROOOOORROOOOOOORRRROROROOOOOROROROROOROROOORRRORRORRORRRROORROOORRRORROROOROOORRORRRRRRRROORRRORRRROROOORORRORRRRRROOROOOROOOOOOOOROOOROOROROORORRRORRROROROROOOOORROROROORRRRORRRORROOROOROROOOROOOROOOROOROROORRORRROOOORRROOROORORORROORROORRRORRROOOROOROOORROORRORORRRORRORORROOOORRRROOOOORROOOORORRORRRRRRRORORROORORRRRROOORORROROOOOOORORRRORORRRRRORORRRRORRROOOROROOOOOORORROOORROOROORRROROROOOORRROOORRRRROOROOOORROORROOOORRRROORRRRORROOROROROOROROORRROOOOORROROOOORROROOOOORRROOOOORRROOROROOOOOROOOOOORRRRRROOOROORORROOROOORROOOORRRRORRORROORROOOOOOOORRRRROOORORROORORROORROOOORRROOROOROROOOROOORRRRRRRRROOORRORORROORROOORORRRRROOROOOORRROROORORORROOROROORRRROORRROORROORROROOOOOORORROOROORRRORRROORRROROOORORRRROROROOOOROOOORORORROOROROOOOOOROOOOORORRROOROORROORROORORRRROROOORRRORRRORROOROROORORRRORRORORORRORROORRORORRORRRROOROROOOOROROOOOORROROOROROOROOORRRROOORRRROROROOOOORRORRRORROOROOORORROORROORRROOORRORROOOORRROROOOOORRORORRRRRORROORRROORROROOOORRRRORRRROROOROOOROORRRRRRRROOORROROOOORRROORRROROOROOOROOROOOOORORRRORROOOOOOOORRORORRORRROOORORROOOOOOROROROROOROORORROROROOOOOORORRROORROROROOORORRROROOOOOORROOROOORRRRRORORRRORROROOORRRORROROROROOROOOOOOOOORORRROOOORRRROROROROORRRROOOORROROORRRORRRROORROORRROROORRROOOROROOROORRORORRORRRRROOORORRROORROOORRRRROOOROOROORRROORRORRRRRROORORRRRRORRRORRRRRRRORROROORORROROOROORRORORROROORORROOOROOROOOOOROROROORROOORRRRORORRROOOORORORRRROROROORRRRRRROOOOOORROORROOROORORROOOOOROORRROOORORRRORROORROROORORRRORRRRRRROORROOROORRORRROROOOOOOROORRORROOROOORRORRRORRRROOOROORRRRRRRROOORRRRROOROROOROROORRRRORRORRRORORROROOOORORRORROOOOOORORRRRROROOORRROOORORRRRROOOOROOOOOOOOORRROORORRRRORROROOORROOOORORRRORORORRRRRROOOOOORROORRROOORROOOORORRRRRRROROOOOOORRORORRRORORORRORRORRORROROROROOOROROORROOROORROROORRORROORRRROOROOOROORROOOOORORORRRRRRRORROROOOROOOROORRROOROOOOROOROOORORRRROROROORRORRORRROOOOORRRRORORRRRORORRRRRRROOROORORORRORROOROOROORRORROORORORORRRROROOOORROOOORRRRORRROORORROOROOORRRORROOOROOOOOROROOOOROOOROORRORORROOROOORRRROORRROOORRROOOOORORRRROROOOOOOORROROROROORRRRORRRRORRRROOOOORROORRRROROOROORROOORRORRRRROOOROROORORROOOOORRORORRORRORROOOROOORROORORRRROORROOOOROOOOROROORRRRORROORORRROROROROOORORRRRRORRROOROOOORORORRRRRROOORRORRORRRORORRROOOROOOORORROOORORORRRRRRORORROOROOORRRRORRRRRROROORRROROOROROORRROOOOORRRORROOROOROOOOROOROOOOOORRROROORROROORRRROOROOOROROROOROORROOROOOOOROORROORROORROROROOOROOROOOROOOORORRRORRRORORRRROOORROROROROROOOROORRRROOORRORROOROOOOOOROOORRROOOOOORROORORROOOORORORRROOOOOORRRRORRROORROOOOROOOOOOOORRRROOROOROOROROORORRROOORRRRRORRORRROOROROROROORRORRRORORRORRORORRRORRRRORRORORRRROORORROORORROROOOOORORRORRRROORRRRORRRORROOORRROOOORORRORROOOROORROOOROORRRRRROOOORRORROROOROROROOOROROOOOOOOOORROROORROROOOROOORROOORORORORORROORRROORORORRRRORRRROROOOOOOOOOROROOORORROROORRROORROORORORORRROROOOOROOOOROROOOROOORORRROROORROOORRROOORRRROOOORORRROOOROROORRRRRRROOOOORRROOORRRROOORORRRORRORROROORRRRROORRORRROOOORRORORRORRROOOORRORORRORORRROORROOROOORROROORROROOOORROOROOROORROROROORORORROORRRORROOOROORRRRRORRRROROOROOORORRRRORORRRORRRROOROORRRORRROOROOOOOROOROORORROOORRORRORRORRROORRRORRRRORRORRRORROOOOROROOROROOROOROOOOOORORRRROOOROOOORROOOROOORROOORORRRRROROROOORRRROORROOOOOORRRROORRORORROOOORROROORORORORROOROROOROROORORORROOORROOOORRORRRROOROOOOORORRRRORORRRORORRORRORROORROOORORRRRROROOOOROROOROOOOORORRROOROORORRRROOOOOROROOOROORORRRROORROROOROOORORRORROOROROOROOROOOOOROOOOROROROOOOORROROROOOOORRROOORRROOORROOOORRORROORORRRORRRROORROROOROROROOROORROOOOOOOOOOOORROORRRROOOORROOORRROORROOORROOROROORROOORRORROORORORROOORROOOORRRORRRRORRORRRRROROORROOOORRROOROROROOOOORRRRRRORRORRROOOOROROROOOORROROORORRRORRRRRRORORROROOORROORROOOOOOOOOOOOOORROORORRROOOORROROORRROOORRRROOROOOORROOORROORROOOOOOORRORROOROROOOOORRRRROORROOORROOROORRRORROOORRRROROORRRROOORRRORRRORORRORORRORORRRRRRRRRORRORORRROROORROORROROOROOOOOOOOOORRORROOOROORRORRRROORROORROOORORRRROORROOOOORORROOROROOROROORROOROROORRROORRRRROOROOOROORORROOORROORORROORORROORRROORORRRROOORORROROORRROOROOROOROROROOROROOOOOOROROOOORRRRORORRROORROROORRROOOORRRROOROOROORORRROORRORRORRRRRORROROOORROOROORROOORRRRRRRRRRRROROOORRROROOOROORRRRRORROROOOOORROOOORORROOOOROOOOOOROROROOORRORORROROORRORROOORRORORRRROOOORRROORROORRRORRROOOOROROOOORROOROORRORRORROOROROROROROROROORRRORROROORRRROORROOORRRROROOORORORROORROOOOORRRORORRORORRROOOOOROOOOROROROROORRORRRORORROOORRORRROOROOOORRRORRORRORRRRROORRRORRORORORORROOORORRRORROROOROORROROOOOROOOORRRROOOORORRROORRRRROROOOOORRRORROORRROOOOOORRORROROORRRORROROOOOROORRRRROOROOOOROOROORROOORROOOORORRORROOORRRROOOOOROORROROROROOOOOOORROOROORRROOOROORORRRROOORROOOROOORROORORROORRRRORRRROOROOOROORRORRRROOROROORRORROROROOORROOOORRRRRRORRRROOOOROROOOORRRRRRROORRORRORROROORRRRORRROORORRORROOROOOORORROOOOOORRRRROOROORROOOOORRRRRORROOORRORRORRRRROORROOORORRORRORORORROOOOROOOOOROORRORRRRRORRRROROROROROROROOOORRRRORRORRORRORRROROOOORORRROOROOROORORROORRORROORRROOROOROOOORROROOOROOOOOROOOROORRRRORROOORORROOOOOOROROORROROROOOOOORRROROOROORRROROOOOOORRRROOORRRRRRROROOOROOORORRROOOOOORRROOOROORORROROOORRROORORORROOROROROORRROORRORRRRRRRORORRRROORROOOROOOORROOOOOORORROROOROOOOORRROOORRRRRROOORRORROOOOROROOORORRRORRORRORRRRRROROOORROORRRRROROOOOORORORRORROOORRRRRRRORROOROROROORROORORROORRRROROORROOORORRRROORRROROOOOROOROROROOROROOOORROOOOORRROOORRRRRORORROROORROOROORRROROORRRRRRRORORROORRORRRROOOOOORRRRRORROOOROROOOROOOROORRROORRRRORRRRROOORROOOROOOOOOROOOROOROOOOOOOOOOOOORROOORRROOORORRRORORRROOORRROORROOOOOOORORRRRRROROORORRRORORROROROROORORROROORROORRRRRRORORRRRRRRROORROOOORRORRRRRRORRRRRROROOOOORRROOORROOOOOOROOOOOOOORRROOOROOROROROOORRROORRROOOOROOOORRRROORRROROROORRRORROROROOORRRRORRRRROROOOOOROORROROOOORROROORRRRRRROROOORROOOOORORRRRRROOOROORRRRRORRRORRRROOORRRRRRROOOROORRORROOOORRRRORRROROOROORRRROROORROROROORROOOOOORORROROORROORRRRRORRRRORRROOORROOOOROOROOOOOROOROOROOOOOOORROOROROOOROROOOROOOORORORORROOROOOOROOOROOOORROOOORORRRRRORORORORROROORRROORROOOROORRORRROOORORRORRROOOORRORORROOOOORROOORRORROORRROOOROOOROORROORRORRRORRRROOROOROROORRORORRROORRRRROOROOORRORROORRRRRORRRRROORORROOORRROORROROROOROORRORROOROORORORROROROOOORORORRORRRRRRORORROOOOOOROOORORORORROORORRORRRORRRORROORRROROOORRRROOOROOROORORROOROROORRROORRORRRRRORORRORRRROOOOORORROOORORRORRORORROROOOOORROOOORROOOORROROOROROORROORRRORRRRRORRORORROORRRRORORROROOROOOROOROORROOROROOROORRRRRRRROOORROROOOROORROORROOOROOOORORRROOOOOORRRRRORRRROROROOOORROORORORORORRRROROOROOOORORRRORORROOROROOOOROOOORRRORORRORRORORRORROORRROORORORRRRORROROOOROROROORRRRRROOOROROORORROOORRRORRRROOROOROOORRROOORORRRROOROOOOOOORROOOOROOROOORRORRORRROOORROORRORRRRORORRROOOOROROORORORRROORRRRRRRORORRROOOOOROROOOOOOOOOROOROORRRRORRORORORRRROOORRROOOORROROORROOROORROORROROOOROROOOOORROOROOOORORROORROORORRORRROOORORRORORORRRRORRORORRROROORRRROROORROROOROOOROOOORRROORRRORRORRROOOOORROOORROOORROROROORRRROROOORRRORRRRROROROOROROOOOROORROOORORORROORORRRRRROORRROORRRORORORROORRRORROORRORORROROOOOOROOROORRRORRRORRROROOOORROOOROORRROOOORORROOOROOOORRRORRORROOOROOOORROOOORRORORORORRRRRORROOOOORRRRROOORROORRRRRORROROOOORROOOOOOROROOOORRRORROORRORORORRROOOOROOOORRRROORROROORORRRRRORRROOOORRRROOROROOROOOROOROORORROOOORROOROROROOOROROORRRROORORRROOOOOORRRROROORORRROOROOROROORORROOORRORROORROORORRRRORRRROOROORRORROOROROORROOROORORRRORORORROROORROOOOROROROOORORRRRORRRORROOOROOORROOOORORORRRORROROORRRROOORRROORRRROROOOROOORRRRORRORROOOOOORROORORROROOOOROORORROOROROROOOROOORROROORROORRRORROOOROROOOROORRRRRRRRORRROOOOROOOROOOOOORORRORRORRRRRRORRROORROOOROROROOOOOOORRRRRRROOOOORROOOORORRRRRROOOROOOOROORROOORRRROOOOOOOOOOOROOORRRORORORORORROROOORRRROOOOORRRRRROORRRROROOOOORRRORROOORROOROOORORRORRRRORORORRRORRRRRRROOORORRRRRORRORRORROROOOOOOOOORROOOROOROROORRORROOOORRROOOOOOOORRRRORRRROOROROORRRORRRORORORORROORRORROOOOORRRRROOROOROORRORORORRROORRRROORRRRROOOROORROROOOOOOROROOROOROOROORROORRRRRROOORORROORROOORORROOOOORORRORROOROROORRORRROORRRROOROORROOOOOOOOROROORRORROROOROOOORRRROOOORRRRRORRROROOORORROOOOOOOOOORRRRORROOOOORRROOOOOORRROOOORRRRRROOROOORRRRRRROOORROOROROROORORRRORRROROOOOOOOOROOORRROORROROORRRRROORRROORRRORRRRRRROROOOOORRORROOROOROOROOORORRRRROROOOOROOOROROOOORRRRRORRORRORRROROROORRRROROORRORRORROROORRROROOROROORROORORROOOROORRRORROROOORORRORROORORRRRRORORROROOOROROROOOORORORRRORROROOOROORRRORRRORORORRRROORRROROORRORORRORRORRROOOROOORORROROOOOOORORRRORRRORRROORROORROOOORRROROOOOOORROROOOORROOOOOORRRROORRORRROORROORROOOORORORRORROROROROORRRORROOOORRORRRRRRRORORORORRRORRORRRORORROORROOROOORROOOROOORROORROORRORROORRRRROORRROOORRRRROOROOOOOOROROOROORRRRROOORORROROOOORRROOROOORRRRROROOOROOROOOOORRRRORRROORROROORRROOORROROROOOROORRRROOOOOOORRORRORROROOROROORRROOROROOOORRORORORROORRRROOOROROROOROOORROROOOORROOORORROORORRROORORORROORRROROOOROORORORRRRROOOORORROOOOORROOROOORORRRRRORRRROORROOORRROROOOORORRRROORORRRRROOORRRORRROOORRRRORORRROROOROOOORRORRRRRROOORROROOOOOOROOORRROORORROOROOROORORRRRRROORORROORRROOOORRROORRRROORRORRRRRORRROORRROOOOOOOROOOOORROOROOROOORORORROOORORRROOORORROOOORRRROOROOOORRRORORROOROOOOOROROOROORROORRRRRROOROOORORORRRRORRROORORORRRRRRROOROORORROOROOOROROORROOROORORRROOOROOOORRROOOOOORROROORRRROROORRORORORROROOROROORORORROROROROORROOROORRRROROOORORRRROOORORROORORORORRRRROROORRRRROOORRORROOOORORROOOOOORROORORROOOOOOROORRROORROOORRRRRRORRRROOORRRROROORRRORROOOOOROORROORORRRRROROORROROOROROOOROOOOOORRRRROORROROORROOOOOORRORORRROOOOOOORRRRRROORROROROOOORORROROROORORROROORROORRORRROOOOOOOROROOOORROORROOORROROORORRROOOROROROROOROOOORRRRRRROORRRRROOOROOOOOOORRROOOOOROORORORRORROROOORRROOOROOOROOOORRORRRRRRRRORORORRROOOOOOOORROORORRRRRRROOOOROOROOROROROROORRRORRORORROOOORRRORRRROORORRRROORROOOOROOOROROOOROOORRRRORROROROOORORRRROOORRROROROOROOORRRROOOOROROOROOOROORRROROOROROOROORROOORORROOOOORRORRRRRORORORRRORORORORRORORORROORRORROROOOOOORRROORRRROROOOOORRORROROOORRROOOORRORROOOORRRRORRROROOOROOROOORRORORRROOOOOOORRRRORORROOOOOROOORRRRROORROORRRRRROOROOOORORORORRORORORRROORRORRROORRROOORORRORORRRRRRRRRRRRORROOROOROOOOROROOORRORROOROORORRRRORORRRORRROROOOOORROOOOORORRORRRRRRORRORRRROOOOROOOORRRRORRROOROOOROOORORRRORORORORRRRROOORRRROOORRROROOOROOOORRRORROORRRRRRRRORRORORROORRROOROOORROOROORRORRRRROOOOORRORRROORORROOOOOROOOOOORORORRROROOOOORORROORRRORORORORRROOROOOORORRRROROOOOOORRRROROROOORORROORRRRRRRROOORRRRRRRRRORORORRORORROROOOOORRRORROORROROORRRRROROORRROOORRORRRORRRRRORORRORROORRRORRROOOOOOOOROOROOOROORROORROROROOORORRROOOROORRRRROOORORROORRROROROORORORRROOOROOORROOROORROROOOORROOROROOORROOROORROORROROOOOROORROROOOOROORROORROOOOOROROOOOROORROROOOORROORRORRROOOOOORROORRRRRORORORORRRRRORROORRROOROROOROORRROOORRORROROOORRORRRORORORRROOOORRORRRRRROOOROROORORORRRROOORRORRRORRORRRORRRROORROORRRROOROOOOOOROORORRRRORRRORORRORRROORRRORORRROROOOOOROORRRORROOROROOOORORROROROOORROOROOROORRRROOORRRRORRRROROROOORROROOOROOOORRRRRRRORRORORORORORRRROOOORRRORRORROROOROOOORORRRRRRROOOROOOROOOORROOOORROORRRRORROOOORRRROOORRORORRRRROOROORRRRRRORORROROROOORRRORRORORROOROROORROORORRRORRRRRRORRRRRROORORRROROOOORORORRORRORROOROOORRORROROOORROOOORROOROROOORRROOOOROOOORROORRROOROROROOOOROORRROORRRORROOOOOORRORRRROOORORORROOOORORROOOORRRORRORROORRROROOROOOROROOORRRORORROOROROOROORORRROORROOORROOOOROOORORRORRROROOROOOROROORORORROOOROOOOROORROROOORRORROOOROROORRORRROORRORRRRRRRRROROROROORRRRROORORROOOROOROORRRRRORROOOOOORROORRORRRORROROROOROROORROORRRRROOORROROORORRRRORORRRRROOOOOOOROROORROOOOROOOROOOOOOOORRRORORRRROOOORROOORORRROOOROOOOOOOOROOORRROROOORROORROOOOORRRROOOORRROROOOOROROOORROROOOOOOOOROROOORROOOORRRROOOOOOOORRROOOORROOOROORROOROORRRROROOOOOOROROOOORRORROROROROORROORRROORRRORORORRRRRROOORROOOOOOROOOROORORORRRORROORRRORRRROOORROROOORRRRORROORRROROOROOROOROORROOOROOROROORROROORRRROROOOORRORRROROOOROROORROOORORRORORORROOROOORRRORROOOOROOOOROOOOOOROOROOOROOOOROOOOOOORRRORRRROOOROORRROROOOOOOROROROORORROORORROOOOOORROOORORRRRRROORORRROOOOORORORORRRORRRROROORRRROROROROOORROORROOOOOOOORRRORORORRRRRRROOROROOROROROOOOOOOORROOOOOOOOORROOROORRORROOORROOOORRRORORORRRROORRRRRRRROORORORORRRROROROOROOOOOROOROROROOOORRORRORROORRRRROOORORORROORORRRRRORRRRROORRORRRROROOOOOORRRRRRRRRRRRROROORRRRRRORORROROORORRORROORROOROOROORROORROROOOOOROOROOORROROOOROROORRROOROROOOOORRORRORRRROROROROORROOOOOOOROROOROORRRRRRRRRRRROORORRRROROOOORROORRORRRRRRRRRRROOORORRRROOOROOOOOORORRRROROOOOORROOROORRROROOORROOROORORRRROOOORRRROOOOOROOORORORRRRRRRRRRRROORORRROOOORRROOOORROOROORROOROROORORROORRORROOORROROOORROOOOOOORORRRORROORORROORROORRORRROOORRRRORRRRRRRRORRROROROOOROOORRRRORRRORRORROORROROROROROROROORORORROOORRORRRRRROORROOORORRRRORRRRRROOROOROOOOOROORROOORROORROROORORROOOOORRRRROOORRROORRRROORRROORORORORRRORRRRORRROORROOOROORRRRORROORROORRRROROORRRRROORRROORORRORORROOROOORRRRRRRRROOOOORROOOOOOROOORORRRORROROORORORORRRORORORRRORRRRROORORRRORROOROOOORORRRROROOROOOROORORRORRRROOORRRORROROOOROORROORORRRORRRROORORRRRROORRRRRORROORRRRROOOOOROOROORORRRRRORRROOORORRRRROOORRRRROOROOROOORROOORRORRRROROROORROROOORRORRRRRROORRRRRRRORORRORRROOORRRORRRRRRRORROORRORRORRRRRRORRORRORRORROROORRRORROOOOOOOROORORROORORROOOROOOOROOORRRRORROORRORROROOROOOOROROOROOROOROORRRRRRRRORRROOORROOOOOORROOORRORROOOOOORROOORROOROROROORRROROROORRROORROOORROROOOOROROORRROOORROROROOROROOROOORRROORRRORORORRROROOORRRROROROROROROORRROORRORRRROOROORROROORORRRROROORRROROOOORRORRRRROOOOOROOORROOROORRORRRORORROORORORORROOOORRRRRORRRRRORRRRROOORRRROORRRRORRORRROOOOORORRRROOOOOROOOOOOOORRRRROOOROORRORROOROROOORRRROROORORRRORRRORORROOOOROOOROOOOOORRORRORROORROORRORORROOROOORRROOOROOROOORRRRORRRROOORRORORRRORORRROROORRORRRRROOORRRRORRORRRROROOROROORRORRRROOROORRRRRORRROORRRROROOOORORRROORORRORRORRORORROROORRRORROROOOROROOOOOROOOOOORROOOROOOORROOOOOROROORROOROOOROORROROROORRROOOOROOOROROORRROOOROOOORRRORRRRROORRRORROROOROROROROROORROOROORRRRORROROOOORROORRROOOOOORRROOROOORRORRROROOROOOOORRRORRORRRRRROORORRRORRROROROOOROROORORRORROORRORROORORROORORRORRROROOROORRORRROOORORROORRRRRORRRRROORROROROORRRORROOOROOOOORRORROROORRROROOROOOOORROOORRORROOOOOORROOROOORRROORORRRORROORORRROOOOOORRRRORRROORRORRRROOOOOOOORRORRRRRRRORROORORORRRROORORORRROOROOROOOROORROOROOOORRRROOOROOOROROROROOOROORORORORRORROORORORROROOOORRRRRRROROOOORRRROORRRRRRORRROORRRRRROORRRORROROOOOOOORRRRRRRORROOROROORORRRRROORRRORROROOOOOOORRORRROOOROORRROROOOOROOORRRORORRRROROROOOOOOORORROORROOROORORRRRROROOOORRRRROORORROROROROOROOROOOORRRORORROORORROOOROROROOOROROROOROORROOOROORORORORRRROOOORORRRRROORRROORRRRROORROORORORROOROOROROOROOROOROOORROOOORORROOORRRROOROOOROOORROOOOORRROOOOOROOOOORROOROOOROORROOORROROROROROROOROOOOORROROROOORROROROROROOORRRRRROOORORROOORRRORRRRRRORROORORROROROORRROOOOOOROROOROOROROOOOOOOOOOROORRRRROOROOOROOOOROORORORRROOOOROOROOOORRROORRROORROOOROOORRROROORORORRRRRORROROORRROOORRRRRORORRRORROROOOORROORRRROORRORROOORROOOOORORRRRROOOOOOOOROOOOOROROORRROORORRORRROROOOORRROORRROOOROORRRROROOROOROOOOROORRRRRROOOORROOORROOORRORRROORRRRRRORORRRRROOOROROROOOROORRRRRRORRROORORROOROOOORRRROOORORRRRROORORROORRRORORORROORRRRRORRORRROOOOOOROOORORRRORRRORROOOOOOOROOOORRROOORORROROOROROOORORORROOORRORRROORROOORRORROOOOOROORORRRORROOROROORRORRRRRORRRORRROOOORRORORRROOROOOOROORROROOOOORRRORRRRROORRRRORORRROROOORRROORORORRORRROORROOROOROORRRORROOOOOORORRORROOOOORORROOOOROORORRRRORRRRRORORRROORROROROORRROORORRRRORROORRRRROOORROOOOROORROOOOOOOROOROORORORORRRORORRRROOORRRORORORRROROOOROOROORROORORORRRROROOOOOROROROOOORRRRROOOOOROORRORORRORRRROROORRORROORORORRRROROOROOOOOOOOOOROOORRROROOOROORRRORRROORORORORROROORORROOOORROORRORRROROOROORORRRORRORORORRROOROROOORRRRRROROOORROROROOOOOOROROOORROROORORORORROORROOOORORRRROOORRORORORORRRROROOROORROORROOORROROROROOOOROOOORRROOROOORORORROROORROORRRROOOOOOOOOORRRROROOROOORORORRORRROOOORRROOROOORORRROOOOOOROOORORORORORRROORORRRRRRRRROOORROORROROORROORRRRORORRORRORRRRROOOOOOORRRROOOOOOOOROORORORRRRROOORRRRORROOORORRRORORRRRRRRRRROORORROOOORRROOROOOORRRORROORROOOORORRROOOORRORORRRORRRRROOROOOORRRRROOOROORRRORROORRORROROROROORRRROOROROOROROOOROORRROROOOOORRORRRRRORRROORROORRORROORROOORROORRORRRORRRRRROORORORORROOROORRRRROOOOROOROORRORROORORRROROORROORORORRORRRORORRORROOROOORORROROOOOOOOROOROOOORRORORROROOORORROOORRRRRROOOORROORORROORRRORROROOOOORORROOOROOORORORORROORROORRRRORRORRROORRROORORRRRROORORRRRRRRRRORROOOOROROOOOOOORRORRORRRORRORORRROOOORORRROOOOOORROOROOOOOOOROORRRORORRORRROOROORRRRRRROOOORRRRRORRRROOOOORROOOORORROROOOROOOOORORRROOORRORROOOOROOROROROROROOROORORORROOROROOOORRORORRRRRRRORORRRRORRRORRROOORORROORROOROOOOROORORROROOROROOROORRRORORRROOOORROORORRROORORORORRRROROOOORRROORRRROORRRORRROROOROORRROOOROOOROROOOROOROORORRROORRORRROORRRROORRRORROROROROORRRROOROROORROROOROOROOOORORRRROORORRRORORROROROOORORRRRRRRORRROOOOOOOOOOORORORRROOOOROORORRRRRORORORORRROOORRORORORRRORRRORROORRORORROROROORRROOOOORORROORORORRRRORRRRROROOROOOOROOOOORRORRRRRRRRRRRRRORROOORRRROORRRRRORROROOROOOOROOROROORROROORROOROOORRRRROOOROOORROOOOOORORROOOOROROOROOORORRRORROORROORROOORRROOORROOROOOOOOROOOOORRRRROOORROOORORRRROOORORRROROOROOROORRORRROROOROOORROORRRRROORORRRORORRORROOORROOOOORRORROROOOOOOORRORORROOROROROROORRRROROROORRRROORROOOOORORORRROOOOOROOORROOROROORORRROROOOORRROORROOORROOOOROORORRORRROOOROORRRRORRRRRRROORRRROROOROOORRORRRRRRORRRORROOOOORRORORORORRORRORORRRROROORRORRRRROROOOORRORRROROOROROROORRRRRRRRROOORRRRORROORROORORRRORROORRORRROOOOOOOORROROROOOROOOORORROROORRRORROOOOORORROOOORORROORORRROOORRORORORORRRROORRRORRRRRORORRRORRRRRROROOROROOROOOROORORRRRRROROOROOROOORROOOOORROOOOOROORRRRROOOROOORRORRORORRROROROOORRORRROOOORRORRROROOROORROORROROOOOOOORRROROOORROOOOOOOORORORRROOORORROOORROORORRORORORRRRORROOROOOORRROROROORROORROOOOROORRRRROOOOOOOORROOROOOROROOOOORRORRORROOOROROOOORORRROORRROOOROORRROROROROOORRROOOORRRRRORRRROOROROOORROORORROORRRRRRROORORRROOROROORRRRRORROOROORROOOOORORRRORRORORRORRORRROOOROOORRRRROROROORROORORROORROOOOORROOOOOOOORORROROROORORRRROOOROROROROROROROORROORRROROOROROOORORRRRRROROORROROOORORRRORROOORRRRRRRRRROOOOOOORRRRORRRORROROORORROROORRRROOOROOORRORROORROOOOROOORRRRRRROOOROROOOROOORROOOORRRRORRROORORROROOORRRORORROOORRORROOROROOORORRRRRRRRRRORRRORROOOORRROROOOORRRORRORROOOOOROORROOROOROOOROOROOOOOOOORRRRRROOOORRORROOOOORROOOORRRRORRORRROROORORROROOOROOROROOROOOORRRRROROROOOOROOOROOOOROROOOOROOROOORRROOORRROOOOORRRROORRRORORRROOOORRROROOOROROORRROOROOOOOOOORORRORRRROROROOOROORRRRORORORRROOOOROORROROOOORRRRRORORRROOOORRROORRRRROORRROOROOORORORRROOOOOORROOOOORROOORRORORRRROROORRRORORRROORRRRROOROORROORRROOROORRORRRROORROORRRROOOOORRORORRROOROOOOORRRRRORROORORORROORROORRROOORRRROROOOOOORORRORRROOORRORRRRORROOORRROORRRORRRROOORRORORRRRORRRORRORRORROROOROROORORRORROROOOROORRORORORRRRRORRROOOOROROROOOORRRRORROOROORROORORORORROORORORROROROORROORROOOOROOOROORROOOROOORROOOOOOOOORRRROOOROROORRRORROOROROORRROROOROOORROORROORORROOOOORRRROROOORORRORRROOORRORRROROOOOOOOROROROORORRORORORROROOOORRRRROORRRRROORROROOOROORROOOOROOROOOOROOROROORROOOOORRRRROOORORRRRRORORRORORRORRROOOOOOOOOROROOROOROORORORROOROOOORORRROOORORROOOORRROROOORROROOORRORROOOOROOOROOROOORRRORRRRROOROORRROOOOOOROROROROORRROROORRORRRRRROOORRRORRRRROOOOORRRORROOOOOOOOOOROOOROOOOOROOORORRRROOOROROROROORORRRROROOOROOOOROOOORORRRROORROOOOOOOORRROORRRRROOOOROOROROOORRRRROOOOORROROOROOORROORORROROOROORRRRRRRRORORRROORRRORORRRRRRROOORRORROROOROOROROORROORORROROOOROOOOOROROORRRORORROOORRORROOOOORRRORRRRORROROOOOORROROROORRRORROROOOORRORROROROOORROORRRROROOROOORRRROROOOORRROOROROROORROROOORROOORROOORRORROOORRRROROOOORORROOOROOORRRRRROORRORRRORORRRRORRROROOORORRRROOOOOROORRRORROROOROORRRROOROORRROOOORORROOROORRROOOOROOOOORROOORRRROORORORORROOOOROORRRORROOORRRORORRROORRROROROOORORRRRRRORROROOOROOOOROOOOROROOROOROOOORORROOOROOORROROROORRROROROOORROORORRORORORROROOOROORRRRROOOOOORRRRROROOOOORORRORORORRORORRROOROOROORORRRRRRRROORORRROROORRRORROOORORROORROORRRRORROOOOROOROORRRRRRRROOOORRRRRRRROOORROOOORORRORROROORRRRRROROORRROROROROROOROOORRRORRRRRRORORROOOOROORRORROOOROOROORORROORORRROOROROOOROOORRRRRROOOROOOORRORORROORRRORRROROOROROROORROORORORROOOOOOOOOOORRRRORRROORRRORROORORRRROOOOORROOROROORRORROOOORRROOROOOORRRRROOORRRRRROOORRRRORRRORRROORROORRRORRORORORORROROORRORROOORORORROORROOOORORROORORROOROORROORROROOROROROROORORORROORRRORRRORRORORRORROORORRRRORROOROOOOOOROOOOOOOROOORORRRRROROROOORORORORRROOROOORRRRORROOORRROOORRROOOROOOROROOOOOOROORRRRRRORRORROOOORRRRROOOROROOORORROROOROROOORRROROORROORROOOOOOOOROROROROROORRROOROOOOOORRROOORRRROORROOOOROOORROROROROOROOOOOOOORROORRROOORRRROROOOORROOORROOORRRRORROOOROORORRROOOORROOROROOOOOOROOORORORRROORRRORROORORRROORRRRORROORRORRROROROORRRRORORRRRRORRORORRROORRROORRROORORRRRROROROOOORORRROORORORROOOORRRORRROORRROOOROORRRORRRROROROORORORRRORRROOOOORROOOOOOOROROORORRRRORRORROROROORRRORROORRROORORRORORRORRRROROOORORROOORROOOORORRRORRRRORORORORRORRRRRRROROOROORORROOORORORRRROOOOROOROORRROOOORORRRORROORORORORROOORRRRRROROOROOROROOORRRROOROOORRORORROOROROROOOOROROOOORROOOOOORORRORRROROORRROOORRROOROOORRROROROOROOOORRORROOROORROOORRORORRRROORRRORROOORRRRORROOOROROOOROOROOOOORORROOROOROORRRROORRRORRROOORRORRORORRROROOOROOOOOOORRORORROOOOORRRRRROORRRRROOORRRRRRRORRROORRORROROOOOOOOORRRRROROOOROOOOOOORORROOOORRROROOROOORRROORRROOORRRRROOOROOOROROROOOOORRRROROROORORROOOOOORORRORRRROORRRROROORRRORRRRRROORROOOROORRORROROOOOOOOOROOROOORROROORRRRRORORRRROOORRRRRRROOOROORRRRRRRORRRRRRRORRORRRRRRRRRROORRORROROORORRRRORRRROROOOOOOOOROOOOOROORORRORRRROROROROROOORROOORRRROORRRROROOORORRRROROROORRRORRROOOOOORRROOOOROOOOROROOOOOOOROOORRRORRORORORRROOOROOORRROOOORRRROOOOOROORRORROROOORRORRRORRORROOORRORORROORORRROORORRROORORROOROORRORROOORORROORRORROORORRORROOOROORORORRRRORROROORROROOOROORRRROORRROORROORORRRRRROOORRRRORRORRORROOOOOOOOROOOOROROOOOOOROOOOOROROROORRROOOOROOOORRROOOORORORORRROROOROROOOORROOROROOOROROOOROORROROROROROORRRRRORRRORRROOOORRRORRRRORORRRRRRRRRRRRRORRROORROROOROOOROORORRRRRROOROROORRRRROROORORROOOOOOOOROOORORRROOOOOORROORRRROORRROOOORRRORRORORORROORRRRRROOROORRRRRRRROROOOROROOOROORROOOROROOROORRROORRRORRROOOOOORORORORRRORROOROROORRORROROROROOORROOROORROOOOROOOOOROOOORROOORROORROOROOORRORORRRORRRRORRROOORORROOOOOOOOORRORROOROOROOROORROORORRRROOOROORROROROOOORRROORRROROORROOORRRORRRORRROOOOROROORRROOROOOOOROOOORRRRRRORRRROROOOOOROOOROROOOOROOROOORRORROORRRORROOOOOROOOORRROROROORROROORRORROOOORROROOOOOORORRORROOROROOROOORRRORROROROROROORROOROOOORROOOOROOOOORORROROORRORRRRORORRORRROROROORORROOORRORRORRROROROOROOOOOORROORRRRORRRRROOOOROORRRROOORRORRROOROOOOOORROOOROROROORROROOOOROOORRROROORORORRRORRROORROORROROROOROORRRRRRORRRORRORORRRORRRRRROOORROORROROOOOOORROORRRRRRRORORRROROROOOOORRRORRRORRORRRROOOROORROORROORRRRROROOROROOROOORROROOROOOORRORRRRRROORROROROOOROORORRROOOOROORORROORRROROOOROORROORROROROOOORRORRRRRRRRROORRORRROORROROROROOORROOROOROORRRRORORRRRROROORROOOOORRRORRRORROORRRRRRRROORROROROOROORRORROORRRRRRRRROOOROOOOOORROOOOOOROROOROROOROOORROOORRRRRROOROROOOOROOOORROROORORRROROOOORROOORRROROOOROOROROROORRRROOORRRROORRORROOROROORRRRORRORRRRRORROOOOORORORROOOROOOOOOOROOOOOROOOORRRORRRRROORRROOORRROORROORROOOOORROROROROORRROOOORRORRRORRRORRRRRRRORORORROOROROORRORRRROOOOOOOOOOOOOOOOORROORORROORRRROOORROOORRRROOOOOOOROROOROOOOOORRORRROORORROOORROOORORORORORORROOROOOOROORRRRROOOROORRORORRRRORROOOORORORRRRROOOORROROOOORRRORRROOOROOOOOOOORROOROORORRRRRRORRROROOOOORRROROOOROROOORORRORROOROOORRROROROOORROORORRORROOROOOORRORRORRRROOOOORRROORRORRRROOROORRROORORROOOROOOOOROOOOOOOOOORRRRROORROROOORROOOROROROOORRRRRORROOOROORORROROROOOORORORROORORROOOOOORRRRROROOORRRRORROROROORORROOOROOROOOORRRRRROOROROROROOOROROORORRRRORROROOORROOORORROOROORRROORORRORORRRRORROOOOROROORRRRORORRORORRRRORRRROOOROOROOOOOOOROOOORORRRRROROORROORROROROROROROROORRORRROORROORRRRROOOOROOOROROROOROROOOROOOROOOOORRRROOORRRRORRRROROROROROROOOOROOOORRRRRROORORORRRRRRORROROROORRROOOROORROOOOROOROOOORORRROOOOORRRORRRORORRRRORROOORORRORORRRRROROOROROOROORROOOORORORROORORROOORROROROOORRRROOOOOOROORRRORROOOOROOOORROOROOORROOOOROOOOOOOROOOOROROORRROOORROOOOORRROOORROOOORORROOOORROOROORRRORROOOOROROOORROROOOOOORRROOROOOROROROORROOOOOOOORORORROROORRRORRRRROOROROOOORORRRRORRROOOOORORRORRROORRROOOOROOROROORRRRORRRRRORRROOROROOOROOORROOROORORROORORRRRROROOOROORRRRROORORORRORORORRORROORRRRORRORRRROROOOOROOOOOOORRROORROROOOOROOROOORORRRRROOOROORORROROROROOORORRROOOOOOORROROROROOOORRRRORRRORRROOOORRRRROROROROOOROORRORRORRORRROOROOROORRORRRORRRORRROROOOROORRRROORRROROOOOROORRROOOORRROOOOOORRORROORORORRRROORRROOROROROOOOOOROOOOOROOOROOOROORRROORROROROROORRROOORRRRROORRROROROORRORRRROOROROROROORORRORRRROROOOOROOOORRROROOOORRRORRORRORRROOOROROROOOOROORORRORRRROROROORRROOOORRORORRROROROOROOORORRROOOORRRRRROROOOROOOORROOOROORROOORROROOOOROORROORRRROORRROOROORRORRROOOORRRROOOOOOORROOROROROOOOOOOORRRRRRROOORRRROOORORRROROROOORRORRRRRRRORRORRRORROROOOOOORRRRRRRRRRRRROROROOOROOORROOOROOROOROORORRRROROOOORRRRORRRRRROORRORRRRORROOORROOOOOROORRORRROORRROROOOOROROOORRRRRROOOOROOROOOOORORORROOROROOOROORORORRORORORORRROOROORORROOOOORORRORORRRRORORROOOORROORRRROOOROORROORROROOOOORROOROORRORRRROROROOOROOROOORROROROOOROOORORRRRORORRROORRRORORRRROORROOOOOOOORRRORROOOOOROOOOOORRRRROORRROOROOROORRROROOORRROORRRRRORRRRROROORRRROORORORORRROOROOOOOOORORROOOOROROOOOOOROROROORRRORRRRORRRRORRORORRROOOROROROOORRORROORORRORRRRORRRRROROOORRRORRRRRORORROORROROROORORRRORRRROROOOOROROORRORROORROROORRORROORORORORORORROOROOOOOROORROOROROOOOOROOOORROOOOORRRROROORRRRORROOOROROOOOORRROOORROORRRRRRRORRRORRORORRROROORRRRROOROOROOOOOOOROROROORRRRORRORRRROROROOORRROOOOOROOROORORRROOROORRRROOROORROOORRRORORROROORROOOOOORRORORRRORORRRORORRRROOROORRRORRROROOOOOOOOOORORROOOOROROOOROORORORORRROOORRRORRROOOROROROOORRRROOOOORRRORROORROROORROOORORROORRROOOOOOOOORROROORROROOOORROOOOOOORRROOORRRROROORRROOOROORRROROROOROROOROOROORRRRROOROROROROOORROROORRROORRORRORORROORROORORROROORRORROROOOORRRORRRORRORORROOORRORROOOORRRORROOROORRROROORRRORRRRRROOOORRORRRROROORORRRORRORRORORRRORRORORROROOOROOROOORRRRRRROROROOROOOOOROORROOOROOOOOROOROORROOOORRRORRRORORRRROORRRRORRROROROROROOOOORRRORROOOOOOOOROORROORRRORORRRRRRRORRROOORROORRRROORORROROOROOROOOOOROROORROROOOROOOOORORRROORRORORRROOROROROROOORRROOROORRRRRORORRRORRRROROOOROOROROOOROOORORROROOOOORORRRORRRORRRROOROOOORROORRRROORRORRORROROOROOOORROOOORROOOORROORROORRRRORRROROORRROORROOORROROORRRRROOOOOOROOOROOOOOORORRORRRORRROOORRRORROOOORRROORORRRORRORORRROOROOOOORRROORRRORRRRROOROOOOOORROOOOOROORORROOOOOOOOOROROOORRORRROOOOROOOOORROOOROROOROOOROOOROROROOORRRRRORORROOROORRROOOORORROORRRRRRRROOOROOOORRRRROORRROORRRRRROOROORROROROORRORRRRRORRRRRROORRRROORRRRORRRRROORROOOOOOOOORRORRORRRRRROORROROROOORRROORRRROOOOOOOOORORORRRRROOOROROROOOROROROROOOROOOROOROOOOORROOORRRRORRRORORRROOOORRROROROOORRRRRRORROROOOROOORROROORORRRRORROROOOOOROORROORRRRORORRROORORROROROROOORROOOROOROOOOOOORRROOROOOORROOOOORRRROROOORRROOOROROROROORORRROORRROORRRORROORROOORORROOOROOOOROORRRRROOROOROOOORRRORORORRROOORROORROOORORRRROOROROROROORRROOOORROROORORRORRORORRRRORRORROOORRORRRROROOROOORORROROOOOROOOORROOROORROROROOOOROOROROROORRRORRRROROOROOROROROOOOOROROOOOORRRRRROROOORROOOROROROOOOORROOOOOOOOOOROROORROORRROOORRRRRROORRROOOORORRROORRRRORRRRRRRRROOOOOOROROORORROOOOOORRORRRRRRRORORORORORRORROOORRRROROORORORRRRROORRRORRRRRROORRORORRRROROOOROOOOOOOOOOOROOORROORRORORROOOROOORROOOROROOOOROORRORRRORROOOOOROORROORROOORROOOORORROORORORRROOROOOOOORRROOORROROORRRROORRORORRROOORRRRROORORORORRRROOOOORORRROOORORRRROOROOOOOOOORRROORRORROORRRORROOROOORORORORRROROORROROORRORROOOORORORRRRROORROOOORROOORORRRROOORRRORROORRRRRORORRROOOOOROOROROOOORORORRRROROOROOROROROORROOOORRRROROROORRRRORORRRROOROORRROORORROROOOOOOOOROOROOORROOOOROOOOROOORORORROOOORRROROORROROOORROORRRROOOOORRRRROROOOOOOROROOOORRORROROOOROROORROROROROORRROOOOOOOOROOOOOOORRORROORRRRORROOOORRROORORRRROOROROORRRRRRRRROOOROOROROROOROROOOOROOOOROORROOORROORROORRRROROORROORRRRRORRROORORORRRORORRRROORROOROORORROROOROOOORRRROROOOROORRORORROORROROROOOROORORORRROOOOORRROROROROOOORRORORROOOOOORROROORORROROORRRORORRROOORROOROOOORROOORROOOORROROOOORRORRROROROORRRRORRRRRRRROROROROOOOROOROORRRRRROOROOROORROOOORRROORORORRORRORRROROROOOOOOORRORRRROORROROORRRRROOORRROORRRRROOOROROORORORROROORRRRROOOORROROROOOOOOORORROOORROROORRRRORRROOORORRROORRRRROORRROOOOORORROROOORRRRROORRORRORRORORROORRORROROOROOROROOROORROOORRORORRRORRRROORRRROORROOOROOOROOOOOOOOROORRRRRRROOOOOORROOOROROROROROORRORRORRROOORRRROOOROROORROOOOROOROROOROOROOROROOORRROOROORRRROORRORRROORRRRRRRORROROORRRROROROOOOOOOOROOROOOOROOROROOOORROORRROORRROROROORRRRORRRROOOROOORRROOOORRRRORORROOOROOROOROOORORROORRRRRRRRRRROOORRRORRRRORROORRRORROROOROORORRORRORRORORROROORORRRORORRROOORORRORROOORROORORRRRRROROOROOOOOROOOOROOOOOROOOOORROROOROOOROROORROORRROOORRROROORRROORROORRROORRRORRRRRORRROROORROROORRRORRRRRRRROOROOOOOORROORORRROOORRORROOOROROOORRRORROORRRRRRROOROORRROORROOORORRORRRORROOOOOROORRORROOOORRORROROOROROROROROOOROOOORRRORROORORRROORORRRRORORROROROOORRORRROORORORRRRRRROROORROROOOROROOROROORORROROORORROROOOORRRROROORROROOOOROOOROROROOOORROORRROOOOROOOROORRRORRROROROROORRORRRORROOOOORRRRROORORROOOORRORRORRORRROROOROOORRRRRROOORROOROOORORRRORRRORRRORRORRROOORROORRROROROOOOOORROROOROROOORRORORRRRRRRROOORORRORRROOOORROROROROOROOOOOROROROOOOROROOROOOORORORROROROOORORRROOOOORRRROOOORROOOOROOORRROOROROOOOROOROOORROOORROOORRORRRORROOOORORRORORRORORROOOROOROOROORROOOORROORRRRORRRROORROORROROROROROOOORROORRRRRROOROOOROOOROROOOORRRROOOROORROOOOORRRRRORRRROOORRROROROOOOOORRROORROOROOROOOOROORROORRRRORORRRORROOOORRORORORRRRROROOROORROORROORRROOOOORORROROROOORORORRROOORRORRROOORRORRRRORORORROORRROOOOOROOROOROOOROORORROOROOOOOORRROOROROROOORROROROORRORRROOOOROOORRRRORRRRRROROOOOORRORROOOROROOROORRRRRROROOROOOROOROOORRORRRORRRRRROORROROOORROOOORRROROORRRRRROROROOROOORRROROROROROOORRORROROROOOOORROOOORORRRROROOROOOOOOROOORRRROOORRRRORROORRRORRROOOROROOOROOORRORROOROOOOORRORRROROORRRORORORRRRROROOORRRROOROOROROROOOORRORROOOOORRRRRROOOOORORORRRORORRRRRROOOROORROROOORRRRROROORORROOROORORRROORROOOOROORRRROORROROROROOOOORRRRORRRORRRRRRROOOORORORRRORRORROROORRRRRRRRROOORRRORORROORORRRROOOOORRORROOORRORROROOOORORORROORRRORROOORRRORROOORRROORRRORRRORORROROROORRRORRRORROOROORORROOOROORRRROOOORRORRRRROORORRRROORRROOROORORORRORRORRRROROROORRRRRRRORORORRROOROOOOROOORROOORORRORRRORRRRRROORRORROOORORRROROORRROROOROOOOORROOROROOOOOOOROOROORRROORROOORROOOOOROROROROOORORROORRRRRORROROOOORORRRRORORORRRROORRORRORRRRROROOOOORORRRORRORRRORRROOOOORROORROOORORORORROORROORROOOOOROORRORORRRRROROORORROOOOOROROROROOORORRORRRORORRRRROROOORRROROROROOOOOORROORRROORORROOROORROORROOOROOOOORROORRRORROOROROOROROOOROROROROROROOOOROORROOROORROOOORROORRRORORORORORRORORRRORRORRRRROOOOORRRROOORROROOOOORORRRRRRROOORRORROORRRRRRROOOOOORORRORROOOROOORROOROORROROOORROROORROROOOOROOROROOOOOOROOOROOORRRRRROOOROOORRRROOORROOORRROROORRROROROOOROOROOROOROROORROORRORROORRROOORRORRRROOOROROORROROROOORRORORROOOROORROORRRRRRROOOORORROOOROORRRROORORRRORRORRROROOOORRRORORRRRROOOOROOOOOROOROOORRRRRROOOOOOOROOORORORORRROROOOROORRORORORROROROOOORORROOOORRRRROORROORROROROOORROROORRRROOROORRRRROOOROOOOOOROOOROOROORORORROORRORORRRROOORRRRORORORROORRRRROORROOOOROROROOROOORORROORRRRRROOROROROOOROOORRROOROORRRRRRRORORROOROROORRROOROROOORRRORROOORRRROOROORRRRROOOORRROOROROROROORORRRRORROROOORRRROORROORROOROOOROOOOROROOORROOORRRRROORROORRROROROORROOORRROOOOOOOOROORRRORORRROROORRORRORRROOORORRROORORRRRROORROOOROOOOOORORRRRRROORRORORRROORRROROOORRRRORRORROOROROOOOROOOOOOORRRORRRRRRROORORRRRRROORRRORRRORROOROORORROORROORRORORRROOROOOOORROOROORORORRRORRRORROROORRROORORORROORROOROOORROORRRROORRROORROORORROOOROOROORRRRRRRRRRRROOROOOORROROORRRROORRORRORRORROOROROOROOOORRRRRRROORRORRROOROORORRRORRRRORROOOROROOOROORRROROOORORORRRRORROOOORRROOROROORROROORROOROORRROOORRRRROOORORRRRORORROOORROROOORRRORRORRRRORRORROOROOROORROOOOROOORORROOROOORROROOORORORROOOROOOROROORROOOROOOOOOOOROORRRROROROROOOROORRRRRRROOORRORORROROOORROORRROORRRRRRROOOROOROORROORRORRORRORRORRORRROOOORROOOORRORORROOOOROOOOOOOOORRRROOORRORORRRROORRRRORRROOOOROOROROOORROORRORORRORORRORRROORRRRRORORROOOOORORRROROOOROORRRRORROORROROOORROOOOORRRRORORRRRRORORROROROROOOORRRRRRRROOROOROROROORROORRRROOOOOOOORRROORORRRRORORRRORRORRROOOROOOOOORROORORORRRROROOOROORRORRROOOROORRORROORORORRROOOROORRORRRRORORROOOORRRRROROORRRROROOOOORORRROORRROOROOORORRORRRRROORRORRORRROROORRROOORRORRORROOOOOOROOOORRORORRORRRORRRRRRRROOORRORORRORRROOROROORROROOOOROROOORROOROROORRROORRORRROORRRROOORROROOOOORRRROOOOORROOOOOOOORRRORRORORORRORRRORRRRRROOORRROROROOROOOORORRRRRORRRORRROOOOORRRRORRROORRORRORRROORRORROOORORRORROORORROOROROOORRORRRROORORRRRRROORRROOOORRRRORRRRRROOROOROOROOROORORRRRRRRROOOROORROROROROORROOORRRRRRRORORORROOOOROORROOROOOROOROOOORROOROOORRROOORORROROROROORRROOROOORRROROOORRRORRRROOROROROOORROOOOORROOOOOOORROORRRRRROROOOROROROORORORORRRORORRRRORRRRROORRROOOROOOOOROOORORRRRROROOROOROORRROORRRORRROOOOROORRROOOORROOROORORROROOORORORRROOROROROOOORORROORROOORROORROOORROOROROROROROOOROOORORRROOOORROROORROOORRRROOOOROOOROORRROOROORORROORRORROOORRROOOORRROOOROOORRORORRRORRRORORRROORROROROORRORRRRROORROROORRORRRORROROOROORROORROOOORROOORORROORROORORRRRORORROORRRROOORORORORROOORRORROOROOORROORORRRROROOOOOOOROOROROORRROOORROOROOROORROORRRRORRRRRORRRROORORROROROOROROORRRORRORROROORRRORROORROOOOOOOROORROOROOOORRROROORRRORRRROOORROOROROOOOROORORRROORRRRRRRORRRROORRRRROORRROOOOORRORRRRORRORROOOOROORORROOOORORRORORROOROROOORORRRRROROOORROORROROORRRORRROORROOOOORRROOOOORROORRRORRRRRRRORROOORORROORROOOORRORORRORORROOOORROOOOOOROOORRRRORRRROOOROOOORROOORRRROOOORROORROORORRRRORORROROORRORORRRORRRRROOOROOOOROROOROOOOORRRORORRORROORROOOROROOOOORRROOOOORORROORROOROROOORORRROOROROROORORRORRORORRRROOORRRRROOROOROROOOORROROOOOOOROOOOOOORORRRRROROOROORRORRROOOORROORRRROOROOOOORROOORRRRRROOOORRRORRRRRORORORORROOOOOOOOOROOOOOORORROROOOOOROORRRROROROORRRROOORROROORROOOORROROOOOOORRRORRROOROOORRORORRRORROOOORRRORRRRRRORORORROOOOOOOROOROOOOOORRRRRRORRRROROOORRROOOROOORROOOOOORRRORRORROOOROORRROOORROROOROROORORRROORRRORRRRRRRORRROOOROROROORORRRORROOROOOROOOOOOOROOOORRORRRRROORORORRROROROOOORRROOORORROOROROOOOROORRORROORRORRROORORRRORROOORORRRRRRROOOOOROOORROORRRORRRROOOOOOROORRRROORRROOOOROOROOROORRROOROOORORROORORRROOORROOOROOROOOOOOROOOOORRORRORORORROOROROORRROROOORRROOROOOROROORORROORRRROROORRRRORRRROOOORRRORRORORORROOOOROORORRORRRORRRRRORROORORRROOORORROOROOOOOROORORRRROORRORRROOOROOOOORRRROOOOOOOOOORRROOROORORRROROOROORORRRROOORRRRROOORROOOORROOOROORRORROOOOOOOORRRORORRRORROOROROORRRRROOOOORRORORRRRRRORRRRROROOOROORROOOROROOOOOOORORROORRROOOROROOORRRRORORORRRORORROOOOORRORROOORRROROORRORRORRORRROOOROOOOOOOOOOORORRORORRRRROROOORRORROOORRROOORORRRROROOROORRROOOOOORRRROOORROORORORRRROOOOROOORRRORRRROOOROOORROOOROOORRRROOOROOOOROOOROORRORRROORRRORRRORORRORORROROOOOOOROORROORORORRRRRRROROORRORRROOOOOOOORRROOOOOOOOOORRORROOROROOORRRRORROROROOOOROROOOOOORRRROORRORROORROROROROOORRROORRRRORORROROOORROORROOOORROOORROORORORRORRROOROOOOOORRROOORRORORORRRROORORRORORROOOORORORROOORRRRRRROOOOOORRRRROOOOORORRROOOOOOORORORORRRRRRRRRROOOORROROROORRRRORORORRORRRORROOORRORORROOOOROOOROOOOOOOOOROOORRRROROOROOOROORROORRROOOORRROOOOOOORORRRORRROROROORORROORORRROORRRROORORRROORROROROORROROORRRRRRRRROROROOORRORRRROORRRROOOOOOOROOROROOOOROOOOOOORRORORRROORRORORRRROOOROOORRROROROOOOOOROORRORROROORROOOORROORROORROORORORRORORRRORRORRRRROORROOROROORRORRRRORROROROOROORRRRROORORRRRRORRORRRROROOOROROORROOOOOROOOOORORRORROOROOOOROOROOORRRROOORROROORRORRRROOORRRORRRORORRRORRROROROROOROROOOOOROORORRRRORRORRROORROOOOROROORROOOORROORRORORROOROOORROOROROOORRROORRROOOORORRRROOORRRORROOOROROROORORORRRRRRRROROORRRRRROORROORROROORRORRORROOROOROOROOORROROORRRRRRRORRORRROOORORRROOOROORORRORRORRORRRRORRRRRORRORRORORRRRRROOOOORRRRROOROOOROOROOOOOOOOOROROORRORRRROOORRROOOOOORRRORORROOOROOOOROOORRRRRORRROOROOOOROOORROORORRRROOROOOROORRRRROOOOOOOOOROOOOOROOORRROORRORRRROORRROORRROROROORRRROOOROOOOOORRORROOROORROOOOOOOOORRRROOROROORRORRRROORROROROROROROORRRRORRRRRORROOROORROORROOORORORRORRORROOROOORORRORORRROROOOOROOORORRROOROOOORRORROROORORORORRRORRRRRORRROOROOOORRROORROORROROOROOOOROOORROORROROOOROORRORRROORRROORRRORORROOOORRRROOROROORRROORRROOOROROOORRRRRRROOOOORRRROOOOORRROORORORRRRRRRRROOOROORRROOROOROROOOOOOOOOOOOROROROOROORORRRROORRORRROOOOORRORORRROROROROORORROOOOOOORRRORRRROOOOROOORORRRORRROORRROORORROOOORRRROOOROORORROORRORRRORORRROOOOOROOOOORROOOORRORORROORROORRRRORROOORRRROOORRORRRROOOOOORROOROORRRORROROOROOOOOROROORORROOOORRORRRRRROOOOORRRORRRROROORRRROORROORROROOORRORROOROOOORROROOORROOOOORRROOROOORRRROORROROOOOROOOORRRRRORROOOROORRRORRRROORROOORROOORORROOORROOROOROOROOROOOOORORORRRRRRRRRRORRROROOORRORORORRROOOORORRORROORRORRROORORRROOOORROOOOROOROOORROORROOORRRRRORORROOOOROROOROORORRORORRORRRRORROROOOROROOROROOOOORRORRRRRRRORRRRROORORORRRROROROORROROOROOORRRRRORRRRRRRRROROORRRROROROORRORRORRORROROOOOROOROORROROOOROROOROORRRORRROOORORRRRRRORRRRRRRROROOOOOROOROOOORRORROOOOOOOOOOOORRROROOOROROROORRRROOOORORORROOROOOORROOOOROORRORROORROORROROOROROROOORRORRRRRORRRORRROOOOORRROROROOOOORRORRORORRRROORRROOROOROORORORORRORORRRROROROOROROROORRRROROROORRROOROOORROOOOOOOORROORORRRRORORRRORRRRROOORORRRORRRORORRRROROORRRRRORRRRORORROOOORROOROOORORRORRRRORRORRRORRROOOORRORORORRRRORROORROOROORORROORRORORRRORRORORROORORROROOOORRORORRRRRRRRRORROOOROROOOOOORROOOORRORRRORROROOORRROROORRRORRROROORRRRROOORORRRRRROOOROORRROROOOOOOOORRROROORROORRRROOOOOOROOORRROOROORRORORRROROORRRROOORRRORRROORORRORRORROOORRORROROOROOOOROROOORRORRRROOORROOROORRRROORROOROOROOOOOOORRRRROROROORORORROROOOROROROOORORRRROROOOOORORROORRROORORRRORRORROROORRROORROROROOORROROORROOOOORROOROOOOOORRROOOROROOORROROOOROOOOOORRRRORROOOOORORRROROOORRORROOORORROOROORRROOOROOOORRROROORRRRRORROOORROORRROROROROORRROORRORRRROORRRROOOOORRROORRORROOOOORRRRRORRORORORORROROORORROOORRORROOOROOOORORRRRORRRORRORORORRRROOOROROROROORROOROROORROOROOROROOOORROOOOROORRORROOOOOORORRROROROOOORROORRROROORRORORORRORRRROOORRORRRORRROROOORROORROROOROORRORRRORRRORRRRROORORORROROROOROOOORORROOOOOROOOOOOOOORROORRRROROORRORORRRRRROOOORRRORRORROROORRRROOORROOROOORRRORRROROOOOORRRRRROOOROROOORORROORROORORORRORRRRROOROORRRRRORROOOORROOOOOOROOROOROOORRRRRRRROOORROROOORRROROOOOORRORROOROORRRORROOORRRROORRRRORRROORRROOOOROORORORRRRROOOOROOROOOROORRRORRROOOORRORROORRORORROOOORRROROOORRROORORORORRROROORRROROORROOOROORORORRRRORRORROOROROOOROORORRROOOORRORRRRORROORRRRORORORRRRROOORROROOOORRORORROOROOOOROOOOORRORRROORRORRRROOOOROROOOORRRRORRROOORROROORROOORRORRROOOOOROORROOOROOOOOROORORROORROOOROORRRORORORROOORROORROROROOOROOORRRROROOROOOOOOORROROOOORORORORRORRROOROOORRROORORRROROROOOOROORRORORRRORRORORORRORROORRROORRRRROOOROOOOOORROORRRRRRORROORRORRRROOROOORRRROROORRRRRORROOROROOROORORORROOORORRORROROOORROORROOORORRRORORORORRRRROOORRRROORRROORRRRROORORRRRRROROROOROOOOOOOOOROORRRORORRORROORROOOOOROROROROORRRRROROORRRROOROOORRRRORRRRROORRORRORRRRRRRRRROORRORROOROOORRORRROOROOOOROORROORORROOORRROOOROORRROOOROOOROOORORORRROROROROOORRRROOOORORORRROOOROOROOOOROROOROORRROOORRRORRROORORRROROOOOOROROOORRROORORRORROROOROORRRROORRRROOROOORRRRRORRRROROROOROOOOROORRRRROOROOORRORORROORRROORRRRRORRORROOORRRRROOOOORRORORROOROOROOOORRROOROORRRRRORROOOOORROOOOROOOOOORROORRORRORRROOORRRORORORORORRORRRORROORROORRRRROROOORROOOORORRORRROOOOORRRRORRRRROOROOORROORRORROOORORRORRRRRRRRORROOROOOOOOROOOOROROOOOORRORRRRRROORRRROOOOOORROORRROROORORROROOORROOROROROROORROROORRRRORORRRRORROORRROROROORRRROOOOROORROOROROOOROORORROOOOOOORORROROORRRORORORRORORROOORROOOORROORROROOOOROROROOOOORRRRROORORRRORORRRRROROOOOORRRORORROORORROOOORRRRRRORORROORORRRORRRORRRROOROOROORORRRRROROOROOOOOORRORROORRRROORROORRORRROROROROROOROROOROOOROORRRRRRRRRORROORORORRORORORORRRORORRORORRRRRRROORROROROOOOOOOORORRORRRROOROORRRROORROORRROOORRRORROOROROOORRRRROROOOROROROROOORROOOOROOOROORRROROOOOROROOORRRRROOOROROROOROOROOORRRRROOOROOROROROOORORORRROROROORORRROOROORROOORORRRRORRROROOOOOOORORORORRROROROORORRORRROOORRROORORROOROORORRRRRORRRRRRORORRRORRRRROOOOOOROOOOORORORROOROOOOOOOOORORORORROOORRRRROROROOOORRRORORRROORROOORRRRRROORRROOORRRRORRRRROOOORRORROROOOROORROROORORRORRROOOOOOROOOORROOOROOOORROROOOOOOORRROORROOROOORROROOOROORRRORROOROOROORRRROOOROORRRORORRRORROOOORROOOROORORROOOOOORRRORRRRROOORRORORROORRORORORRRRROOROOORRROOROOROOOOOORRROORORROORORORRROROOORORORORORROORORRROORROOORORRROOROOOOOROORRRRRRRROOROOOROOROORRROOORROOORRORROORRRRROORRROOROORROOROOROORRORRRRRORRROOORRRRORROOOORROOOOROOROORROOOORRORROOROROROROOORROOROOOROOORROROOORROOROOOORRROORROOOROOOROOORRRORRROROORROROROOORRRORORRORRORRROORROROOROROOORRROOOOROOOOORRRROOOOROORORROOOOROROROOROOOROORRROORRROROORRRORROROOROOOROOORROOOROORROROOROORRROOOORORRRORROOOORRRRRRROOOOROORRRROOOOOOOOOROOOOORORRROOORRRORORRROORRRORROOOORROOROORRRRRORORROROOROOOOOORRRROOROROORRROORROROOORRRRORORRRROOOORORRRRROORORRRROOROOOORRRRROORRRORROORRRROORROOOORRRRRRROOOROORRORRRRRORRRRROOORRORROORRROOOROOORORRROOROORROORORROOOORORORRRROROOOORROOOOORROORRRROOROOOOOOOOROROROORRRORORORROORORRRROOOOORORORRRORRORRRRRORORORRORRORRROROOOOOORRRORRRRRORROOROOORRORRRROORRRORROORRORRROROROOOROOOOOOORRORRORORROROROROOOORRORORORRRRRROOOROROOOOOORORRRRROOOROROOOORORORORRRRROOORRRRRRROOORRRORORRRROOOOOOOOOROOROOOOORRORROORRORRROOOOOORRROOOORRROOOOROROORORORRROROROROOORRRORORORRRORORROOOOORROOORORORROOOORRORROORRRROORRRRORORRORRORORRORRRRRORRORROOROORRORRRORRROOOOROORROOROORORORORRRRRRROORRROOORRRRRORRROROOOORRRRRRORRRRRROOOOOORRRRRROOORRORROORORRORRORRROORRORRORRROORRROROROORORRRRRRROOROOROROOORRORORORRRORORRORROROOORROORRROOOOORORRRRRRRROOROOROROOROOROORRRORRRROROOOOORROOOOROORORORORRROOROORRROOORROOORROORROORROOROOOROORROROOOROROOROROORRORRROORORRRORRORRROROOORRRRORRRORROROOORROORRRORRRRRRORROOOOOORRRRROOOOORORROORRORROOROOOOROROOROORRRORRRROROORRRRRORORRROOORROOOOOOOOOOORORROOROOORRRROOOROOORROOOROROROOOORRORORRORRROORRRRRROROOOORORORORRRROOROOROOOROORROORRROORRRROORORROORRRROOOOOROOOROORRRORROOROOROROOROOOORORRROOORRORRRROOROROOOORROOORROOROROROORROOORRRROOORRRROOORORROROORRRORROOOOORORORRORRRORORROORRRRRRROOORRRRROROOOOOOORORROORRRRRRORORORRORORRROOOROORROOROOROOROROORROORORRORRORRROORRRROORRROROROORRRROROROOOOOORRRRRRROORRRRORORROOORORORORORROORRORROOROOORORRRROOROOOORRORRRORRORRRROOOROOROOROROROROORROROORORORROOOROROOORRRROROORRRRRROOOOOROOORROOROROORRROROORROORORORORRROOROOOORRRORROROOOOORROOORRRRROOROROOOOOORORROOORRRROORRORRORORRORORORORORRORORRRROOOOOROOOOOORROORRROROOORORRRRROOORROORRROORORRORRRROOOOOROORORRRRROOROOORRRRRORROROORRRROORRORROOOROROOROOROORORRRORROROROOOOORRRRRRRORORROORRROOOOOOROOORORROORROORROORRRRROROROOORORRROOROROORRRRRRRORROROOROROOOROORRRRORROOROOOOORORORORROROROOORORROOOORRRROOOOOOORORROORROROORROOORROOROOORRROOOORROOOOOOORRRROOROOORORORRROOORRRROORROOROORRROROROROOOOOORROOROOOROOOROOOOOOROORROOORORRORORRRRORORRRROOORORORROORROORORRRORROOOROORORROROOOOORRORORROORORRROOOORRRRRROROROROOROOOOORRORROROROOROOROOOORORROORRROOORRRRRORROOOORRROOOROOROROORORORRORRRORRROOOOOORRORORRRROORROORRORROOOOORRORORROOOROOROOOOORORRRROORRRORRRROOORRRRROROROORORRRRROOROOROORRROORRORRRROOORORRORROOORRRRRORROROORRORROOORRROROOOOOROOOOOROOROROOROOOROROOORORORORORRROOROORRORRROOOORORORROORORRRORRRROOOORRORRROORROROOORROROORRRORRRROOROORROOOOORROROORROOOROOOROORRRRRORROOORORRRROOROOROOORROROOROOROORRORRRRORRRORRRROOROOOORORRRROROOOOOOOROOOROOORRRROROORROROOOORRRORORRROOROROORRORRROROROROROROOOORROROORRORORRRRROORROORRRORORRRRRORORRRRRORRRRROOOORRORRROOROOROORRORROOROORORORORROOOROROOOOORROROOOORORRORRRRORORORRRRROOOROOOORRROOORORRORRRROROOOOOORRRROOOOOROOOOOROOOROOROORRRORORRORRRRORRROOOROOOROROOOROROORRORRORROOROROROOORROOORORORRRORRRORROOOOOOOOORROOORRROORRROROORRRORRROOORRRRROOORORRRORROOROOOOOROORRROORROOORROORORROROOORRROORROROOORROOOROOORRRRRROOORRORORRROROOOOOORROOOOOOOROOOOROOOORROROOORRROOROOOOROROOROROOORORROOORRRORORROROOOOROROOOORORRRROOOROORROOOOOORRROROROOORORRRRROOOOOROOOOROROOROOROOORROOOOOOORORORROOORRRRORROORRRORRROOOOORORRORRROORORRORRRORROOROOOORRRRRRRORROOOOOOOROORRORORROOORORRORROORORORORRRROORRRRORRRORRRRRORRROROORORROROOOOOORRORORRORRRORROOORROOROORRRORORROORROOROORRRROOOORRORRRORRRROORRROORROOOOROOOOOOOOROORRRROROROORRRRRORORRORORORORRRRRORRRROROOROOOOOOOOORORRROOOOOORRORRORROOORRRROOOORORROOORROOOORROROOORRROOROROROOOROROOROROROORRRORORROOOORRRROOOOROROOOORORROOROOOOORROOROORRRORRRRROROOOROOOORRROOROROOORORRRRORROORRRRRROOOOORROROORROROOOOOROOORRORRRROORRORRRROORORORORORRRRORRRRRROOROOOOOOORRROOOOROROORORRORROOOROROROROOROOORRROORRRRORRRRROORORRRRRROOROROOROROOROOOOOOOOROOOORORROOOORORROORRROOORRRRORRRORROOROOORRROORRRRROOORROOROORORRORROOOOROOOROROORRORROOOORROROROORORORRRORORRRORRRRRORRRRRRRORRRROOOOOORORRORORRRROOROROOROOROORRROORROOOOOOOOROOORRRROORRRRRRRRRORRROROOORRRROOOOOORROROOOOOOOROOROORRRORROOOORRRRROOORRRORORRRRROOOOORROROROOROOORRRROROOORORROOOROROOOOROROOOORRORRRRRORRRRRROORROOORROORORRROROORRRRORRRRRROORRRRORROOORROROOOROORRORROROORROROOOORROORORRRORRROORROOORRRRRRROOOOORRRROROOOOORRRRORORROORRORORORRORRROOORRRRRRROORRRRRORRRRORRRROROORRRRRRROOORRORRRRORROORRORRRRORROROROOORRORROORRRRRRORRRRROOROOOORORRRRROORORROROORRRROROROOOORROROORORRRROROROROOROROROOORRRRORRROOOOORRRROROOOOOOOOORRRROORROORRROROOROROOORRROOORROOOORRRROOROOOOROOOORRRRRORRRRRROOOOOOORROROOOOROROORORORROOROORORORROORROROROOORRORROOROROORROOOOOORROROORROOOORROROORRORRORORORRRRRROROORRROORROROROROOROOOOOROORROORORROOOOOORROROOORORORRRROROOOROROORROOOROOOORRRROORRORRRRORRROROORORORRRRRORRROROORRORRRRRRRRROOORORROORORORRRROORORRRRRRRRROOORORRRROROROOROORROOOROORRRORORRORRORRORROROOOOORROORRRORRROORORRORRROORROOORROROROORRRORRRROORORRRROORORRORRROORRORROOOROOORORORROOOROORRRRRORROORRRROROROROROORRORRRORROORRORRRRRRROORORRRROROOOORORROROORRORRORORORRRRROOOORRROROOORORORORROOORORROOOORRROROOOORRRRROORRORORORRRROOOOOOORORORROOROOOROOOOOOOOOOOOROROROORRRRROORRRRROOOORRROROOOORORRRORROORRROROORRROOOOOROROROOOORRRRROOOORROOOOOORORRROOORRRRORRORRRRROOROOORRROOOROROROOROOROOORRORRROROROOOOOROOOOROROROOROROOROORORROOORROORRROORRORRROROORRROORRROOORROOOOORRRRROROROOOOOROROOOORRRORORRRRRRRRORORRROOOOOROORRRROOOORROOROORRRRORRORROOOORROOORRROOROOOORORROROROOROROROOOORRORRRRRROROOOORRRORORRRRORROOOOORRORRRRORRROOROORRRRRROROOORRRRRRORROOOOORRRRRRRRRORORRROORORRORROOORROOROROOROORRRORROORRRRRORROOROROORROOROOOOOOORRRORRRROORORRORRRORORROOORRRRORRRRRRRROORORRRRROOOROOORRORROROOROOROORRRORRORORORRROOROOOORORROOOOROOOOROORRRRORORORRROORRRRROROORRROOOOOOOOORRRROOORRRRRORRRRROORRRROOORRROORRORORROORRRRRRORRRORROORRORRROOROOOOOOROOROOORROROOORROROOROOORRROOORRRORROORORORORROORRRRRORROROORROROORROOOOROOROROOOOROORORRRORRRORRORORRRROOROROROORRRROROORORRRRRRRORRROROOOOOORRRRRROROOROOOOOOOOORROORRRORORROROOORRROROROOOORORROOOOORROORROOORRORROOROROOOORORORORROROORORORRORORORRRROORROORRRRRROROROORROORORRRRRORORRORRRRRROROOORRRROROOOOOROOORROROORORROORORROORORROORRRRROORORRRRORROOORRORORROROROOROORRRRORORRRRROOOOROOOORRROROROOOOOOROOOOROORRRRRROORRORRRORRROOORROORRRROORRRRRROORROORORRRROOORROORORROOROOOORRRRROOOOOOOOOROORRRRORRRROOORROROROROROOORRROOOOORRORROROOROOORROOOOORRRORORRROORORORROOOOOROOORRROOROOORROROOOORRRRRRROOOORRRORRROORRRRORRROOOOORRORRROORROROOOORRORROOROOOOOOROOROORRRRROOORRORRRRRRROOORRROOOROROOOOROROORORROROORORRRORORORORORRRRRORORORROOORROOOORRROROOORRRRRRRRROROOOORROROOOOOOORRROORRORRORRROOORRRRRROOORRRRORRROOROOORRORROOROORROROOOOOOOOOOOOOORRRRRROOORORROROROROORORORRROOORORROROROROOROROOORRRROOOROOORROORRRROOOOROOOOORROOOORRRROOROOORRORROORRRORORORRROOOOOORRRROOOOOORRRORROOROOOOOOROROROOOOOROORRRRRRORROOORRRORROORRORRROOORROOROORRROOORORRRRROOORRORORORORORRROORORROROORROOORROROOOOOORORRORRROORORRROORRRRRROOOORRRROOROROOOROOOOROOOROORROOORRORROOOROROROOORROROROOOROOOOROORRROOOOROROROROOOOOOOROORROOORRORRRRRRRORORRROOORROOOROORRRORRROOOOOOOROOROOOORROOORORORROOORRROOORRRROOOORRRORORRRRROROOOROORRRORRORROOOORORRRORROORORORRRRRRRORORROORROROORORORORRRROOROOROOOOROOOOOORORORRROROORROOOORROOORRROOOROORRORROROOOROOORRRRROOROOROOOORRRRRROORROOOROROOOORRORRRROOORORRRRROORORRROOORRRORRRRRORORRRRRRRROOOORROOORROORRORORORRRRRRRRORRRORORROOOOORRORROORROROROORORORRRRRRROOORROOOOOOOOORORRRRORRRRORROORRROROROROROROOOOOOOORORROOOORRORRRRORRRRRORRROOROROOROROROORORROOOOOOOOORROOORORORRORRRROOORROOORRROORORRROOORRRRRORROOOOROOORRRORORRRRROORRORRRRORRROOOORRORROOORROORRRRRRORRORORROOOOOOOROROOOOORRORRORRORRRRORROROROROOROROROROROORORORROROOOOROORROOOOOORORRRRRROORROROOORRORORROORROOOORRRORROOOOOROOOOORRRORROOROROORROROORROOOROROROOROOROOOORROOOOORORROROROOORORORROORRROORRORORORRRRORORRROROOOORRRROORROROOOROOROOOOROOOOORRORROROROOOOORRRRORRRORRROOOROOOROOORRROOORROOORRORORRORRROROOOOROOROORORROOORORORORRRRRRROROROOORROORROROORRRROROOOOROORROOOORROROOROROOOOORORRRROORORROROROOORRRORRROOORROORRORORRRORROORROORORRORROOOOOOOOORRROROROOOROOOOOROOROOORORORORORROOORORORROORRRRORRROORRROROOOOROROOOOOOORROROROORORROORROOOOOOROROOORRORORRRROOOROOOROORROOOROOORRROROOORRORORORRROROORRROORRROORRROOOROORROROORRROOOOOOOOROOORROROOROROORRRRORRROOOOOORROOORRORRRORRORORRORRRRROOORRRRRORRRRORRROORROOROOROORORROOROOOOOOOORORRRORRRROOOOORRRRROOROOORRRORORRORORROROROOOOOROOOOORRORROORRORROORRRROOORRRORORRRRRROOORROORROOOOOROOOROOROROORRORRROOORORROOORROROROOOOORORROROOOROROOOOORRROROOOOOROROOOOORROOOOROROOOROOORORRRROROOORRRRRROOORROROROROROROOROOOORRRORRORORORROOROOOOOOROROOOORRORRRRROROOOROOOOROROROOOORRRORRORROROORRRORRRROROROOORROORORRRORRORORRRRORRRRRRORRRORRRORRRRRORRRRRRRRORROROORROROOOOORRORRORORRORORRRRROROORRROOORRORRROORORROORRORRORRORORROOOOOORORRROROORORRORRROOROOOOORRROOOORORORRROOOROORROOOORRROOROORRROORORRRRRORRRORRROOOROOOROOOOORORRRRRROROORRRRRRRROROROROROORORRORORORRROOROOOOOORORROROORROORROOOOROORRROORRROOROORRROORROOROROROOOOROOOROORORRRORROOOOOROROOOOOORROOOROOOOROORRORROOORRRRORROOOOORORRROOROROOROORRORRORORROOORORRRORRRORROROOOORORROORROOOOROROORRORRROROOROROOOOORROOORRRORRRORROOROROOOORORORORROOORRROOROOOROROOROROROOOORORROOOOROOORORORRROORORRRRROOOORROROROORRRROOROORROROOOORORORORRRRROOOOOROROOORRROROOOOOROROOROOROROOOROORRRRRRRROOORRRORRROOOROOOORROOORORRORROOORRRROROOORROOORROORRRRORROORRROOROOOORRRRORRRRRRORRRRRRROORORRRRORRORROOOOORRORORRORRROOOOOOOOROORRRROORORROORRORRROROROROOROOOROOROROOOOOROOORROROOOORROORRROROROORRRRRRROOOOORRROORROOOOORROORRROOOOOOORROOROOROORORORRRRRRRORRROOORRRROOROOOORRROOOOORRORRRRRRRRORRROOOORRRRROROROOOOOROOOROOROORROOORRROORORROROROOOORRRRORROOOORRRRORORRORRRRRROOOROOORRORORORRROROOROROOROORORORROOOOOROOROORORORROORRRROOORORROOOORROROROORROOROROOROROROOOOOROROOOOOROROOROORROORRRROROOORRROOOORRRROOROOORROOOOOROORRRRORRROOOORRROORRRORRRRRRORORRRRROORORRORRORORRRROROOROOROOROOORRRRORRRRRORRORRROROOORROOOORRRRRROROORORRRRORRORRROOROROORRORRROORROROOROORROOROROORROROORORROOROOOORRRRORRROROOORRORROORRORORRROOOROORRORRORRRORRRRRORROOORROROOROROOOOOOROORRROORORRRRRORRROOOOORRROORROORRRROORROOROOOROROROROORRRRROOOOOOORROORROOOOORORORRRRORRORORRRROORROOROOOOROOOOROROOOORRRORRRROOOORROROOOORRROOROROROOROOOOOOORRROORORORRORRRORRORROOORRRROOORROOOORORROORRRRRRORRRROOROORORROOOROOOOOOOOOOOOOOROORORRROROORROORRRROOOROROROROOROOOOROOROROOORROOROROOOOORROORORORROROROOOROORRRROOOORRRROOROORRORROORROOORRORORRROORROOOROROORORRRORORORRROOOOOOOROOORROOROORROORROOOOOOOORRROOOORRRORRRROOOORROOOORRROOOROROROOORORRORORRRORROOORORROOROORROOOROORRROOOOOROOOORORRRORRROROROROOOOORRROOOOORORRRRORRORRRRORRROOOOROORROORROOROORRRROROOORRORORRRRORRROOROROOORORRROOOOROOORROROOOOOORROORRROOOOOOORRRRROORORRROOOROORRRRORRRROOORRRRRRORRORROROORRROOOOROOROOOOOOORROORORRORRROOOORRRORROROROROOOOOROOOOORORORORRORRRRRORROORORRRORORRORRRROOOOOROORORROROORROROOOROOOOOROOORRRRROOOOOOORRROORRRORRRRORROOOOOOROROORRRORROOORORORRRRORRROORRRRRROOROOROOOORORRORRORRORRRORRORRROORRRRROROROORRROOROROORRRORRORRORROOROOOOROOOORROOOROOOOROOROOOORRRROORRRORORROORRRORORRROROOOROROOORORRRRORRORROROOOOROORRRRRORORORRORROROROORRORRRORORRORROORORROROOROOOORROOOOOOOOROOORROORROROORRRORORRROOOOROROOOOOOOROORRRORROROOOOROROOORROOOORRROROORROOROORRROOROORRORRROOORRROROROOOROROORROORRORRRRRRRORROROROROOOORRORROOROOOROOROORRORRORRORORORROORRRORRRORORRROOOOOOROOOOROORRRRRRRRRRRORROORORORORROORROOORORRRRRROORRORRROORROROOOROOROORRORRORRROOOOOOORRROORRRORRRROORORRRRORRROOOOROOROROORRRORROORRRRRRROOORRROOOROOOOORROROOORRORROOORRRORRORRRRORRRORRROOORROORORORRRROROOROOOROORROORRRORRROORRRRRROROROOORROROOROROOORROOOROOOORORRRROROORRORRROROROORORROOOROOROORRRROROROORORRRRRROORORRROOROROORRRRRORORRORRORROOORRRROOOORORORRORRRRRRRORRROORRRRORRROOOOROORRRRRORRORORORORRORRRORRROOROOOROORORORROORROOROROOOROORRORRROROORROOROOROOORROOORROROORRRRRORORORRRROOROOROOORROROORRRRRRORORRRRRRORROOOORRRORROOOOOORRROROOROROOOOORRRRRRRORROORROOROOOOROOOORORORROORROOOROROOOROOORORORRROROORROOOROROORRORRRRORROORROROROROORRRORRROORRRRROOOOORROOORROORRRORRRORRROORRORORORORROOOOORRORRRRROOOORRRRRROORRORROOORRRRRRRRROROROORROORORRRROROOOROOOROOROOOOORORROOOOOOOOROOORROOOROROROOORROORRROORROOOORRRRROROROOOORROORRRRRORRORORRRORROOOOROORORROOORRRRRORRROOROOOOOOROROROOOROOOOOOOORRRRRORRROROOORROORORROOORRRROOROORORRRRRRROOROROOOOORRROORORROROOORRORRORORRROOORROOOORRRORRRROOROOOROORROORRRROOORRRRRRORROORROORROOORROOROORRRORRRRRROOORROOOROORRORRROOOROROOROOOROROROOORRROORORRRROORORRRORRRORRRORORRORRRORORRORORRROROROOOROORROORORROROOROOORRRROOORORORRROORORRRORROOOOOOOOOOORRRROROROOORORROOOOOOORRROOOORRORORROORROORRRORORORORRRRROOORRRRORRRRROOROORROOOOOROORRORORROORROOOOORROOROROROROORORRRROORORROOOROORORRORROROORROOROORORRRROORRROORRRRRRRORORRRROROOOROORRRRRORORROROOROROOOOOOOORRROOROOROOOORRRRROOORRROOORRRRRRRORROOORORRORROOOOROOROROORRORRRRRROROOORORROROROORROORORRORRORRRRORROORRORRORRRORROORRRRORORRORRORRRORROORROOOROOOOROORROOOOOOORRRRORRROOORRROOORRORORRROOOROOROORROOOORRORRROOOROOOOORROOORROOOROOORROROORRRRORORRRORRROORROOOOORRORORRRRRRROOOOOOROROROORRORORROOOROORROORRRROOOORORROROOOOOOORRROROORRRRRRROOROOOORROORRROOOORRRRORRRRRROORROORRRROROORORRRORRRRRRRRRRROORRRORORRRROORRORRRRORRORROOOORRRROORRORROOORORRRROOOOROROROROORORRRRORROROOOOOORRRORRRROOORRRROOROORRROROROOOOORORRRRROOOOOORORRRRRRROROORROOOOROORROROROOOORRRRRRORROOOORRROOOOROOOOROOOOROORROOOOORRRRRORRROOOORRRRRORORORROOORRROROOOROORORORRRRRRRRORRORORRRRROROROOORRRRORROOOOOOROOOOOOOOORRROROOORORRRROROROROROOOORORORRORRORORRRRRROORROROORRROORRROORROROOOOOORRROOROORRRRORRRRRROOOOOORROORRORRROORRORRRORRRRRROROROORORROROOORORROORRORRORORRRRROOOOROOROOORORRORROROOROOOORRORORORRRRROORRRRRORRRRRROOORROROOOORRORRRRORRORRROOROORRRROROOOOOROOOROORRORORROOOORRRORRRROOORROROORRRRRRRORRRORRORRRORROORORRRRRORRRRORRRRROOROROOOROOORORRRORRRRRRRORRRROOOORRROORRRRRRROROORRRRRRROOROROOOOORRRRRRRRROORRORROOOOORROORRRROOROOROROORROORROOORRROROROORROOOOROROOOOOORRORRRORRORRRRRROROROOOROROROOOOOROOORRORRRRRRRORRROOORROORORORRORORRORRORORROOROOORRORROROOOOOOOOORRORROOROOOOROOOOROOORROORRROORORORROORRRORORORROOOOORRORROOROOROORRRRROORRRORROOOROORROROORORRRORRORRRRORRRRROROOOOOORRROROOOOROORRRRROOROOROOORRRROORRRROROORORROROOOROOOORORROORORRORORRROOORORRRORRROROOOROROROORROOORRROORRROOOOORROOORORORRROOOORRORRRRORRROOOOOORORORRROORRROORORORROOOOORRROROROOOOOORROORORORORROOORRRORRRROROROORRORRROOORORRROOOROROORORRRORORRRRORRROORRORROORORRROROOROOOOOOOORORRRORROROROOOOOOOORRRROOOORRROOROORROORRORORORORROOROROROORRRORRRRRRORRRRRRRRORROORRROOOOOOOOROOROORRRRRRORRROOORORROORRROOOOOORRRRRRROROOORRROOOOORROROORRROORORRRROOORRRRORRROOORRORORROROOOOOOOORRRORROOROOROORORRRROORRROOOOROORORORRRRORRROROOOOOROOROORORRROOORRORRRORRROOORROORRORORRRRORORROROOROOOROROROOOROOOOOOROOOROORROOROOORORORRRORRROROROORORRRORRRORRROROOOORORRRRORRROORRRRROROROORRORORROROORORRORROOROORROROOOROOOOORORROOOROOROOOOORROROOORRROROOOORORORORRRROOORROOORRROORORROOORRRROOOOOOORRRORRRORROOORORRRORROROOORRRRRORRRORRRRRRRRRORROOROOORRROROORROORRORORRORROORORRROOOROOOORRRROORRRRORORROOORRORROOOOROROORORORROOORORRROOOOROORRRROROORROORRRORORRRRORORROROROOOOROROORROORORRRRORRROOROROROROROOOOROORRRROROORRORRRRROROOOOROROOOOROORORORORROOOOROOOOOOOROROOORROOROORROORORRROROROOORRRRROOROOOOOOROOORRRRROORRROOOROORRRORRROORROORRRRRRRORRRROOOOOOOOOROOORROOOROOROROOOOOOORORRROOOORRRORORORRRROORRROOOORRRRRRROOOOOORORROOOOOROOROROOOOOOOOOORRRRORRORORORORRRORRROOORROOOROOOOOROROROOOOOROOOOOORRORRROORROORRROROOOOORROOORRORROORROROORROROOROROOOROOOOORORRROORORROOOOROROORROOOOROOOROOROOOROORRROOORRRORROOOOROROORRRROOOORRORROORORRRRRROOOOROOOOOOOORRROOROOOOOROOROORRROOORRRORRROROOOROOORRORORORRORROOOORRORROORRRRRRORROOORORROORRROOROOOOORRROOROOOOORRRRRRRORROROORORORRRORORRROORROROOROOROOORRRROORROROOOOOORRORORORROORRRRRRROROORROOORRRORROROOROOORRORRROROORRORORRORRRROORRRRRRORROORORRRORRROORORRORRRRROROORRORORRRROROOROROOOOOOROORRRROOOOOOOORORORORROORRROROOOOOOORROORRROORROOROROROORORRORRROOOORRRRROOROOOORROORRROORORRORROROORROOOROROROOORRORRRRORROOOOROOOOORRRRORRRROORRROROOOOOORRROOOROROOROOOOOOOROORROOOOROROORRORRRROOOORRROOOORRROROROROOOOOOROORROOORRORORRORROORRRORORORRRRORROORROROOOOORRROORRORRORRORRRRRROORRRRORROOROORRRRRRRORRROOROOOROORORROROORRRRRRRRROOOORRRROROOOORRORROOOOOORORRRROOOOOOORROORRRROORORORRROROORORROOORORRORRORROORORRRRRRRRROOOOORORORROOROOORRRRRORROOOOOOORRROOOOROROOROROORROROOORRRRROOROORROORROROROOORROORRROOOOOORROROORROOORORRRRRRROORRORORORORRORORRROOORRORRORRORORROROOOOOOORORRRRROORRORRROORORROORROOORORRRRRRORRRRROORRRORORRRORRROORROROOOOROOORORORROORRORRORRORORRRROOOOROROORORRROOROOOOROOOORORRROOOROROROOROORRRROOOROOOORORRORRORRRROORROOOORROOOORORORROROROOOOOROOOOOROOOOORRROROOROROROOOROROOORRORRROOOROORORRRROROOORROORORROROORORORROOOROORORORRRORRROOOORORRROROOORRRRROOOORRORORROOORRRRRRRORORORRORRRORROROROORRRRORRORROORRORRROORRRRRRROROORRORORRRRROROOOORORORRORROORORORRRROROOOORORRRORRRORRRROROOORRORRRROOORRROORORROROOOORROOOOOORRORRROORROOOOOOORRRRORROOORROOOOROOOOROOROROROOROORROROOROOORRROROROOORORROROROOOOOORORRROOORORRRROOOOORORRRROOOOORORRORRROROOROOOROROOOOOOOOOORROORRRRRRRROORROORROROROROOORRORORROROOROOOROOORROORROOOORRORRRRRROOOOORROORRRRRRRRRORORRRRORRORRROROORRRORRRRORRORRORRRRRORRRRORROROOROOROORROOROOOOOOORRORRROORROOROROOORORORRROOROOOOOOOROOOOORROORRROROOOROROORRROOOROOORRRORROOROORROOOOOORROOROROOOOOOOOORRROROORORROOOROORROOORRROOROOOOOORORORROROROORROROROOORORRROOORRORRORRRROOOOOOROROOORORRORRRORRORRRRORRROOORRRRROORORROOOOORROOROOORROOOORRORRROORRORRROOOROROROOOROROROORORROOOORRORROOOOOOROOORORRROROOOORROOOORRORORRROOORRRROOOOROOORROROOOROOOOOROOOORROORORORRROORROROROROOORROROOOROROOOOOROOORROOROOROROROORORORRRROORRRRORORROORROROOOORROOOROORRORRORROROORRROROOOOOOOORORORROROORRRRORRROROROROROROORRRRORRROORORRRORRROROOOOOROOOROORRRRROOROOROOOOOOOORROROOOORORRORROOOOORROOORORRRORRRRROOORRORORROORRRRROROOOOOORROORORRRRRRRRROOOOOOOOROROROOOOOOROROOOORORROOORRROOOOOOROROOORRRRROOORORROOOROORROOORRRORORRRRRROOOROOORRROOROORRORRORORORRORROOOORRRORROROOOORORROORROOROOOORRROROOOOROOORRRRORRRRROOROOORROOOOORROORRORROROOOOOORRRRROORRROOOOORRRRRORROOORROOOOROORORRORRRROOROOROOOORRORRROOOORROORRRRRRROORROOORRRRRORROOOROORRORROORROOORORORROORORRORRRROOOORORRRRRRRORORORRROOOOOROORRROORRRRRORROROORORRRROOORRORRORRRORRORRROROORROOROORRROOOROOOOORRRROROROOOOORRORRRORORORORORORROROOOROROROORRRORRRRORROORRRROROOORROOOORRRRRRORROORROOOOROOOROROOOOORRORROOROORRRRRORROROROOOOOORRRRROORRRROORRROROORRORORORORORRORRROROORROOROROROOORORROROORORORRROOOOOORRROROOORRORROOOORORRRRORRROOOOORORRRORRRORROOORRRRROOOOOOOROROOOOOOROORORORORROORRROOORORRRROOORRRORROORROOOOOROOROROOORRORORRROROORRRROORRRORORRRRORRORORORROORRROOROROORORRRRROOOOOOORORROROOROROOROROOORORROOOORRROOOOOROOORRRORRORORRORRROOORORRROOOROOOOORORROORRRRRRRROOORRORRRRROOORRRRORRRROOROORROOORORRRRRRROOORRORORORRRORORROOOOOOOOOOROROROORORROOROOOOROORRROOOROROOOORRORRRRROORRROORRRRRRORROORORRRRRORROROROOROOOROORRRRRROORROROORRRORRRRROOORRORRRRRRRROORRROOOOOORORRRRROOROOROOROORORORROOOORORORRORROORROORRROROOOOOORRROOORRROROOOOOOORRORRRRORRROORORROOROOOORORORORRORRORORROOOROORORORORORORORRRORROOOORRROOOORRRRROROROROROOROROOOROOROOORRRRORRORRORROORRRROOOOROROOORROOOOROROORRORORROOOORRRRRRROORRROOOOROORROOROROROROOROOROORRRRROOROOOROOOORROOOROROORRRORRRRRROORRRRRROROORRROROROOROOOOOOOORORRORRRRRROORORROORRRRROOOROOOOROOORRORROROROOROOROOROOOOORROORROOROOOORORRRRROORORRROROORORROROOORRROROOOOOOORRRORRRRROOOOOORRRORROORRROORORROROOORROOOROROORORROOOROOOROROROOOOROOOORRRROOROORRRORORRORRRRRROORORRRRRRROORRRROROOOOOROROOROOOOROOROOROOOOOOORORRROOROOORORORROOOOROOORRROOORRORROOORORRROROOORROOORROOOORROOROOORROOOORROOOOOORRORORORORRRORORORORORRORORORRRRROOORROORRRORORROOROORRORORROROORRORRROOROROOROROOORRROROORRROORORRROOOOOORRROROORROROOOOOOOOROROORRROOOOROOORRRRRORRROORRROROOORROROORROOOROROORROROROORORORORROROOOOORRORROOOOROROOORROROOOOROOORRRORRRORORROROOORROROOOOOOORRRROROORRROOOOROROORRROORRROOOOROOOORRRROORRRRORRRRROOOORRROOOOORRRROROROOROOOOORROOOOROOROROROOORORRRRROROOOOROORRRORRRROROORRRRRRRRRRRRROROOORORRRRRROOOROOOOOOROORROORROORROORORORRROORRRORORRORROOOORRRROOOORORRRRROORRRROORROOORRRRORRRORORORRORROOOORORORORORROOOROOROOROORORRRORORRROORROOROOOROORRRORORRRORRRROORRRORRRRRRORRRORRORRRRRROOORORORROOOOROORRORRROOOOOOORROOOORORRRORORRRORRORROOOORORRORORORROROOOOROORROROOROORROORORORRRRRORORORRRORORRRROOOOORRRRRORROOROOROORRORRRROORRROORRORROOROROOOOOORROORORRROOROROORRORORORORRROOOOOROORORRROOOORORORRROOORRORORRORRROROOOORRRRRORORRROROORROORORRRRRROOORROORRRRORROORRRRRRROOROOOORROOOOOROOROROORRRROROORRROORRORRROOORORORORORRORRROOOOORRORRRRORORORROORROOROROROROROORRRRRRRORRRORRRORROORROORROROOOOOOROOROORORRORRORORROORRRORORORORROOORROORRRRROROORRRRRRRRORORROROROORORRORROORRRORROOOOORRORRROOORROORRRRROOOOORROOOROROOOOORRROORRRRRORORORRRRROOORROOOORROORRRRRRROORRRORRORROOOORRROORRRORROOORORORROOROOROROROOOOOROOOOOORRRRRRRRROORORRRRROOORRRRROOOOOOOORORROROOOROOOROROORRORRORORORORRORRRORORROOOOOORRORORRRRORORROROROOOOOOORROOOROORRORRORRRORRRRORORORORROOORRORROROORRORRRRROOOORROOOOOORROOOOOOORRRRRROROOOROORORORORORROORRRORRORROROROOOORRROROORRORRRORROOROOROROORRRRRRRROOOROOOORORRRORRROOOORRRRRRRRRROORRROOOOOORORRORORRRRRROOROOORORROOORROORORRORORROROOORROORROOOORRORRRRRORORRRROORRROROOOOOORRRRROROORORORRORRROORRRROORROOROORROROROROROOOORROOROOOROORRRROORORRROOOROROOOOORROORROOOOOOOROORORRROOROORROOOORRORORORRRROROORROOORROOROOOORROOOORRRRRRRORORORORORRRORROOOORRROOROOOOOOOOOOROORROORROROOOOOOORRRROOORRRRORRROORRROROORROOORRRORRROOORROORORORROROOROORRRRROROORROOOOORROORRROORROROROOOORROOOOORRRORRRORRRROORRROOOROROORRROORROROOOOOOROOOROOORORRRROOROOOROORROOORRRROORRROOOROOROOOORORORROROROOOORRRRROOORRRORORRROOOROOORROOOROOOOOOROOROOROOROOORRORORROROORRRORROROROROOOROOROORROROOOOOROOOOOORRRRORORORORRRRROORRORORRROOOOROORORRORROORORROORROORRORRRRROROROORORROORRRRROOROROORRRRORRRRROOOOOORRRRRRROOOOOOOROORORRROORRROOORORRORROOOROROROROORRRROOROOOROOROOOOOOOROROORROOOOOOORROORRROORRROOORRRRROORORRRRORORROOROOOOOOOOOOOOOORRRROOROORORRROOROORRROOORRORORROORRROROOOOOOORRRORRROOORRRROORORROROOORORORORROOROOROOROORRRRORRORRRORORRRORROOOROOOROROOORORROOOORRRORRORRROOOORROROORRRROORRRORRRRRRRORROOORORRRROORORRROOOORORROROOOOOOORORRRROOOOOORORORROORRRROOORRROOROOROROORRRRROORORRORROORRRROOOOOOOROROOOROOOROROOOORRORRORORRROOORRROROOORRROROOOROOOORROOOORRROROORORORRRRRROORRROOOORROOROORRRORRRROOOOOORORROROROOROROOOOROOOOORRROORRRRORRRROOORORRORORROOORRORRROROORROROORRRROOORORROOORRORRRRRROOOROOOROOORRROOOOOROORORROROOORORRROOROROOOORRROORRROOOOOORRROOROOROROOORRORROORRRROOORROOOORRRORRRROROORROORRORROOROORRROORRORRORRRROOORRRROOROROOORROOOOOOROORRORROROOROOOROOORRRRRROROOOOROORRROORRRRRORRROORORORRRROOORRRRRORORRRORRRRROOROORROROOORROROOORORRORORRRROOROROOORORORROOORORRRRORORRORRROROROROOOOROORORRRRORORRRRROOORROOROROROROORORRORORRRROROOORRORROOOOROROROOOOOOORORRRORORROOOOORRROOORRROOOORRRORRORORORRROOORRRROOOOOOORORROROOOOORORRORORRORROROOORRRRORROORRRORRRROOOROORROORRRORORRRRROORROORROROROORROROOROOOOROOORRRORRORROOORRROROORRRRROOOROOOOOOROROORROORORROOOOOOOORROROROROOORORROOOOOROOORRROOOORORRORROOOROROOORRROROOOOOOOORRORROORORORORRRRRRRROORRRORRRORRRRROOROROOORRORRORRRORORRORRRROROOORRRROROORRORORRROOOOOROORRRROROORRROROORRRRORRORORORRORRORRRRRORRORROOROORRRRRRRRORORROOOROORORRRRROORRRRORRORRORORRORRRRORRRRRORRROROORRRRORORRROOOOORORROORORROROOOROOROROROORRRROORRRROORROROOOROOORRROOORROROOOROOROROORROORROORRORRROOROORRROORROOROOROROOORRORROORRROOOORROORORORORROORRRROOOORRORRRORRORORRROORRROOOOROOORRRRROROROOROOOOOORRRORORORRROORRORROROORROOORRROOOORORROROORRRRRRROORRORORRORRROOROORRROOOOOOOOROROORRRORRRRRORROOOOOORRRORRRORRROOROOROOROROORROORRRRORRORRRRRROROROOOOOOOOROOORORRRORRRORROOOOOROROOORRROROORORRORORROOOORRROOROOORORROORORRRORROORRROOROORORORORRRRRRRROROOOOOOOOOORROROROOOOROOOROORORRRORROOORRRORROORRROORRRORORRRROOROOORRORRRRROOROOORORROROOORRROROROORROROOORROROORROOOORORROROOOORRORORORORRRROORRROORRRRROORRROROOORORORRORROROORRRRROOORROORROOORRROOROROROOOROOORRROOROROOROOROORRRORRRRROORRRORROOORROORRRORRRRRRORRORRROOORRORRORROOOOORRORRRRROOOOOOOORROOROOOOORORRRRRRROROOORRRORRRRROORORORORORRRRRROORROOROROORRRROOORRROORRORRRORORROOROORRRRRRRRRORRROORROORORORROOROROOROOORROROOROOOROROOOOROORROORROORRRRRORRRROOOORRRROOROORORRROOOOOOORRORROORRORRORROOORORRORORORRRORRRROOOORRORRRROOOORRORRORRORROROORROROORRORRROOORRORRRORRROROOOORORRROROROORROROOOOOOROORRRRROOROORORRRROROROOORRRORRROROOROOOORROOROROORROOOROORRORROROROROROOOROOROROORRROROORORROOROROOOROOOORROOORRORRORORRRRRORORRRRORORORRRROOROROOOORORRRRRRORRRRORORRRRRRROROOOOOOORORRORRORROORORRORRORRRORRROOORORRRRRROOORROOROOOORORORROOORROOOROORRROORORORORORORRROROROOROROORRORROORRORRRROROROOOOROOOORROORORRROORRRRRRORRRROROORRRRORRRORRORROOROOOOOROOROORRRORRORROROORRORORORORRRROOROROORRRRORRRROOORROORRRORRORORORORRORRRORRORRRORROOROOORORROROOOOOOOOOROOOROOOOOROORRRRRRROORRROROOOROOROOORROROROORRORROOOORRORORORORRROOORROORRROROOORORROROORORRRORORORRROOROOORROOOROOORRRRORROORRRORROORROOOORRROROROOROOOROROOOOOORRORRROROORORORRRRRROOROROROOOROROORORRRROORRRORROROORRORORORRRRROOOOORORORROOOOROOORORRRROOOOOORRRORRORROOORRORORROOROROROROROOOOOORROROROORRORROORROROOOOOORRROOOOOOOROOOROORRRORRRRORORORROOROROROOOORROOOOORROROORORRROOORORRROROROORRORORRORRROROROOOROOOOOOROORRROROOOROOROOOROOORROOOROOOORRROOOORRORORRRORRROOORRRORORROORORORORRRROROORORRROORRRRRORRROOOOROOROOORRRRRORROORRORRRORRRROOORORRRROOROORRORRRRRRRRRRRRRRRORRRRRORRRROORRRORRORRRRRRROROOOOOROOOROOROROORROROOOOOOOOROROOOROORROOOOROROORRORORORRORRRRRORRRORRRROORRRRORRORRORROORROOROORORORROOOOROOORRRRRRRROOOOOROROROOOOOROROORORROOROOOORRRROROOOOORRRORORRRROORRRROOOROROOOOOOORROOROOROOROROOROOORORROOORRROOOOORRROROORROROROROROORRROOORRROROORORRRORROROORRRRORRRROOOOORROOOOOROOORRRROORORRORRORRRROORROOORRORRORROROOOOOOROROOROOOROOOOORORROOROOROROROORROOOORORRRRROOROORRORRRRORROOOOORRROROORRORORRRRROOROOOROOORRRORROORORRORORROORRROROROOORRORRRRRRORORRRRORROOOOOROROOOROORRORRORROORRORORRROOOOROOOROOOROORRRORRORROORROROORRRROOOORROORRORRRRRORRRRROOORRORRORRRORRRORORROOORROROOORORROORRRRRRRRRRROOROOORORROOORORROROORORRORRRRRORORORORROOORRROROOROOOOOOOOOORROORROORRRROORRRROORRRROOORRRRRROORRORRORRRORROORRORRORORRRRRRRRROROORROOROOORROOROOOOORRORROORORRROORRROOORRROORRROROORRRRROOOOORRRRRRORRORRROROOOOOOOOOOORROOROOROOOOOOROOORORRROOORRRORRROORRRROROROROOORORROOORROOOROORRORROOOORROOORROOOOORROROROOOORORROOOOORORORROOORRRRRROORRRROROOOOORRRROROOROROORRRRROOROORORRROOOOOORROOOOROOROOROOOROROROORRROORRORRROORRRORORRROORROOROOROOOROOOOORORROROOOOOORROROOORROOOORORORROORORORORORRORORRRORRRRROROROOROORROOOORRORRRORRRORRORROROOROOOROOOORROOROORRORRRROOOOROOOORRRRRROORRRORORROORROROOOROOOOROOOOOOOROOROOOOOOOOOROROORORRRROOOOORROROROROROROROROOORRRRRROORRROORROORRORRRRRRRRROOROROORRORROOORRRORROROOOOROORRRRRROOOORORROOROROORRRORORRRORRRRRRRROOROORROROORRORROROOROORROOROORORORRORORORROORRROOROOOROROOORRRRORRRROROOROOOOORROOORORRRRRRRROOOOOOORORRROOOOOOROOOROOOOOOORRRORRROROOROORRRORRROOORORRROORRRORRRORORROOROORORRROOOROOOOROOROORORRRROOROOOOROROOOROOORRORORORRRRORRRRROOROOOORRRRROOROORROOROORRRORROROOOROROOROORORORRRORRROOOOROOOORORORRROOOOORORROROOORORORRRRORRRROROORROOOOROROROOOORORROORROOOORORRORORORRORROROROOORORORRROOOOORORRROROOOOORORROOOOOOROORROOOROORROORROORROOOORRROOOORROROORORORRROROROOORRROORORRRRROOORRORORROROROROROROOOROOROORRRROORROOROORRORRRRORORRORORORROORRRORORRROORROOOOROOOORORRROORRORRROOOOORROOORROOORROROOOORRORORRROOORROORRRRROOROOORRROROOOORORRROOORORRORRRRRROOOORORRROORRORROORROORORORRORRROOROOROOROORROROORRRORRRORRRROOOROOOOROOOROORROOROOROOROOROOOROROROORRRROROORRRROOROORRROORRROROORROROOOOOROOROORRRORROOOORORROOROOORRROOOROORRORRRRRRROORORRROOORRROROROROORORROOROORORRRRORRRORROORORROOOOOOORRORORORROROOROROORRRORRRROOORROOOORORRROOOROOORROORRORROOORROROROORRRROOORRROOORRORORROOOOORORRORRORRRORROROROOROOROOORRRRRRROORORRRROROORRORRROORROOROORROOORORRRROORRRORRORRRRRROORRRORRROROROORROORORROOOOOOOORROROROORRORRROORRRRRROOOROROROOOROROROOOROOOOROORROROOOORORRROOOROROROROOORRROOROOORRRORRORRRROOOORROROROORORORRRORRORROOORROOOROORROORRRRROOROROORROORORROOORORORRRORRRRRORRRROORROORROROROORRRRRROOROOOROOROORROOOOOOOROROOROOOOOROROROOROROORRRROOORORRRROOORRRRROORRRROOOOOOOORORRROOOORRRROOROROORRROOORRORROORROOORROOOORROORRRRRROORRRORRRORRRROORRROOROROOOOOOROOROOOOOORORROOORROOOOORRRORRRROORRROOOROORORRORRRROROORORROORRRRROOORRRORRRRORRORROOORORRROOOOOOROOOOOROORRRORROROORORRRROOORROOORRRORROORORROOOORORRORORORRROOOOORORRROROORORORORROOORORORRRORROROORORRROROORORRRRROROOOORRORRRROORRORRRRROROROORORRRRRRRRORRORORROOROOROROORRRROOOOOOOOOROOOOROOOROROORRRORROOORROOORRROOORRORORRRRRRRRROROOOROOOORROROOOOOROORROOROORRORORROOOORRORRRORORROOOOOROROORROOROORORROOROOOORRROOORROOORROOROOORORRROORORRRRRRROORRRROORRRROOROOROORROOROOOOROOOOORORORRORRRROOOOROORRROOOOORROOOOOOROOOOOOROOOROROOROOORRORRRROOOROROROOOORRRRRROORORRORORROROROOOOOORRRRRORROOOROROORORRROROOOORRRORRRRROORRROROROOROOROORRROOOOOROORROOOOOOORROOOOROOORORRROOOORRRRRRROOORROOOORROOOOORORRROOOORRRRRRROORROOORRROOOROROORRRRORRORRORROOOORRRRRRRRRRORRRRRRRORRORORROORRRROOOOOOOOOROORROOROOORRRRRORRRROOORROORRRRRRORORRROOROOOROOROOOROORRRRROORORRRROOOROORROOOOROORRRRROORRROOROORRROORRORORRORORRORROOOOOORRORRORROOROROORORRRRRORORRROORRRORRORRRROORRROOROORRROOROOOROOROORRRORRRORRROOROROORRRROOOOOORRRRRRORROOOOORRRORORRORRRRROOOOOOROROORORORRROROOORRRRRRRROOOOROOOORROOOOROOOORRRRRROOROOOOOROROOOROROROOORRROOROORRRRRRROORRORORROROOROOROOORRORROROOROROOORORROOOOOORROOOORORRROROOOROROROOOORRROOOOOOOORORROROOORROROORRROORRRROOOORRRRORRRORRRRRRROOOOOROOROORROOOOOOOORORROORROOORROORRROOROOORRRORORROORRRRROOROOORRORORRROORRROROORRRRORROORORORROOOROOROOROOOOROOOOORROOOOOROORROOOROOORRROOOORRRRORROROROOORRROOORRRORRROROORRORORRRRROOOROOROOOOORRRRRORRRORROORRRRROOOOROROROROOOOROOROOOOOOOOOOOORRROOOOROOOORRRROOOOORRROORRROORRRROOOOORRRORRORRROOOOOROOOOORRORRRROOORROORORROOORRORRROOORROOROOROOOOORRORRROOORORRRROORROOOROORRRROORORRORRORRRRRROOROOOROOORRORRROROOOORORRORROOORORRROORRORRORRRRROOOOROOOORRROOORORORROORORRRRRROROORRRRORRRROORROOROROOROORORRORORRORRROORORROOOROORORRRRRRRROROORROOORROOROROORORORRORRRRRRORRRORRRORRORRRRROOOOROROOROROROORRRRRRRRROROOOOORRRROROROORROROORRORRORORORRROOROORRROROROOOORRORROOOORRRRRROORRRRRRRRORORRROROORRRRRRRRRROOOOOORORRRORORRROOOROROOROORROOOROORORROROORORRROOORORROOOROOOOORROOROROORORROOORRORROOOOOOROROOROORROOOORROOORRORROOORROORROROOORROROOOROOOROOOOOROORORRRROROOORORRROORRRRRROOOOORRRRRRRROROROOOOOROOROORROROOOOOOOOOOOORORORRRRORORORROROORRROROROROOOORRROROOOORRRRRROOOORRRROROROROROOOROROOOOOROORRROOROOROORORRROORROORRROOOOOROOOOOORRRORRRRROOROOOROROOORRRORRROOOOOOOOOORRROROOORROOOOORORRORORRRROOOOOOOOOOORRORRRROORRRRRRORRORRORORORORORROOOOOOROOOOOOORORORRRROROORRRRROROOOROROROROOROOROOROROROOROOOROROOOOOROOOOROROOORRRRORORORORRORRROOORRROORROORRORROOORORRRROOROORRORROORROOOOROORRROOOOOROROROORORRROOROROORORORRROOOOOOROORORRRRRROORORRRROROOROORORORRROOOOORORROOOROORORRORRROROOOROROROORORRROOOOORORROORRRORORRORRORORRORRORRROOROORROOROROROOROOOOROROORRORROORROORRROORROOOORRRRRORRORRROOOROOORROROROORRROORROROORROOORRROORRRRRRORORRRRRORRRROOORRROOROROOROORRROOROORORROROOORORRROROOOOOORROOORORRRRRROOORROOROOOOORORRRRROOOOOOOOOROOOOOORORRROOORRORRRROOOORRRORROOORROROORRRRORROROORRROOORRRRROOROOORORRORRROOOORRRROORRORRORRRROROOOORRRRROORRORRRORROORRORROOOORORRORROOOOOORORRORRRORRRORRRRORORRRRROOORROOROOOORORRROOROORRRORROOOORROOORORRRORORROORRRORRORORORORROROORRORRORROOOROORRRRRROROOORRRROORROORRORORROOOOROOROOROROOROOROORRRRRROORORRRORRRROORRROORRRRORROROORRROOROOOOOROOOOOORORRORROOORRORROOORRROOROROOORROORROORRRORRRORRROROOOROOORRRORRRORORRRRORRRORRROROROORRRRROOOORROOROORRRRRORROORRORRORRROOORROROORRRRORRORRROORRRRRRORRRRORRORRRRRRROOROOROROORORROOOOOOOOOROORORROOOORROOOROOOOROROROROROOOOOROROROROROROOORRRROROROOOOOORRRROROORORRROOOROROROOOOOOORRRORROOOOROROOORRRROROOROOORRRRRROROOORROORRRORRROORRORORRORRRROORRRORRROOOOROORRROOOOROORORROOOOORRORORORORORRRROOROOOROOROROORROROOOOOOROOROOOORORORROOORRRORORRRRRROORRROOORROOROOORORRORROORORROROOROOOOOOORRROROOOORROROORROOROROORROOORRROROOOORRORROOOOORROOORROOORRRRROORRRORORROOORRRRORORROOOOOROORRRRROORROROROOOOORORRROOORROOORORROOROOOORRROORROOROOORORRROOROOORROROROORRRORRROROORORROROOORRROOOORORRRRRORORROOOOOOOROOORORRROOOOOROORRROORORRRROOOORROOROORRORORROOROOORRRRRRROORRRROORRROROOROOORORRORRORRROOOOOOOORROOORRRRROORROROOROOROROROORORROOORORRORORROOOORORRROROORROORRRROROOROOOORROOOOROORRRRRRROOOOOOOORROORRORRROROOOORRORROROROOORRRORORROOROOOOOOOROOOOORORROOOOOORRRORORORRRROOOORRROOROORROOORRRRROOOOROORORRRORROROOOOOORRRRRROROROORORRROROROOROOORROOROORRROROORROOORORRRRORRRORROOOOROOROOORROORRRRORRRRRROROOORRRORORORORORORRORRRRRRRRROOORRORRRORORRRROROORRORROOOROOORORRRROOOOROOROOORRORRROOOROROOOROOOORROORRORRRORROORORRRROROROROOOOOOROORRORROORRROOROORROOOOORRROOOORRRRRRROOOOORROOOOOROROROOORORROORRORRRROOOOOORRRRRORRROOORRORRRRRORRORRRROOOROORRORRORORRRORRRRRORROOROORORRRORRRRRORRORRORRORRROROROOOOROORROOOOORRORROOOOROORRRRROOOROROOORRRORROORROOORORRRORROOOOORORORRRROROOOOORORORROROOROROROOOOOROORROOORORORRRROOORROOROOOROROOOROOOOORROORROROROOROORRROROORRRRRORORROROORROORORRRORRRORORRRROROOORORRRORRROROOROOROOORRORROORRROROORORROOOOROORROOOROOORRRORORROOORORRRORROOOOOOOROROOROORRRRRROORRORORRORORORORROORROOOOOROOROORORRROOOORRROOOORROROORORRRRROOROOROROOOROROROROOROROOOOOROOORORRRRROORORRRROOOROORRRRORROOOOOROORRRORRORROOOOORRORRORROOROROORRORRRRROROROROROOOOROORRRROOOROOOOROORROOORRRRORORRRRRORORORORRRORRRRROROORROOROOROORRROOORRRRRORRRROORRORRROROOROROORRRRRRRROOROOOROOORRORORRRROOOROROOROOOROORRRROROOROROORROOOOORORRORORRRRRORORRRRRORRRRRROOOROROOOOOROORRRROOOOOOOOOOOOORRRRRROORRRRRRRRRROOORROOORORRRRROORORROOROOROOORRRORORRROOOOOOORRRRORORROOORRRRRRRRORRROOORORROORORRORRROOROOOOROOOOROOOROROORROORORRRROOOROROOORRRRRORRORORRORROOROOORORRRROOOROOROORRROOROORORRRROORROORORORROOORRORRRROROOOOOOOORROOORROORRRROORROOOORORORRORORROORRORROOROOOROORRRORORRRROROORORROROOORORORORROORRORRORRRRRORORORRRROROOORRORORRRRRRORORROOORORRORRRRRRORRRRRORROORROORRRROROOOOOOOOOORORRORORRRORORRORROOOORRROOOROORROORORROOOOROOORROOORRORORORORRROORRRROOOOORRRRROROORROOOOORORROOROORORORORRRROORRORORRROOROOOROOORRROORROORRRRRROOOOOOORRRROROROORRRRROOOOOOORRROORROOROORROORROOROOORRRRRRORRROOROROOORROOORORORRRORRORRORROROORROOROORRROROROORORRRROROOOOORROOOROROOOORORRORRRRORRRORORORROOOROROROROROORROOORRORRRROROOORRROOORORRRROOOROROORROROROOORRRROOORORRORORORRRROORROROOORROORORORRRRROROROORROROORROOORORORRRRRRRRRORRRRRRRROROORRROOOOORORORRORRRORRRRRROROORRRROOORRORROOROOROORRORRRROROORRORORROOOOOROOOROROORROOROROOOOORRROROROROOORROORROOORRORRRORRRRRROROOOORRORRRRROOOROOOORRRRRRRRRRROOOORORRORROOOOOORORROOROOOOROOORRRROROROOORORRROOROROROOORORORROOORORRROOORRORORORRRROOOOROROROROOOOORRROORROORRRRORORRROORROORRROOOORORORRROROORRRORROOOOOOROOROOOROOOROORRRORRORRRROOOOORORRROOORRRORORRRRRROOROORROOORRORRORORROOOOROORROROORRRRRORRORORRRRORRROOORRRRRROOOOOORRORRRRORROROOROOORORRORRRROROORORRORRROROOOORRROROORRROORROOOOOOORROOOORRRORRORRROROOOROROOORROORORORORROOOOOOOORORROROOORRORORORRRRORORRROOORROROOOOOROORRRROOROOOORRORROOOOORORRRROROROOROROOROROORROROROOORRRROROOOORRROOOOORORORRRRRRRORRORRRRORORRORRRROORRORRRROROOOOOROOOORORROOOOROROOOOOOORROOORRRROOORORRRROOOORROOOROROOORRRRRORORRORRORRRORROROROOOORRRRRORRRRORRRROOROROORROOORRRRRORROORRORORORRROOOOROOORRRORROROOROORORORRRRORRROORROOOOORRROROROROOORRRRRRORRORRRROOOROORORORORORORRRROROROOROOROROOORROOORRRRORROORRRRORORRRRRRRROOROORRORRROORRRRRRRORRRORRORROORROORORRRROOROORROOOOOOROORRROOROROOROORRRORRROROROROOORRORRRRRRROOROOROOOOOORORROOORRRROROOROOOOOORRROOOROOOROOOROOROROOOORRROOOROORRORORORRROROROOOOOORROORRRRRROORROORROOROOOOROORRRRROORORRORRRRROROOORRROOROROORORRROOOOOROOORRRROROORRROROROORROORRROROOOOROOOOROOOOOORORRROORRRROROOORRROROROOORRROORRRORORRRRRORORORRROROORORRORRORROOOROOROROOOOOORORRROROOOOOORROOOROORRRROROOOOOROORORRROORRORORORORROOROOORRRORRRRORROOOOOROOROOROOORORORROOOOORRRRRORROORRROOOOORROOOOROROORRORROROORROOOORROOOOOOORRORRRORRRRROOOOORRROOROROOROROORRORRRORRORRROOROORRROROROOOOROORRORORRORRORORROOOORROORRRRORORRORRRRRRRROOORORORRORORORROORRRRORRRRRRORORROORORRRRROORORORRORROORROROROORORRRROROOOROOOROOROOOROORORROORRRRRRORORRROOORRRROROROOROORRORRORRORRORRORORRORROROORROOROOOOOROOOOORRROROORORRRROORRROROROROOORROROORROORORRORRROORORRROORRRROOOORRORORRROROOOOORRRRROORORROOORROROROORORORRRRORRORRRRRRROOORRORRRRRORORORROROORRRROROORRRORRRRORROOORORRORRROROOOROROORORRRROORORRRROOOOOOORRRROROOOOOOOOORRRRRRRRRROOOROROOOOROROOORROOOOROORORRORROORROOORRORORORROOORROORORRRORRRORRRROORROORRRROORORORRORROOROROOROORRRROOOOOOROOOOOOOROOOOOROROOOOOROROROORROOROROROORRROORROOORROROORRRORRROROOORRRRRROORORRRRROORRORRRROROORRORRORRROORRORROORROROOOOORRRORRRRRRRRROOROROOOROROROROOOOOOROOOOOOOOORROORRRORROOROOORRROORRROOORRRORROOROORROOOORORROROOOOORROORORRROOROORORRRRROROOORRRRORRROORROROORRROORORROOORRRORRORRORRRRRRROOOROROOOORROOOOORROORORROOOOOOORROORRRORRROOORRORORRORORORRROORRRORRRRRRRORORRRRRROORRORROROROORRRORROOROOOOOOOOORRORRORORRROOROOOROOOORRROOOROROOROOOROOROROOROORRRORRORORROORRORRRRROORRRORRROROOOOORORROORRRORRORRORROROORRRROOORROOROOROORRORRRRORRRRORRORRRRORRRROOOOOROOOOOOOROOOOROOROORORORROORRRORORORROORRRORRRORROOOORORORROROOOOROOORRRROROROORRRORROROORRROOORROROOROROOOOOROOOOOOROOOOOOROOOOROROORORORRROORRROORORRRROOORRRRORRRRORRRRRORRORRROOOOOORRRORROOROOOOROORORRROOROROROROOOOROORORORORRROOOOOORRORRRROOROROOOOOROOOROORORORROORROOOORROOROOORRROOOOORORORROOOORRROROOORORORRRROOORRROROROROROOORROOOROROOOOOOOROOOOOORORRROORRORORRORRROORROORRROOOOOROOORRORROOROORROOOOORRRROOORRRORORRROORRRRROORORORRRORRRORRRRORRORRRORORROOOORRRORRRROROOROOROOOROROOOORROOOOOORORROOROROROORORRRROROOROROROORRRRRROOOOROROOOOORRORORROROOOROOOOROROROOORROOOROOOOOOOROOOOOORRRROOOORRORRRRRROORORORROORROOROOOORRROOOOOOOOROORROORRRRRROOORRROORRROOOOOOROROORORROOROOORRRRROOOOOROOORRRORORRRRROOORORRORORRROOROROOROOOOROOOROROROROORORROOOOOROROROROROOORORRROOOROOOOOORRROROORORROROROOORROOORORORRRORROROOOORROOROORRRRRRORRRRRRRRROOOORRROORRROORORRORRRROROOROORRRRORRROORRROORROROROORROOORORROOROOOOOROORORROROORRRRRRROROORRROORRRORRROORORRRORRRORROORRORROOROORRRRROOORROOOROOOROROORRRRROROOOROORROOROOOROORROORROROORORORORRROORRROOORRRORRRORORRROOORROORRROORROOOOROOOORROROOOOORRORORROROROORROORRRRRRROOORRRORRRROOROOOOROOORROROOROOORRRRRORRRRRORORRROORROROOOOROROOOOROORROORROOROOOROOOROOORORRRRORROOROROORORRROROOORORORRROOOOROOORORROORRORRORORRROROOORRROORRRRRRRRORROOROROOROOOORORROROOOOOOOOOOROOOOROOORRROOOORRRRROOOORRRRRRROORROORRORRRORORRORROORRORRORRRRRRROORRRRRRRRORROROROORRORRRORRORRROOROOOOOOROROOOORROOOROOOOORORRROOORRRROROOROROORORROOORROROORORORRORROORROOORROOOORRORORRROORORRORORORROOOROOROROOORRRRRROORRRORRRRORRROOORROOOROROOROOROOOOOROORORROROROOORORORRRORORRROORROOOOOOORRROORRROROORORRRRRORRORORROOORROOOOOOOROROOOOOOOOROOORORRROOROOORRROORROOORRRORRROOOOROOROOORRROROROOORORROOOOOOORORORROOORROOOORORORRRORRROOOORORORRORRRRROOORORROORORROROOORORRROOOOOOOORORRRRROOROORRORORROOOORROOORRROORORRRORRROOOOOROOORRORRROORROOOOOOROOROOORRROORORROOORORORROORRRORORRORRORROORRROOOROOROOORROROROROOOOOOORRORROOOROOORRRORORRRROROORRRORROOOORRRRRORROROOOOROOORORROOOOORRROROOOOOOORORROORRRORORROOORROOORORRROOOROOROROOROOOOOORRORRROOOOOOORRORORRORORROOORRORRRRORRROORRRRROOROOOOOORROORORRRRROOROROOORROOOOORRRORROORORRORORORRORRRORROOORRROOOOOORORRRROORROROORRORRRRRRRROOORORRROOROROORRORRRRORRORROORORROORRROORROROOROOROOOORRRRROOOOOROOROOOOOROORRROROORRORROROROOORRORORRRORRRRRRRROORRROROORROOOOORORRORRRRRRROROROOROROOROOORRROOOOOOOOORROROROOOOROOORORORRORORRRROOOROOORROORORRRROROOORORRRORROOOROOROORRRROOROOOORRRROOOOROOOOOORROOORROROROOORRROORRRORROOORRRRRRRORROROOOROROOOROOROORROOROORROROORRRRROROOORROOROROORRRRRROROOOORRORRRRORRORORROORRORORROORRRRORRRRROOOOORORRROORROROOORRORROROOROOORRRORRRORORROORRRORROOORORROOOORROOROOOOOROROROROORRROOOOOOORROROROORRRORRORRRRORRRRRORORORROOORRRORRROORROROOOOOOOOROORROOOORROROOROROORROOOORORRROOOORORORROORORORRRRROORRRROORRRROORRRORROOORORRORRRORRRRROOOOOOOOOOORROOOROORRRORRRRRROORRRORORORRRRRORORORROOORORRRROORRORRRRORRORRRRRRRROOOROORROOOROOOOOORROROOORRORROOOORORROOOROORRROORRROOOROOOROROOOOROROROOOROOOOROORRRRRROOROROROOROOOORROORRROOORORRORRORRRRRROORRRORROOOOOORRORROOOOORORRORROOROOOOOORORRROROORRRRRRROROOROROROROOOROROOORRRORORRORORRROROOOOOOORROOORORRORROORRRROORORRRROROROORRROOOOORROROORROOOOROORORRRROOORRROORRRRRROOROOORRORROORRROOOROORROROOROORROOORRRORRRORROOROOORRROROROROORRRRRRRORRRRRRORRROROORRROOOORROOROOOOOOOOOROORROORROROOORRRRROOROOORRORORRRORROORORRROOROOOOORRROORORRRORORROORRORRORRROOOOROOROROROOORRRRRORROOORRORRROOORORRROORROOROOROORRROORRRRRRRRRRORROOROOOOORRROORORRRRRROROOROOOOOROORRRORRORROROORRORRROOOORRORROOOOORRORRORORRRRROORRRROORRRRRROOOOORRRRRRORRORRROOROOROORORROOOOROOOOOOOROROOROOORRRRORRORRROOORRROOOROOOORROROORROROORROROOORORORORRRROOROORORROORRORORRRORRRRORORRRROORORORROORROORROOROOOOORRRRRRRRROORROOOROOORRROORRRORORRORRRORRRORRROORRORRORRRRRRRRORRRROROOROOOOORORORROOROORRORRRROROROROORRRORORRRRROORORROOOOOORRRROORRORORRRORROROORROOOOROROORRROORRRROROOOOOORRRROOORROOOOOOOOOROORORRRORRRORRORORRROOORRROOOROROORORRRRRRORORORRORORROORORRORROORROOOOOORRRROOORORRORORORRRRROOOROROROROOOORRRROOOOORORRORRORRRROROORORORRRRRRROOORRRRROOOROOOOROROOORORRORRORROOROOOORRROOORROOROOOOROOORORROORRROORRORORRORORRROOOOORROROOOROOOOROOOOROOOOOOOOOOORROOOORRORRROOORRRRRROOORRORORORRROOROOOOOOORROROOROOOROROOOOROOORROORROOORRROROOORRRRORROROOOORROOOOOROOROORORORROORROROOROOOOORORRROOOORROORRRROOORROORORORRROOROOOROOROROROORRROROORORRRORRROROOROROOOORORRROROOORORORRRRRRROOOOROROROORRORORORORRRORROROORRROORROOORRORROORRRORROORRRROOOOORROOORROOOROROOROROORRORORORORRORORORRROORROROROOOOOORORRROOROORROORRROOROORRORRROOOOORROOORRRRRRRORRRORRROROORORROOOOORRORROOROOOOOROORORROOOROOOORRRRROORORORORRRROORRROOORROOORORRORRROORROOROOOROOOORRRRROORORRRRRRROOOORRRRRORORORORRORROROOROOOORRROROOROOOOROORROOROOORRRRRROORRRORORRRROORRROOOROOOROOROOROOROOOORRORRRORRROOOORRRROROOOORRROOOROOOOOOOROOOOROOOORROOOOROORRORRROOROROORRROROROORRROOOROORORRRRRORORORRORORROOOROOOOOORRRORRORROOOOROORRRRROOOOORORORROROOOOROROOOORRORROROOOORRRRORROOORRRROROROOOOROORROOOROOROORORORROOOOOROOORRRRRRROOOOROOORORRORRROOOOROROOROOROOORORRROOROORRRRRORRRROROROOROROOOROOROORRRRRRORRORROOORRRORORORORRRROOOOROORROROROROROORROOROROORROOORRORORRRRRRORROOOOROORROROORRROOROOOOOOOORORRROORORORRRROORROOOORRROOOOOOROORRORROORRORORROOORRRRRORRROORROORROROORORROORRRROOROOOOORRORRROOROOORRORRROORROOOOORRRRROOOOORROORRORORROOOROROROROROORRROOORRRORRORRORORRORRORROORRRRRRRRORROORRRRRORORRORORROORORROROORRORRORRORROOOOORORROORORRRRROOOOOOORROOROROOOOORORROROOROORROORROOROOOORROOOROROORROOROOOOOROORRORORRRRROROOOOOROOOOORROOOORORRRRORRRRRORROOOROOORRORRRROORROORRRRRROOROOOOROROROOOOOOOOORORORRORORORROOORORRORORRORORORRROOROOORORROOOROORRRRORRRRROOROROOROROOORRROORORRORRROOOOOROOOOORORROOOOOOROOOOORRROOORRRROOORRRRRRORRROORRORRRRRROOOOOOOOOOOOOORORROROOORRORROROOORRRRROOOORRRROOROORRRRRORRORORORRORROOOROORROORRORRORRORRRRRRORRORORORRRRRROROOOOORROOROOOOOROROOOOROOOORORRROORROROORORORRRRROOOORRRORRRRROROOROORROOROOROORROOOORRRRRRROORRROOOOOORRROROOOORROOROOROOOROOOORROORRORRORORORRROORRRORORRROORRROOROORORRRRRRRRRORROORROOOOROORRRROORROOROOROORROOOOORRROOORRORORORROROOOROOOROOOORRORORRRRROROOORRRROOORRRORRROORRROOROORORROROOROOORROROOOOORRRRROORRRROORROOOORRRRORRROOORRORROOROOROOOOORROORORRRRRROROORRRROORROOORRROORRRRRRRRROOOOROOOOORRROOOROOOOROOOROORRROOOROROROOORORORROOORROOOOOROORORROORORRROROOOOORRORRRROOORRRRORROOOROORROOORROORROORORORROROORORRRROORRROOOORRORORROOOOOORRRRRRRRRRRRRROOORROOROROROROROOOOROOROOROORRRRORRORRRROROROOOOROOOROORRRORRRRRRROROORROORROROOOROORRORROROOOOOORRRORORROROORRRRORROORRROOORROOROROOOOORORROORRRRRRRORRRORROOOOROROROOOROORRORORROROORORROOOORORROOORROOOORROORRRROOOOOORROORRRROOOOORORROROROOROOORRRRRRORRORROOORROORORRORORROOOOOOORORRORROOOROOROOOOORROORRRROROOROORRORRRORRRROORRRRROOOOROORRRROORRORROOROOORROOROOROROOORORROOROOOOORRRROOROROOOOOROOOOORORORRRROOOOOOORRROROORRRRROROORRORRORRRRROOOORROORRRROOOOROROORROROROOROOORROROOOOOORRROOOOROOORRRRORRRORROOORRRORORRROOOORRROOROOOORORRROOOOROORRORRRRRORRROORRORROOROORRRORORRROORROROOOORRRRORRROOOOORORROOOORRORORRROOROOROOOOOROROOOOORRROOROOOOOOROOORRRROROOOORRROOORRRORORRRROROOROORORRROOOOORROOROOOOOROORORORRRORROORRRRORROOORRROOOOOOORORROOOOORROROOOOORRRRROROROROORROROROOOOOOORRROROOROOOOOROOORRRORORRROORROROOROROOROOORORORRORRRRRRROORRROORORRRORORROORORORRORRORORRORRROROOOROOOOOOORROOROROROOOOORRROORROORRORORORROOOOOORORRRRORROOORRRORRRRROORORRORORRRORRORROORROROOROOOORRRROROOOOOORROOROROOOOORRROOOOROORROOORROOOORROOORORORROROOOROOOOORRORRROOOORROORRORROOORRROOORROORROORORORROOOOOROROOOROOOOOOORRRRROROOOORROOORROROROOOORRRRRRRRRROROROORORRRRROOOOROOOOOOOOOROORROROROOOOOROOOROOORRROOROOOOROOOROROROROORORROOOROOOORORORORORORROORRORORORRROOOORRRRORROOROOOOORRRRORROOROOORRRRRROOROOOORORORRORRRRRROROORRORRROOOORROORROOROROROOROOORROROOOORROROOORROROOORROORRROORORORORRRRORORORRRRROORROOROOORORRRRORROOOORRRRRRRRRRRROORRRORRORROOORORORROOOROOROOOORRORORROOROORROORROORRRRROROOOOORRROORRROOOORRRROOOOROOROOOROROOOORRRRROORRORRROOOROOOOROORROOOROOROOORRORRORROOOOORORRRORROROOORRROORORROOROROORROOORORROORROOROOORORROROOORORRORORRROROROOORORRRRORRORRRRRORROROORORORORORRRORRORRROOROOROORRROORRROROOOORORRORRORORROORRORROOOOOOOORRRRRORORROORORRRORRRRROOOOROROOROOORRRRRORORRORORRRRRORRRRORRROORRRRRRRORORRORROOROOOOORRRRROOOOOOOOROOROOOROOORORRRRORRRORORORROOOORROOOROOOROROOOOOOOORORORROOORROORORRROROORRROOOORROORROROOOROOOORORRORORRORRRRORRROOOOORROROROOROORRORROORORRRROORRROORORORRROROROOOOOORRRRROOOROORROROOOORROROOOOORRRORROOORROOROOORRRORROOOORRROORORORORORROORROORORRORORORORRROORORRRRORRRROOORORROROORROORRROORROROOOOOROROROROOROROOOROOROOOOORORORROROOORRRORRRROOOORORORORORORORRRRORRORRRRRROORRRRORRORRORROORORRRRRRRRROROROORRORROORRRRRORRRRROROOROOORROOOROORRRORRROROORROOOORROOOOORROORRRRROROORRROOROROROORRORORRROORRROROOOROORRRORRRROROROOOOOOORROROOORORORROOOOORROROOORRROROORRROROOOOROROROOROOOORRRRROORRRROROORRROROORROORRRORRORROOORRORORRRRRROOOOOORRORRRRROOROROORROOROORROROOORRORRORRRRROROOORROOOROORORRROORRRRRRRRRRROROROORRORRROOOOOOOOOOOOOOOOOORROOOROORROORRRORORORORRROOORORROORROOROOORORRRRRROROORORRRROROROOORROOORRRRRRRRROOORORRORORRROOOROOORRORRRORRORRRORROOOORROROROOORRORORROORRRRROOROROROORROORRRORRRRRRROORORROOORROORROORRRROOOOORRORRORORROROOROROOORROOORRROOOOOORRRRORRRROORRRROORRROOROOROROROOROOORORRROOROORROROOOORROORORRRRORROORRROORORROORRROROOORRRRROOOOOOROORRROOROOOROROOOOOOOORORORORORORROROORORROORROOORRROROROROOOORRRRROOOROOOROROROORROOOORORRORRORROOORRROOORORROROOORRRRRRRORORROORORROOORROORROOOROORRORRROOROORORROOOORORORRROORORRORROROOOORORROROROORORRORORRRRROROOORRRORORRRROROORRORORRORROORRROOROORORRORRRROOOOOOROOOORRRRRROOORROORORRORORRROOOOROROORROORRROROROOOORROOROOORRRRORRRORORRORROORROROOROROROROOOOOOOOROORRRORRRRRORRROORROORROORROOOOORROOOOOOOOOROOORROROORRORRRRROORORORORRRRORORORRRRRRRROOOOOORRORROROOROOOROROORRORROOORRROORORROOOROORROROOOROOOROOOROORORORRORRRRORROORORROOOOOORROOORROOORROROOOORRRRORROORROOROROORRROORRRROOORORRRORRRORRRORRRRORRORORRORORRORROROORRROROROOROROOOOROOORROROORROOOROOORROOORROOOORORORROORRORRRROROROOOORRORRROORROORRRRRROOROOORROORRRROOOOORROOOROORORRRORRRORROOROROROROOROROOOORORRROOROORORORRRROORORORROOORRORORRROROORROOROROOOORORROORRRRRRORROORRROROROORRROOROOORROOROOROORRROOORORRROOROROROROROROOORRROROOORROOORRRORRORROROOOORORROOOORRORORORRORORRORRRROORROOOORRRORRRROOOOOOROORROOROROOORRRORRORRORROOORORRROORRRRRROOOORORROOROROOOROROOROOOOOOOORROOOOOOORRRROOORORRORORORRRRORRROOORROOOOOORRROROOOOROROOROOROOORROOOOROROOOORORRROROOOORRRROORROOOORORORORORORROORROROOROORRORROOOORORRRROROORROOOROROORRORRORORORRROROOROOORORORRROOOOROORRROOOOORRRORRROORRROORORROORRRRRROORROROOOOOORRRRROOOOOORROROORORROROOORRRORRORORORORRRRROROROORORRRRRRRRORORRRRRRORROOORORRROROROOROOROROROOROOOOROROROROOORRRRORRROOORRROORROOOOORROORRROORROORROOOOOOORROOOORRRRROOORRRORRRRRROROROROROOORROORROOOROOORROORROOROROOOORRRORRRRROROROOOROROORRRRORROROORRRORRORROOROROOOORRRRORROROORRRROORORROROOORRRORRRRRORRROORORROOOOROORORORRRRRRRRROOROOOOOROOORRRRRORORRRRRRRRORRROROORRRRORRORRRRRRRRRRRRROROOROOOOROOROORORORROROOROORRROROOOORRRROORRRORORROORRORRRRRRRRROOOOOOORROOORORROOROROOROORRORRRROOORRRRROORROOOOOROROOOROOROORORRORROORRRORRROOOORORORRRRROOOORORROOOROROOROROROOOOROOROROOORORROOOOOROROOOOROROROOROOOORRROOROOOOROOOOORORRROOORROOORROORRRRROROOORRRORORRROOOOORORRORORRRRROROOOROROROORORRRRORORORRRRRROOROROORRORRROORRORRROORRORRROOORORRROORROOORROROORORORROROOORROORROROORRRORRROOROOROOOROROOROROORROOORORORRRORRROROROOOORROOOROORRORRRRRRRRORRROROOROOOOOOORORRRROROORORROOOOOROOROROOORRROOROOOROROOOORROOOROROOROROOOOORRROROOOORORROROROOOOOOOROROROORROORRROOOROOOOROROOORROOOORROORORRORRROOORRRORROROORORORORRROOORORROORORRORRRRORORRRRRORRORORROORROORRORORRORRORRRROROOROOOOOOOROROOROOOOROORRORRRORORRRRRROOOOROOOORRRORORRRRORRROOOOROORRRORRROOOORORROROORRORRRRORRROROROORORRROROORROOOROORROROORROROOORORROROORRRROOROOORORRRROROOOROOOOOORRRRRRRRRROOOORRRRROOORROORROOOORRORRORRRROOOOOOROROROOOROROOOROOOORORRORRROOROOOORRRROOOORROOORROROOOROOORROORRORRORRRROORRRROROORRRROOOORRORORROOOOROOOOOOORORRORRROROORRRRORRROORORORRROOOORORRORROROOROOOOROROORRRRROROROOOORRRRRROORROOOORORRORRRRORROOORROOROORRRRROOORROORRORRRRRROOORROORRROOROOROOROROOROOOOOOOOOROOORORRRORRRROOORORORORORRROOORRRORRORRRRROOORRORRRRROOROORRORROOROORRORRROROOOORRORORRRORRRRRRRROORORRRORRROOOOORORRRRORRRORRORORROROOOOOORRRRRRORROORRORORRRRORORRROROROOOROOROOORRORROOROORROOORORRROORROOORRROOOROOOOORRORROORRRROOOOOORROORRROROROROOOOOOROOROOORRROOOORRORROROOORORORRRROORRRRRRRORORROOOOROOROOOOROOROROOROOROROOOOROOOROROOORRORORRROORORORROOOOOORRRROORORROOOOROOOOOROORORROOOROOORRRRORRORORROOOROOORRORRRROROROOROORRROROORRRORORRORORROROOOOOORRRRRRORRRRRROORROORROOOORRORORRRRRROOOOOOOOOROOOOOORRRROOOOROOROOORRROOOORROROOOOROOOORRROROROOOROOROROROROOORRROORRORRORRORORROOOORROROORRRRROOOOOROOROROROOROROROOOORRORORRROROORRRRRRORRRROOOOROOOOOORRORRRROOORRORRORROROROORRRRROORRRRRRORRRRRORRRRORRRROOOROORORRORROROOROOROOOOOROORROROOORORROOROORORORROOOROORRROROOORROOOORROROROROORROOORRORORORORORRROOOOOOOOROROORRROROOORORROROORRRROOORRRRORORRRORRROORRORORRRRRRROROOROORORRRROROOOROORRORRORRROORRRRROROOOORROORROOROOOOORRORORROROOOOOORROORRORORRORORORROROOOORRROOORRROORORRORORRRRRROOORRRORRRROOROORROORRROOROOOORRROROOROORORORRORRROORRROROOOOOOORRRORRRROROORROOOOROOROOORORORRORRRRRRRRRROORORORROORRRORORORRRRRROOROOROROROOOOORROROORROOROOOOORROOOROROOOOROROOROROROROOOORRRRORRRRORORRRROOOROOORORRROOORORRRRROROOOOORRROOORRRRORRROOOOROROORROROOOOOOORORRORRORROROROORORORRORRROOOOROROOOOORROORRROOROROORRORRROOORROOOORROROOROOROOOORROOOROOOOOOORROOOOOOORRRORORORRORORROOORROOOORRRROROORORROROOORORROOOOORROOOOOROORRRRROROOORROROOORRRRRROORRORRRRRRRROROOORORRROOOORORRRORRRRRRROORORROOOOOOOORRRRROROOOORRRRRROOOOROROOORRRRORROOROROROORORORORORRRRROORROROROROOOORORRRRROROOORRORRORROOORORRROOOORRORROOROOOOOROOOOORORRRRROOORORRRRRRRROOORRROOOORRRORROOOORRRRRROOROOOROOROOORRORRRORRRRORROOROROROOOOROOORRORORRRORROROORRROORROOOORORORRORRORROOROROROORRROROORRRRRRRRRORRRRROORROOROOROOROROOOOROOROOORORROOROROORRROOOOORRROORRRROORORRROORROOORROOOORROROROORORORRORROOOOOOROORRRRORRRROROORRORROOROROROROOORRRRRORRRRRROOOOROOORORRRROORRRRRRORROORROROROORRRORRORROOOORRRRROORRRRROOROROOOOROOORRROOROORRROOROOORRRRORORORROROOROROOROOROROORRRRRRROOOOROOOORROOOOOORROOORROROOROOORRROOOROOORRROOOORRRORORRRORORORROOOROROROORROOROORROOROOOOOOROOORROOORRRRRRORRROORORRRRORORRRORROOORRORRROOROOOROROOOORORROROORROOOOOOOORRORORRROOORROORORRRRRROROROOOROOOORORRROORRROROROOROOOOOORRRROOOOOOOOORRRRROOOORROOOROROORORRROOORRRRRRROROROOROROOORORRRRRRROORRORROORROORORRRORORRORRORROORROROORRRROROOORROOROORROOOROROORROOOOORORROROORRRROORORORRORORROROOOOOOOOROROOROORRRORORORRROOROROROROOOORORROOOOOOOROOOOOORROOORRRROOOORRORROOORORRROOOOOROROROOOOORORROORORROOOOOOOORRRRORRROOOORORRRORRORRROOOORRRORRORRORROOOORORRRROOROOROOOOOORRORROORORORROORRRROORROROROOOROOOOOOOOROROORRORROORROOROORRRRORROOOROOOOROOOROORRORRRROORORORROOOROROORRROORORRORRORORROORRRROOOOORORRORORRRRORROOORROROOROORORORRRRRORRORRRORROROORROOORORRROORORRRORRORROROOOOOROORROROOROROOROOROORRRROROROROOOOORROOOOORORRRRROOROORRORORRRRROOROOOORROOOOROOOROOROOOORRRORRRORRROOORRROORRRRROORRRRRORRRRRRORRROOOOOORRRRRROOOOROORRORROROOROOOOROROOOOROOOORRORROROOOOORROOORROOORORROOORRRRORRRRROOOROOOORROOORORROOROORORRORRORROORRRRORROOOOORRROROORROROOOOROROORRORROOROROORORROOOOROORRRROROORORRRRORORORRRROORRORORRRRRORRRROOOOORORRRROORRRRROOOOOOOROOROROROOOOROROOORRORROROROOROOORORRROOORORROOOROOOORROORORRROORRROOORROOROROORRRORROORRRRRRRRORRROORRRRRRRROORORRRRRRRRRRORRRORRRORRRROROOORORRRRRRRRROOOOOORROOOROORROOOROOOROOROROOOROROROORRORORRRRROROROOOORROORROORROOROOOOOOROORRROOOORROOOROOORROOOOOORRRRROOROORROOOORROROROORRRRROORRORRRROOOORRRORROORROOOROOROOORORRORRROROORORROOOOOORRORROOORORRRORRROROOOOOOROORRRROORORRRRORROORROORORORRORORROROROOOOOOOOOOROORRROOOROOORROROOORROOORORORORORRROOORROOOOOOORRORORRRROORORROORORRRRROOORRRRROOOROOROROOOROROROORRORORORRRRROOOORROOROORORRRRRORRRRORRORRORORRRRROROROOOOOORORROROORORRORORROROOOORRROOOOOORORRROORROOOOROROOORRRORRRROOOORRORRROORRRORRRROOOOOORROORRROORORRRROORROOROORRROORRRROOROOOORRORRRRORRRRROOROROOROORRRROOOROORRRRRORRRRRORRORORRRORRORORORRRRRRRRRRRROROORROOROOOOORORORRORROOROOOOOROROOORROOOORROORROOOOORRROOORROOORRRRROOOROORRRROORRRRORRRORORRRRRRROOORRRRRRRROORROOOROOOORRORRRROORROROOROOROROORRRROOORRORRRROOOOORORROROOORRRRRRROOOROORROROROROOORORROOOOROOROORRRRRORRRROROORRRRRRROOORORORORRORRORRORRROOOOOOOOOORORRRROROORRRRRRRORRROOOROOORRROORORRORORORRORRROORORROOORRORORRORRROROOOOROOROOOORROOOROORRRRRRRRROROOROOOROROOOROOOROOOOORRORRORROOOORRROORRRRROOROROORROROORROROROOOOORORROROOOOROROORROOORORRROROROORRORROOORROOROOROROORROOORORRROROROOORROOOOORRRRROOORRROOOOOOORROOOOOORROOROOROROROOOORRRROOOORRROORORRROROOROORORORORRORRROORORROROOROROROOOROOROOOORROROROOOOORORORORORORORRRRORRRRROROOOORORORORRRRORRRRRRRRORRORORRROROOORROOOROOOROOROORRROROOOORRRROROORRRORRORRRORRORROOROORROROOOOROOROOOOROORRORORROOORROROOORRRROROOORROOROOOROORROORORROORORRROROROOORRORORRRRRRORRRROOROOROOORRROOORORRRRRORROORRROOOORROOOROOROROOOOORROORORRRRROOOROROOOOROROOOROOOOORRORROROOOROOROROROOOOOOOORROOOOOROOROROROROOOORROOORRRORROOORRRORROORRROOORRORRRRRRRRRROOORRROOROROOROOOOORRRRRRRRRORORRRRRROORRORROOOORRORRORRROOOOROOROOOOROOOOOOORROOORORRRROOOOORRORRRORRRRORORRORORRORROORRROOOOROOORRORRRROOORORROOROROORRROORRROORORRORORORRRRROROORRROROROOROROOROROROROORROOOORRRROOORORORROOOOOOOOROROORORRRRRROOOROORRORRRROOORRROOOOOROOORROOOOOOROOOROOROOOOOOORORROOOROORROOOROOOROOOORRRORRRRORRRRROOOORRRORORROOORROOOROOOORORROROOORORRRROORRROOORRROOORROOROORORROORROROROROROROORRRORRROOORORROROOROROOOORORRRORROORROROORROOROROOOOOORRORORRRRORROROOORROROOOOOOORRROROOOOORRRRRRROOORORRRROROROORORORORRORRORROROOOORROOROOOORRROOOOROOOROOROROOORRRRRORORORRRROOOROOROOOROORRRRORROROROOOROORRRRRRORORROOOOROOOOORRRROORORORRRROROOOOORRROROOOORROORRRRRORRORRRROROROORRROOORRRROOOROORRORRORROORROROORRROOOROOORRORROROOROOORROOOOROOROORROORRRRRRRORROOORROOORROOOROOOOOROOOOROORRORORORROOROOOROORROOOOROROOORORRROROOORRORRRROORORRRRRORRRRRRRRROOOORROOROORRROOOOROOOOORORRORROOOROOOROOOROROOOROROROOROORROROOROROOOORROORRROROOORORRROOROORROORORORRRORRORRORORRRORRROOOOOORRROOOOOORORORRRROORRRRRRROROROOOOOROROROORROROORRORRORRORRRRRROOOOROOORROOORRRRRORRRRRRROROORRROROOOROOORRORROROOROROORRROORRORRROORRRROROORORORRRROROORRRRRRRRROOOROOOORROORRROORROORORRORRROOORROROROOOOOOOORROOOOOROORORRROOOOOORORORORROOROOOORROORORROOOORRROROOORORRRORORRRRRRORORROOOROORROOOOOROORRRRORRORROOROOOROOOROORRROROROOROOOORORRROROROOORRROORROORROOROOOORORRRRORORRRORROROORRRROOOOORRRORRORROROOROROOROROORROOORRROORROROORROOORRROORROOOROROORROOORORROOOORROROOOROORRRRRROOOORRRRRROOORRRRORORRROORRRRRROOOOORORRROOOOOOOOROOROOOOOOOORRROOOOOOOORRRORROORRRROOORROOOOOOROORRROOORORROOOOOOOROOROROOOOROROORROOOOROOROROROOORRORROOORORRORROOORROOOOROOORRROROORRROROORROROROOROOOROROROORROROORORORROOORRRORRRORORRROOROOOOROROOOROROOROOROORROOORRROROOOOOROORROORRROOOOOOOORORRORROROROROROORRRRROORRROORRROORROROOOORRRROORRRORORROOOOOROROORRRORORROOOOROORROOOROROROOOORROORRORROOORRRRORROROOOORORRRORRROORROORRRRORRROOOORRRROOROOROOROROOORORRROOROROOOROORRRROORORORORORRORROOOOOOORROOOOROOORRROORRORROOOORROOORROOOORRORRRRROOOOORORORORROORORRROROORRORORRROOOOOOORORORORRRRROORROOORORRRRROOOORRORRRROORROROOOORRRROROOROORRRRRORRRROORORORORRORRROOOOORRORRRRORROOOROOORORRORRRRROOOROOROORORRORORROOOOORRRRRRRROOORRRROORRRRORROROORRRRRRROOROROOROORRORROOOOOROROOROOOROROOOORRRORROOOORRROOORORRORORRORORRRORRRROROROORRROOOROOOORROORRRROOOOOOROORORROOORROOOOOOOROOOORRROOORROORRROOOROORRROOORRROOOOOORROORRRORRROORRRRRRORRORROORRROORRRORRRRORORROOORORRORRROOROOORORRRRORORRRRORORRORRRRRROORORROORRRROROOORORRORRRRRROROROOOOOOROORRROOORORROOROOROROOORRROORRROOROOOOROROORROORROROROOOOOROOROOORRROORRRORROORORRROORROORRROOORRRROOROOROOOORRORRRRRROOOORROOROORRROROOOORRORRORROOORRRRRRORRRORRRORORRRRRORROOORRRORROORRORRRRRRRORROROOROROROOROROOOROOOOOOORROORRRROORROOOROOOORRORORORRORROOOOOOORRRORORRRORRRRORRORROORORRROOORRRRORRORRRRRROOOOOOORRRRRRROOROORRRRRORRROORRROOORRRRRRRRRORROORORROOOOORRRROOORRORRRRORORROORRRRROOOOOOOOORRRORROORRRRORORRORROORRROORRROOORRORORRORRROOOOROOOROROROOORRRORRRROOROOOORRROORORRRROORRRROROORORORRRRORRRRROROOOORRRRORRRROORRORORROOROOOORORRRRRORRRORROOOROORROROROORRRROORROROORORRORORROORORROOOROOROOORORRRROORORRORRRRRORORORRRRORORRRORROOOOOORRORROOORRRORRRRORORROORORRROOOOOORORORRORROORRRRORROORROROOORRRORORORRRRRRORRRRORRRROOOORROROOROOROOROOOOOOOOROOROOOROOROROROORROOOORORRRROORRRRRRRROOOROROROOORRRORORRORRRRRORRORORORRRROOORRORRRORROORORRROORROOROOROORRRRROOORROROROOROOOROOROOORRRRRORRORORROORORORROOROROOOORROORORROORORRROOOORORORROOORRRORORRRROROOOOROOOORORROORRRRRRROOROORORRORORROOORRRRROOOOOORROOOOORRROROORROOOROORORROOORROROOOORROROORROROROOOOOOOORRORRROOORROROROORORRROOORROOOROOOROROOOOOOROOOROOROOORORORORRORROORRROORROOOOORROOOORROORROOOOOROORORROOORRROORORRRRROOOOOROROOORRORRROOORRROROORORORORRRROOORROROORROROORORROOOROROOROORRROROROROORROOOOOORROORROOOOROORORORRROOOOROOORRORRRORRRRRORORORRRORRRROORRROORRORROOOOOOOORORRRRORRORRORRORORRORORORORORRORROROOROROOOOROOOORROOROORORROORRRROOORRRROORROOOORORRROROOOOROORRRRORRORORRRORORRRRRROORRROROROORORROOORROROORRORRROROORORORRRRRORRRRORROOOROORORRRROORROOROORORORROOOORRROORORROORRRRRRRROOOORROROROROORRRROORRRRRRORRORRROORORORRRROROORORORRORRRORRROROROORORRROOOOROOOOOORRRRROOORROORORRROORRRROROROROORROORRRORROORRROROROORORRRRORRRORORRRRRRRORROROOOORROOROORORROOROOOOOOOOROOOOORRRORRRRORORRORORORORORORROOORROOOROOORROOOORORRRROROOOOORRROORRRROOOOORRROOOOOOOOORROORORRRORROORRROOORRROORROOORRROOROORORORORROROOOOORRRROOORROROORRRORORRRRRRROORORRORRRROOROOORRRROROORRORROOOOROOROOROOOOROOROORROROORROROROOORROOROOOOROROOOROOOORROROOORRRORORROOORROOROROOOROORORRORRORRROORORORRROORRORRORORORROORORORRRORORRORRRRROORORORRRROOROORROORROOROROOOORRRROOOOOOOROORRRROOOORRRROOORRORRROOOROOOOROORORORORRORRRORROORROOOOORRORRROROOOOROORRRROROOOOOOORRROROORORRRROORRORROORORORORORROOOORROROORORROOOROROOOORORROOORRRRROORROOOOORRRRRROOORRRORORORRRRROOOORRRRORROORORRRORRRRRRRRRRRROOORRORRRRROOORROROOOOOOOOOOOOORRORRRRROOORRROROOORRROOOORRROROROOROROROROORRROOOORRROOORRROROOORRRROOOOROOROROROOROOROORORRRRORROOORRRROORROROROOOROROOOROORRRRROOROOOOROOOOROORROOOOORORROOROOOROROROOROROOOROORORORORROOOORRRRRRORRRRORRRORRRROOOOROOORORRORRORORROROORRROROOORORRROOOROOROROOOORORORROOOORORRRRRRROORROROORRROROORRROOOOOROORROORRRRROOOROOORRRRRRROOORRRRORRRORRRRROOORROOOOOOORORORORROOOORRORROORORROOORRROORRRROOROROROOORROOOOROORORROOROOROOOROOROOORRORRROOOOOOROOORORRROOOOORORRRRROORRRROOOROROOOOOOOORRROOROORRORORROROOOOROROROOORRRORORROOOORORROORRROOOOOROOOOOOORRRRROOORRRRROROORRROORROOORROOOOOOOOOOOOOROORRRROORROROROORRROOROOORRROORRRROOORROROOROROOORORRROOROOOOROORRRORRROOOORRRROROOROOOOROROOOOOROORROOOORROORROOORRROOOROROROOROROOORRRORORROOOOOOOORROOOORRRROROROROROOOORORORROOOORROOOOOOOOOOOOORORRROROOOOORORROOORRRORORORRROROORRRRORROORRRROOOOOOROOOOOOOOOORROORROROROOROROOOORRROOOORORORROOORORROOOROOOORRRRRRROROOOOOOORROROOORRROROROOROROORROORRROOOOORROROORORRORORORRRRRROORROOOOOOOORORORORRRRROOROORRRRORRORORORORRORROORORROORRRORRORRRRORROORROOOOORRORROOOOORORRRRRROOROROOORRROOORRORRRRORRRRROROOORRROORRRRROROORRRRORRORROROOOOOROOOROORRORROOROOOROOOOORROROROOORRORORRORRROROOORRRORRRROROOOOROOOOOOOROOROROROORRORROROORRROROROOOORORROOROOORROOROROROORORRORRRROROOROORRRRRROROORROROROORRORROOOOOORRRRRRROORRRORROORRRROOOOORRRORRORRRRROOOORRORORRORRROORRRRRORRORRORORRRORRRRORRRRROORORRORORORROOOROORRORROORORROORORROOROOOOROOOORRROORORRRORRRORRORORORRRRROOOOOOORRORROROOROROOOOORROROORRROORRRRRRRROROOORORROOOORROOROORRORROOROOROROROOOOORRROROROOOOOORROOOOORORRRROROROROROOOROROROORORORRROORORRORROORROORROOROORROORRRROORORRRORROOROOOOOORRRORRROROOORROOOOOROOOROOOOROROORRORORRRRORRROOOORRROORRROOOORROROOOROOROOROORORRORORRROOORROOOORRORRRROROROOOOOOORORRROOORRRORRROOROOOOROROOORROOOOORROOROOROORRRRRROORRRROOROROOOOORRRROORORROOROOOOOROOORROOORRRORROORROORRRORRRRORRROOROROORROORRRORROOOOOROOOOROORROORORORRROORRRRROOORORRROOOROORRRROOOOORORROOOORROOOOORRRORORROOOORRRORORORORRORORRRORRROROORORORRRRRRRROROORRROORORROROORRROOOOOOOOROOORROROORROOROOORRORRROROOORRORRORRRROORORRROOOOORORROROROOROORROORRRORRORRROOOOOROOOOROROROOROROORRROROOROOORRROOORRORRRRRORORRORROOROORRROORORORROOROOROOOOOOROOOOORROORRRROROORRROOOOORRROORORORORRRORROROOOROORRRRRORRORROOROOROORROOOORRROOOOROORORRRRRROOOROROORRROOOOORRROROORROOOOOORRRROROOROOORRRORROROROOORRROROOROOROROOORROORROROOOORORROROOORRROROOORRORORRORORORRRORROORRRRRORRROOOROOOOROOOOOOOOOROROORORORROOOOROROOOORORORROOOORORROORRRRROOOOOORRRRROROORRROOOROOROOROORRROOOROOOOORRORRORROORRRROOORROROOOROORRROORROOROOOOOOOROOOOORRROOOOROOORROOOROOORROOOORRRRRRRRROOORRROOORRROOOROOOROROOROOOORORORRRROOOROROROOOOOOROROROOORORORRORROORORRRROOORRORRORROOOORORROROOOROROOROOOOORRRRORRROORORROORRROOROROOORORRORRORRORORRRROOOOROOOOROORROOOOROOOOORRRRRRROROORRRORRRORRROOROOORRORRORORRRROORROORROOROOROOORORRRROOOROOROOROOOROOORROORROORRORRROOOOORRRORRROROOROOOOOORRORRORROOORROROOROOROOOORRROOOOOROOROOOOROORRRORORROOORROOORROROROOROROOOROOORRRORORRRROORROORROOOORORROOORRRRROOROORRRORRRORORRRRRRRROOROORRROORRRRRROROOOORROORRORRRRROOROOORORRORORORRRORROOROROORORRRRORRRORROROOOOORORRROOORRRRORROOROOROORROROOOOOROORRRORRROOROOOORROOOROORORORORORROORROROORRRRRRRORROOOOROORROOROOOOOOORRRRRRRRRRRROROORRRORORORORRROOROOOOOORRORRORRRORRROORRORRORROOORROROOROORRRRROOROROORRORRRROOROOOORROOOROOROROOOOROOORRORRROROROOOORRORRROOORORROOORROORRORRORRROORRRORORORRRRRRRRRRORROORRRORRROORRRRORRORROOROOOORORRRRROORORORRORORROOOOORRROORORRORROOROOROORRROORRROROORRRORROROOROORRRROOOROROROOOOOOOOOROOOOORORORRORROORRRORORRROOORROORRRORRORROORORROORROOOOORRROOOROOOROOOOOROOROOORORRROOOORORORORORROOORROOOOOOOOROOOROROORRRRORROROROORROORRROOORORRRROOROOOROOOOROROORRORROORROOROOOOROROROROROOROOOOORRRRORROOORRROROROROOOOROOOROROOROOROROROOROORROORRRROROOOORRRORROROOORROROROOORROORROOOOROOROORRRROORORRRROOOROROOORRRORRROOROOROROOORRORORRORRROOORRRRROOOOORORRRRORRROOROOROORORROORORRROORRORROOOOOROOORRRORORRROROOROROOROORRROROOOOROOORORROOOORRRRROORROOOOROORRRROOOORRROOORORRORROORRROORRRRRROOOROOROROROOROROOORROROORROORRRROROOORORRROORRROOROORORROOOOOOOORRROROOORORRORORROORROROORRROROOROROORROORORRRRRORROORRRROOROROORRRORRROROOROOROORROOOOORROOOOROOOROORRROORRROORORORORROOORRRROOOOROOROROORRRRRRROROORRRRRRRRORRRROOORORORRRRRRROROOOOOOOROOOOORRROOROORORRORRORRROOORRRRROROOROOORRRRRORRRRRORROORRRRRRRRRRORORRRRRRRRRRRRRROOORORRORORRORORORRORROOROOORROOORORRROOOOOROOROORROORROORRORORORRORRROOROOORRROROROOOOROOROORROROOROOOOROOROOOOROOORRROORRRRROOOOOORORRROROOOROROOOOOROOOOOOORORRRRORRORRROORRORORORORORROOOOROOROROOOOOORRRRORRRORORRORORORORROORRRROOOOOORRORROROORROOORRRRROORRORORROOOOOOORROOORRROOROORORORRRRRRROORRROORORRRRRRRORORROROOOOOOORRRRRROOOROORRORRRRORRRROOOROROOROORORORROORORRORRRRROOORROOORROOORROOOORROOOOROOORORORROORRORRRRROOORORRROORROOOOOOROOOOORRRRORRROORROROOROOORRROORORORRORROOROOOOORRROORRRORROROOORRORROROORORORRORRRRRRROOORORORROORORROORRRRRRORRRRRROOORORRRROOOOORRRORRORRORROROORRRRRORROOOORORRORRORORRORRRRORRORRORORORORRRROOROORROROOORORRORRROROOROOROOOROOORRROROROOORORRRROROORRRORORRRORROROROOOOROROOROOOOROORROORRRRRRORROOOORRROOROROROOROORRRORRORORRORRRORROOOOORROOOORRROOOOORRRRRORRROORORRROROOORRROROROROORRROOROORRROORORRROOORORRRRROOOOOORORRRRRROORRRROORROORRRRROOOROOOROOROOOROORORORROROOROORROOORRRROORRROROOOROROOROROOROORRROROORRRROOROROROROROOOORROOOROOOOROOOORRRROOORROORRROOROORROOOROROROOROORRRORRRORROORRRORRRORRRRROOOORRRROOOORRRRRORRRORROORRRRROOOROORRRRORRORROOOOORORRORROORRRORRROROOOOOROORRROROORORROOOOORRORRRROOORROORORRORORRRRROORRRRRORORRROOORRRRRRRORRORROORRORROOOOROOROROORRORROOOORORORROOROROOOORRROROROOOOROOORORROORRRORORORROOROOOOROORORORRRROOOORRRROOOOORROORRORORRRRORRROOOROOROOORROOOORROOORROROORORRROOOROORRORORRRORROOROROOOOOROOOROROROORROOROORRROORROOORROOORRROROOORRROOROOROOOROORRORORORRORROOOOOOOOOORRROOOOROORRRORORRORRRRROOORRRRRRROOOOORRRRRORROOOROOROOOOOROORROROOOOOOORRRRRROORORRROOOOOORRORRROOORRRRROOROROOORORORORRROROORRROORORORORRRRRORRRRORORRRORORROROOROOOOROORROOROOROOOORORRORORRRORORRRRORROOOOORORROORROROOOROROOORORRORORORRROOROROOOROROORRORRRRORRRROORRORORORORORORRROOOROOOOROOORORROORROORRROROOOOORROOORRRROORRORORROORORRRROROROOORRRORROROORRORROOROOROORRORORORORRRROORRROOOOORROROOOORRRROOOOROORRROROOORRROROORRRRORRRROORROOOOORRROOOOORROOORORRORROOOROOORRRRRRROOORROOORRORROOOORRRROOOOROOROORRORRROOOROORRRORRORRRRORRROROOROROORRRORORORRRRRRRRRRORROROROOOORROOOOORORRRORROOOOORRRRRORORRRORORORORRRRROORRROOOROORORRRORRRORRRRORROORRRORRRROROOROOOORORRRRRORROOORORRRRRORRORORORORORROORRROROROROORRROORORRRRORORORROOOOORORRRROROORRRROOOOOROOROOORRROORRORRROROOROOORRRORRROOORRORRRORRRROROOORRRRORROOROROROOROORORRROROORRORROROROROOROORORORROORROORROROROOOOOOROOROROROOOOORORRROOORORRRORRRORRRROOOORORRROOROORRRRRRORRORRROROORROORRRRROOOROOOOOORRORORRROOOROOOROORRROOORRRORORRROROOROROROROROOROOROROOOORORROROOROOOOORROOORROROOORRROORRORORORRROORRORROORORROOOOOORRORROOROOROROOOOROROOORRROOOOOOOROORROOOORRORORRRROOOOOROOORROORRORORORRRROROOROOOORORRRORROOORORRROROORORROORRROORRROROORORROOROROOORORROOOOROOOROOORORRRRROOORORRROOOOORORRRORROOOOROOROROOORRORORORRRROOOOROROROROORORROOOORROOOROOOORRROROORRORORRRRRORORRROOORRROOROROOOOOORRRRRORORRRORRROOROOOOOROORRRORRORRROROROOOOROOORROOORRROROOOOOOOOOORROOORROOOOORROORORROOORROOORRRRROOROROOORROROOOROOORRRROOORRRRRORRORRRORROORRRROOROOROOOROORORROROOROOOORRORRROORRRROOOORORROROOOORRROOROOROOOROORORRROROORRORRRORROOROROOORROOOOROORRRRRRRORRRORRROROOORROROROORRROOROOOORORROROOROOOOORRROOOROROROOORRORROOOORROOOOROOOORRROORRROOOORRRROOOOOORROOORRROORORORROOOOOOOOOORRRORROORRORRROROOROOOOORRRROROORORROOOORRRRROOROOORRROORROORRRRORORRRRRORROOOORROOOORRRROORORORRRRRRRROROORRRROOORORRORORORRRRORRORORROOOOOORROORROROROOOOROOOORROORORORRORROOOROORROROROOOORROOOROOROORRORORROOORORROROROROOORROOORRORRROROOORRORROOROOOORRORRRRRRROOOOROROROOROOORORORRRRORRORRROOOROOOOROROOOROOOOOOOOOROORRRROOOORRRRROROOROROROROOOROOOOOOOROROOROORRROORROOROROROOOROOORROOOROOORRRROORRORRRRRROOORRROOOORROOOOROOROROOOOOOOOOROOROORRROORRRROROROROROROORRROROROOROORRROROORORRROORRROORORORORORRRRRRRORORROOOORRRRRORRORROORRRRRRRRRRRRROOORRORRRORROOROROOROORORRRRRRROOROOORROOROROOROOOOROOROOROOROOOORRORRRORRROORRROOORROOOOROORRRORRROOOROORORROORORROORORRRORRORRORORORRRROOORROOROOOORORRRRRORRRORORROORRRORRRRRROOOOROORROOROOOORROOOROOORORRORORORROOROROOOROOOORRRRRORRRRROROOOOORROORROORRROOOROORRORROROOOROROORRORRRORRRROORRRRRRRROROOOOROROORRORRRRRRROORORRORROORRROORROROORROOOROOROOOROORORORRROROOROORRRRROORROROROROORROOROOOOOORRRRRRRRORRROOOOROROORRORRRROOOOOOORRRROROOORORRRRRRRRORRORROOOROOROOORORRRRORRORRORORROROOOROOORRROOOROORORROORROROORROORRROROORRROORRRRORRRORRRRORRRORRRRORORRORORRORRRRRRRRORRRRRRRRRRRORROROOORORROROOROOOOORRRRRRORORRORRROOROOORORROOOOROOROORORRROROORRROROROROOROROROROOORROOROROOOOOOOOOOOOORORORRROOOROOORROROROROOORROOORRRRORROOORRRROORROOROOORORRROOROORROROOOROORRRROROOOROOOOOORROROORRORORRRRRORRRROOOORROOORRORRROROORROROORRRRRROORORRRORROORORRROORORORRORRRRRORRRROROOOORORROROROOOROOOROOROORRORORRROORROORRRROOOOORROOROOORORRRRRROORROORORRRORORROOROOOROROORORROORORROOROOOORRRROROROROOOOOROOOROROOOROORORRORRRRROORRROOOORROOROROORORRRROOOOOOOROOOORROROOORORROORROORRROOORROOORROORROOOROORORRRROOROOORROOORRRROOOORRORRRRORRORRRROOORRROOOOOOORRRROOROOOROOROOROORROROROROOORORORORRRROROOROROROOORORRRRROOROOOORRORROOORORRRORORRRROOROROOOOOROORROOOROROOORORRRORORRRROORRRRRORRROOORORRRROORORRRRRRRORRRRORRORROOOOROOOOORORROOROOROOOORROROORRRRRROOOOROROORROOORROOOOOROROOOOOOROROROORRRRRRRORRRORORRRRRROOOROROORRRORRORROORRROROORRRRRORORORORROROOOOOORRRRRORROOROORROOROOOORRROOORRROOROORROOOORRORROOORRRRORRRORORORROOROOORRORRRROOOOORRRRRORRRRRRROOORRRRORRORORORORROOOORORRORROOOROROOOOORORRROOROOORROORORROROORROOORROROORORORRROROORORRRRROOORRRORORRRRRRRORRROOOROROORORRRORROORRRRORROROOOORRROOORROOROOOOOOOOOOOROOOORRRRORRROORROORRRRROOORRROOORRRROORROORORROOOOROORRROROOORRORROOOROOOOROOOORROOROORROOOROOOROOOOOORRRRORORROORORORROOOOOROORRROOOOORORRRORORROOROOOROROOOROOORRROORRRRROOROOORORRRROORRRRRRORRRRRRRROOOROROROOROORRRRROOROROOROOOOORRRROOOORROORRORROOORRRORRROOOOOROOOROOROROORRRORORRRROROOORRRRRRORRROOROROROOOOOOOORROOOROOOOROOROOOROROORRROOOORROROROROROORRRROOORORORRORRRRORRRRRROROOORRORRRRRROROORRORROORRORROOROOOOORRORROOOORRROOROORROOROORORORORROOROOORRRRROROROORRROOOORORRORRRORRRRROROOOORORORRROOOROORORROROORROOOORRROORORRORORROOOOROOOORRRRROOOORRROROORRRORRROOOORRRORROORRRRORROORRORROOROOORRRRRROROOOOOROORORROOOOORRROOOOOROORRROOOOOORRRRRROOOOOOOORORORRRRORRRROOOOROOROOOORRROROOOORORROOROOROOOROROORRROROOOORRROROORORRRROOOROROROORORRROOOOOOROORORRRRROROOOORRRORROORRRRORORORRORROOORORORRRRROOROROOROORROROOOOORRRROOOROOROOORROOORRRRROROROOROOROOOOORROROOROROOROOOOOOOOORORORRROOOROORORRRROOORORORORORROOROORRRRROORROROOORROOROOROORRRORORRORRRRORRROORRRRROOOOORRORROROOORRORROORORRORRRROOORRRRORRROORRRRORRRORRORORRORRRRRRRORROROOROOROOROOOOROORRROROOROOOOOORORRROOOROOORRRRORRRORORRRORROORRORRRORROOROOROOROORORRRRRRROOROROORRORORRORRROORROOROOROOORROORROROROROOOORRRORRROROOROROOOOOOORRRROOORRRRRRORRORROOORORORORRORROOORROOOROOORRORRROORRROOORORRORORRROOOOOROORROORRRRRROORORRROROOOOORRROOOROOOROOOOROOOORRRRORROOORRRROORRROOOOORROOORORRORROROOROOROROOROORRRORRRRRRORORROOORROOOORRRRROORROOROOROROOOORROOROROOOOOOOORRRROOOOOOROORRRRROOROOORRROORRORRRRROOOROROORRORORRROOROOORORRRRRRROOOOROOROOOORROOOROOROOOOOOOOORRROROOOORRRRRROORROORRROORORORRRORRROOOOOOOOROOROROOROROOOOORROOROOORRROORROOOOROROOROROORRORORRROOROOORORRROORORORROOOROROOOOORRRROOROOROOOORROOOORRRRORORRRORRORORROORROROORRROOOORORRORROORRROOOORRROORRRROORRRORORORRORRRRROOORRRROOROROROOOORORRROOROOROOOROORORORROROOORRROROORRRROORROORROOOOROOOROOOOORROORRORRRRORORROOORRROROOORORROOOROOOOROOOOROOOOOOOOOORRROOOORRRRORORRRROORROROROOORROOORRROORROOROOROOOORORRORORORRROOOOORRORRRRORRROOOOOOOROORRORORRROORROOROOOOROOOORRRRRRORRROOROOORROOOOORRRRRORORROROOOOROROOOORRORORORRROORROORORRRRORRRROORRRROROOORROOOOORRROORRORRORRRRRORRRRRRORROOORROORRROROORROOROOOORRORRORRROORORORROOORROROROORRRRRRRRORROOOOROORRROOOOROOORROOROOROROORRRRRROOOOORRRRORORROOOOROROOORORRORROOORRROORROOROROOOOROROORRORRORORRORRRORRRORROOORRORRRORRRRROOOOOOOOOOORORROORROROOOORORRRROORRRORORORRRROROORRORRRORROORRROROOOORORRRRROROROOOOORRRRRORROORRROORRORRRROROOORORROOROOOOORROORRRRRRRORRRRORROOROROOORRROORRRRRRRORRRRRROOROROOROOORORROOROORRORORRORROOORRRORROOOORORORROOOOOOROROORRORRORROROROROORROOOORRROROOORRRORRORRRROOORRRRRROROOROOORRRRRRRROOROORORRORROOROOORORORRROOROOORRORORORRRRROOORRRORORROROROOOROOOOOOROORORROOROOOORRRRRORORROROOORRRORRORRROOORROOROOOROROOROOOROOROOOROORRROOORROOORRROORORORRROOOOROROOOROROORROOOOORROORROROROROORROOOORORROROROROORORROORRRROOOOORRROOOOORRRRORROROORROROORRRRORRORRRROOROOOOOOROROORRROORORRRRORRORRRROROROOOORORROORORRRROORROOOOOOOROORRROORRRRROROOOORRRRROOOOORRORORROORRRRRROOORRRRROORRROOOOROOOORORRORROROROORRRROOROOOOOOORRROROORRRRRRORROOROOORRROOORRRROOOOROROOROOROOORORRRRROOORRRORORRRROROROROORORRRRRORRRORROROROOROROROOORRRRORRRROOROOOOOOOOORRORRRRROOROOROOROOOROOORRRORORRRORRORRRORRRROOORRRROOORROORORROOOOOOROOROOORORRORROROORORRRRROROROORRRORORRRRORROORORRRRRROOOORORORROOROOOOOROOORRRRRROORRROOROOROOORRROORROOORROORROOOROOOROROOOOOOOORROROOROOOROORORRROOOORRROOOOROORRROOROROOROOOOOOOORROORRRROOOOOOOOOOROROOOORORRRORRRORORRROOOROROROOOROOORORRORRRRROOOOORROOORRRROROOOROOROOOROORROOOROOORORRORRRRORORORRRROROOOORROROROOOOORROOROORORRORRROROROORRRROOOROOOORROOOOROROORRRRORROOROOORRROOORROROROROOORROOROORRROOORORROOOOOROOROOORRRRROOOROOORRROORORROROOORRROOOROORRROORRRRRROOOORORRROOOORROORRRROOOROOROOROOORORROOORRORRROORROOOOORROORRROORRRROOROOOROOOROORORORRORRORRROOROOOROOOROOOROORORRRRORROORORRRRORRROOORRRORRRRORORORROOORROROROOROROOROOROORROOOOROOORRORROORORRROOOOROOORROOORROOORORRRROORRRROOORROORRRRROORRRROROOROOROOROOORRRROORRORROOROORRRRRROORROOORROORRRRRROORRROORORRORROOOORROORRRORROOORROORRRRRRRORORRRRRROOROOORRROOOORROORROORROOOOOOROROROOOOORRROOROOOOORROOROROROOROORRROROORORROOOOOROOORORROOOROROOOORORROOROORRRORORRRRRROORORROOORRRORRRROORROORORROROOORORORORORRRORROOOOOOROROORROORRROROOROORROOROROROORRRROORRRRRRROROORRRRROOORRRROOROOROROOROOROROROORORORORROROORORORORORRROOORROOOOOOROORRROOOORRRROROROOORROROOOOROOORRORORRRORROOOOORRORORRROOOOROOROROROORRORORORROOOOROOROORROOORRRORORROORROROOORRORRRROOROOOOOOORORROOORORRRRORRRRROOOROOOORRRORROROROOORORRORROOORRROOORROOOROOORROOROOOOORORRRORROORORRROOORRRRORROOORROOOOORROROORROOORRRRORORROOOROOOROROOROORRRROOOOOOORRRRROORROOOORROORRORROOORRRORORRRRRORROORORROOROOORORORROROOROORRRORROORROOOOORRRRRRORROOOROOROORROROROOORRROOOOOOOOOORRRROORRRROOORORRORROOORROOORORRORROROORORRROORORROROORORRRRORRROROOOOOOOOOROROOROORRRORRRRORROORORRRROOORRRROROROORORRORRRORRROOOOOORRRRROORORRROOROOORRRORROOORRRORRROOORORRORORRRRRRRRORROROOROOOOORRRRORROROOOOOOROOORORRRRROOORROORORROORROORRRRROORRRRRRROORROOOOOOOROOOROOROORORRORRRROOOOORRROORRROROOOROROROOROROORRRRORRORRORROORRRORRRORORRRROOOORORRORROOORRRRRORROROOOOORROOOROROOOOROROOROORROROOORORROROROOROROOOOROROORRORRORORRROROOOROORROOOOOORORROOOROORRORORORRRROOROORORORRRORRRRROORORRROOOORORORORRRROOOOROOROOOROROROROROOOOOOROOORRRORRRORROORROORRORRRORORORROOROOOOOOOOORRRROOOROORORROOROOORORORRROOOOOOOORRRROOOOROROOORROOOROORRROOORRRROOORRROROOOOROOORROOOORORORRROOORRORROOORRRORRRRRRRRORORORROOOROOROOOROOOOROOOOROORROOROOORRROOROOORORORRROOOOORRORROOORROORRRROOROOROOROORRRORRORRROOROOORORROORRROOROROOROORORORRRORRRRRRRROOOORROROOOORRRROROORRORRORRORRRRORROORORORRORORRRRRRORRRORROORORROROOORROROOORORROROOOOROORRROOROORRRROORRRRRORRRROOOORORROROROROOOOORRORROOOOOOROOORORRORORRRORORORRRORROORROORRRRRORRRROOOORORRRRRRRROOROOORROORORROOOORRRROOROORRORORRRRORRRORORROOOROOROROOROORROOOROOOOOROOOOORROROROROROOOROROROOOROROOORRROORROOORORORORRRRRROOOOROROORRORORRROOOOORORRRRORRROORROROROOOOROOOOORRRROOROOOORROORORRRRORRRROROROOROORRROROOROROOORROROORRRRROROOORROORROROOOORORROROROOROORORORORRROORROROROOORRRROOOROORRRROROOROROORROOOOOROOOORRRROOROOROOORRROOROROOORROOORROROORRRORRROROORROROORRRRRORORRRRORRRRRRRROROOOOROOOOOORRRRORRRORRORRORRROOORROROROOOROOOOOOOOROOROOOOOOOROORRRRROOORROOORRROORROOORORRROOOOOOOOORROROROORRRORRROOORRORORRROORRRRROORORORRRORRRRRORRROOROOOROOOROROOROORROOROOROROORRRROROOORROROROORRORORRORORRRRORROORORROOOORROORORRORRRROROORROOOROROORROOROROOROOOOOOROOORRORORRROOROOOROROROOORROOOORRROROOOOORRORORORROORRRRRROOORROROROROROOORORORROOOOOOOOORORRORRRROROROOORROOORRROOROOOROROROOROORORROOOORRRORROROOOROORORROORRRRRORORORRRRORROROROROOROORRORROORROOOOOOOOOOORROROORROOROOOOORRROROROOORRRORROOOOROOORORORORORRRRRROOOOORRORRROORRRORROOROROOROOROROOOOOOROOOOROOOOROROOOOORRRORRORORORROOORRRRROORROOOOOROOOOOORORORRORORRRRRROOROOOORROOORROOOROROOOOOOOORROOOOORRRROORRRROOOROOORRRORORROOOORROORRRRRRRRRORRROOORORRRORRROOORRRRRRRRRRORRORRROORRRROOROORRRRRRROROOOOROOORRROORROOORORRORROROROOOORRORRORROOOOOORRORROORROOOORRROOROORRORORRRROORROORROROROROORRROOOOORRROROOOROOOROOROORROORRRROORRORROORRRORROORRORRRORORRORORROOOOOROROOOOORORORROROOORROROORRROORRRROROROROOOORROOOOOORRRORRRRRRRRROROOROOORRORROROROORRRORRORROORROROOORORORROORRRRORROORRROROROOOOOORORRRROOROORORRORRRRRORROOORRROOROORRRRRRORORRORRORORROORROROOOOROOROOROOROOOROOOOROOOROROROROROROORORORRROORROOOORRORRORRRROROROORROOROROORORRROROROOOOOOOROORORROORRRROOROOROOOROROOORRROROOOORRRRRORRRRORORORORRROOORORROOOROOOORRORRROROOOORROOORROOROROROORRRRRRRRROOORRRORORRORORROOOORROROOROORORORORRRRORRRRRRROOORORROOOOROROOOOROORRRRRRRRRRORRRORROOORORRRRROROROORORRRRRRRRRRRRROOOORRRRRROROOOOOOOOOOROORRORROOROOROOOOORORROOORROOROROOROROROOOROROROROOOORRRROOOORORRRORORORORORORORORORRORRRROORORROORRORROROOOORORORRORORROORORRROOROORORROORROOORRORRRRROORORROOROOORRORORRRORORRRRRORRROOOOOROORRRRRORROOROOOOOOOOROOORRRRROOOOOROOOOOORORORORRROROOOOOROOOROROOOORRROORORRRORRROOOROORRROOOORRROOORRRRRRRROOORRRORORORORORROOROROOROORROOORRORROORORRRROORRROORRRRROOROROORORRROROORROOORROOOOOROOORORRORRRROROOORROOOROOORORRORORROOOROORORRRRORROOOOOOOOROOOOOORRRORORRRORROORORRRROOORORRRRORROROOROORROOOROROOOORRRORRORRRRROOOROOOOORRORROOORRROROOOROORRROOOORRRORRRORRRROORORORORRRORROOOOROOROOROROOOORRORRRROROOROROOOROORRRORORORORRORROROROROOOORROORRORRRRORROORORRROOOOROOORROOOROOOOORORROORRORROROROOORROORRRRORRRORRRROOROROROOOOROROORRORRRRRRRRRRRRROOORROOOOOOROROOROROOROOROOOOOOORRORRROOOOOOORRRORORRROORRRORORROOOORRROOOROROOOORRRROORRORRRRROROORROOOORROOORRORRRRORRRRRRORROROORRROORRROOOROOROOROORROOORORRRORROORROROOOORORORRRRRROOOOROORROOROORROOOOOORORROOROOROOOOROROROOOROROROROORROOOROOROROOOORORRRORRRRROORRROORRRROOROOOROORROROOROORORRRORORRORORROOOOORROOORRRROROOROOOOROROROORROOORROROOROORROOORRRORROROOOOOORRORRRROORROOORRRROOROOOOORRROORORRROOOROROROROORRRROROROOROROORROROROOROORROOROORRRROROORROROOROOOOOROROROROOROORORORORRRRROORROORRROROOORORRRRROROOORRORROOOORRORROORRRROOROOROOORRORROOOORRORRROOOOOOOOROROOORRRORROOORRORRRRROOORORORORRROROORROROOROOOOOORORORRROORROORROOROOOORROOROOOROOOROOOROORRROOORORRRRROORORORORORROOOOROROOOROOOOOOORROROOORROORORRORRRROOOORRRRRRORRRRRRORRROOORORRORRORORROOROOROOROORROORORROOROROOOORROOORORRRORROORRROOROROOOORROOROORROOROOOOORRRORORRROOOROROROOOROOORORRRROORORORROROORRRRORORORRRORORRORRRROROROORRRRRRRORRRORROORROOOOORRRRORORORRORRRRRRRORRRORROORRRRRORRORRRRORRORRRRRORRROORRRROOROROOOORROORORRRRRRRRORORRRROOOORORROOROROOROORRORROORRORRROOOOROORROROOOROROORRRROOROOOROROROOOOOORORORROOOROORRRRRROORRROROORRRORRRRRROOROOORORROROOROOOORROOOOOOOOOOROORROROORROOOORRROOOORRROOOORROOROOOORROOORRRRORRROOROOORRRORRRROROORORORORROOOOORRORORROOORORRRRRORORRRORRROORRRRORRORORROORRRRROROORORRROOOOOOOROORRORRRRRRRRRORROOOOOOROOORROORROROORRORROROOROROROORRROOROROOORORROROOOOORRROROOOROORROOROROROOOORORRROOROOOOOOOORRROOOOOORORORORRRRROOOOORRROOORROOORRRRRRRRRRRRRROOORRRRORRRRRROORRORRORROOROORORRORROOORORRORORROOOORORRRROROOROROOOROOOOOROORRROORORROOROOORORRRROROOORROOOOORRRRRORORRRORRRRRORROOOOOOROORROROORRORROROOOORORRORRROOROROOORRRORRRRROOOORROOOOOOOOROOOORORROROORORROOORORORORORROROROROROOOOOORRORORROORROOOOOORORRRROOOOROROORRORROOOORORORORRRRRORRRROROORROROOOOORROOORORROORRRRRRRORORROOOOORRRRROROOOROOOOOOOOORROORROOORRORROROORRORORORORRRORRRORRROORRRRRROROORRORRRRORROOROORORROOOOROORROOORRRRRRRRROOOOOOORORORORRRRROORROROORORRRORORORROOROROOROOOROOORORROORROOROOOOOROOOOROORRRROOORRORRORRROROROOROROOORRRRRORRRRROORORROOOOROROOOOORROROOOROOROOOOOROOORRROORRORRRRROOORROOORORORORORORRROORORROROROROOROOOORORRRRORRORRRORRROORRORROORRROORRORRRRRRORRRORROOOROOROROORRRORRRORRORRRRRRRORORROROOOOOOOOORORRRROOOORORROOOOOORORROOORRROROORRROOOOORORRROOOROORORORROROOROOROOORROROORORORROORROOOOROOOORROOOOOOROROROOOROROOOORRRROOOOOORROOOROOORORORRROROROOROOOORRRROOORRORORRROROORRORRRORROOOOROOORROORORRROORRORRRRRORROOORROORRRRROROOOORRORORRRRRORRRORRROORRORRROORRORRRORROROROOROOROORRORRORRRORRROOOROOOORORRROORRRRRORRRROOROORRROROORROOROOORRORRROORROOOOORROOORRRROROOOOORORRORRRORRROOOOOOROOOOOROROOOROROOROORRORORRRROORRROROOOROROOORRORRRRRROORORRROOORROORROOOORROOOOOROORROROOORRRORRRRRROOORRROOORROROORRRROORROOROORROROOROORRRRRRRROOROORRORORROOOOROROORROROROOROROORROROORORORORORRROROOOROROOOOOROORROORROOORORRORRROOOORORORRRRORROOROOORRRORROORORORROOROOROORORORROROOROOORRRRORROROROROORROORORRRRROROROORORORRRROROROORRROROOOOOOORROORROROORROOROORRORRORRROORRRROROORROOOOOORRRRRRORRRRRORRORROORRRROORRROOOOOOOORORORRRRRORORRORRRORRRROOOOORRRORRRRORROORRORROOROOROOOROROOORRORROOROOOOORROROOOROROORRORRRRRORORROOOOOROORORORROROROROORROROOOROOORRROOOOOOROOOROOOOOROOOORRORRRRRRROORRROORORRRROOOORRRORRRORROORORROORORRRRRRROOOROORRROOOOORRROORORRRRORROROOORORRRRROOOROOOORROOROORRORROOORRRRRRORORORORORROOROOOOOOOOROROOOOOOROOORORRRORORRROROOORROOORRRROORRRORORROOOROOROOORRRRROORROROOORORROROROROOOOROOROORORRRRORRRORRRROROOROROOROROOOROOROOOOOOOOOOOOROORORRROROOOROORRROOORRRROOORRRRORORRROOOORRRRRRROOOROOROROOROOROORROOORRORRORRORORROORROOOROORRRRROOOORORRRRORRRRRORROOROOOROOROROOORORROOOROOOORRORROROROOROOOORRRROOOORROOORROORROORROROOORORRORROOOROOOROROROORRROROOOORORROORORRORORRRORORORROROOORRRRORRRROOROROROORROORROOOORROOROOORRORORRROORRROROROORRRORRRORROORORRRORRRRRRRORRROORORORRROORRRROORORRORRRROOROORROOROOOOOROOROOOOROORORROOORRORRROOOORRRROORRRROOOOOOOORRRRRORRRROOOOROOORRROROROROROROOROORRRRROOOOORRORROORRORORRRROROOOOOOOOORRRRRRORORROROOORRRROROROROOORRRRRRRROOOOOOORRORROORORRRORORROROORORORORORRROOROROOORROOROORRRORRORROORORROOOOROORRORRRROOROOROROORROROOORRRRRRORRRRRRROOOOOORORROROORRRRRORROOOOOOROROOORRROORORRRORRROROORROOOROOROOOROORRRRORROOOOORORORRROROROOORROROOROOROROROORORRRROORORRROROOOOROOORORRORORRRROOORROOROOOORROORROORROOOOROROROROORRRROOOOROROORRRROOORRRRROROOOROORORRROROOORORRROOOOOOORROOORRRORORROORRORRRRRROORROORORORORRROOOOOOORORRRRRROOROOORORRORROORRROROROOROOROORRRROROROORRRROORRORRRRORRROROOOROOOOOOORRORROOOOROOOORORRRROOOOOOORRRORROOORRROOORRRRORROOOORORORRORRROOOROORRRORRORORROOORORRORRRORRROORRORROORRRRORRRORRORRROORROORORROORROOROOORROOOOORRRROOOORROOROOROOORORORROROOOOOOORRROORORROOOORRRRORRROORRROORORROROOOROOOOROORORORROOOOOROORROROROROORRRORORROROORORRRORORRORROROOOROORROROOOORRRORRRORORRORRRROOOOOROOOORRRRRRRRRRRRRORRRRRRROROROOORROOROORRORRORRORRORROORROORRRORRRORRROROORRROORORRROORORRORROOOOROOORORRRORORRRORRRRORROOOORRRRRROORORROORRORRROOOOROOORRROROOOORROORRRORROOOORRROROROROOOORRROROOROOROOORRRORRROROROOORRROROROROOORORRRRRRRORRRROROOOROROROOOOORROOOORORROOOOOOOROROOOORORORORRRRROORRORRROORORRRROOROOOORROOROORRRRRRORRRRRORROORROOORRRROOORRORRROROOOOOOORRRORORORROROOOROOORROORRRORROOROOOOROROOOORRORRRRRROOORORROOOORRROOOOROOOOORROOROOORROROOORROOOORRORRROOORROROOORORORRRRORRROORROOROOOOROOROROORROOOOOORROOOOOORROROROORROORORROORRROOOOORORORRORRRROOROORORRRORRRROOOORORRRROOROOOOOORRORRRRORROROORROORRROOOORORORRRRORROROORORORRROOROOOROOORORRORRORRRRORRRRRRRRROROORRROORRORRRRORROOOOOROOROORORRRRRROORORRORRRORRROOOOOORRRRORRORROOOOORORROOOOOOORORORRRROOOOOORROORROORROOORROOORRRRRRROROOOOOORRORRORRRRORRRRORRRRRRORRROOOROORRORORRORRRRRRRORRORRRROOORROORRROROOOOOOOROORRORRORRROOORROOROOOOOORRROORORROORORORRRORROOROROOORRRRROOOROORRROOOOOOOORRRRRROORRORROORRRORRRROOOORRRRRRRRROROORRORRRRRRRRRRRROOOOROOROROROOOROROORORRRRORROROOORORRORRRROOOORORROORRORORRRROORORRORRORRRRROROOROORORRRRRROOROORORRRRORRORRORORORRROOROORROROROOROORROOOROORROOOOORROOROROROOOROROROOOROROORRROROORROROOOORRRORORRROORROROOROORRROROORROOOORROOROORROROORORORRRRORRORRRROOROOORRRROORROROOROORRORRRORROROOORROORORORRRRROROOROROORRRRORORORROORROOROROOOOORRRRORRORRRRRRORRROROROOOOROORRORRRORRRRORRORRORRRROROOOOORROROOOORORRRORRRRROROORROROROOOORORRRRRRROROORORORRROORRORRROOOOOOOOOROOOORRROROOOORROROOOORRRROOOOOORRRROORROORRRRROOOORRORRORROOOROOOORROOORORRORRRRORRROOROOORROOORORRRORORROORORRRROOORORORROORRRORROORRORROOOOOROROORROORRROROOOORROROROOORRRORRROORORRORROROROORRROORRRRRRROORORORRRRORRROROROOROROOROORRRROROOROOROORROORRRORRRRROOOOOOOOROOROROORRRRRORROORROORRROOOOROORROOROOROORORRRRORRROROOORORORRORORRROORROOOROOOROROOOORORORROORRRROOOOROROORRRRORORORROROORROROOORRROROOOROOOOROOROOORRRORORORORRRRORRRRRROOORORRRRORRROROROOOOOORRRRRRRRORROORROROORORORRRORRRORROROOROORORORRRRROOORRRRRORRRRRROROOOORORROROOOOORRORRORRRORRORORRROORROOORROOOROOOORRORRRRRRRRRRROOOOOROORRRORORORROORRRRRRORROOOORRRROOROOOORORRRRORROOROROOORRRRORRRORRROORRRRRRRORORROROROOORORRORRORRRROOROORORRORRRRRRROOROORRRRRRORRROROOROORRRORRORRRRROOOROORRRRRRROROOORROROOOROORORROORRRRROROORROOORROORRRORROOOOORROOROOOORORRROROOORRROOROROROROOORRROORRRRROORRORRORORRRORORRRRRRRROORORRRORROORORROROOOORRORRORRRROROOOORORORRORORRRORORRRRRRORROORROORORRORRRROROOOOROOOROOOOORROROOROORRRORRRRORORROOOORRROORROROROROORORRROROORROOOORROROORORROROOOOROOROROROORORRRRRORORRORRRRROROOORRROORRROOROOROORRORORRORRORORORROOOROOOOORROOOOOOOOORRORORRRORROOROROROORRROORRROOOOROROORORRROORROORORROOORORORORROORORRRORRRORORROORRROOOROROORORROOROROORRROORORRORROROOOORRROORRRRORRRORRROOOOORROOROOORORROOROOOOROOOORORORORROOROROOOROOORROOOROROROOOORORRRRRROROROOOOOOORORRRROOOORRORRRRRRRRRORRRROOORORROORORORROOROORRORRRORRRROOROOROROOOOROROORRRORRORROOROOOROROROROROOROOOROORRRRRRROORROORRORRRRRROORRROROOOROOROROORORROROOOROOROROORRROOOORRORRROOOOOOORRRRROOOORRORRORORRRRRRROORRROROOROORRROROOOOROOROORROOOOORORRRORRORRORORORROOOORRRROORRRRRRRRORRROORORRRRROOOROORROOROOROORRORROOOORORRORORRRRORRRRRROROORORRROROOROOOROROOROOOOOOOOROOOOROOROORRROOOORORRROOORRRORRROROOOORRRRRROOORROOROROROORRORORRRRRORRRRORORRORORRROORRORRRROOOROOOOOOORRROROOORROOOOOROOOOORROOORROROORORRRRORRROOORRRROOOORRRORRRRORRRRRRROORORRRORROORRRRRRORRROOROORROOOROOOOORORORRORROROOROROORRRRROORRRORROORRRRORRROOROORORRORROORRRRORROOROORORROOROROROOROROROOROOROROORRROOROOOORRRRORORRROOOOORORRROOORRRROORORROROOOROOOORRRORRORRRORRRRROROORRRRROROOOROORROORROROOOOOOORRRRRRRRRRROORROOORROROORRROOOROOORRORROORRROOORRRRORORROORRRRRRORRORRROOORRRORROROROORRRRROORORROOOORRRORRORROORROOORORRROORRROOORROROROOOORRRRRRRRRORROORROROROOROOOOROOOOORORRORRORRRORRRRORRRRORRRROORROROOROORRORRROORORROORROROOOROOOOOROROORRRRROORRRRROORROOOORORORORROOOORORRROOOOOORRORROROOOOROORORRORRRRROOOROOOOORROORRROROROOROOOOOOORROORRROORROOOORRRROOORORRRROOOORRORRORROROOOOOOOORRROOROORRORROROOOROOROROOORROOOOOROOORROORORRRROOOROOORRRRROOOORORORRORROORRRROORRROOROOROOOORORRRORROROROOROOOOOORROOOOORRRRORRROORROOOROORROOORRORORORORROOOROROOOROROROORRROORRORRRROROORROORROORROORORROOOROOOOORRORORROOROOOOOOROOOOOORROROOOROOOORORORROOORORRRORORORRRROOOOROORORROORRROROORORROROORROOORRROORORRRORROORORRRROORRRRROORROROORRORRRRROORROOOORROROOORROROORROROOOOOOORROOORROOOORRRRROOOROROOORROORRORORORRROOOOOROOOROROOOORROOOOOOOOORORRROROORRROOOORROOOOORRRROROORROORROOOOORRROROROROROORRORRRORRRORRROROORROORROOORORROROORRRORRROOOROROORORRORORRRORRORORRRORROOORRROOOORRRRRORRROOROOOOOOROROOOROROROROOROORORROORRROOOOORORORRRROORRROROORRORORRORRROOOORRORROORRORRRROOORROORRORROOOOOOOROOOROROORRRROORRRORRRORRROOORROROOROORRORROOOOORORROOOOORROORROROOOROOROROOOORORRROOOOOOORRRRORROORRRRRRROROOOORORORORRORROOROOOROORROORROORRRRRRORRRROROROOORROROORORROOOOROOROOROOORORROOOOORORROOROORRRRORROORRROOOOORROROOOROOORRRROORRORORRRRROOORRROROOOORROROORRRRRORROOROOOOROOROORRRORORORRORRRRRRROOROROROOOORRORROROOOOOOORORROROOORORRROOROOOORRROROOORROOROOOORROORRRROROOOOORORRROOORORRROOOOOOOROORROOORRRROORRRROROOOOORORRRORORROOOORROROROOOORORRROOOROOROOOOOOORROROORRROOORROROOOROROROROOORRORORRRRROOOROORORORRROORRORORRORORROORORORROORRROORRRRRRORRROORRRROORROOROROROOORRORRRRORROOROOROROORROROOROROORORROROOOORRORROORROORROROOORORRROOROROROOOOOOROOORRORROOOOOROROROORORRROOOORRRRORRRRRROROORROOORROOROOROOOOOOORORRORRRROOORRROROROOOOORRRROOOOROOORRRROOOORRRRORRRRORRORRRRRORORRORRRROOOOORRRRROROOOROOROOOROORRRRRROROOOOORROORRROROOROROOORORRORRRRRORORROOOROOOORROOORRROOROROROORROOOOORROROROROOORORRROORRRROOROOORRROOOORRRROOROOROOOROORORROROOROOOROROOOORROOOOROOORROROOOORRORROROOORRORORORROOORRORRROOORRORRRROOROROOOOROOOORRORRORORROROORORORRRROOOROORORROORORORROROROOOOOOOORROOORROOROROROOORRRROROROOORRORORRRRRORORRRRRRORROROOOORROOORORRORRROROOOOROOOOOOORRRROOORROOROOROOORRROORROROROROORORORROOROROOORROROROORROOORORRROROOOORORRRRORROROOOORRROOOOOOOROROROOOROORROROOROOOOOORRROOOROOOROROORRRRRROROOORRROORORRROROROORRRORROOOOROOOROORORRRRRORORRRRRRROOOORRRROOOOORORROROROOOROORRRROOOROOOORRROORRORRROROROORRORRROOORROOOOOOOOOORROROORRROROOROOOOROOOROORRROROORORORROOOORROOOORRRROOOROORROROOOOOOORRORROORORROORRROOOOOORORRRROROORROOROOOOORRRRROOOROROROOOOROROOOOROROROORRORRRRROORROOORROOOROROOOOOOOROOOOOOOORRRRROORRRROOOORRRROOOORRROOROOROOOORRRRORORORRORROOOROOOOOORROOOROOOORROORRRRORORRROORRROORORRROOORROROOROORROOOORRORROOORRORRROOROORRRROOOORRRRRRORRROOROOROOOORRRRRROOOROOROOORROROORORORRROORROORORRRROORROOROOORRORRRRRROOOORRRORROROORORRROOORORRORRRROOOOROOOOOOORRRORROOORORROOROOOOORROROROROOROOOOOOORORRRROROOORRRROROOOOOROROORRROROOROORROOOOOORROOOOOROROOOOOORROORRORRROROROOROORRRRORORRRRORRRRROOOOOROROOROROOROROOORORRORRORRROORRROOORORRRRRORRRORRORORRRRRORRORRROOOROOROROORRORRRRORROORROROORROOOOORRRRORROOROORRRRROORRORORRROORROROROOROROROOOOROROORRORRORRRRRRRORRRROROOROROOORRORRRROROOROORRORROOORRRROOORRORORORRRROOROROOOOOORROORORORORROORRORROROROROROROROOORORROOOOOOROOROROOOORORROOOORRORRORORRROORRRRRRRORORORRRORROROORROOOOORRROOROORRORROROOOOORORORORORRORROOOORORORROORROOOROOORORRRRRORORRRRRORORROOROROOORRRRORROROORRORROORORROOOOORRRORROROOOROROORORRRORROROORORRORORRRROOOOROOOORORRRRRROROOOOORORROROROROORRRORROORROROOORRROOOOORORRROROOROROORRRROROOROORRRRORRRROROOORORORRORRORRROROROOOOROORORROOOOOOROOORORRRROROOORRRRORRORRRROOOORRRORRRRRRORRORROROORORORROOORROROOOOOOOOOOORORORORRRRORRRRRRROOORRROOOORORRRRRRORORORROOROOOORROROORRRROROROORROORRROROOORRROOROROORORROORRRROORORRRROROORRRORROOORRORORRRRRORRRRROROOOOOOOOOORRORRRRRORROOOOOOORROOOORORRRRORRROOOOORROOORORORRRRROORRORRORORRROOOROOOORORORRORRORORRORORRRROROROOROROOOORRORRROROOORRRORROORORORRROORRRRROROOROOOROORRRRROROOROORRRROROOROROORRORRRORRORRROOROOROOORRRRROROORRRORRRROOOOORROOOROOOOOOOORRRORROORROOOORRRRRRRRROOORRRRORRORRRORROOORROROROOROOORRORROORORRRRRROOORRRRRORORRROORORROROOORRORROOOOROORRRRORRROORROOOORRORRRORRRRORORRORRORROOOOOORRROROOORROROOOOOORROROOORRRROOROROOOOROORORORRRORORRROOOOROROOOOOOOROROORRORRORRRRRORRROROROROOORRORROOROROOROOROOOOOOOOROOORRRORROROROROROOOROROORORORORORROROORRROOOORORORRRRROROROOOOOORROORRRROOOOORORRRRRRROORRRORORRROOROOROROROOOOOOROORRRROOOOROORRRRRRROROORRROOROOOOOROROROOORRRORROOOORROORORRRORROROOOROROOROROOORRORRROOOROROORROORROOOORORORRRRROOORRROROOROORRORORORORORORRORROOOORORRORRROORROOOOOROORROROOOROROORROORROOOORROOORORORRRRRRORORRRRROOROROROOORRRORORROOROORRRRRRRROOROOOOROROOORORROOORORRORRORROROOORRRROOOORORRRROORRRRORRROROOORROOROROOOORRORRORRORRORROOROROORRROOORRRROROORRORRORORRROROROOROOOORROORROORRRORROOOOOORROROROOORRRROORRRRRRROORRROOORROOROOORORROROROOROOOOOROORROOROOROROORROROOOOROROROROOOOOORRROORROOOORROOROORRORRRRROROROORORROROOROORRRROOOORORROROOOOORRRRRRROORRROORORRRRROROORRROROORRORROOORROOOOROOOORROOOOORROOOOOROORORROOOROOORRORORORRORRRRRROROORROROOOOROORORORRROROOOROOROOORRRORORRORORORRRORRRORORROORRRORROOOORORRRRORROORROOROORRRRROOROOORROORRORORROOROOROROORRORORRROOOOOROORORROOORRRRORORROORRRROORROORRRRRRRORRORROROORORRRORRRORRROROOOORORRORRROROROROORROORROROORRROOROORROOROOOORRRORRROROORRRORRROOORORRRRORRRRRORRORRROOROOOOORRROOROORRRRRROROOROOROOOORRORRORRRORRRORRORORRROROOORRRRROOROROORRRROORORRROROROROROORORORRRRORRRROOOORORORRROORROORRRRORRRRRRORRROOOORORORRROORORROORROORROROORORORORRRORROOOORRROORRRORRROOOOROOOOOOOROOOROROORRRORRROOORRROORRROOORORORRROOOORORRROOOROORORROROOOOROOOROROOOORRRROOOOOOOROROROROOOORROORRROROOROROOORROROORORROOOROOOOOOOOORROROOOROOORRRRRORORROROROOORROORROOORROOOOOROOOOROOOOOORROORRRRRORROROROROOOORRORROOORROOOOOOORROROOOOOORRROOROORRRORRRROOOROORROORRROOOOORRROORORRRRRRRROROOOORROOORRRRRRRRRRRORROROOROOORRRORROOOOROORRRRRRROROORRROOOROORRRROOROOOROOROORROROROORRRRROOROOROORRRRRROOOOOORRRROOROORORROROOORROOROOORRRRRRRRROROROOORORROOOOORROOOORRORRRRRROROORORRRRROOOOOOORROOROOROOROOORORRRRRRRRRROOORROROOORROOOROROOOROOROROORORORROOROROOROOOORRROORROOOORROORRORORRRORROOOOROORRRORORORROOOOOROOROOOOOORRRROOOOOROORROROOORROOOOOOORRROORORORRRROORRORORORRRORRROOOOORROOORRORRRROROOROOROOOOORRROROORRRORRROOOOROROOORORROROORRRROOORORRROOORROORROOORROORRRRRRORORRORROORROROOOORRRRRORRRRORORRRRRORORROROOORROROOOOOOROOOOROROORROOOOROOROORRROOOORROOOROROOOROOOOROORROOOROOORRRORORROORRRORRRROOOROORRRROROORRROOOOOROOORRORRROORRRRRRRORROORORORORORRRRRORROROOROROORRRROOROORORRRRRRRRORRRRORORRRRRRROROOORORRRORROROOROOOOOROORORROORRRORRRRRORRRROOOOORRRRORRORRROOOOROORROORRROOORRRRRORROROORORORORRORRRRRRROROORROOOOOROROROOORRORORRRRRRRRROOOOORRRORROORRROROORRORROOOOOORRRRORRROORRRROOOORRRRORORORORORORRRRRRRORRRROOROOROORORRORRORRRRRORRORRRORRROROROROORROORORROOROROROORORRROORROOORRORRROOROOORROORORRRORRROORRROOOROORRRORORRRROROOOORORROOOOORRROROORRRROOROOORROOOOROROROOROORRORRRRRROOOORRORORROROORRRORORRRRRRRRRRRROORRROORORRRORROOROROOROORRORRORORROOOORROROROOOOROROORRORORROROORRROORORRORORROROOOOOORORROORRRRRRRORORORRRRRORROOORRORORORRROOROORRRROOROOOORORORRROROORORRRORRRRRRROOOROROOOORORRRRORRORROOOOOOOORROOORORORROORROROOOROORRROOROORORORRROOROROORRORRRRORRRRRORORRRROOROROOORRRROORORORRORRORORROOOORORROROOROOORRRROORROORORRROOOROROOOORROORORROROROORROORROOORROOORRROOORORRORORRRORRORROOORROOORRORORROORRRROROOROOOOORORRORRRRROOOROROORRRORORRROORROOORRORROROROOOOOOROOOORRRROORROOOOOROOOOORRROOOROROOROORRRORRRROOOOROOOROORRORORRRORRRRRORRORRORRRROOROROOORORORRRRROORROOOOOROOORRRROOOORRRRORROOORRORORRRRRROORRRROOOROOOOROORRRRRROORORRORRORROROROROOOROROOORROROORROOOOOROOOORORRROORORRRORRRROOROROOOROROOORRRROORORROOOOOOOOORROOOOROOOROORORORROORRROROROROOOOORROOORORRRORORRROROOOOROROORRRORRRRORORROOROORORRROOORORORROROOROOOOOORROROROOOOOROORROORORRRRROOORRORORORRROOOORRRRRORRRRRRRRORROROROOOROOOORROOROOOORORRORORRORORRROORRRRORRROOROROOROOORRRROROORRROROORROOOORORRRORRRRRORRRRRRRRRORORORORORRRRRROORROROOOOOOOOORROORROORRRRRROORRORORORORORRRORRROROOOOOORRROORORRRROROOOOOOROOOOORRROOROORRRROOROOOOORRRROOORRRORRRORROORORROORRROROORROROOROORORRRRROOROORRRRROORRRORROOOORROORORROOROROORROOOROOORROOORORRROOROOOOOOOORRORORRROOOORROROOORRRRROOOORRROROOOOORROOROOOROROOROORRROOORORRRORORRROOROROOOORROOOROROOOORORORRRRRRROROOORORROROORROOOROROOOOOOOORORRRORRRRRRROORRRROROOORRRORORRORROORRRORRORORROROOOOROORROORORRRRORROOROORROROORRRORORRORROOROORRRRROOORORORORRRROROOOROOOOORRRORRORORRORRORRORORRROOOORRRRORRROROOROOORORRROROORORRROROORRRRROOORORORRORROORRROORORROOOROORORORRRRRROORORORROOORROROROOOORROORRRORRROOOOROORRRRRRRRROORRORROORORROROROROOOOOOOROORRROROOROROOOOOROROORRROOORROROOROORRRRORRROOOOOORRORRROOOOOORROROOROOROORRORRRORROORORORRRORORRROOROOOROROOROOROROOORORROORRROOORORORORRRRRROOOORORRRRRORORRROORRROROOOOOOORROOORRORRROROORORRORRROOORROOROROOOOOROORRRORRRRROOROROORRROROOORRROOOOOOOOOOORROORROROORORROROOROOORROOOROROORRROOOORRORROORRROOOROOORROOOOROORRROOOORORORRORORRROOORROOORRRORORRROOORORRRRRORRORRORRROOROOORRORORORRORROROROOROOOOOORRORRRRRRROROOORROORRRORRROOOORROOROORROROROOOROROOOOOOOORROOROOOOROORRORRROORRRROOORRORROORRROOOORRROOROOOOROORRROORRORRRRRROOOOROOOROROROOOROORORROOOOOOOOOORROOORORRORRRORRROOOORRRRRROOORROOOROORRRRRRORROOOROROOROOORRRROOROOOOOOOOORORROORROOOOROOOOOOORORORRROOOOROORRRRRRROORRROROOORROOOORROOOORROROOROORRRROORRROROORRRRROORRRROROOORROORORRRRROOOROOOORRRRORRRORORRROORRORRRORORRRROORRORORROOROOOORRORRROROOOOOOOOROOOORORORRROOOORORROORRROOORORRROOROOROOROORORRRRROOROOOROOOOORORRROROORORRRRRRORORRRRORORRRORORRRORORRRROROORRRORRORRRORRRRRORROORORROROROOROORROOROORRORROOROOOOROROROOORROOROOOOROORRORRORORROROOOOROOOORROOORRRORRROORROORORROORRROOOROOOROOOOOOOORROORROOORRRROROROORORRROOORRROOORROOORROORORORRROROOOOORROOOORROROROORORORRROORRORRROOORRROOROORROOORRROOROROOROOROOORORRRORORRORRRRRROOOROROROORORROORROORRROOROOROROOOORORROOOROOOROOORRORORRRRROROROROROOORROROORRRROROOORRORRORROORROORORRRRRORRRRORRORROORORRORORRROROOOROOOROORORRRRROORRRRRRORRROOOOROROORRROOROORRRRROROORRORRROROOORRRROOOROORRORROORRRROORORROOOOOROROROORRORORROORORRRORROROORRRRRRORRRRRRRRRROORROROOOOROROOOROORROROROOROOORRORRROOOROROORROOOORRRORORORORROOROORRRRROOOOORRROROOOORORRRRRRROOOORROROOORRORORORRRORRRORRORRRRRORROROROORROORROROOOOOROOORRRRRORRRROROROOORORRROOORROOOROOROOROORORORRRORRORROOOROOOROORRRORROORRROORORRRORRRORRROOOROOOOROOORORROOOROOROROOOORRROOORRRORORRORRROOOORRROROORRORRROOOOOROROOROORRROOOOORRRORRRROOORRRRROROORRRRROORROORORRORROOORRORRROROROROORRORRRRRORRRROORRORRORRRROOOORORRRRRRRROROOORROROORRORROROOOOROORRORRROOORROROOORROORORROORROOROOOORORORROORROOROROOROROOROROOROOOORRROROROOORORORROORRRROOOOORRRORROOORRROORRRORRRRRRRRROOORROOOOOOOROOROROORRRRORRORRORRRRROOOOORROROROOORRORRRROROOOOOROOOOORROROOOOROROOROORRRRORRROROOORRRRORROROOORRRRRORRROOROOOORRRORROROOOOORROOROOOOOORROOOOROOORRORRROOOROOOROROORRRRRRROOROROOROOROOOOOOROOROOOOOORRORORRRORROOORRROORRRORRROORRRRRRRRRRRORROORORRROROOOOORRRRROROOROOROOORRRRORROROROROOROORRRROORROOORRORROOORROOORORORRORROOOOOORRRRRRROOOROOORROROORORROOORROOROORROROOOOROROOOORROORORRORRROOOOOORRROOORROORORROORRRRROOROROOOORROOORROORROOROROORRRROOOOORROORORORORRRRROOORORRRRRRROOORROOOORROOOOOOOORRRROOROORROOORROOOOOROROROROROORROOORORRORRRRRRROOOORORRRRORRRRROOOOROROORRRRRROOOOOROORRRRRRRROOOORROOROOROORRROOOOOROOROOROORRRORRRRROORRORROOROROOORRRORORRRRORRORORROROROROOORROOROROOOOROOOROORRORRROROROROORROROOOORRORORRROROOOOORORRRRRRRRORRROORORRRRRRROOORRRRORORRORROOROOORORRRRORROORRORRRRRORRRRROOROROOOOROOOROROORORRORRRRRRRROORROORRRRROORROORORROOROOROOROOOOORRORRORORROORORROOROROOOOORRROOROOOORORORRRROORORRRORRROOOORRRRROOOROROOROOORORORORRORORORRRRORRROROOOROROOOOORORROORRRRRRRRORRROROOORRROOOROOOOOROOROOROOOOOOOORRRORRORRRROORRRROROROORORORRRORROOOROOROOOOOOOROOOOORORORRORROOORROOOOORRRRROROOORRORRRRROORRRROROROOOOOOOOOORRRORRORRORRRORROORRROOOOOORRRRORRRRRORORROOOOOROROOORRROOOROOOOOOORROORRROOOORROOOROROOOROOORRRORROOOOOOOOOROOOROOOORRRROOOORRRRROOROOORRRROROOORRROORORRORRORROROOOROOROOOORRRROROROORORROOOORORRROOOORRORRORRRORRROOOOORRROROORORORRRRORRRROOOOOORRRORROROOROROOOROORROOORRROOOOORORRRORORRRRRRRROORROOOOOORRROOROOROROROOOOOOOORORRROOOOROOOOOORRROOOORRROROOORRORRORORRROOOROOOORRRRRRRORRRRRRORRRRORORRROROOOROOROOOROOROORRORROORRRRRRORRRRRROOOOROROOOOOORRROOROOROOORORRRROOOROORRRROROOROOOORROROOROOROOORRROORORRORRRROOOORORRRORORRROORROOOROORRORRORRROROORROROORROOROORROOROOOROOROOOOOROOOOROORROOOROOOROROORRRRROOORROOORRRRRROOOORORRRROOOROOROOOOOROROOOOOOROOOORORROORROOROROORROORRROOOOORRRRRORROOROORORRRORROOOOOROOOROOOOOROROORORRRROOROOOORRROOORROROROOROOORRORROOOOOORROORRRROROOOOROORRRRRORRORRROOOORROORORORORROOOOOROOORRRRROOORRORORROROOOROOOOROORRRRRORRROOROORRORORROORRROOORROOOOORORRRORORRORRORRRORRRRRORRROOOOOROORROOOOROROORORORROROOROORRROROORORORRRORORROOOOOROOROROOOOOORRRORORROOROROROROROROOORROOORRORRRRRROORORRRROOOOROOOOOORRRRROROORORORROOROOORORRROOORRORROOOOROROOOOORRORRRROROORROROROORROORROOOORROOOOOORROOOOORRROOROOOROORRRORRROORRRRROORORROOOROROROROORORRORRRRRRROOOORROOOOORORRRROORROOOROOROOORRROORORORROOROROROOROROOOROOOROROOOOROORORORROOROROROROROROROORRROORORRROOROOOORRRROOOOROORRRORRRRRORRROORRRRRRRRROOOROOOROOOROOROOROOROOROORROORRRRORORRRRORORROOORROOROOOROOOOOOOROROOOOROROROROROROOORROOOROORROOOROROOORROOORORROOROOOOORRRRROOORROOROORROOOROOOROOROROOROORRRRROOROROOOROROROROOOOROROOORRORRROORRROROROOOOROROOOORORRRRRRORRROROOOORORORORRROOOOOOOOOROOOOOOOORROOOROROOROORRROOOROORRRORROOOOOROROROROOOROOORRROOOORRORRROOORRROOOROROROOOROORRORROROORORORROOORROOROOORROORRRORRRROORROOROOOOOOROROROOOOOOOOROOROROORRRROORROOORORRORORORORRROROOOROOROOROOOOROROOOOOORORRRRORORROOORRRRRROORROOOORRRRRORROOROORRRRRORROROROOOROROOOOORROOORROROOROROROOOOROOOROROROORORRORRROOOOORROORROROROOOOORORRRRROOOORROOOORRRROORRORROOOOROOOORRRORROORORRORRRRROORORRROROOORORORROOOOROOROOROROORRORROOORRROROORRROROROOROOOOOROORRROOOOOORRROROORORRROROORRRRRORROOOORRRRROOOROOOOOOORORRORROOOOORRROOROOOOROROROORROORORRORRROOOROROOORORORRROROORRROOROOROORRRROROORORRRROOOORROORRROROOOOOROOORRRRRRRROOORRROROORORRORRROROOOOOROORRROOORROORRRRROOOOOORORORROROROORRORROOOORRORORORORRRRROROORORORORROOOOROORORRRRRRRROROOOOOOOOOROOROROORROORRRRRRRROOROROROROROOOORRRORROOROORORROOOORRROOORRROOOOOOOOOROOORORROOROOROOORRRRROROOORROORRROROOOOROROOOOOOOORRRROOOROROORRROOORRROROROROORROROOORROROOOOORRROROOOOOROOOROROOOROORROOOOOROOORRRROOOORRORROOOROROROOORRROORRORROOORORORROORROOOROROOROOOROOROOOOORROOROROORROORROROROOORRORRROOOOORRORRROORRRRORRRRROORRRRROOOROROOOOROROOOOORORRORRORRORRROOORORRROROOORRRORROOOOOROOROOROROOOOOORORRRRROOOOORRROORROOOOROORRROOOOOOOOORRROORRROORORORORORROOORRROORRRROORRORROORRORORRRORRRORRRRORRORORRRRRROOOOROROOOROORRORROORRROOOOOORRROOORRROOOORROROOOOROORRRORRRRRROOROORRROORORRROOOOORROOOOOROORORRROROOOROROOORORRROROROOOORRRORRROOORROOORRROOROOOOOORRRRRRRRRRROOOORRROOOORROORORORROOROOROROOORROROOORRRROROOOOROOORRRRRRROOORRRRORRORROORRROOROROORROOROROOROOOROOORORORRROORRRRRRROORORORROOOOOROORORRRROOOROORROOOORORRROROOORRRRORROOOOROROORROROOOOROOROROOROOOOOORRRRRROOOORORRRRRROROOORORORORORRORRRRROORRRRRRRROROROOOOROOROOOROOROOOOROORROORRORROOORRRORORORRORORRRROOOORRRRORRROOOORRROOOOORRROROOORROOROORORRROORORROOORRRRRORORRROOOORROORROROOOOORROOROOORRRRRROOOOORRRRRORRORORRROORROOROROORRRROORRORRROROORROROORRRRRORORRRRROORORORRRRRORRRROOOOOORROOROORROORROORROORROROROROORRORORORROROOOORRRRRORRRRORRROORORRRROOROOORROROOOOROORROOROROOROOROOORROORORRROOOOOOROROOOORROOORRRORRRRRRRORRRROOOORORORROROROOOROOROOOORRRRRROROORRORROOROROROOORRORORRORROROOORRORROOOOROOORRROROOORORROROROROOROOOROOORRRORRRORORRROROOOORRRRROOORRROOROROORROOROOORRROOOOROOOROOOORRROROOROROORRORROOOROOOROROROOOOOROROOORRRRRORROOOOROOORORRROOORRRROOOOOROOOOORORROOORORORRROOOOOOOROROORRROOOROORORRRRORRRROOORRRROOOROOORRROOOOROOOOOOOOORRORRORRRORORORROOORRROOORRROOROOOORRORORRRRRRROORROROOOROOOOOORRRRORRRROROOOORRORRORORRRROOORRROROOOOORORORROOOROORRORROORORROORRROOOORRRORRRORORRORROOOOROOORRORORROORORROROOORORROOOOORRROOROOROOORORRORROOOOOOORORORRRRROOORORRROOROORRRROOOORORROROORORORRRRRROROOOOOOORRRORROROOORRRRORRROORROOOROROROOOROOROROOROORORROOOOOROORROORRROOOROORRRRROROOORRROROROORROOOORROOOROORROORROORORROORRROOORRORRROORORROROORROOROOORORRRORROOOOORROORORRRROOORORORRRRROOROROROROOORRROROOORROORRORORRROOORRROOOOROOOROROOROROOORORRRRROOROOORRRORORRORRRROROOOORORROROOROROOORROORORRORROOORRORROOOORROOORORROORRRRRROOORROROORRRROORRROOOOOOROOOROOORROOOORRROORRRRORRRROOOROROOORRRROOOROORRRROROROORORORRRROOOOOOORRRORRORRROOOORROOROOOOORORRRROORRRRROORORORRORORORORRRROOROORRORRRRROROORROOROROOOOORRRORRRRROROORORORRORORORRRRRRORRRORROORROORRRROORRORRRROOROOROORRORORRORRORRROOROOROOORROOOORRORROORRORRRRRROROROORRRRORRROROOOORRORORRRRORROORRORROOOOOROOORRRROOOROORRRORORROOOROROROOORROORRRROROROOORORRRRROROOOOROORORORROROROROOOOROOROOOORRORRROOOORORROOROOORRRRROOOOROOOROORRROROOROROOOOROORROOOORORRRRORRRRORORRROOORRORROROOORORROOROOROOROOROOORORORRORRROOOROORRROORRORORORORRRROORRORORORROOROOOORORRRRORORORRROOORORRORRROOOORRORRORROORORROROROOROOOOOOORRROOOOORORORRRRRROORRRRROOORRROORRROOORROOOOROORRRROROOORRROOOROOROROORORORRORRORORORORRRROOOORROORORORORROORROOOOROOROOOORRRRORROORROOOOORROOOROOOROROROOORORROOORRROOOROOOORORORROOOORRRRORROROOROROOORRROORORROOORORRORRROORRRRRROOOOORORRRORRRRROROOROOORORRORRRORORRRORORRORRORRROOORROORORRRRORORRROROORROOOOORRROROOOORORROOROORORRROOROROROOOROOORORRRRORROOORRRRROORROOOOORORORRRRROOOOOORRORRORRORRROOORORRORROOORRROOOOORORROROOROOROOOORRRRROORORRROOOROORROORRROROROORROORRRRORRORRRRORROOOOOOROOOOROOOROOOOROROOROOOOORORRRRRROOOOORROOORRORRROROOOORRRORRORRRROOOOORRROOOOOORRROOOROOOORRRRRRROOORORRROOORRRRRORROOOROORORROROROOOOORRROOROOOOOORORORROORRRROROOOOROOOORORRROOORRRORRRORRORROOOORORRRORRRRRORRORRRORORRORROOORRRRORRRRRROOROOOOORROOOOROORRRRORRRROROOORROOORRRROOORRROORORRRRORORORORRROOOOORRROORROOOOOOROROROOOOROORRRROOROROORORRORORRRRORORORRROOROOROOOORROROOOOROOORROORORROOORORRROOORRRRORORRROOROORORROOOOOROOROOOOORORRRRRROROROOOOORRROROOOORROOOOROOROORROORRROOORRRORORORRROOOROOOOROROROOOROROORORRROROORROOORRRROORRROOOOROOORRRROORRRRRORORRRROOROOOOROORRORROROROORORROORROROOROROROROORROOOORORRRRRROOROORORRRRORORORRROOOOROOROOROOOORROOROOORORROOOORRROROORRRROORRRROOORORORROOORRROOOORRROORRRRORORRROORROROORRORORORORRROOROOORRRRROOROROROOROOOORRRRRROOOOOROORORORRRROORROOOORROOROOROROROROOOOOOROOORORRROOOORRROORRROROORRROOOOOROOROORRRORRORRORROOORRORRRROROOORORRRRROROORORROOOROOOOORORRRROOOOOOOOORRRROROOORORROOOOOROORRROOOORORROROORRROROORRRROORRORROOOORRRRRORORRORORRRRRORRRRROROORRRRRROOOORRRRRORRRROOOOOOOORRRRORROROROOOOOORRORROOORRORRRRRRRORRORROOOROROORROORORROOROORROROOOROORORRRRRORRROROROOOORORRRRRRORORRRRORROOOORRRORORRROOROOOOORROOROOORRROOROOROROORORORRROOROOORRRRORRRRORORRRRORRRRORRRORROOOOOOOOROORROOOORORRRRROOOOROOORRORRRORRRRROOOROOROORRROORRROORRRRROOROOROROORORRROOROROOROORRORROOROROORRROROOORRRRORROOOROOOORROROOOROORRRROOROOROORRRRROOOOOOROROORORRORROORRROOROOROOROROROOROROOOORORRROORRRRROOROORROORORRROORROROORORORRORROOORRORROROOOORROOOORRRROOROORRROORRRRROROOORORRROOOROOOOORRORRRORRRRRORORRRRRRROOOOORRROORROROOROORRRROOROOROOROOORORROORORRRORRRRROROROOOORROOOOOOOORROORORRORROROROOORRROORRROROROOROORRORROOOORORRROROROORRRRORRORORROOOORROORRORORORRROOROOROOOOROORRRORRROOORORORROOORORROOORRROOROROORRROOOOOROOORRRRRROOOROOOROOROROOORRROOROROOROOROOOOORRRRROOORRRORROROOOORRORROOORRRRORRORORRORORRRROOOROOOOORORRORRROROOROOOOROORORORRRROROOORORROOORRRRROOOOOOOROROROOOORORRRRORORRRORRROORRROORRRROOORORRROROOROORROROROOORRRRRRROOOORRORORORROORORRRROOOOROOROORROOOOOOROOROROOOOOROROORORORRORRROOOROOORORRROOOROROOOORRRRRORRORRRROORORRORRRORRROOOROOORORRRRRRROORORROOOOORRORORRRROOROOROOOORRRRORRROORRRRRRORRORRRROROROROOROOOOROROOROORROORROROROOOORORROOORROOROOORRORORORROORORORRRORORROOORORORORROORRORRRROROOOOROROOOROROOORRORRORRROROOOOOORRORORORRRRRRRRRORRRROOOOROOORRRRORORORRRRRRRRRRROROROROOOROORORROORRORRRORROORRROORROORORORRRRRORROOORORRROOROOORORROROOOOOORRRRROOOOOOROOOOROOOROOOORRROROOROORRORRROROROROROROROROOOORORROOOORRORROROOORRROROROOORROOOOORORROOOOOROORRORRROORROROOOROROOOOORROOROROOORROROOOORORORRRRORROORORRORRROOROOORRRRROROOORORROOORORRRRROOROOOROOROOORRRORROROORORRORRROOROROORRROOOOORRRRRROOROORRORRORRRROOROORROORORRORRROOORORORRRRORRRROROORRRRORRRROOORROOROOOOORRRRRORORORROOORROOOOOORRROROOOOOOOORRRRORORRRRROOORRROORROOORRRRRORRROORRORRRROOORRROORORRORRORROOROROORORRORORRORRRORRORORORROOORROORORROORORRRRROROOOORORRRRRORROORRRRROOOOOORRRROOOROOOROORRORORORRORRROORROROOOROORRRROORORROOOOOOOOOROORROORRRORRORRRRRORRROROOORRRRORORORRRRORRRRRRRROOORROOORRRRROROORRORRRRORRORORRRORRRORRORRROOOOOOROROOOOORRRRRROROOOOOOORORORORRROROROROORRRRROROORRROORRROROORORRRROOROORORRRRRORRRORRORRROOROROORRRRORRRROOROROORROOROORORRRROOORROORRRROORROOORROORRRRORROORORROOOOOOORRORRORROOOOOOOOOORROORORROOORRRORROOROROROOORRROROORORROORORROOROROROOOORRRRRRROOOOOOOROOOORRRRRRRROOORRRRRRRROROROOROROOOOOOROOROROOROORRORRORROOOOOOORRROORORRRRRORORRORRROORRROROROOROOORRORRORRORROOROOORORORRRRORRROOROROOOOOROROORORRORRRRROOOOOOROROOORORRORROORROROORRRROOORROROOOORORROORORORRORRRORROOOOORROOORROOROORRRROROROOOROOOROROORRROROROORROROROOORRRORORROORRRORORRROOOOROOOORRRROROOORORORRROROOROROROOORRROORORROOOOOOROORROOOORROOORRROOORORRROOORROOOROOROOOOORRROORRRORORROOOORRROORRORORROOROOORROROOROOOOOROORRROROOROOORRRROOROOOROOROROOORROROORROORRRRORORRROOOORORRROORORRRRROORORROORROROROROROOROORORROORRRRRORRRORRRROROORORORORRRORRRORROROORORRORRORORROORORROOOOOOROOOORROOROORORORROOOORRROOOOROOOROROOORRROROOOOROOOROORORRRROOOORORRRORRRRORROROROOOORRORRRORORROORORRRROORORRRRROROORROORROROOORRRRRRRORORROROOROROOOOROOOORORROOROOOOOROROROORROOORRRRROORRROOOOORRRRRORROOOOOROROOROORRRRROROROROORORRORORORORRRROOOOOOORROOOROROOOROORROORRRORRROOOOOROORRRRRRRORROOROROROOOOOOOORRRROOROROOROOROROOORROORRROOOROORRRRRRROORRROORRRRROOOORRROOOOOOOOOOOOOOROOOOROORRROOOOOROOORRROORROOOROOORROROORROOOROOORROROROOORRRRRORROOROORORRRRORROROOORRROOOOOOOOORORORRRRROROORROROORROOORRROOROROOOOOROROOORRRORORRORORROOROOOORRROORROOOOOOOOOROORORRRRORORORROROROORROORRRORRRORRRORRRROOOOOROORRRROOOORORRRRORROORORRROOOROOORORRROROOOOOORORRROOROORRORORORRRROORORORRORRRRRROOROOOORORRROOROROOOROORRORRORROROROROOOROOORORROROOOOOOROOROOOORORRROOROROORRROROROROROROOORROOOOOOOORROOOOOOROORROORROOOORORORORRRORROORROOORROOROORROROOOORRORRORRROORORORORRRROORORROORRORORRORROOOORRROOROORRROOOORROORORROOROROOOOORRRROOOOOROROOOOROROORROOORRROORROOORRORRRROOORRROOOOORRRROORRORRRORRRRRRORRRRROOORRROOOORROROORROOROOORROROORROOROOORRORRRORRORORRRRORRRRORROOORROOOORORORRORRRRRRRROORORRRROORRROORRRROORRORRORRRROOOOOOOOOROOOOROOROROORRORRORRRROOORRRRORORORRROOOORROOOOOOROORRRORRORRORROROORROOROOOORRRROOROOORORRORRROOOROOOROOOORRORROOORRRROOOOOOORRRROORRROOOOOOORRRORROOORRROOOORORORROOOORRROOROOOROOOROOOORRRRRRRRROOORROOOROOOOORRROOORRORORRORORORORROOROROOOROORROORORORRORRRRROOROROOROROORRRROOOOORRORROOROOOOOOORROOORROOORRROOOORORRRORRRROOOROORRRRORORROROOROOOOOOROORORORORRORROOROORRRRORORORORRORRRROOOOOROORORORRORROROOOOORORRORRRORORRORRRRORROOOROROORROOROOOOOROOORRORRORROOOROOORROOOROROROOOORROROORRORORRROOORORORRRRROOORROROOOOOOROROORRROROOOORROROOOOOROOORRROROOOORROOROORRORROOORRRROOOOOORRROOOOOOORRRRRORRROORORRROOOOROORRRRRROOROORORRRROORRORROOOROROOROOROROOOROOROORRRRRRRROOOORORRROORORRRORRROOOORRRRRROORRRRRRRRORRRRROOOORRROOROOOORRRRRRRRRORROOROOORRRRRORROOOROOROOORRORORRROOORROOORORROOOORRRRRRORROROOOORRRRROOOOOOOROOOOOROOROORRROOOROOROOOOOORRRROORRORRRRORROROROOOROROROROOORRRORORROORROROOOORRRROROORROOOOOOROROOOROOOORRRORROROROOROROROORORRRRRROOOOROOOOROOOOORORRROOOOOROOROROOOROORRRROROROROORRRROOOOORORROOROROOOOOROOORORRORRORRROOOOOOROOOORORRROOORRRRRROROORRROOOORORROORRRRRORRORRORRRRROORRROOOOOOORORRORRRRRORORROOOORRORRRRRROOOOROOOROORRROOOORRRRRROOOROORRROOOORROOROORRROROORORORORRRORROROROOORROORORRORORRRROOOOOORRORRRROOOORRRRRRRORROORRROOROORORROOORRROROORORORROOOOOROORRRRORORORRRRORORORRRROORRRORORRORORORRRRRRROORRRRRROOOORORROOORORORROORRORORRORORRROOOOOORRRORROOROOOOOOORORRRORROORROOOOORROROORRRROOORORROROOOROORRRROORORRRORROROROORRROROOORRRRRRROORRRRROOROOOOOROOROORRORRORRROOOOOOROOOORRROORORORROROORRORRRORRRORORORRORROROOOOOROROOOOOOOROOROOOORORROROOORORROOROROROOOOROOORROOOOORORORRRRRROOOORORORORORORRROOORORRRRROROOORRRRORROOROOOOORRRORORRRRROOORROROROORRORORORRORRORRORROOORROORORRRORRRRROOROOOOROOOROROROOORORROROOOROOOOORRRORROORROOORRRRROROORORRROOOOOOOROOORORRROROOOORORROORORRROOOORRRROOOOORROORRRRRRROROOROOORORROORRRRRORRROROOOOOOROROOOOOORORORRORROORRRORORORROROOROOORROORRROOROORROROOOROORROOOORRRROOROORRORRRRROROROOOROOROOOOORRRORRORRRRRROROOROOOOOOROROOOOOOOROOOORORROOORROROROOOOROOOORRROOROROOROOORRROORRROOORROOORORROORROROOOROROOOROORRORROORROORORORROROROROOORROORROORRRORRROOORROROORROROROROROORORROROOROROORRROOROOOOOORORRROOOOOROOORRROOROROORRROOORORORORORRROOORORROOOROROOORRROORRRROROORORROOOOORRRORORORRRRRORROROOORROORRROOOROROOOOOOROORRRRORORRORORRORRRRROROOORRRROOROORRRORROOOOORRORROORRROOROOORRRRRRRROROROROOROORRRROOOROROOOOOORROROOOORORORORRRROOOROOORRRROORORRROOOORRRROROORRRRROOOROORRRRRRRROORRORRROROOOOOOOOROOOROOOOOOORORROORROORRROORROORRROROOORROORRORORRORRRRRORRROOROOROROORORORRRROOOOOOOOORORRROOOOOOORRROROORRROOORRROOOROOROOOORRRORRORROOROOORRRRROORORORRROORRORROORORROOORORRORROROOROOROROOOOORRROORRROOROOORORRORRROOORRROORRORORRROOOOORROROOOOROROOROORROROOOROOOORRROROOORRRROOORORROROOROORRROOOOOROROOOOOORROOROOORRORORRRROOOROOOORRRORRRROORRRRRRORRORROOOOORROROORRORRROORRORRROORRORROOORROORROROROORROORROORORROORORRRORRRRROROROORRRORROOOROOOOROORORROORRRRORRRORRRROORROOOORORROOROOOOORRRRROORORRRORRORRRRORROOORRRRORRRORORRRRROROOOOOOOOORRROROORRRRROROORRROORRROORRROOROOOOROROOROROOOOOORRORRRORRROORRORROORRRRRROOOOROORRRROOOOORORORROOOOROOROOORROOOOROOOORRROORROROOOROROOORRRROORROOORRROOOROORRROORRROOOROORRORRRROORORORROOROOOROORORROOOOORROORORRRRRORORORRRRORORROORROOOOORORRORROORRRORRROORRRROORORRROORRORROROOORORRORORRORORRORRORRROROORORRROROORRRRRROOOROORORROOORROROORORRROOROOORRRORORRROORRRRRORRROORORRRROOOOROORROOORRORROOROORRRORRORORRRRRRORRROOOORORORROOROROORRROORRORRRRRRRROOROOROOOORROORORROORORRORRORRORRROORROOOOORRORROOOOROOOORRRRRRRRORROOOORRORROOORRORRROORROOROORRORRROOROROORRORRRORRRRORORROOROOROOORROOOROOOOOORRROROOOORRRRROOOORROOORRROOORORROORRRRORROORORRRRROROORORORRRROOOOORORRRROROORORRRROORROOOOROROOROOOOOOOORRRROROORRRROORROROOOROROORORORRRROOOROOROROORORROOOOORORRRROROORROORROROORROORORRRROROOROOROROORRORRROROORRROOOOOORRRORORRROROORRROROOOROORRROORRORRRROOOOROOOOOORRROOROOOOOROOOROOORORORRROOOOOROOORRROOROOORRORRRROROOROORRRORORRORROORROOROOROORRRORRROROOOORROORRRRRROROROORRRRROROROOORORRORRORRORORRROOOOROOROROOOORRRRRORRRRORORROROOOROORORROOOROORORORROROOOOROOORORORRRRROOOOROOOOROORROOORORROROOOOOROOORROROROROOROOORROROOOORROOOORRRRRORRRRROORRRORROROROOOORRROOROOOOROORORORROOROROOORRRRRRROOOROROOORORRRRRORORRROOROORORORORORRROOOROORRRORORROOROOORROOOOOROOROROOOOROOOOROROORRRORROOORROOORROORORRROOROORRRROROORRORROOROORROROORRORRROROORROOOORRORROROROOOOOORORROROOOROOORORROROOOORORRORORRRRRORORROOORORRRRROOORROORROOROORORRRRROORORRORRRORORRRORRRORORRRRORROOOORORORROOROORORRRROROOOOOROOORRORRORROOORRORROORRRROROOOOROOOOROOOOOROOROROOOROORRORORRORORORROROROOORRORORROROORRRORRROORROROOOROOOOORRROROOORORRRRROOOOROROROOOROOOOOORORORORROOORRROORROROOOROROORRRROORRRRROOOOOROORORRROROORRRROROROOROOOOORRRROOOOROOOORRRORRROORRRORRROOROOOOORROOOROROOOOOOROOOOROORRROORRRORRRORRRROOOOOROROROROOROOOOOOORORROROORROOOROORROORORORRROOROROORROOROROROOOROORRROOOOOOORORROOOORROORRORORRROROOORROORROORRROOROOORRROROORRROORRORORROOROORRRRORRORRRROORORORRROROOOOOORROOORRORRORROOROOROOROORRROOORRRROORORROORRRORORRRRROORROROOROORRRRRRROOROORORROORORORRORRRROOOROORORORROORROORROOOOOOROORROOOORROORROOORORORRRROOOORORRORORORRROOROROOROOOOOOORRROOORORRRRRRRROORROROOORORORRRORORROORROOROORRORRRRRRORORRORRRRORROOOORROOOOORORORROORROROORRRRRRORORROOROROOOOROOOORORROROOROORRORRROORROORRORRRROROOOROROOOORORRORORRRORROOROORRRRROROOROROOOOORRRRRRORRROOROOROORRRROROOORRRORROROROOROOOORORORRORRRROOOOORRORROORRORORROROOOOORRRRROORORROORORROROROORROOORRORROROROOOOOORORRORRRROORRROORORRRORORORORORRRORRORRORRORRROOOROOORROOROROORRROROORROROOOOOROOORROOROOOOOROOORORROOORROORROOOROORROORRROOORRRORRROORRRORRROOOROOORROORRRORROOROORORROORRROOOORRRORORROROORORRRRRORROOROOORROORORRORRRRRRRORROROORORRROOOORRRRRROOROOROORRRORRROOOOOORROOROROORRROOROOOROOOORORORORROROOORORRORRRORRRRRROOOORRRRORROOORRRORRRRROOOOROORRRORRORROOORRRRRRORROROROROOOROOROORRROOOROOROOOROORORRRRRROROOORROORRRORRROOORRRORORRRRRRROOORROOORROOROROOOOOROOOOOOOROOOOROORRRRROOOOORROROOORRROROOOORROOOOROOROOORRRROROROOOORORRROROORRRRRRROOROOROORROOORROORORRROOROOROORRRRORRRORRROOOOORRRRRROORORRRROORORRROORORROOOROORROOOROROROOORORRRROOOOOORRRRRRRROOOROROOORROOROOOOORRROROOROOROORROORRRORRRORROOOROORROOROROOORORORRORRORROORRRORRRRRORRRRRRRRORRRRORROOORRORRORROROOROOOOOOROOROOOORRRORRRROOROOORROROROOOORROORORROOOROORROORRRRRORORRROORROORRRROOOORRROOOOOOOORRORRORORRRORRORRROOOOORORORORRRRORRRRRRRRRROOROROROORORRRRRRRROOROROORORRRORRRRRROORROOROORROOOOOORRRRRRRORRORRROOROROORRRROOOOROOOOOOOOORRRRRRRROORROROORRRROOOORRROORRORORRORRROOORORORRRRROOOOOORROORORRRORRROOOROOOOOOOORRROORROOOOOOOOROOROOOORRRORRRORRRRORRROORRROOROOORRROROOOOOORRORRRRRRRORRORROOOROOOROROROOOOORRORRORRROOOOORRROOORORRRROOORROROOOROORRROOOROOORROORORRROORRROOORROORORROORROOOORRRORRORRORRRORROORRRRROORRROOROORRRRORRRROOOOOOROOROOROOROROOOROORRRRRRROORROORRROROOORORRRROROROORORRRORRROOROOOORRRROOROOORROORORROROORORORRROORRRROOROROORRRRORROORROOOOOOOORRORRROOOORRRORRROOORORORORRRRORRRORRRORRRRROOROROORROOORRORRRRRRORRRRRRRORORRRRRORRROORORROROORRRORRORRRROROOROOROOROROORORORRRRORROOROOORROROROOOOROROROOORROROROROORRORORRRROOOROOOOORRRRRRORRRROORORRRROORRRRORORORRORORRRRRRROOOOROORRROOOORORRRRROROOOOOOOROOOROROOORRROORRORRORORROOORROROROOOROROOOORRORROROOOOORROOORORROROOOORRRORORROORRRORRRROOOORROORRROOROROOOOORRORORRORORORORRRORRROORRORORORRROOORORRRRROOROOOROOORRRRROROROOORROORRRRROORRROROORRORROORROOROORROOROORRORROROOOOOROOOROOROOORROOORRRRROOOOORRROORRRORORRRROOROROOOOOOORRRORROOOOOORRROROORROORRROOOORRORORROOOROROOOROROORRRRRRRORORRRRORORRROOORRRROROOROORORRRRORRROORRRRROOOOOOOOORROOORRORROROORRORROORRRROROROORORORROROOOOROORROROROOOORORRROROROORROOOORRRORROOOORRROROOROORROOROOOORRORROORRROOROROOOROOOOORROROOORORRROOROOROOOORORORORROORRORORRORRORROOOOROOOORRRROORRROOOOROOOOOROOROOOORROOROROROOOORRRORORRRRRRORORRRRRORORRROOORRRRRORORROROOOORROORRRROORORORRORRORRRRORRROOOROOOROORRROORRORRRRORORRRRRROOOOORROOROORRROOROORRRRORRORRORORORORORRORRORORROORORRRRROORRORRRRORRRRORORRROOORORRRROROROOOOROOOROORROOORRROORRRORRRORRROOOORRORRRORRRORROORRORORROOROORRRORRROROROORROORROROOOOORRROOROOOORRRRORORORORROORRROROORORROOOOROOORROORROOROROORORROOOROORRROORRRRROORROORRORROORRRROOORORRRORRORRRRRROOOOROOORROORRROROOOOROOORORRORORORRRROORORROROROOOROROORROROOOOOROORRRRORROROOORRORRROORROOOORROORORROOOOROROOOOROROROORROOOORROROORRROOOORRRORRRROROOROROOOOOROOOROROOOROORROORORRRORROOOOOROROOROORRRROOOOORORROOROOORRRORRRRORORRORORORORRRORORRRORRORRORROORROOOOROORRORRRROROOOORRORRRROORROOOROOOOOOOROROROOOROROOROOOOOOROORRRRROOOOROORRRRRORRRROOORRORORORROROROOROROOROROOROOORRRRORROORORRORORORRRRRORORRROOROORORRRORRRRORROOROORORRRRRRORROORROOROOROROORROROROROORORRORRROORORRROOOORROOORRROOORORRRORROROOOOROOORRORRRRROROROOOOROORRRROROORRRORRROROORROORROOOOOROOORROOOORORRRROROROOOROOOOORRORORROOOORORRRROOORRRROROORRRRRORORROORRRORROOOORRORRRROORROOROORORORROROOOORRRRRORROOROORRRRORRRROORROORRRROROOOORORRRRRRRRRRORRROROOROORORORRRRRORRORRRORROORRRRROORRROOORRORRORROOOOOROOOOROORRRORROOOROOORORRROOOROORRRORRRRRRORROROOOOOOROOROOOORROROROOROOROORROROOORRORRROOORORROORRROROOORRORRROOOOROORRRRRORROOOOORORORROOROROROOORROROORROOORROORROOORORRRRROOOROOOOROROROROOORORRROROORRRROOOOOORROORRROOORROOROROOOOROORRRROOORRROROORRRRRRROORROOOOOROOOOORRORORORRORRORROOROROOORRROOOOROOORRRORRRRROOOORORRRORROROOORORRORROOOOOOOORRROOROOROOOOORROROOOORROOORRROOOORRRORROOORRRORRROOOOORRROORRRORRRRORRROOORORROROROOOROOORROROOROOROOROOOOROORORROOROOOROOOROORRRRRROOORROROOOORROROROOOOOORRRRRRRROOOROORRRORRROROORORORRORRORRRORORROOROROOROROOOORRRRRORRRRRRORRRROORRORRRORORRRRRRRRORROORRRORROORROOROOORRRRRRRROROORORROOOOOOROOOOOORROOROOOORROOOORROOOORRRRROROROORRROORRRRROOORROOORRRORROORROOORORORRORROOOROOROOROOORORORROOROORRORORRROOROORRROOOROROORORROOOOORORRORROROROORRRORROOOROORRROROOOOROORROORRRRRROORRRORORRRROROOOROROORORRORRRROOORORROOOOOROOOROROOOOROROORORRRORRORORORRROOOORRROOROORORRRRROOROOORORRORORRROROROORROOOOOORROROROOOROORRORORRROROORRROOOOORRROROOOORRRORRRROROOOROORORRRRRRROROROOORORRORRRRROORORORRORRORRRRROOORORROORRRRROORROORORRRORRRRROROOOOOOOOOOOORROOOOORORROROOOOROOORRROOORRROOROROROOOORRROOORORORRRRROORROROOOORORRRRROROROOROOROOOORRRRRROOORRRORROROOORRRROORRRORORRORROOOOOOROOOOORROROOOROROORROROORRRORRRROORORROOORRRORRRORRRROORROOROOROORROOOORROROOOOROORRRORRORRROOOROORROORORORRROROROORRROORORORORRORRROOOOROORRROROOROOOOOOORORROORROOOROOOROORROOORORORORORROROOOORRROOORRRRROORROOOOORORROOOORRRORORRRRRORRRRRROOORRRRRRORORROOORRORRRRORRORORRROROORORROORROOOOOOOROOOOOORRORORRRROOROOOOORORORORRRORROORORRRRRRRORRRORRRRORRORRRRRRROORROROOOORRORORROROROOOOOOOOORRRROOOROROOROOOORRRORORRROOOOOOOORROORROROOORORROROROOROOOORRRORRROORORRRRORORORRRRRRROORRORORROROOOROOROOOROROOROORROORORRROORORORORRORORRRROOOOOOOROOOOORRRRROORROROOORROROOORROORRROORORRORORROROOOROOROOOOOOROOROROOROROOORROROROOOOORRROOOORROROOOORORRORRRRORRROOROORORRRORROOORROROOOOOORROROROOORORROOOROROROROOOORRRORORRRROOOORRRROORRROROOORRRROOOORORROOOROOROOOROOROOOROOOOORRROROORROOOROOOROORRROROOOORRRROORORORORORRROOOROOOORORORORRRROOROORORRRROORRRROOORORORRRROROROOOOORORORORRORROORORRRROOORORROORROROOOOROOOORRRRRRRROOOROORRRORRRROOROOOROOROOROROROROORRORRRRRORRRRORROOORRRRRRORORORRRORRRROOROOOROOORROORROOOOROROORROOROROROOOORRRORRRRROOORROROROORRROROOORRRORRRRRRORORROROOOOROOROORRROOOORORRRRROOOOORRROOORRORORORRROOROOROORORORORROROOROOOROOOOOOROOOROROROOOORRORRRORRRORORORRRROROOOOROROOOOOROOORROOOORRRORROORORRRROOORRROORORROOORRRRRORRROOOOOROROROOORROOROROOOOOOORRRROORORRRROOORRROOOORROOORRRRRRROROOOOOOORRORROOORORRROORRRRRRROROROROOROOORRROORROOROROOROOOROOOOORORRROOROOROORRROOORROORROOROROOOOORRRRROROROOORORROOOORORRROOORRRRRROROOOORORRRRRORROROOROROROOROORRRORORRROOROOROOOORROOOROROOOOORORRROROROOOOOORRROORRRRRRROOOOOROORRROROORRROOOORRORRRRRRROOOOORROOROORRORRROOROOOROOROORORORORROOORRORRORRORRRORROOOROOOOOOOORRRORRRRRORORROOROOOORORROOORRRRRRORROROOOROOOROORRRRRRROOOORORROOOROOORROORRROORRORROOOORRORROORROORRORORRRRRORROORRROORORRRRRRROORRROOROOOOOOORRORRRRORRORROROOOOOORRORRROOROORROOOOROROOROOORROOOOOROOOOROROORORORRRRROOORROROROOORROOOOROOORRRORRRORORORRRRRRRORROOOORORORRORRROROOOOOOOORORRRRRROOOOROORRRORRRROOORRORROORORRORORORRRORRRORRORRORROORORROORORRRROORORRRRRROOOOROORRRORROORROROOORORROROOOROROOOROOROORRRRROROROOORRRROROOOORRRRROOOROORROOROORRRRROROORRRORRRORORORORRORRROORORRRORORRRRRRRROOOOROOORRORRROROOROROOROOROOOOORORRROORRRRRRROROOORRRRROOOORORRRRRRRRORROROOOOOOROOOOORROORRORRRORROOROORRRROOORRRORROROOOOROORROROOROROOROORRORRRRROOORRROOOORORORRRRORRRORRROOROOORORROORORRRRORORRRRROOOOORROORRRORRRORORRORROORORRROOORROOOROORRROROORORORROORRORRROOOORRROOOOOOROORORRORRRRRROROROROROORRROOOORRRRRRROOROORORRRROOOORRORRROOOOROORROOOORROOROROROROOOROOORORROROORORORROROOOORRROOORRROOOROOOORROORRRRORROOOOORROORORRRORORRORRRROORORROOOOOOOORRRORROORRORORORRROROOROOORRROOROOOROROROORROOROOOOOOORRRRROOOOROORRORRROOORROOROROROOROORRRORRROOOROOORRRROOOORORRRORORRRRRRRROOOORORRORRRROORROORRORRRRRRRORORRROOOOROROOORRRRORRRRORRORRROOOORRROORROORORROROORORORROROOORRRRRRORORORRRRROROOORORROOOROROOOOROORROOOOROOORRROROOOOORORRROOROOOOOROROORRRRROORRROOOOOOROOOORRRRRRORORRORROOORRROOOOROORRRORORROROORORORROOROORROOOORROROOOROOOOORORRORORROOOOORROROOOORRRROROOORROROROORRROORRROROROROROOOOORROOOOROOROOROOROOOORRRRORORRRORRRORRROORORRROOORRRRRROOORROOOOOROOROOOOROOROROOOOROOOOROOORRORRRORORORROORRROOORORRRORRRRROOROORRRROROROOROORROOOORRRRORRROOOROOROORROORROORORORROORORRRROOOOROOORORORROOOOOOOOORRORRORRROROOORROORRRRROOORORRRORROOOOORROOORROOORRORROROOOROOOROROOOROORRRRRORRORORRRROROOORRORRROOORRORROOROOOOROOOOOORRROOROORROORORRRROROROOOORRROOOROROOORROOOOOROOROOOORRROORRROOROOORRRROORRRROORRRORORRROORORORORORROROOROOROOROORORRROOOOROOROOROROOORRORRROOOROOOOORRRORORORROORROOOOROORRRRROOORRORROOOORROOOOOROROOOOROORROOOOOOROROROORORRRORORROOOOOROOORROOOORORROOOROORRORROORRROOORRORORRRRORRROORRROOROOORORRROOROROOROORRRROORORRRORORRORRORORORRROROOROOORRORRORORRRRORROROOOOROORRRORORROORRROOROORROROROOOOOOROORROORRRORRRORRROOOOOROOORRRORRORRROORORORRRROOORRRORORRRRRORRRROOOROORROOOORRRRROORRRRRROROOROROOROROOORRRRRRRROOOROORRRRORORRROOOORORRORRRORRROOROOOOOORORRROROROOOROOROOOOORROROROROOROOOORORORORRROOORRRRRROORORRROOOORROORROOOROROROOROROROOOOOOORORROOORROOOOOOROROROOOORRRROROROORRRRRROROROORROOROOOROOOOOOROROORROORRORRRORRRROOORRRRORORRRRRORROORORRRRORORRROORORRRRORRORROORRROOOOOOORRORRRRORRORROORROOOROOORORRROORRRORROOROOOORRORORRRROORROROROORORORORRROOOOOOROOROOORRROROORRROOOOROROOORROORRORORRORRROOOOOORRRRORRROORORRRROROORRRRROORROORORRRRRRORORROROROROOOOROROORROOROORORORRRRROOOORRROORORROROOOROROROOOOOOORRROOROORROOORROORROORROORRROOOOORORRRRROORRORORROORORORRRROOOOOORORROROOROROROOORORRORRORRRROOOOOOORROORRROOOOROROROORRRROROROROORROOOOOOORRRORRRRRORROOOORROOOROOOROROROROOOOROORRORRRROORRROROOOORRRROROOOROROOOOOOOORROOROOORORROORROROORROROROOORRROROOOROOOOORROORORORORRROOORORRRROROROROROROROORORRRRROOORRRRRORROORROORROOORRORROROOORRRRRROOOORRORRRORRRORORROOORRRORROOORRROORROROROOOROROROROROOOORRROOOORROOORRROOOORORRROORROOOORRROOOOORRRRRROOOORRORORROROORRORRROOORORRRROORRRRORRRRROOOROOOOOORRORRORROOOORROORRORRROROROROOROOOOORROOOOOOORROROOOROOOOROOOORORRRRRRROOOOROOOROROOORRORORROROORORRORRROORRROROROROORRRRRROOORORRRRRRROOORORRORRORORROROOORROOOROOROORRRRROROORRORRROROOOOOORROROOOOOROORRRORROORRORRRORORORORRROOOOOOROORROOROORRORORRROORRORRORRROOROROORROOOOOORRORORRORORORRORORORRRRRROOOOOROORORROROORROROROOOROORROOORRROOROORORRRORROROORRRRRORRROORRROORRRRROORROOORRRRORROOROOORROROORROORRRROOOROROOOOOROOOROORRRRORROOROORRORORRRROOOOROROROOROORROOOORORORRRRRRROORRROROOOROOROOORROOOOROORRORRRORROORRROORROOORRROOOROOOOOROORRRRRORRRRORRROROORRROOORRROOOOORORRRRRRRRRORROOOORRROOOORRROORORROORROORRRRRORORROROOOROROROORROOOOORRORRRRORROROROROOOORROORORORRORRROORORRORROROOOOOOOOROOOOROOOORRRORROOOOOROORORORORRROOROROOOOORRORRROORROORROORROROROOOORRRRORRORRORRORORROOOORROORRROORRORORORRORROORRRROOOROOOROOROROORORRRORROOORORRROROROOORROROOOROOOOORROOOOORORRRRRROOROOOROROORRRORROOORROOOOOROORRRRRRORORORRROOROOOOORRROORORORRRRRRRRORRORRRORRROOROORORRRRRRRROOROOOOOROOOROOOOROROOOORRORRORORRRROOOOROROROROOORRROORORRRRRORRRROOROROOOOOOORROORRROROOROROORORROROOORRROOOROROOOORORROORRORROROOORRRRROORORRROORRRRRORRRORRROOOROOROORROORRROORORROOROOOROOORROOORRORRRORRORROORROORRORRROOOROROOOROOORRORROOOOORORORROROOOORROOOORRRRRRRRORROORROOROORORRRRROOOOOOOORORRORRROORORRROROORROROROROOROOOOORORRROROORROOOROORROROORROOOOROOOORORROOOORRROOROOOOOROORROORRROOROOORRROOROROOOORRROROORRRORRROOORROORRRRRROOORROROORRRRROOROROOOORROOROOROROORRRORRORROOORRROOOOROROORROORRRORRRRRRROOORORROOORORRRORRROORRRORROORRRROROOORORRROOOROOOOROORROORRORROOOOORORRRROOORROOOORRROROORROORRROORRORRRROORRROORORRRROOROROOOORROORRORROORORORRRRRORORORORRRRRROOROORORROORRORORRRROROOOROORRROORORORROROOROOOOOOORROOOOOOOOORROOORROORORRRORORORROORORORORORRROOOOORORORRRROOOOOOOORORROROOOORRRROOOOROOROROORORORRROROOORRROOOORRRRRRORORRRROROORORROROORRROOORORROROOOOORORRRRORROOROROOORRRRORRRRROROOROOROOOORORRROOORRORRROOROOOORROORROOORORORRROORORRRROORORRRRRRRRROROOORRORRORRRROROROOOOORRRRRRRORORROOORORRROROOOOOOORRORROROOOORROROORRORRRRORROOOROOORRRROORRORROOOOOROROROORRROROROORORORRRRRROOOORORRRRRORROOOORRRRRRRRRRRRRROOORRORORRRRORRRORRORRRRORROORORORRRROOROORRORRRROROORORRRRORORRRRRROORORRORORROORRRRROORORRRRRRORRROROROORRORORORRORORRROROOOOROROORROOOOOROORROORORROOOOROROOROROROROROOORROOOROROOORORRROOOOORROORROOOROORRRROROOOORROROOORRORORROROORRRROOOROROOROOOORRORRRROOROOOROORRROOOOORROROOOOOROROOORORORRROORRROOOOOOROROOOOORORORRROORORRRRRORORORRORROORRRROOROORROOROOROOOORRRRRRRROOROROROOORORORRRORRRRORRRORROROOORORRROORROROORRRRORRORRRRRRROOOOROORRRRORRROOROOOOOOOOOOOORRROORORROOOROORRRORRROOOOOORRRROORROOORRROOOROOOROOOORRROORRROOOOORRRRRROOOROOOORRROROORRRRROOORRRRORRORRORORORROOROROOROOORRRRORRROOOOORORRRROOOORORRRROORROOOROOORRROOOOOORRROORORRORRRRROOOOORRORROOORORRORROOOOOROOROOOORORROOORRROOOROOROROROORRRRORRRRORORRRRRRRORROORROROROOROROORRROROOROROORRORORRROROOOROORORROROOOORROOROOOOOROOORROORRROOOOROORORROOOORROOOORRRRRORORRROOORORRRRROOOOOORROOOOOOROOOORORORRRORRORROOOROOORRROOOOROROOORRRROOOOROOOORRROOROOOOROOOOOROOOOORRRORROROOROOOORRROROORORRROOOROOOOOOROROOORRRORRROROOOOOOROROROROROOROOORORRRRROORRRORRRROROOOOORRRROOOOOOOORRRORORRORROOOORRRORORRRORRROOROOROROORRORRROORRORRRROOOOORRRRRRRORRRRRORROROOROOROOOROROOOROORORRORRRORRRRROROOORRROOORRRROOROORRORRROOROOORRROROOORRRORRROOORORORROOOORRORROOOROROORRRORORRROROORORRROROOOOORORRROOROROOROOOOROOOOORRROROROOROORRRORRRORORRRROORROROOOORRRORORROOOOOORRRRRROOROOOORRRORROORROORRRORRRRRRROOOORRROORRRRRROORRRRORRORROORORRRORROROORRORRRORROOORORROOOOROORRROORRRRRORROROROROOORRROOOROOROOOOOROOROOORORRORRRORROORROOORRROOOOORRRROROOOROOOROOOROORROROOOROOOOOOORROOOORRRROROOOROROOOOOORROOOROORRROORORRRROROOOOOORRRRRROOOORRRRRORRORROROOOROOOROOROORROOROORROORORRORRROORRRRRROROORRRORORROOOORROOROOOORRORROOOOROOROOROOOOROORRORRRRORRRRRRROOROROROOORRRROROROOROOOROORRORORORRRROOROORROROOOROORROOOOOOROOOORORORROORORORORRRORRRRRROORRRORRRRRRROORRRORORRROORRORRROROROOROOROOOROOROORORRRORRRORRRROROROROOORORRRRORRRRRROOOOROORROOOORROOOOROOORRORROOORRRORORROOOOOOOROROORORROORRROOROOOORRRROOORORRRRRORORRROORRRORRRROOROOOORRRRRRRROOOOORORROOROOROROORROOROOROOORRROROOORRRORORRORRRRROOORRORORRRRORROOROOOOROOOOORRROOORRRROOROOOOORROOORRROROOOOOOORROROORROOOROOOORROOOORORORRRROORROOOOOROORRROORRROOORRRORRRROOOORRRRRROOROORROROOOROORRORRROOORRORROROROROOROOORRROORORORRROOOOOOORRROORRROOOROORRRORRRROROROOOORROOOROORROOORROORRORROOORRROOORORORRRRROOOROOORORORRROOOORROORRROORROOORROORRROROOORORORROORRRROORORORRROORROOROOOORRRRRORRORROOOROROORRRRRRROOORRORROOOOOOORRROROOORRRORRORORORRRRRROOOOROOROROOOROORRROORRORROROORROROOORRRROOROOOROOOORORRRRROOOOROORRORRRORRROORROOOOOROORORORORORRORRRRORROOOROROOOROROORORRORROROOROOOOOOROOROROOOROROORORORRRROROOORROOORROOORRRRRROORROOROROORRRORRRRORRRRORRORRRORRRORRORORRORORRRRRRRRRROOOOOOOOROORORRORRRRORRORRROOROROROORRRROOROORRORROOOROOROROOOOORORRORRORRRORRORRROORROOOOROORROORORROOROOROOOORORORORORROOOOORROOORRRRORRROOOOOOOOROROOORRORROOOROOORRORRRROROOORORRRROORROORRRRRRORRRROORROOOROOROOROROOORORRRRRORORRROORRRRRRORORORORRRRORROROORROORRRRRRRRRORRROROOROORRROROROOOROOROORROOOROOOORORRRRRROROROROOOOOORRORORRRROORROROOROOOOORORROOORROORRORROORRROROOORRROOROORRORROOOORRORRRRRRRROOOROOORRRORRRRRORORRRORRRORRORRRRROOOOORRRRORORRRORRRORRRROOOOOOORRRORRORORRROORROORROORRROOORRRRRROROORROORRRRROOORORRORRRORROOROROROORORRORORRROROORRORRRORORORRROROOORRRRORROOROROOOORORRRROOOOROOOROORORORRRROOORRORROORRROOROROORRRROOOOORRROOROROORRRRROOROOOROOROOOORRORRRROORRORRORRROOORROORROOORORORRORORROOOOROROOOROOROORRRORROORRRRORRORORROROROROORRRRROOROOOOOOORROORORRRRRRRROORRORRROOORRRORORROORRORRRRRRROORORRRORORROORORROOOOOOROOROOOORORRRRORORROORRORROROROORRROOOROROOROOROOORRORORRRRROOOOOORRROOORROOORRRORRRORRORROOOORRRORORORRROOOORRRRROOROOORRROOORRRRORRORRROOROORRROOROROOORRRORROOOOOROOORRORRORROORRRROOROOORRROOORRROORORROORORRRRRROOROROORORRRRRROORROORROOOOOOOOOROROROOOOOOOOORRRROORRRROROROOORROOORRRORRROORROOOROOOOROOORRRRRROORRRRRRROOOOOROOORROOORRRRRRRRRRORRORROOORORRRRRRROOROORORRORROORORRORROROOOOOOORRORORRRRROOOORORORROROOORRRROORORRRORRORRROOOOOROOOORRROOROROORROROOOROOOORRROROOOROORRRROOOROOOORRROROROOROORRRORORRROROROROOORORORRRRORRRORROORRRRRORROORRRORROORORORRORORRRORRORORROOROORRRRROOOORROORROOROOORRRORORRRRORRORORRORRRRROOOOROROORROORRORORRRRROROOROOORORROORRRORRRORROORRORRROOROROROROORROROROOOROOOROOOOORRRRROORRROORRRROOORROOOOORRRORRRRRRORRORRRRRORORROROROROOOORORRORRORORROORORORROORROOORRROROOORROORRROOOORORROOOORRRORRORRROOROORROROOORORORORORRRRORRRRRRRROOOOOROROROORROORROOROROOOOOOOORORORORORRRORRROROROOORRRORRROOORRROOOROORORROORRRRRORRRORRORORROOORROROOOOOROROORORRORORRRRRORORRRROROOOORORRROROOROROORROROOROOROORRROORROOORORRRORORROOOROOOROROOOORRRRROORRRRRORRROOORRROOORRROOROOROOOOROORRRORRRORROROOOOORRRROORROOOORRORORRORROROROROROOROOOOORRROOORROOORRORRROROROROORORRRRRRROOOOOORROOROORROORRORORORRORRORORROOOORRRROOROROROORROORORROOOROOORRORROROORRORRROROROOOORRRORORRRRORRROOOOOOORORRRRRROOROROROOROOOROOORORORROORRRORRRORROORORRROORRROROROOROOROOOOORRORRRRORROOOROOOOOORROOORRROOOORRORROORORORRRRROOOROOOOOROROOROOOORORRROROOROORROROROROOROOOORRORRRROROOOOORROROOROORRRRROOORRRRRRROORRROROOOOOOORRRORRORRRRRORRORRRRROORROROROOROOOOOROOOOORORORRRRROROOOOROROOORORROROROOROOROOROOOORRROROORORRROROORRRORORRRORRROOOORRRORRRRRROORRORORRRROOOOOOORRRRORRORROOOOROOOOROOOORRRROOOORORORRRRROOORORRROROOOROORORRRRRRRORRORRRRROORORROOOORRRRRORRORROOROROOOOORRRORRRROORORROOORROROOOROROROOROOORORRROROOROROOROOORROORORORROORORROROOOOOROOORROOROOORROORRROROORROOORROORRRRROOROROORORROOOORROOORRROOOOOOOOOROROOOOROROROROROROORORRROORROOOROROROOOORROROOOOROOROOROORORORRRRRRRORORRRROORRROORROROROORRORORRORROORORRRORROOROROROOOROORORRRRRROOROOROOORRRRRRORRRORORRRORRORRRRROOOORROOROOOROORROORROORRROROOORRROORRRROOOORRORRRRRRRRRROROROROOORORRROOOOORROROOROORORROOROOOROOROORRROOOORROOROROROORRORORRROORROROOOROOROROOROORRRROORRRRRORRRORORROOOROOOROOOOOROROROOROORROORRRROOOOROOORRRRORORROOORRRRROROOROOOORRROOROORORROROROORRROORRORORORRORRROORORROOROOORROROORORRRRROROORRRRRRRRORRROOOOOORRRORRRRRORRROROOROORROROOORRROORORRRRRROORRRROORRRRRRROOROOROROROOROROOOOOORRRRRRORROROOOORROOORRORRROORRRRRRRROOROORORRRRROOORRORROOROOROOOROROOORRRORRORRORROOROROORRROOOOROOOROOOROORROOROROOOOROOROOORROOOOOORRORRORORRORORRROOROROOROROOORRROOROORRORORORROOOOROROORRROOROOOROROOOOORORRORORORORORROROORRRRRRRROOOORROROOROORROOROORRRRRRRRRORRROORORORROOOOORROOOOOORORRORORRROOROROORROOORORRROOOOOROROOOOROOORROOOORRROOOOOOORRRRRORRROORORRORORRORROROOORRROOROOOOORROROORRRROROORROROORROOORRROORORORORRRRRORORORROOOOORORROOROOOORORRRROROORRRRROOOOOORORORRROOOOORROROORROROORROOORROORORROOROOOOOROROOROOOROROROOOOOORORORRROOOROORRROORRRORORROOORROORROROOORORORORORRORORROROROOORRORORORORRROROOOOORRORRRROOORROROROOOROOROORRROOROOOROORRRRRRORROROORRRROOROROORRRORRROROOOOROOROOOOOOOOOOROROOORRORRRROOOORORRROOROROROORRORORRORRRRRORRRROOROROOOOOOORROORORRRRRRRRRRRRROOROROROOOOROOOOOROOOOOOOOORRRROOOROROOORROROOORORORORRROOROOOOORORRROROOOORRRRRROROOROORRROOOROOOOORORROOROOOOORRRRRRORROROORRROOORORRROROOOORROOROOORORRRORROROORRORRRRRORORRROROROOOOOOORORRRORORROORORRRRRRORROOOROOORORROORORROOOOORRORRRROROROROROOORRROROORRRRRORRORROROORRRROOOOROOOROROOOROOOOORROORORROORRRROROROROROOOORROROORROROOORROOROROOORORRROORROORRRROORROOOOORRRROOOORRROOOOOOROORORRROOORRRRRORORROOROROROOOOROOROORRRORORROOOOOORROORROOOORRRRROORRROROOORRROROORRRORRRROOROORRRRRROOOORROROOOOROOOOOOORROOOORRORROORROROOOORROORROOORRRROOOOOORRRORRORORORORORROOOOROORORORRRRRRRRRORROORROROOORORRRORORRRRRRRORROOROOOROORRROOOROROROOROORROOROOROROORRRRORRRRROROOOOOORROROOOROOORROORRRRRRRROROORRROORRORORROOOOOOROORRORROROROOOORRRROROORRORRRORRROROORROORRRORRORRRRRRRRORROOOOORORORROOOORRORROOROORROORROROROORRRRROOOOORRRRROROROOORROORRROORORRROOOROOOOOORRRROROOROOROOOOOOOOORRROORRROOROORRORROOOORROOORRROORORRORROOORROOROOORROORRROROOORORRORRROOOOORROROOROROORRRROOOOOOOROORRRORORRORRRRORRORROROOORRRORRRORRRRORORRORORROOROORRRORRRORROORORORRROOOOROROORRRORRRRRRORRRROORRORRROORORRRORROORORROROROORRRRRRRRRROROORROORRRORROOOOORROROORORRORORORROOORRRORRROOOOORROORORROORROOOROROORORRRRROROOROROOROOORORROORROOOROOROORROOOOORRRROROROORRRRRROORRRROROROROOOOOROOROOOROROORORROORORRRRRORORORROORRRRRORORRROROROOROOOOROROROOORROORRRROORRROORRRROROORROOOROROORRORROOOOOOROORORROOORRROOOROROORROROOROROOOOROORRRORRORORRORRRRRROROOOORROORRRRROOOOOOOOORRORRRROROROOOORRRRORRRROOORRRRRROOOOOROOORRRRRRRRORRORROORORRRRROOORROOOOOOOOOOOORRRRRORROROORORRRRROROOORROORRRRRORRRROORRROOROOOOOORRRRROORRRRROOOOORORROOORRROOOROORORRRRRROROROOOOROOORRORORORRRROORORROROOROOOORORRRORROOROROORROROORROROOORRROOOORROROORROOROOOORROROOROOROOOORRORROROORROROROROOOOOOORRROOORRRORRRROROOOOROORRROROROOROOROOROOROOOROROROORRORORRRORROOOORROOORROORROOORROOOORRRRORRROORRROOOORRRROORRRROORRORROORROROOROOOOROOORRRRRRROORRRRRROOROOOROOORRRROORRORRRRROORRORROORRRORORRRRRRRORRRRRRRRRORROORRRRROORRRRRRRRRORRRROROORRRROOROORORRRORRORORORRORORORRORRRROROROOOOOROOOORORORROORRORRORROOROROROROOORROORORROOORRRRROORORRRRRRORORROOORORRORRRRRRRROORRRRRRRRROOROOORORRRORRORROORORRORRROORORROOOOOROORORRRRRRORORRRRORORORRORORORRROOOOORRRROROOOORRRORORRRROROOROROOROOROOOOROROORORRRRRRROROROOORROOOORRRRROROROOOOOORRRORORORORRROOOROOROOROOORROOROORRROROROOROORROOROOOORROROROOOOOOORRRROROOOOORROOORROOOOROOORRRRORROOOORRRORROOOORRROOROOOROORORROOOOOOOORORROOOOOOROOORROOOOOOOROOORROOOROOOORRROROOOOOROOORRORORROROOOORROORORRROOOORRROORRRRORROOORRORORROOROOOROROORRRRROOROOOROOORORROOOOOOOOROROROOROROORORRROOROORROORRROORRROROOORORROORROROOOOOOROOROROROOOORRROROOOROOROOORRORRROROROOOOOROOOROROORORRROROOOOOORORRORORORORORROOOOROROORRROORROORRRROROORRRRROOOORROOOOORRRRROOROROORRRRRORRRROORRROOOROOROOOOROOOROORRRORRRRRORRROOOOOOORROORRRORRORRORROROOOOOOOOORRRRRROROORROROORROOROROOOORRROOROORRRROOOOROOOROOOOROOORRRORORROOROOORRROROROORRROOORRRRRORRORORORORROROOORROROOORORROROROOOORORRRRRORORROROOOROOOORROORRRORRRRRROROOOOOORRROOOORROORRORRORROORRRROOOOOROOORRROOORROROORRRRRORRORORRROROOORORORORRRRROOROORRRRORRRRROORRRRRROROOOOROOOORRRORRRORROORROROOROROORRRROOORROROROOOORRRROORRROOORROROOORROROROOOORROOOORRORORORRROROROOROROOOORRORORORRRRRORROORROORORRRROORRORRORROROOROROOOROOOROROOROROOORRORROORRRORRROOROROOORRRRRRROORORRORORROOROORROORRROROOOOROROORRROROOROROROOORROOROOORRRROOROORORRRRRORORRRORRROOOORROORORRROROOROOOORRORORRORRRROORRRROROOOORRRRROORORRRRRRRRRROORROOOOROROOOOOORRORRORROROROOORROROOOORRROORORROORRROROOOOROOOOROROROOROOOORORORRORORROOOORRROOOORRRRRROROOOORRRRRORRRORRRRROORORRORROORORRRRRRRRRRORRORROOOOOROOROOORRRRRORROOROOORORROROOOROROOOOOOOOOOROORROOROOOOROOORRROROOORRROOORROOROOOOROOOORORRORORRRORRRRRORRRRRROOOORRRORORRORRORRROOROOROOROORRRROORRROOROROOOORRRORORROOORROORORORRRORRRRORRORROOROOORRRRROORORRORRRRRRORROOROROOORRORRRRROOOOORRORROROOORROOOOOROORRRRRROOOOROOOOOOOORROORORORRRORROROORRROOORRROORRRRROROOOOORRRRRROORRROOOOOROOROORORORORORRRROROROOROOOOROOOROOOORORORORRORORRROROOORORORORRROORRRROROOROROORORRORROORROROORRRRRROORROROOROOOORRORRRRRORORORRORRRRROOORROOOROOOROOORORROOOOOOOROORRROORRRROOORROOOOROOORORRRRROORRRRORROROOROOORRROOORRRORRORRRRRRROOOROROORRRRRRORRRRRORORRORROOORRRRORRORROOORRORROROOOOORROOOROORRROROOROROOOROOOOOROROOROOOORRRROORRROOORRROOOROROROROOOROOOOOORRROROROOOORROOOORORRORROOORRRRORRRRORRROOORRRORRORRRRROOORROROOROROOROOORORRRRROROOOOOROORROORORRRRROOORRORROORRROOOROROROROOOROOROOOROOROOOROORORRORROROOOROOOROROROROORORRRROOROORORROOROROOOOOROROOOORRORRRRROOOOOORROOOORRRRRORORRRRRRORRORRROOOOOORRROOROOOOOROOOROOOOORROROROROROROROORRROOORORRROORRORROORRRROORROOOOORRROOOOORRORRRRRROOROOOROORROOOOROROOOROOOOORORRRORRRRROORORRROROOORROOOOROOOOORRORROROOOROOROOORRROOORRROOORRORROROROROORROOOOOOORRROORRRROOOOOORROOOROORRROOORRRROOOOOROROORRRRROOOORROORRRRRORRRORORROOOROOROOOROROOORRORROOROOOOOOORRRROORROOORORORROORORROOORORRRRRORRRRROOOOROORORORROROOORRRRRRROORROOOOROORRROROOROORRORRORRORRRORRROORRRRRRROROOOOOOROOOOORROOOOOOOROORRROROOORRRROROROOOROOORRROORRORROORRRRRRRROOROROORRRORROOROOORRRORRRRRROORROORRRORRRROROOORRORROOROOROROORROORORRRRRORORRRRORRROROOROORRRROOOOOOOORRRORRORORRRORORRRRROROROROROROOROORORRORRORRRROORORRRRORRORROOORROROROORROORRROROOORRRRRRRROROOROOOOROORRRORRRORRRRRRRRROROOROOOROROROORRRORORRORROROOOROROOORRROROORRRROORROOOOORORORRROORRRRROOOOOROOOROOORRRRROROROOOROORRRROOORORORRROOOOOOORORRRROOOOOOOORRRRRRORRRROOORROOOOOROOOORRROROOROOOOROOROROORRRORROOORROOOROROOOORROROOOORROOOOOORRROOORROORRROOORROOORORRROOORRRRROOOOORROOROROOORRRROROROROOOOROROOOOOORRROOORRRORRROORRRRROORRROOOROOOOORRRORRROORRRORRORORRRRRORRROORRRRROOOORRORRRROOORRORRORRRROOROOORRROOROOROORROOOOOOORORRRORROOOOROROOORORRROOORRROOOOOOOOOOROOOORORRROOROOOROOROOORRORORORRROOORRRRROORRORRRORORORRRRORORRROOOOOOOORORRRRRRORORRORROROOROOOORORRRRROROOROOOROORRRRRROORORORRRRRORORRRRROOROROOOOROOORORRORROOORORORRORORROORRROROORORROOOOORROORRORORRRROOROORRROROORROOOROROORRROOROOORROOOOOORORRRROOROORRRRRRORORORRROROOOOOOOOORRRROORRORRRRRORROORROOORROORRRROORRRRRRRORROOOORROROOROOOOOOOORROOOOOORRORRROOROORRRRROOOOORROORRROROORRRRRORROOROOOORRROOORORROROOOOROORORROOOOORRROOORRRRORRORRROORRROORORROOOOROROROOROORRRRRROOOOORROORORRRRRRROROROOOOOOROROROOOOORRRRORRORROOOOORROOORORROROROROOOOOROROORRROOROOOORORRROROOOROOORRORRROORRRRRROOORRORROORRRROOORRRRRROORORRORRRORORROOOORROOOROORORROOOROOROORROOORORORRORROROROORORRRRORROOOOORROOORRORROOROOORRORROROOORORRRRROROOROORRRRORROROORRROROROOROORROROOOOOOOROORROOROOROOOORROOOOOOOORRRRROROOROROORROORRRRRORRROORRORRORROOOOOORROORRORROOOOORORROORROORRRORORRRRORRRRORORORRRRRRRORORROROORORROORRRRORROORRRORROORROROROORRORRRRRRRORRRRORRRORORRORRRROORORROOROORRROORRORRRROORRORROORORROROOOOOROROORROROOOROOOORRRRORRRRRORORRROOOOORRROORROOOOOOOROORROORRRRROOORRORORROROOORRROORRORRORRORORORRORORRORORORROOOROOROOOORROORROROOORRRROROORRROOOOORRRORRRORRORRRRRRRROOOOOOOOROROOROOOOORORORRRRRRRRROOOORRROORRORRROOOROOOOOOOOROOROROROORRORRRRRRRROROOORROOROROOORROOOOOROORRRRRRRROOOOORROORORRORORROORRRORRORRORORRRRRRORORROOOROOORORORROROROOORORRRRORORRROOOORRORRRRORRRRROOROOROROOOOOROOOROOOORRRORRORRROROORROROROORRROROOROORORROORROOROROOOOORRRRORROOOORROOROOOOOROOOOROOORORROORORORRRROOROROROROOOOORROROORRRRRRRRRROROOOROOOOORRRROROOORRORRORRROROORRRROOORRRORRRROOOOOOORRORRROOOOROOOORRORORRORORRRROOROORROOOOROROOOROORROOOOROOOORRORORROOORRORORROOOROROROOOOROOORORROOROORRRORROOOORORRROOORROOOROOROOOROOROORRROORRORORORRROOORORRRROROROROOROOOOOROROROORROORRRRRROROOORRORORRROROROROORORRRRRRRRRROOROROROORRRRORROOOROOROOROOROOOOOOOROROORRORROORROOOORROOOOOOORRROOOORRRROROOOOOORORROROOORRRRRROOOOROOROOORRROORRRRRRROOROROORROROOOROROORRORORRORROROOORORROROORROROORRRRRRORRORORORORORRORRRORRROORORRORRRRROROROROOORORRRRORRROORROROORRORORROOROOOOROOROROORRRRORRRORROOROOORORORORORRROOOOROROOROOORRRROOOORROROOOROOOORROORROOORRORROOOOROOOORRRRROOOORRRRROOOOOOOORRROOORRROOROOOORROROORROORRRORORRROROORRROOORROOOOROORRORRORRRROOOORRORORORORRROORRORRROOOOOROROROOROOOORRRRRRRORRROORRRROORRRORORRRORRORRRROROORRRORROROOROOOORORORRORRORRRRORRORRROORRRORORORROORORROORORRORORRORORORORRRRORROOOROOROROORROOOOROOORORROROROOORRRRRRORORRRORORRROOOROOORRROROOROORORROROOOORROROOORROOROOOOOORRRRROOOORROORORRRORRRORRRORRROROORORORRORORRRORRRROROOORRORORRRORORROROOOROOOOOORRROOOORROOROOORROROOORROOORRORRORROOOOOORORORRORRRORRROOORORRRRRROOORRRROOOOORORRORROOOROROOROORRRRRRRROOOOOOROOOOORRRORRROOOOOOOOORROOORRROOORRROOOOROORRROORROOOOORROROOOROOROROROOOROROROORRROOROROOORROOOOOOOORROORORRROOOORRORRROOORRROROOOOOORROORROOOROOOROOOOOROORROROROOROOORROOORRRROOORRROROORRRROOORORRRRRRRORRRROOROOROORRORRROOORRRRORROROORORORROORRRRRRRRRRRORRORORRRROROORROROOROOOOOOROOROORRORROROORRRRRORRROORROOOOOOORRORROOORRRRRRORRORRRRRRORRROOOOOROORRORRORRROOROOROOORRORRROOORRRRROORORRRRRORORORRRRROROOORRRRRRROOROOOORORRRRORROOOROROOROOOROOORRROOOORORRRORROOOOOOORRROORRRRRRROOROOOOOORRROOOORORROROROOROOOOORORROOOROOROORROORRRROROORRROROROORRROOROOOROOOROOROOROROORRORROORORRRROROOORRRORRROOOOROORROOOOOOOOOOROROORROOROOORORRROORORRROOOORRORROOROROOORRRORROOORRORROOOROOOOORROORRRRORRRRRRRRRRORORORRRRRRORROROOROROOOOOOOOOROOOORORRORRORORRROOORRROOOROOOORRROROOROOORRRRRROOOOOORORRROOOOOOOORRROROOROOROORRROOOROOROOORRRORORRRRORRRORORROORRRROOORRROOORORRORRRRRRROOROROOROROOOROOORROORRRORROOROROROOOOOOOORROOORRROORORORROOORORRRRROOORRORORRORRORRRRRRROOOORRRORRROOORROOROOOORORROROOOROROORRORRROOROORRROORORROORRROOOORRRRORRRRRROOROOORORROROORRROORORROORRORRRRORORRRRRRORROOROROOROOOORORRORRROROOROORRRROOROORROORORRRORROORROOOOROOOORRRROORRORRRRRRORROOOORROOOROROOROORRRRORRORRRRRRORORRROROOOORROOOOROOOOOOROORROOROOROORRROOOORRORRRORROORRRRROORRROOOOOROROROOOORRRRROORRORRROOOORROORORRROOORROROORRRRROROROROOROROOORROOORORRROOROROROOOOOORRORRROOROROOROORORROORROORROOOOOROOOORORROORRROORORROOOROROROOORRROORRRROORORORRRORORRROROOORROORRRRORRRRRRRRRRROOROORROOORROROOROOORORRRRRRRRRRORORRRORORRORORRRRRRORRORRORORRRRROORROORORRROOROOOROOROROOOORORRROROROOORROOOORRRRORRRRROOOOROOORORROOOOORRRRRRRROROOROOORRRRROROOORRROROOROOOORRRORRRORRORROOOORRORRORORORRRRRRRORROOROORRROOOOOORORROROOROORROORRRRRROOROROORRRRORRRRRROOOOOOOROOROOOROROROOROOROORROROORRROORRORORORRROROROOOORRORRROORROOORORRRORROROOOORRROOOOOOOOROOORROOORORRROROROOOROROROROROOOROOORRRRRRRROROORRRRROORROROOORORRRORRORRRRORRORRORRROOOOORRRROORRROROOOORRRRORROOOORRROOROOOOROORRORRROROORRRROOOOOOOORRRROORRROOROORROORORROOOORRRROORROOOOORRRROORRRRRORROOORRORROORORORRRRRORRROROORROROROORRRROORRROORRORORROORRRROORROORRRRROOOROROORRRORROOOOOORRROROOROOROROORRRORRORORORORRRORRRRRORORORRRORROROROOOORORROOOROOROROORROOROOORORROOOROOOORROROROOORRORORRRROOOOORROOORRORRROORRRORRORRORROROOOOORRRORRRRRROROORROOOOOORORROOOROOROORRORRRRROOOOORORORRRRRORROOOORRORRRORROOORRRROOOOORRRORROOORORRRRRORRROOOOROOOORRORRRRROORRORRORRRRRROOOROOORRROOROOORORROORORRORROOORROROOROOOROORROOOORROOOOROOORROOOORRRROORORROOORROOORRRROOOROOOOROOROORRRRRORRRROORRORRRRRROOOROORRRORRORORROROROORROOOOOOOROOOROORROOORRRROROORRRRROOORORRRROROORRROOROOORRRRRORROORROOOOOOROROORRORRROOOOROOOORRRRROOORRRROORROROORRORORRRROOROOROROOROORRRRRRRROORROOOOOORROOOOROROOOOOOOROOROOOOORRROOOOORRROOOORRROROORORRRORRORRORROOOORROOOROROORRRRORRRRRROORRORORRORRROOROOORORROORRORROOORRRROORRORRORORORRORRRRRROOOORROROORRRRORORRRRRRROOROOORRROORORORRORRORRRROROOOORRROOOOOOROORORROOOOOOROOORRRORROROROOOROROORRROOOORRORORRRRORRRROROROORRRORROORRRRRORRORROOROOROOOOOROOROOORROOOOORRORROOROOOORORORROOORRRRROOORORRRROROOORROROOROROROOROOORORRRRORRRRRORROOOORORRROOOORRRROOOOORRRRRRORRROOORRRRRORORRROOORROOROOROOORROOOOORORRRRRRRROOOOOROOOROORRORRROORORRRRRRRRRRROOORROOORROOOOORRRRRRRRRRRRRRRRORROROOOOORROOOOROOROOROORRORRRORROOORRROOORRRORRRROORORRORRORRRROOOOOORRROOOROOORRRROOOROOROOROROROROROROROOORRORORRRORORRRRROROORRRROROOORROORRRRRROROOOOOORROOROORRROOOOOOROOROORROORRRORROOOOROORORORRRORRROOOOROOROOOORORORRRRRORORRROORRROOOORRORROORRRORRRROOOROORORRORRRROOROORRRRRRRRORORORROOORROOROOROROROORRRRRRROROOOORROOROROOROROOOOOROOROOROORORRRRROOORRRRROROOORROOORRRROOORROORORRROROORROOOROOORRORORORORRROOOOORROOOOORRORORROOOORORRRRORORROOROROOOROOORRRROOOROOROOORRRRROOROOORROOOOOOOORROROROROROOROOROOORROORRRORRRORRROORRORRRORROROROOORROOOROORROROROORROROOOORORROOOORRRORORRRORORORRRROOORROOROROOROORRRRRRRROORRORROOOROOOOOOOOROROROORORROOOOORRRROOROORRROOOOORROORORRORORORRORROROROOROROOOROOORORROORROROROORROORRRRRRROORRORRRRRRROROOOOROROROOORRORRRRRRORROOROOORRRORORRROOOROOOROORROOROROORROROOOORRORORRORORROOROROOOOOROOOOROOOOORRROROOOOORROORROOOROOOORRROOORROROOOROROORRORRROOROROROORROOOOOORROROOOORORRORRRROOOOROORRROOOOORROOORROORRRRRRROORROOOROOOROROORRRRROOOOOOROORRORRROORRORRRROOOOOOORRRRROROORRRORRRROOOOOOOORRROORRRRRRRROOROOORORRROOORROOROROOROOROORORORRRORRORRROROOORORRRORRROOOOOROORORRORRRROROROROOROOOOOROOOROROOROOOOOORROORROORRROORROOOROROROOORROOROOORORRRRROOOOORROROOOOORROOOOORRRORRORROOORRORRRROORRRROROROROOOROOORRROORRRRRRRRRRRROORRROOOORORORRORRORRORRRRRROORRRORRROOOORRORRRRRORROROOOOORRORORROOROROORRROOROROROOORRROROORROOORORORROORRRRRRORROOROORRRORRRORORRRORORRRRORRRRROOOOROOOROOROOOORORROROORROOROORRROROROOOORRRORROROROROORRRRORROROOROOOOROOROOORRRRORORROORROOOORROROOOORRROROOROOOOROOOROOORROOORORORRRRROROORRROOOORROORORRROORRRRRRRRROOOROOOORRRRROORROORRRORRORROORRROOORRRRRRRRRRORORORRRROOOORRRRROOORORRORORROOORORRORORORRORROROOOORORRRORRROORROOOORRRRRORROROROOROORORROROOROROOROOROOROOOOROOOORRRORRRRROOORRRRRORORROOORRROORORRRRROORRRRRRRRRRORROOROOROOOOROOORRRORROROOOORORROROOOROROORRROOROOORORRRRORRRRRRROOOOORORROROROOOROROOOOOOOOOOORROOORORROOROOORRROOORRROOOORRRRROROOOROOORROOROOORRORROOORRORRORROOROOOROOOROORRORORORORROROROORRRROOORRROOOROOROORROOOROOOORROORRRRORRRROORRORRRRROROOORRROROROOROOOOOOOROOOROORROROROROOOOOORROOOROROROOOROOROOORROORROORRRRRRRRRORROOORRROROROOOROOOROOROOROORRRORORORROORRROROROROOOROOOORORROOROOOORRRRORROORRROOOORRROOOOOORRRROORRORORRRORROOOOROOORRRRRORRORORRORORRORORROOORRROOOROOROORRROOROOOOOORRORORRORROOOOORORRORRRORORROOOORROOROOORRROOORRORORROORORRROOOOORORRRORROOOOOORORROORRRRRROROOORRORRRRRROOOORORRRRORRRRRRORRRRRRORRRRRROOOROROOROOROOROORRORROOOOOOOROOOROOORROOORRRRRRRROOROROROOROROOORRRORORROORRORROROOOOROOOORRROOOOORRRRRRORRROROORRROOORROORORORRRRROORORROOOORROORORROROROROROOOOORROOOORROOROOORROROROROOOORRRRORRROOOOORORRRORROROOOORRROORROOROOROOORORRORROROORRRORORORROORRRORORORRRRORROOOROOORORROROROORORROOROORORRROOORROOOROOOORRROROROROOOROOROORORROOORRRROOROORRRROOORROOOORROOOOORRORRORORORROORRRORRRORORROOORRRORROOROOROOORORRRRORRORROOOOORORROROROORRROOROORRROROOROROROOORORRORORRORRRROROORROROOOOOORRRRRRROOOOOOOOOROOORRORRROOORROORRORRROROOORRRRORORRRRRROOOROOOOOROOROOORRORORROORORRORORROOORRRROORROOROOOROOORORROOOROORRRRRROROORROORRRROORORRROROOORORRRRRORORORORRORRRORROORROOOROOROOOORORRRRRRROROROORRRRROORRRORORORRORROORRORRRRRRRRRROROORORRRRRRRORRROOROOOOOOOOORORRROROOROOROOOORROORRROOORORROOROOROROOOORRROORORORROORRRORRRORORRRRROOOOOOOORROORRORRORORROORRRORROORROOORRORROORROROOOOOROORORROOOOOROOROROOOROOOOORRRORORRRORRRRORRROOROROOROROROOORROORRRORRRRORORORRRROORRROOORROROOROORRORRRROROOROOROORORORRORROOORROROOOOORRRRROORROOOORRRRRROOOOORRROOOROORORRORRRORORRORRROOORRRRROOOROORROROOOOOOOOOROORRRRRRROROROOORRROROOOORRROORRRORRORROORRRRRORRORROORRORRRRRRRORORROORRRRRRORRORRRORRRORRORRORRRRORRORRORRRRROOROROOOROOORRRRROROORROROORROROROOORRRRROOROORRRROOORROOOROOROOORRORRORRRRORROROORRORORROROROROOOOOORROOROOOROROORRROOROOOORORORORRRROOORRROORROROOOROROROOORRRORROOORRRRRORROORRROROROOORRORROORRRRORROROORRRROROOOOOROOORROOORROROORROOROORORORRRROOORROROOOOOROROORRRRORORRRORROOORROORORRRORRORORRRRRRORROOORRRORRORORRORROROORORRRRRORROROORRROROOOOORRORROORRORRORRROORRRRRROORRROROOOORRRROROOOOOORROORROOORORORRRROORROROOOROORRORRRORRROROOOOOOOOROORRROORRRROROORRORRROORRRORRRROOROORORROROOORROORORORRROORORRROOROOOOOROOROORRORRORRORORRRRROROOORRRRROORRRROOOOROOOOOROORORROOOOOOORORROOORRROOOORRRROOORROOOOOORROOOOORRORROOORRORRROOOOORORORRROROROOOROOOOOOOROOOOORRRRORRORRRROOORRROOORROOORORORRRRRORRORROOORRORRORROROOOOROOROORRRRROROOORORRRRORRRROOROOOROOOOOOOOORRROOOOOORRORRRRRROOOOORRROORORRORORROOOOOOOROOROROROROOOROOOOOORROROOORRRRROORRRROORROORRRROOOORROOOORRORROOOOOOROORROOROOOOROORRRRORRORRRROOORRRRRROORRRROROROOOOOOORRORROOOOORORRROOORORRROOORRROOROORORROOOOOOOOORROOOOOROOROOOORORRRRROORRRORRRRROROOOORROORORRRRRRRORRORRRRROOORORORROOOOOROORROORROROOORROOOROROOROROROROOOOOOROOOROOOOORRROORRRROORORRRORRRORRRRROOORRORRRRRRRROOROROOOOORRRRRRRROOROROOOOOOOOOORROOORRORRORRORRROOORRROOORRROOROROOOOROOORRRRRRROOROOORROORORORORORROOOROORRRRROOROROORRROOORRRRORROOROOOROOROORORRROORRRRORROROOORRORORRRRROORROORRRORROORORRROOORROOOOROOORRROOROOOROROOOROROOOOOROROOORRORRROORRRROOORRORROOORROOORRROOROORORROORORROROOORRROORRRRORORROOORROOORRORROOORRROOOOOOOROORRRRORRROORRRRRORORROOORRROOOOROORORRORRRORRORROOROOOROOOORRROOOOOORRORORRORROOOOORRORORORROORRROORORRRORRORORROOROOROOOORRRRRROOORROOORORRRRROROOOORROOROORROOORRORORRRRRROOROROROORRROROORROOOOOOROORRORORRRRORRRRRROROORRRROOOROROORROOOROOOOORRRRORRRORROOORORRROOROROORORORROROOOOOROROROOOROOOROROOOORRRRRROOORRRROROORRRROOORORORORRORRRROOOORROORRORRORRORRRROROOROORORRROOROORROORRROROOROOOORROOORROROOOORRORRRORORRRORRROOROORRORROOOROOORROOOOROORRORRRRROOROROOORROORRRROOOROROORRRRRRROOOOORRRROORORROOORRRROORRORRORRROOOOOORROROORRRORRORRRRRRRROORRROOROORORROOROOORRRRRRORRORRROROROOOROOROROOOOROORROROOOROOOROROROROROOOOORORRRORRRROOORRROOOORRRRORRROOOOROOOROOROOOOOROROOOOOOOROORROROOORRRORRRORORROROROROROOOOOOROROORROOROOOOOOORORRRRORRROOOROORRRRROORRROROROOOROORRORRRORRROROORORORRRORORROORROROROOOROOORRROROORORROROORRRROOORRROOROROOROOOORORROOORROOORRRORROOOORRORRROOOORRROOORRROOROOOORRROROOOOROROOOROOORROROROOOOOROOORORRRORROOORORRORRROOOROROROROROOROOOOORRRRRRROOOORRRROORORRORORRROOOOOROORRROOOROOOOORORRROROORROOORROOOOOORRROORROORRORRORRRRROOOOOOORRRROORRRRROORRORRRRRRRRRORORORROORRRORRORRORRRRRRRORROROORORRRRORROOOROORRRRRRRROOROOOOROROOROOOORRRRORRORROROOORROOORRRROOORRROORRORRRORRORORRRROOOOOOORORRORRRORRORRRRRORRRRRROORROORORRRRORRRRRORROROOROOOOORROOOOOOOOOORORROROOOOORROOORRRORRRROOORRRROORORROOORRORORORROOOOOORRRORROOOOOOORRORRRROOOOORRRROOROOOROROROROORORRORROOOROROORRORRRRRRRORRRROROOOOOOROORROOOORROROOROROOROOORORORORRRORRRRRORRORORRRRORROOOORORRORRORORRORROROOROORRRRRORRRROROROORORROORORRRORRROROORRORORROORRRROORORRROOOROOORORROROROORORROOOORORRRROOORRROOOOOOOROORORROOORRORRRROOOROOORRROOOORRRRORROOROROOROOOORRRROORORROOROOROORROROOROOOROROOOORROORORROROOOORORRRORORRRORORORROORRORRRRORORRRRROOORROROOOROORRORRRORRORRORROOORRROROORRORORRROOROROROORROORRRROROOOOOOROORROROOOOROROROOOOOOOROORRROORORROORROROOOOOORRROOOORRRRRRORRRRROROOOORRRRORRORROROOROOOOROOOOORORRRORORRRRORROORRROOORROOORRROROORROORRRROROROORORORROOORRRRORORRRORRORORRRROORRRORRRORRORORRRRRRRROORRRRRROOOOOROROORORRROROOROOOROORORROORROOOROROOOROROOORRRROOORORRRORRROOOOOOORRORRROORORRROOOROOROORORRRROOOOORORROORROOORRROROOOORRORROOORRRRRRROROOORRRRRORRROORORRORORRROOROOOORROROOOOROOROROROOROOROOOROORRRRROOORROROROROROROOOROROOORRORROORRRRROORRRROROOORRRRROOORORROROORRROOOOOOOROOOROORORRRORORRORRRRRROOORORROOOORRRRRRRRRRRROOROORORRRORORROOORORRRRORROOROROOOOOROORRRRRRORROOROORRRROOOROROROORRRRORROOOOOROORRORRORORRRORRROROOORROOOOOROROORRROORRRROOROOORROORORRROOROOOROORRRROROROOOOOOORRROOROROOORRROORROOORROOORRRRRRRROORRROOOOOORRRRROOROROROROOROOROOROOOORRRRROROOORORORRRROORORRROROROROOOORROOORORRRRRROROOORROORRRROOORROROROOROOROOORORRRRRORRRRROOROOOORRRORORRROOOOROOROOROORRRORORORROROOOOROOORROOORRRRROORORRROOROORORORROOROOOOOOOOROOOOROOOROORRROROOOROORRROORRORRROORROOOROORORRROOORROOORROROORORRRROOOORROORORROORORORRROROROOROOORRROOORROORORORROOROORRORORORORROROROOOOROROORORROROORRROROOOOOOOROOORRORRROOOOOOORROORROOOORRRRROOOROOROOORORORRRROOORRROOOROORORROOOORRROORRORRRROORROOOROOORROROROROORRORRROOROROORORROROORORRROORRRRRORRROORRRRORORRRROORRRRROOROOROOOOOROOOOORORRRORORRRRRROOOROOORROOORRRORRRROROORRRRRRRRROROOROOORRORRRROROROROOROOOROOROOORORORRRORROOORROORORORORRROROROOROOROORROOOOOORROORRRORRROOORRORRRROORORRROOORROOROORRRROOOOOROORROORRRROORROROORORRORRRORROROROOORRRRRORROOROROROOOOROORORRORORRRRRROORORRROROOORRORRRRORORRRORROROROORROROROOOOORRORROROOORRORRROROORORRORORROOROOOOROOORORRORROROROOROROOROROOORRRRRORRRRRRRRORROOOOOORROORROOOOOOOOOROOROOORROOOROROORRORRROOOOOORROOROOOROOOOOORORORRRRORRRROOOORRRROOOROOORROROOOORRRORROROOOROOROORROOOROOOOOORRORRROROOOROOORRRORORORORRROOOOORRRRORRRRROORROROOORRRORROOOOOROORRRORRORRRRRROOORORRRRRRROOORRRRRRORRROROORORRROORORORROOOROORRRRORRROOOOOROORROORORROOOROOOOOOORRORORORRORORRROROORRRRROORRROOROROOOROORORRROORRROOROOOROORORRRROOORORRRORRROOROROOOOROROOOOOROOOOOROOOROORRROORRROORRROOOROOOROROORRRROROORRRORRRRROROROOOOROROROORROORRRRRROORROROOOORROOOROROOOOOROOOOOORORROOORRROOORRRORRROOORORORRRRRORRRRORRRROORROOROOOROOOORRORRORRRRROOOOORROROORRRORORRORRRORRORROOORROOROOOOROORORRORORROORORROOOORORORORORRRROOROORRORORRORRROROOOOOOOOROROOOROROORROORORRRORRROORROORORRRROOOOROOORRORORRRRRROORRRORRRRRROOORRROOOORORRORROORROROOROOROOOOROOORRRORORORROOOOOOORROOOOORRRROOOOOOOORORROROOOOROORROORRORROROOORRROOOROORORORRROROROORROROOOROOOOOROOORORRRRRORRRROOOORORROOORRROROROOORORROOROOORRRORORRROOOORROOORORRRROROOORRRRROOROORROOOORRROOOOORRRRORORROROOOOROOOROROOOORROOOOOROORRORROOOORORRRROOORRRRROOOROOORORORRROOORROROOORROROORRROOOORORRRRRORORRRRROOOORROOOOOORROOORROORRRRORRORRRROORORORORRROOOROOORRORROOOROOOOOROROROROORRRRROOOROORRROORORORORRROROOORRORROOOOOORRORORRRRRORROROOOROORRORRRROROORROORORROORORRROOORROOORORRRROOROROOOOOORRRRRORRRRROORORRORRROROOOROORRORRRRORROROORORROROORRORRRROOROOROOOOOOROROOORRRROORORROOORROOORORORORROORRRRRORORROOORRRORORROORRORORORRORRRORORRROOOOOROORORRROORROORORRORRORRRROOOROOORRORROOOOOORORRRROROOROOOOOORRRRRORRRRROOOOOOROOOOOROROROROOOOOOORRORROOORRRROROROOOOOOOORRRRRRORRRRROOORROROORRROORROOROOROORROROORROOROOORRORORROOOROROORORRRRORORORRROORRROOOORRRRORORRRROOORORRRRORRRRROOORRORROOOROOORRROOOOOOOROOOOORORROORRROOORRRRORORORORRROOOROOOOOOOOOORRRRRROORROOOOOOORRROOOROROROROORROORRROORRRORORROROOORROORRROORORORORORROROOOORROOOROOOOOOOORORROROOOOOOORRRORORRRRORORORORROORROROOORRORROOOROOOORORORRRORORROORRRRRROROROROROROOOOROOORORRRRRRRRROOOORROROOOOORRROORRRORRORRROORRRRORRRROROROOROROOROOORRORRROOROOROORORRRRORROROROOOROROORROORRRRROOOOOROORORRORORROORORROORORRRRROOOROOOOROROROORORRRORORRRRORROORRROOOOROOOOROOOOOOROROROOOORRORROORRRROOORRROORRORROORROOROOOOORROROORRORRORRORORRROROROOORRRRROORRORRROOOOOOORORRRROORRRRRORRRROROOROROROROORROOOORROORROORROROOORRROOORRRORORORRRROORORRRROROORROROROORROOOOROOROOOORRORROORROROOOOORROOOROOORRROOOROORRRORRRROROROORROORROOROORRRRRORRORRORRRROOOROOOOOORRROORORROOROOROROOOORROOORRRRRRRRORRORRRORRROOOROROORRROOOROOROOROOOOOOOOOORORRRRRORRRROORRRRROROROOOORRROOOROOROOOROOORORROROROOORRRRRORORRORRROORRRRRORROROOORRRRORRRRRRROROOORROORORROORRROROORRRORRORORORORROROOOROOOOORORORROROOORORRRRROROORORRROOROOOOROOOROROORORROROOOROROOOROOORRROORROOORROORORRORROORROOORRRRROORORORORRROOORORRORORRROORRRORORRRRRRORROOOOOOOOROORRORORROORROORROROOOORRRROOORORRORRRRRROORRROROORRROROORRRRRORORROORROOOORORRRRRRROROROROORROOORORROORRRROOROOOOOROOOROROOROOOOROOOROOOORRROOORROOORRRROROROROORORRROOROORRROROROROOOOOOROROOOOROORRORORROOOORRRRORORORORRROOOORRRROROROROROORROOROROOOOROOORRRRRRRORRRRORRRORORRRRORORRROORROORROOROORRRRROROORRRORORRROOROOOROROOOOOOORORROOOOOROOROORROOOOOROOOOROROOROOORRRROOOORROROORRRRROROOOORROOORRRRROOOROORRROROOROORRROOOOOROORORRROORORROOOOROOORROROROOORROROOOORROOORRROORROORORORRRORROOORRRORROROORORROOORORRRROOROOORRRRRORORRROORROOORRRRRORORRRORRRRRROOORORORROOOROOOORRRORRRORRORORRROROOOROOOOOORRRRRRRRORROROROOROOROROORRROROORRRORROOROOROORROOOORRROROROOOROORRRRROROROROOORRROORRRRORORRROORROOROOOORROOOOROOOROORRRRRRROOROOOOROOOOORORROOORORORRORROROORORRRROOORRRORRRROROOROOOOOOORRRORRRROOOOROOROORRRROROROOORRRRRORROROOROOOROOOROOROOOOOROOOORORRRROOOORRRROOROOOOROOOROROROORRRRROOORRORRRRRROROOORRORORRRRRRRRROROORROROOOOROROROROOOOOOORRORRRRRORROOORRROOORORRROOOROOROROOOOORRROOOROROROOOORORORRROOORROOOROORORROORROOORROORORROOOOOORRORRROOOORRORRRORRORRRRROORROOROROOORRRORRRRRRROROOROORRRROOROORRROROOOORORROROOORORORRRROOROROOORRRROOROORRORRRRORROORRROROROOOROORRRRORRRORRROOROOOOORROOROROOOROROOOOOORROROOORRROORORRRORORRRORORORRORRROOOROORRROOOOOROOOOOROROORORRORORROOORORORORROOORORORRROROORRRRRROOOORORRRRRRROROOOOOOOORRRRRRRROOROOOORRRRRRRROORROOORRRRRRROORROORRRRRRRRRROOROROROORORORRRORRRORRRROROOOORROORRRRRROROORORORRRRORORORORORROOOOOOORROORROROOOOORRRROROOROOOORRRORRRORROORRROROORROORORRROOORRRORROOROOOROOOOOOOORROORRRROOROOOOROORRRRROOROROROOOOOOOOORRORROORRRRRRRORROORRORORORRROORRORRRRRRRRROOOOORROROORRRRRRROORRORRORRRROOORRRORROOOOORRORROOROORRRRRRROORROROORRORRRRRRRRORRRORRORORRRORROOOROROORRORRRRORROORRRRORROROROROOOOOOOOROORORROOOOORORRRRROROOOORORORORRRROROOORRORROOROOOOORORRRRRRORRORROOORROOROOOORORRRROROOROOOORROROOOOOROORROORRRRRRORORRRROOROORRROOOORROROOOOOOOOOOOOOOOROOOROORROOROOORORORORROOOROOORORRORORRROOROOOORRRRORRRRRROORORROOOOROOOOORRRORRORRRORROOORORRORRRORRROOOROOOOROORORROOORORRRRRRRORROOORORROORROROORRORRRRRRRORORRORROROORRORRRROOOOROOOOROROROORRORORRORRROORORORRROOOOORORRRROROOROOORROOOOROROORROOORRRORROOOROORRRRROOOROORRROOORRRROOOORRRROORRORRRORROOOOORROROOORRRORRRRROOROOROORRROOOOORROOOROORROOROORROORORORROOORRRRRROORRROOOROOOOORROOOROOOOOROORRORORRROOOOORRRRROOORROOORROORROOROORORRROOOOOOORRORRRRRRROOROORORORORROOOROROROROOROORORRORORRORROORORORORRROORROORROOROROORORROOOORROROORORRROOOOORRRROOOORORRROORORRRRRRRRROOOROOOOORRROROOROORORROORROORORRROOORRORROOROOORRORROOOROROROOROROORORROOROROROOOOOOROORORROORRROORROOOOORORORORORORORRORRRRRRRORROOORRRRRRORORRRORORRRRRRRROROOORRRROOROOROOROOOOROOOROORORORORRRRROOOROOOROOORRORRRRORROROORORRRROOOORRRROOORRORROROORRRRRRORROROORRORRRRRORRRRRRROORRORRORROORRRRRROOROOOOOROOROROORORRRRRROORROORRRROOORROOOOROORRRRRRROROROOORORROOOORORORRROOROORROROROOOORORRORRROROOOOOORROROOROOOOORRRRORORROROOOORRRRROORROROROROOROROROORROROROOROOOROOORRRROOROOOOOORRRRRRORORORRROOOROOROOOOROOORRORRORRROORRRRROOOOROORROORRRORORROOOROROORORRROOORRORRRORRROROORRROROOROOOOORROORORRRRRRRRRROOOORRRORRROOOOORROROOOORORROROROROOROOROOROOOROOOORORROORORRRRORROOOROOOORRRROOROROORROROORRRORRROORORRRRROORROORRRRROROOROORROROROROOOOORROROROOOOORROORRRRROORRRROOORROORRRRORORORRROOOROOOROORRROOORORRORRRRRRRROROROOOOORRRRRORRRRORRRRRRORROROOROOOORROROOOROORORRORRRRORRRORROOORROOOORORRRORROROOROORRRRORRROORRROORORROOROOOORORRRRRRROROORROROOOORROROOOROORRORROROOOORROOROROOOOORORRORORROOOOROROORROOOOOORRRROROORROORORORRORROORORRRROOROORRORORRROOORRRRRRROOOROORORORORROORROOROROOROOROOORROROOOORORRRORROOOOROOORRRRRRRRRORROROOORROORROOORROOOORRORRORROORRORORROROORROOOORRRORRORRROOOROOOOOOOROOROOOORROOROOORRORORROROROROOOORORORORROORRRORROROORRORRORRROORROOROORRRORORROOROOOOROROOROOOOORORORROOOORROOORRRORORRRORRROORORROORRRRRRROOOORRRRORRORROROORRORORORRORROORRORRORORRORRRROOOOOOOOROROORRRROOROOROORRORROORROORRRRORRRORROORROORRROROORROROROORROOROOOROOOOORRORRRROROROOOOOROOOROOOOORRRROORROOORROORRROOOORRORRROOOOOOORRRRROORORORROOOOOOOROORRROROROOOOROROORRRRROORRRORROOROROOOROOOROROROOROOORROOOROOORRORORROOORRRROROROROROOORROOROORRRORROROOROROOOORRRROOOORORRRORROORORRRRROROOOROORRRROORRORRORRROORRORRRRROOORRORRORRORRRROORORRRRRRRRRRROOOORRRRRRROOOOOROROORRORRORRRROOOOORORRORORORROORORROOROOROORRROORORRORRRRRORORRRORORRRORORRROROOOROOROOROROOOOORRORROROOROOOORRORORROOORRROOOOOOROROOORRROORRROROOORRRORRROOOROOROOOROOROOROOOORRROORRORRORROOOORRORRRROOORRROOORRRRROORRORRRRORRRRROROROOOROROOROORRRROOOOOOROOOORRROROOOOROROOORORORORORRRROOOOOOOORRRORRORORRORRRROOOOOOORROORRROROOROOOOROOOOOROROROROORRRRRRROOORORORROOOROORROOOOORRRRRRRRROORORRRRRORRROORORRROOOOOOOORRROORORROROOROOOROOROORORORRORRORORRRRRROOOORROROROOOORRRRRORRRROORROORRROROOOOROROROORRRRORRROROORRRROOOORRRORORROOOROOROROOOORROROOORRRRRROROOROOROROOOORRRORORORORROOROOOROORRRRORRRROORRROOORORROROOOORORORRORORRORRRRROOORORRRORORRRRORROROROOROORORRROOROOOORORROOOOOORRRROROROORORROOOROROOOORORORRRRRROORRRROROORROORROOOOOORORRORROOOOOOOOOOOROOOOROROOORROROOOORORORROOORRRRORRRROOORRRORRROOOORRORRROORORRORRORRROROOOOOOROOROOOROOOROORORRRORRRRROORROORRRROOOORROOOROORROOROORORROROOOOOOROOROOOROORRORORRRROOROOORRROOOORRORRRROORORRROOROROOORRORRRRRORRORROOOOORORRROROORORROOOROORROROROOORRROORORORORRRRRROORRRRORRRROOOROOOORROORRRROROORROROOOOOROOOROOORROROOOOOOROROOORRROOOOORROROROOROOORRRORORRRROOROROROORORRRRROROOOOOORORRRORORRORROROROORROROOORRRROROROOOOOORROROOOOORROORRRRORROOORORRROOOOOOORRRRORRROROORROOOORORROOORROOORRROROORROROROORRROROOROROOOROROORROROORROOORRORRRROORRRRROROOORROORORROOORROOROOOROOOOOORRROOROOOOROOORRRROOOROROROROOOOOORROROROOOOOOOOROROOOORORRROOORRROORROORRRORRRRORORRROORORROOROOOOORROROOOOOOOROROORROROORRRORRROORORRRROOORRRRROOROROROOORROROROOORRRROOORRORRROOORRROOOORROOROROOROORORRORRORORRORRORORROROOOORRRROROORRORORORRORRRRORRRROOOOOOOORORROROORORROOROOORRORROORROOORRROROOOROORORRRROORORORORROOORROROOOROORRRORROROROOORORRORRRRRROOORORRORROORROOORRRRORORROOOOORRRROOROORRRRRRRORROORRRRROOORRORORORRROORROORORRRRORRORRRRRRROROORORROOOORRORRORRORRRROOROOORRRRRRRROOOROOOORROROOORRROROROORRORROOORRORRRORRORRRORROOORORRRRORROOOORRORRORORRORROOORRRORROOOROROOROOOORROORRROROROORORROROOROOOROOOOROORRRRROROOOROOOOROOOORORRROOOROOROORRRROOORRROOORRROROORROROOOROROOROORRRRROORRORRROROORROOORRROOOOOROOOORRRRRORROOROORORROOROROOOROORRRRRORRRRORROOORRORORRORORRROORRORRRROORROROROOROOROOOROOROROORROOOORROROROOOOORRORRRROORRROOROROROORROORORRRRRRORRRROOROOORROROOOORRRORORROROROORORRORORRRRORRRRORRORRORORRRROOOOOORRRRRROOOOOORROORORRRORROORRROOROROORRROORRORORROORORRROORRROOROOORROOOROROOOROROOROORRRRRROROROROORROROORRRROOOROROOROOORROOORORRORORORRORRROORROOOORRRROOORRORRRROROORRORROOROROOROORRRRORRRRROROOORROORORRORRRORRROROOOOORROORRRRRROOOORORROOOROOOORRRRORRRORRRRRRROOOOROORRRRORORROORRORROOROOROOOOROORROROORORROOOROOROROOOOORROOOROORROORORRRRRORORRORRROORROOOROROOOOOOROOROOROORRRORRRORRRORORRRROOORRRRRROROROORROORROOOOOROOROORROROOROOORORRRROORRROOOROOROROOORORRROOOOROOROOOOOROROOORORORRROOROOORRRRORORORRRRORRRORROOROOOOORRRROOORORORRORORROROORROORRROROORORORORRRROORROROOORRROORROORRRRRORRRROROROORRROOOOOOOROORROROORROORRRRORORRORORRRROORORROOOROORRRRRRRORORRRROORROROOORRROOORROOOROORORRORRORORRRROROOROOOROORRRRRRRORRRROORROROOROROORRRRRORRRRRROOROORROOORORROORORROROOOORORROORORORORORORROROOOORROORRRRRRROORORROORROORORRRROORRRORRORRRRROOOOORROROORROOROROORORRRRRRROROROOOOOROOOROOORROORRORROROORRRRROOOOROROOROROORORROOOORORRRRRRROOOROOOORORROORROOOORROOOOOOOOROROORRRORROROROOORRRRRROOOOOOROROROOORROROROOORROROORORRROOORROOROROOROOOORRRRRORORRRRRORORROROROOOROROROOROORRORROROROOOROORROOORORORRRORRRRRORORORRRORRRORRROORROOROROOROORRROOOOOORORRRRRRROORRROORRRRRRORRROORORRRROOOOOOOROOOROOOOROOOOOOORORORROOORROOOOOORORRROROOOORRRORRRRROORROOOORRRORROROORRROORORRORROOOOOOROROORRORORORRRROORROOOOORRORRRRORORRORRRRORROROROOORRRORORRORORRRRRRRRRRROROOORRRORRRROORORORROORROOROORRRRRORRROOROOOROORRORRRORORROOOOOOOOOROROORROROROROORRRRORRRROROROROOORRORRRRRROROOROORORRORROORORRRORORRORRORROROOORORRRRRRORRRRROORRRROROOOORORRRROOOOOOOROROORROOROOOORRROOOOORRROORRRORROOOROROOOROOOOORROROORRRORROOROOROOOOROORRROOORRRROOROOOOORORRRROOOROROOROOROOROOOOOORRRRRORROROROROROORORRRORORRROOOOOOOOORROOORORROOOROORRRORRROOORRRROORRROOROOORORRROROOOOOOORROOROROOROOORROORRORRRROROOOORROOOROOORROOOOORROROOOOOROOOOROOOOROROORORROOOOOORRROOROOOOROROROORORORRORORORORROOOROOORROORROROOORROROOOOOOROROROROROOROROOROOORORROOOROROOROOROOROROROROORRROROORRORRRROOROROROOORROORRRRRRROOOOOROORRORRRRORRROROOOOORRRRRORORORRORRRRRRORROROOORRORROROOOORORROOOOOORORROORORROOOOOROROROORRROOOOOROROORROOOORRRROROROROOROOOORRRRORORRRROOORORRRRORROROOORORRORROOROOROOOOOROOROROORORORRRORROOORORRORORORRROROOOOOROOORORROOORRROROOOOROORRROOORORRROROORORRORRRRROOOOROOROORROOROOOORRROOROORORROORRRORRRORRROORRROOOORROOOROORRORROOROOORRROORROOOROORRORRROORROROOOORRORRRORROROOOORORRRROORRRROOORRRORRRROROORRROROOROORROROOORORROOOOOORRRORROOOOROROOOROROORROOORROROOROOROROROORRROOROOOROROROORROOROROORORROOROORROOOOOROROROOOOOORORROORRRRROOROOORRROORROROROROOROOOOROORROORRRRORRROOROOOORROORROOOOOOOORROROOOOROOOORROOROROOORRROOORROORRROOOOORRRRRORRRRROORRRROORROOROOOROOOOORRRORRRRROROOROOOOOROOORRROOOOOOOOOOOOORROOROROOOROROOOOORORORRROOORRORRRORROOOOORORORRROOOROOORRRRROORRRORRROORORROORORORRROOROROOORROROOROROORRROORROROORROORORORRORRROORRRORROOORORRRRROOOORORRORRRRRORRORRROOOORROORRROOOOOOORORRRRORRORROROROORORROROROROORRRRRRRROROORROOROROROOOOOOOOOROOROOOOOROROORORORORRROOORRRROROROORRRORRROORRROROOROOOROROOOOORRRRRRORRORRRRROOOOORROROOOORORRORRRRRROOROOOOORRRORRRROORRRORRRROROOORROORRRORRORRORRRRROROORRROROROOOOROORRRRORRRRRRROORROOROROROROROOOOOOOOROOROORRRRROOOORRRROOOORRROOORROOOOOROOOOORROORORRROOOOOOORROROOORRROOOOROOORRRRRROROOORRRRORORRORROOORRROORORORRRRROOROOOORRORRRROOOOOOROORORROORORORROOOOOROORORRROOORRRROORORRRRORRROOOORRRROORORRRRRORRRRORRORRRORORRRRROORROOROROROOROROORRORRROROOROOOROOROROOOORROORRROOOOORROOORROOOROOOORRRRRROOOROROOORORRRORRROOORRROOOOOORROORROOORRRRRRRROROROROROROOOROOORRROOOOORRORROORORROORROOOROROOROOOORORROROOORORROOOORRRORRRRORORRRROOORORORRROORRRORORRORROOROOROOORROORRROOOROORRRORRORRROROROORRORROORORORRROROOROOOROOORORORROOROROROOOOORORORRRRORORROORRORROROOROOOOROOOORRORRROOROOROOOOOROOROROOOORROOROROORRRROORRORORRRORRROOOOORRRRORORRORRRROROOOOORORROOORRRRRROORRORRRRRROOORRRRRORRROOOROORORROOOOOOROOORRROORORRROOOROOORRRRROOOROOOROROOORORRORORROROOROOROROORRROOOORRRROORROROOOORROROOOORROOOORRRROORRRROORROROORROROOOOOORRRRORRRORROOOOOORORORROROROOORORRROOROROORROOOROOOROOOOOORROOOOOORRROOOROOORRROOOORROOORROOOORRRROROROROROOOORRROOORRRORRROOOROOOROOOORRROOROORRROOORRORROOOORORRROROOROROOORROOORROROOORRROOOOOOROROOROROROORRORRROORRRRROOROOOORRORRRROOOOOOROORRORROOORROOORORRRRRRRROROROOROORRROOOROOOOOORORRORRORROORORRRRORRROORRROOORORROOOROORROROOOOOROORRRROOORROROROROOOROROROOOORORROORORORRROROOROROOOOORORORORORRROROOROORRRORRRROOORRROOOORORRORORORRRRROROOROOOOOROOORROOROOOROOOOOROOOORROROOORORORORORROOOORORRRROROORORROOOORROOOOROOORRROOOORORROORRROOORORRROOOORROORORRRORROROOROOOORRRRRROROOROROOOOORRORROOORRROOROOORORRROROOROOORORROROROOROORORORROOROROORORORRRRRORROOOORROROORORORORORRRROROOOOROOOOOROORORORROORROOOOOORORORRORORORORRORRRRROOROOORRRRORRRRRRRRRORORRRRORROOOROROOORORRRRRRRORORORROORRORRORRRROOOOOOOORROROROOORRROROROOOOOOOROORRROORORORRRRORRROROROROROOROROOROOORROOOROOOROOOOROOROOOROORRRRROORRROORRRRROORRROORRORRROROOROOOOORRRRRRROOROORRORORROROROORRRROOROORROOOROROORROORROOOORROOROROORRRROOOOROOOOORORRROROORRROROROOOOORRRRROOORRRORROORROOOORORRROORRRRRROOORROROROOOOORRRRRORORRRRRRRORORORRORROOOROROOOORROOROORRROORRORRROORRROROOOORROORROOOROOORRORRRROOROOOOOROROOOROOOORORRRORRORROOOORRROORROORROOOORRRORORROOROROROORORROOOOORRROOOORROOROROOOOROROOOROROOORORRROOROOOROORRROOORORRRROOORROORRRROROOORRRROORRRRRRRRORORRRRRRRRRORRRORORRRORROOROOORORORROROORORROOOORORRRRROOOOORORRRROORRRROORORRRRORRROROROROORRRRROROOROROROORROOROOOROROOOOOOORRRROORRORROOROOROROORRORRROORRORROOORORRROORRRRROROORRORRRRRRORROOOOOROOORORORRRROOROOOOOORRRRRORRROROROROOOOOOORRROOOOOROOROOROORRORRORRROORRORRORRROORRRROOROOOOROROORRRORRRRRORROOOOOOROORRROORROROOROOROORROORRRRRRORORRORRRORROROOOROOROOOROOOOOOOORORORROORORROOROROOORRROROOORROROOOOORRORRROORROOROORORRRORROOROROROOOROORROROROOORORORRRRRROROOOORORRRROOOOROOOOORORRRORROOORRRORORORRROOOORRRORROROOOOORORROORRRRORROOORROOROOOROROOORORORRRRRRROORRROROROOORRORRRORORRRRRRRRRROOROROROROROROOROOOORORRRRRROOORRORROROOORROOOORORRORRRRRRROOORRORRRRROOROOOOROROOOOOOORROOOOOORORROROORRROORROOROROROOROORRRORROROOOROORROOORROOORRRRROOROOROOOOOORORRROOOROOOOROOOOORRRRRROOOORROROORRRORRROOORRRRORRORRORROORORRRRRRRORRROOOROOROORRRORROOOOROROORORRRRROROOOROROROOOOORRRORROOOROORORRRROROOORROORRRORRRRRROROOOOOROORORRRORRROORROOROORRORROOOROOORORORRRRORORRORRROOROORORRRROOOOOOROOOORORORRORRRORRROORORRROOORRRORORRROORORROOROORRROOROOROOROORORRRROOORROOOOORROROOORROOOOORORRRROORRRROOOOROORORORROOROOOORORRRORRORRROOORRRROROROROOORROOOOOOROOOOOOOROOROORRRRORORRRROOORRORRROORRRROOOOROORORORRORRROORRRRROOOOOROOORRROORROOOOROORORROOROROROORRRRORRRORORRRORORORROOORROOORROORORROROROORORROROOOOOROORRRROROOOOROROOOOOOOORROOORROOROORRRRORROROOORRROORROROOOOORRORRRRRRORRRROORORRROROORRRORORRORROROOOORRROOROOROOORROOROOOOOROROOOORRORRRRROOOORRORORRROROORRORORORRRRORRORRRORRROROORRORORRRRRROROORROOOOORRORORRRROROOROOROOORORORROOORROOORRRRRRORORROROROROORRORORORROOOOOOOOOOOOORROOROOOROROOOOROOORRRORRROORRRRRROOORROORRRRORORRRRRORRRRORRRROROROORRRORROORRORROORRORRORROROOOORRRRRORRRORRROOOROOOOOROROOORRORRORRRRRRORROOOOORROORORROOOOORROOROOOOORRRROOOOROROOOROROOROORRORRROORRORROOORORROROOORRRRORRRORROROOROORROORROROOOROOOOOROORRRRRRROROOROROORRORRRRORORORRORROOROOROROOOORROROOROROOOROORRRROOORROORRROORORRRROORROORRORROOORRORORRORORRRRRRROORRRRRROORRRORRRRORRRRORROROOORROROOOORRRRRORRRRORROOOOORORORORROOORRRRRRRRORROORRROOOOROOOOROORROROOOOOOORRORORRROOORORRORRROROROROROOOOOOROOROORORRROROOORROOORORRROROOORRRRROROROOOOORRORRROROROOOOORROOOOORRRROOORROOOROOOORORROOOORRROOOOOORROOOOOROOORRROROOORRRRROOOROOROOORRROROROROROOORRORRRROOORRRRORORROOOORROORRRORRORRORRRORORRRRORRRROORRRORRORROORORRORROORORRRRRORRRRROORORRROOROOORROROOOOORROOROOOORRRRORRRRROOORORROOORRORRROORRORROROORROOOOROROOORORORROOOROOOORRRORROOOORRROORROORROOORRROROORROOROOOORRORORROOORROOOOOOOOOROOOOORRRORRRROROORROROROOOORORRROOOROOROOOORRROORORRORORRRRORROOOOORRROROOROOOOOROOORROROOOOORORORORRRROOROROROOOROOORORRROOORRROOROOROORROOROOOORORRRRRORRRRRROOOORORORROORRROORRROORORROROORRROOOOOROOOROOOOOOOORRORRROROOOOORORORORRROORRROORRRROROOOORRRRROORROOOORRORROOOOOORROORORROORORORROOOROOOOOORORORRRRORORRROORORROOOORORORRROOOROOROORROOORROORORRRORORORRROOOORRRRORRROORORORORRROROOOOOORRRROORORROOROOOOOOOOOORORRORORRRORORRRROOOORORRRROOOROORORROROOOORORRROOORRRRRRROOROOOOROROOORORRRRRRORRORRRRORORRROOORROORRROOROOOROORRORROOORROROOOOOOOOOORRORRRROORORRROROORROOOOOORRROOORROROOOROROORROOROROOORRRRRORORROORRROOOORRRRROROORRORROORROOROOOOOORRROROOOOOORROOOROOORORORORORRORROOORORORORROORORORRRRRRORROROOORRROORROORRROROROOROORRROROOORROORRRRORRORRORROOOORORROOROROOOOROOORRORROROORRRROROOORROOOOORROOOROROORRROOROORRRORORRROOOROOROORRORRORRRRROOOOORORRRORORRORRROORROROOROOORORORROOOORORROORROOORORRROOOORORRORRROOOORORRORRRROROOORRROOROORRRRROROORROROORROOROROOOORROOROORROORRRROOOROORROOOORRRROOOROOROOOROROOORROORRROOOROROOOROOOROROORROOORRROOROOOROORORORRROOROOORROOOOOOOROORRRROORRRRRRRRROOOROORROOORROOOORORORRRRRROORORORRRRRROOOOOOORROORRRORROOORORROOOOOORROOORRROOORORRRRORORROOORRROOOOOROROOORRRRRRORORRRROOOROOROROROROROOOOOOOORRRORROOOORORROORORROORRROORRROROOOOROROROORORROOROROORRROROROOOOORORORRRORORRRORRRRORRRRROROROROOOORROROROORROOROOOOOOOORORORORRRRRROORORORRRORORROOORRRRROROORROORORRRRRROROOROOOROOROOORRRORROOOROORROOORRRRRRORORORRRRRRORORRRROOOOORROROORORORRRRRRRRROOOROORROORRORORORRRRORROROORORRROROORRRRRROROORORROOOOOORRRRRRRRRRORRORRORRROROOORORORORROROOROORRRRORRRRORROOORORRRRRROORROOOROORRRORROOROOOOORORRRROOOOORRROROORORRORROOORRRRRRRRROORORROROOOOOROROORROOROORORRORRRRORORRRROOOOOORRORORRORRRRORRORORORRORRORRROOOOOOOORRORROORRROORROOOOOROOORORRROOOOOORORORRROORORORROOORRRORROOOOORROORROORRROOORROOORROROOROROROORROROROOORRROORRRORRROROOOROOOROROOOROROOOORRRRROROROOOOROROORRORORRRROOOROORORRRORORORROROROOOOROOOORRORRROOROOOOOOROOORROOORRROOOOOOROORROOORRROROOORORRRORRORORORROOOORRROOORROOORORRORRRROROROORROOOORRROOROROOROOORRORRRRRROORORROORORORRRRROROOOOORROOROOROROORROROOOOOOOOORRRORORRRORRRRORRRRRORRROOROOORORRRRORROORORORROOOOROOOOOORRRRORRORORRROORORRROOORRRROOOROOROROOOOROROOOOROORROORORRROORORRRRORROROOORRROOROOOOORORRRORORRRRRRRORRRRRRROOROROROOOOOOOOOOROOROROOROORORRRRORROOOROOORRRORORRRRORRROOOOOORROROOOORRRROOOOROROROORRROORRORRRROOOROROOORRRRRRORRRRROROORROOOORRRORRROORRRRRRRRRRRRORRRORORORRROOROOOOOOOROORORRRRRRRROORORRRROOROORRROORORRRROROOOOORRORORROOORRRRROOOORRROROOORROOOOOOROORRRROOROROOOROOOORRORORRROOORRRRRRROOROOOROOORRROOOOROOROROOROOOOOROOORROORRRROOORRORROORRROOORORRRORROORORRROOOOOOOORRROROROOOOOORORROROOROROOORRORROROROROROOOOOOOOROOOORORORROORROROOOOROOOORORORRROOORROOROORROORRRRRROORROORRORROOOOORRROOROROROOROOORORORROROOORRRRRRRORROROOORORORROROOORORORRORROOROORROOOOOROORRROOORROROOROROROOORROOORRORRRORRROORORRORRRROROOROOORRROOROOOOOOROOROOOOROOOORROOOORROOOOROOORROOROOORROOROORORROORORORROOORROOOOOROOOROOOROORORROORROROOOOOOORRROOORRROORRRORROOOOROROROOORROORRRORRRORRRRORORORROOROOORRRRRORROOORORRRRRORORRRROORROOROORORRRRROROORORRORRORROROORRRORROORRORRRRORRORORROOOOROROOOOROORRRRRRRROORORRRROOORROOORRRROOOOOOOORORORRROOOORROROROROORORORORRRRRORORROOORROOOORRRRORRRRORRORRORROORROOOOOORORROORRORROOROOORRORRORRROOORRROORRROROORROORRRRRORRRRRRORRORROOROOORROROROOROOROOOOOORRORORRRORRORROORROROOORORORRRRRRORRORRORRRRROOORROOORROOOOOROOROORROOOOOORROOOORRRORRRORRRROORRROOORROOROOORRRRRRROORROROORRORORORRRORRROOOROOROOORRRORORRORORRROORRORORORRROORORRORROORROROOOORRROORRORRRROORROOOROOOOORRRROOROOORROOROOROROORRORORORORRORORRRRRRRORROORRROORORRRROOOOOROOOROORROOROROOROORORROOOORRROORRRRRORRRORORORROORRROROROOROROOOOOOROOROOOORROOORROORROOOORROROROROOOORROORORRRRRRORRRORROROOOOOORRRRRROORRORRRRROROROOROOORRROOOOOOOORRORRRRRROOOROROOORRRROOOROROROOOROOROOORRRRRROORORROOORORRROOORRRORORORRORRRRRRORROOOORRRROOOOOORRRRORROOOOOOOROOORRORRORORORRRRRRROOORRROOOROROORRRRRORROOROOOOOOORRORROOOOOOOROOROOOOORRRROOOORROORROOOORRRORRRROROOOROORORORORORROOOOROOOOROORROROORORRROORROOROOORRRROOOORRRRRRROROOROROORORRROROOROOORRORRORROORROROORRROORORRRRROOOOORRRRRROROROOORORRROOROORORRROORRORRRROROOOOOOROROROOOROOROOROORRORRROROOORROOOORORORRROOROOOROORORRRROORROOORROORRRRROORRROOOOOROOOORRORRRORRRRRRROOOROROOORRROOORRORRRRROOOROOROROROORRRORROOOROORRORRROOOORRROOORRRRRRRRROROROORORRRROOOORROOOROOOROOROROOOOOROROOROORORROOOROOORORROORROORRROROOORROORORORRROOOROOOOORRRRRRORORORRRORORORRROROROROROOROORROOOOROROORRORRORROOROOOORORORROOOOORROOOOORORRORORRROORORROORRRROORRROORRRORROROORRORRRRROORRRROOROROORROORORORROROORORROOOOOORORROOOOORRROOOOORRRRROROROROOORROROOORRORRROOORRORRRRROROORRRRRRROOOOORRRROOOROOROOROROOOOOOOROOORRORRORRROOROROROORORORORRRROORROORORROROOOROROOOORRROOROROROORORRRRRRRROORROOOORRORORORRRRROOOOOOOROORRORORRRORRROOOROORROOORRRRORORRROOOROOOORRROORORRORORRORRROROORRRORORRORROROROORRORRRORRROROOROOORORRRRROROOORRORRORORROOORRORROROOROORRROROOROORROORROROORROROOORORROORROOROROOOOROOOORORRRRRRRRORROORORROOROROROOORROOROROOROROORROOROOOOOROORRROORRRORRROROORRRROORORRRORORORRROOOORORRRRORROROOOOROORRROOOOOORRRRRORRRROROORRROORRORROOOROOOOOROROORORROOOOOORROROOORRRROOROORROOROORORORRRORRRORORRRROOROROOORROOOOORRORRORROOROOOORRRROOORRORORRRORRORRRRROROROROORROOOROOOORROROORRORRRRRROROOROORRROOORRORRRRRRRROROOROOROOOOROOROROORRRRRRRRRRORRROOOOORRRRROORORRRRRRORROOORRORRROOOROOOOOROROOROORORRRROORORRORRRRRROOOORROOOOOOOROOROOOORORRRRRRRRORRRRROORRROOOROORROORRORROORRORRORRRRORRROROOOROOOOORRRRROORRORRORROORROORRROORRROOROOOORROOOOOROOROORRRRORORROROROORRRRRROOOROOOORRORROOOROOORORORRORRORRRRROOROORROORORRRORRRRORRROROOROOOOROROORORRRRORROOROROOORORORROOOOROOOORRRRRORRROOORRROROOOOORRRRROOROOROORROOROROORORRROORORROROOOORROOOOORROORRRRORRORROORRRROOOROOORRRORORRORRROOROORRRRRRROROOORRRROOORROOROORRROOROOORROOROOOOOORROORORROOOORORORROOROROOORRORRORORORROOOROOROOROROOOOOROORROROROOOOORORRRRROOROOORROORRORRROORRROROOOOROORRROOORROOOOORROOOROOROOORRORORORORORRORROOOOOORRORRROOOORRROOOOROORORROOROOOROROOROROOROORORORRROOOROOOORRORROOOOORRRRROROROOROOOROOORROOOOORORORRRRRROROOORRROOORRROORRROOORORRRRRRRROOORROOOORRORORROORRRROROOOOROOOOOOORRRORROOOOORRORRRROOORROORRROROORROORRRROORROOROOORRORRORROOROOOORRORROOOROROROROORORRRROOROROROOROORRRRRRRORROOORRORRRORROROORRROOROORROOOOOOOROORORRORRRROOROOORROOROOORRROOOROOROOOOOOORRROROORRRROORRRROOORRRROOORRRRRRRORORRROOOROOROOROOROORORRORRRRROORROROROOOORORRRORORRRRORRORRROOROORROORORRRRRROROOORORROORROOOOOROOROOOOOOROOORROORRORRRRRRROOORORRRROOOROOOOOORRRRORROOROORORRRRRRROOROOORRRORROROROROORROOROOROOORROOOROOROORRROROOOROORROOOROROOORORRRRROORROORRRROROORORROORROORRRRRRRRORROOROORRORORORRRORRRRRRRRORROOROROORRRRRRRRORROORORRORROORORROORRORROOROORRORORORROOORRRROORRROROORRROOOOORRROORORORROOORRORRRRRRORRRRROORORORROOROOORRRRRROROORROOROOOOOOOOOORROORORRORROOORRORRRROORROOORROROROOOOORRRROORRROROOOROROROOOROROOORRRORROROORRRROROOOOOROROOROROROORRROORRRRROROOOORORRRROORRROROOOOORRORROOOORRROOOOOOROOROORRROOOROOOOORROOOOORRORRRROORRRRRROOOORRRRRRROOORORORRORRRRRRROOORRRROOROOOORROROOOOORRORROORRROORROOOORRRRROORRRRRORRRORORRRRRORRRROORORROOOOOOOORROROORORROROOROOORRRRROORROORRRRRROORROROOORORRRORROROORRRRRRRRRROROOOOROORRORORROROOOOOOOOOOORRRROOOROROOOORROROOORROOORROROOROOORROOOOORROROOOOOROROORRRROOROROOROOORROROOOROROORORORRORRROORRRROOROOOOROOOROROORORRRORROOOOROROORORORORORRORORROOROROORRROROORROOOOOROORRRROROROOORRRROROOROORRROOROOOOOORROOOORROOOOROROOOORROOOOORRROORROOORROOORRORRROROOROOORRROROROOORRORRRORRRROOROROOORRRRROOROROORRRORORROOORROORRRROOROOORORROOOORROOROROROOORRRORORRROOOOOOROROORRROORRRORORROORROROROROROOORRRRRRORORRRRORROORORRROORRORRORRORORROOROORRRROORORROOORORROORROROORRRROOROOROORROROROOOROOOOORRRORROOOOORRROOROROORRRRRRORORRORRRROOORROOROROROROORROORROOROOROOROROORORORORRRRRORROORORORRRROOORORRROROOOOROOROORROROOOOORROOOOOOOOORRROORORRRORRRRORROORORORRROOOROOOORORRRRRRRROORORROORROROORROORRRRRRORRORROORRRRRORRROOOROORRORORROORRRORORROOOORORRROOOROORROORROOROOOOORRROORORRRROOOORROOROORRORORRRORRROORRORRRORORRROORRORRRRORRRRRRRORRRORROOROOOORROOOOOOOORRORRORRORRORRROOORRRRROORROORROROORRORROROOOORRORROORORROOROOOORORORRORORORORRRRRROROROROOROROOOORRROROOOOOOOOROOOOROROOOORRROORROROOOOORRROORROROOORRROORORRORRRROROROORORRRROROROOORORRRRRORRRRRRORORORRORRRRRRROORRRROROROOROOROROOORRRRRRORRORRORROORRRORROOORORORRORORRRROOROROOORORRORORORROROOOORRORROOORROOOROORRRRORROROOORRRRROOROROOORRROOOOOORROROOOOOOOORROORRORORROOORRORROROOROROROROORRRORROOROROOORROROOORORRRROOROOROROOORROOORROROOOROOROORRROROOROOORORRRORROORROORRRROOOOOROOORROORROORRORORROOOROORORORORRRORRROORORROOROORROORRROORRRRRRRRRORORORRORORORROORRRROOOOOOROORORROROOROOOORROROOROROOORRRRRORORORRRROOORRRRRRROROOORROORRORRRROORROOORRRRRRRRORROOROOORORROORORROORRORRRRRROROOOROROORRORRRROROROOROOOOOOOROROROOORROOORORRRRORRRROOOROOOORROOORROROROOOOROROORRROOOORRRROROROOROOOOROORORRRRRRRORORRRRROOOORROOORORORRRRRORROROORORRORORRRORORROOROORORRRRRROOOOROOORRRRROROORRORORRORROOROROOOORRORRORRROOOOORROORROOOROORORORROOOOROORRRRRRRROOROOOROOORROORRORORRRROOROOROOOOORROOORRORRORRRROROORRROOOORROOROOOROOOROOOOOORRROOROROROORRRRROOORRROOORRRORRORORRRRRRROOROORRROROOORRORRRROORRROOROORRRROOROROROROOROOOORRORROOOORORROROOOOOROROROOORRORRROOORRROOROOOORRROROOOOROORORORRROOROOOORORORROROOORORRROROOOOOORRRRROORROORORRROORRRRRORROROROROOROOOOORRRORROORORROROORROROORRRROOOROORORROOOOROOORORRORRRORROROOOORROOROROORORORRROOROORRROORRRRRRROOOORRRRRRORORORRRORROORRRRRRORORORRRRRRORRRRRRRROROOROOROORROOOOROORROOROOROORRORORRRORORRRORORRRORRRRRROROORORORRORORRORRRROOROROROOROROROORORRORORROOROROROOOORORORORORORROORROOOORROORROOROORRORROROOOROROOOROROORROOORROOOOROORROROORROOORORRRROROROORRORROOOOOOORRORORORORROROROOORRRORRROORRRORRORROOROORRORRROROORROROROORRRRRORRORRROOROOOORORROOOORRRORROOOOOORORROORRROORRRROORRORORROOORRORRRRROOOOOROOOORRRROORRORORRROOROORROOORROOORROOROROORRROOROROOOROOORRRRRORRROOROORRORROORROOROROROROOROOROOROOOROORRROOROORORROROOOOORRRROROROORRORRROORROOROROROROOOOOOROROROOROOOORROOOOORORROORRROOORROORRRROOOOOORRRORROROROORORORROOOOROOORORRRORORROOOROROORRRRRORRRRORORORROORROORORRRRRRRRRORRORRORRRRORROOROOOORORRRRRRROOROROOOORROORORROROOOOROOROROOORRROOORROROOOROOOORROOORRORRROOOOORRORRROOOROOOOROOORRRRRROROROOROOORROOOOOORRRROORORRORRRROORROORRORORORORRORORROOROOROORRRROOROOOOORROOOROOOOOROOORORORRRROORRORORRROOOORRRRRROOOOOORORROORRROROORORORRRORROOORRRORRRROROORORROORROOOOORROOOROOROOOOOROOOOROOOROROOOOROORRRROOORORRRROOOORRRORROOORROOOOOOROOOOROOROORRRRRRORROOOOROOORROROROORRRROOROORORROROORROOOROROROOORORORORRORORRORRRORRRORRORROOORROROOROOOOROOOORORRRRRROORORORROOORRORRROROOROOOOOOROOORORRORORRROROOROROROOORRORROOORRORRRRORROOORROOORRROOORROROROORROORRRORRROROORRORROOOORROOOROOORROROROOOROROOROORROROORRROROOOROORROOORRORORRRROROOOROORORRRORORRRRRORRROOOORORRRORROORRORROROOOOOOOROOORRRROOOOROOORRORROOOORRRROORROOROOOORRROORRORROROROROOOORROROROOORRRRROORORROROORROORRRROOOROROOROORRROROOOOORRRROORRROOOROORORRRORROOORRRORRORROOOOORRORORRRRROORORORRORROROOORORORROOROOROORRRRRROROROORORORORRRORRRRORRRORORROROOORRRRROORRROROOROROORROOOOOROOOOOROORRRRRROOOOOOOOROOORRRRRROOOROROOOORORORORRROOOORROROORORORROROROOROORORROORRRORRRRORRRRRROOORORORORROORRRROROORRRRRRRRROOORROROORROOOOOORROOROOROORRROOOROOOOOROOORROROORRRRORROOOOORRORORRRORRRRRROROROOROORRRROOOOOROROORRRROROOOOOORRORORROROROROROOOOROORROORROOOOOROORORRRORRRRRROORRRROOROOORRRORRROOOORRORRORRROROOORROOOROORRRROORRRRRRRROOORROORRORORROOOROORRRRRORROOORRRRROORRROOROOOROOROORRRORRROOOOOOROOROOORRROOORRORRORRORRORRROORORORORORRRORORRRRRORRRRORRORRRROOOORRORRORRRRORROORRRRORORRORORORRRRORORRORRRRRRORROOOOROROOOOOOOORROORRRRROROOROOORROROOORROOORROORRORORRRROORORROROROROORROOOOOROOOORORRROORRORROORROOROROOORRORORORRORRORROOOOOROOROOOORRROROORORRORROORRRROROOORORROOROOORRRRROROOROROORORRRORRORRRROOOROROORROOORROOOORORRORRRRORRRORRORORRORORRROOOOOOOOROORORRRRORORRRORROOROORROOORRRROORRRRRRORORRRORRRRROORORORRORRROROORORRRORROOOOOORRRROOROOOORRRRORORROROOOORRROOROOORROORRRRRRRORORRRRROOOOOORRROROORRRRRRROOORORRROORRRORRRRRRRROOOORORRROOOOOOROROOOOROOROROORROOROOROOOORRROROROROORRRROROOORRRROORRROOROORRRRORORROOORORORROORRRROOOROOROOROROROOORRROOOROOOROORRRROROOOROORROOROOROOOROOOROOOOORORRROOROROORROORRROORRRRROOOOROROOOROOOOROOORRORRRRORRORRROOROOORRROROORRROOOROORORRRORROROROROOOOOOOROOROROOROROOROOOORORRRORORORORRRROORROROOROOORROROOOOROORROOORROOOOORROORROORORRORORRROOOORRORORRRORRRRRRORRRROORRROOORRRRROOOOOOOOROORRRRROOORORRRORROROORRROOORRORRRRRRROORRORROORRROOOOOORRRORRORROORORROROOORRORRROOORRRROOOOROOOROROORORORORRORRORRORRROOOROROROORRRROORRRRRORRRRRRORRROOORORRROORROROOROORRRROROOOOOROROOOORROORORRRRROOROOORRROOORORRRRRRRROORROOROOOORRROORORRROOOOROOROOORROOOOORRRRRROOORROOORRRRORRROOROROROROOROROOOROOORROROROORORRORRORROOOROOOROOORRROORROROROOROORRRROORORORRROROORRORRRRORRRROROOROROORRORRORRRORRROROOOOORRRROORRRORROORRRRROROORRROOOOOOOOOROOROOROROORRROORRRRRRRORORORRORORRROOORRRRRROOROROOROORRORROORRORROOOORRORRORORRRRROOOOROORROROOOROROOROOORORRORRROOORRRORRRROOORRROORROORROOROORROOROOOOOOOROOROOROORROORRRRRORRROOORRRORRROORRRROOOORRRORROOOORRROOORRORRROOROORRROORORRRORORROOORROOOOOORROORORROOOROORROOROOOOOORRRRRORRORRRROOORRRORRORRRORORORORROORORRROROROOROROOOORRRROROOOOORORRORRROOORRORRROROOROOOROOORRRORROORORORRORRORROROOOOOORRORROROOORORRROROOOROOROROOORRORORORRROORRORRRROOORORRROOORRRRRORORROOOORRORORRRORORRROOOOOOOROOOOOORRRRORORROROOROORRRORROORROOORROOORROORORRRORRRRRRRRRORROORROROROORRRROROROORORRRROROOORROROOOROOROOOORROOOOOOOOORORORROOROOROROOORRRRRORRROORROROORRROORRRROROORRORRRRRRROOROROOROORRRROOOROROOROROOROOROROROROOOROOOORRROOOROOOORROROOORROOROROOOORRORORRROOORRROORRROROROOOOOORROOORRRRROOOOOORROORROOOOORRROOROROOROORRROROOROROOOOORRRRRRROROOOROOOOOOOORRROROROROOROROORROOROOORROOOROORORRRRROROOOOROOORROOOROOOOROROOOORORRRROROORRROOORRRORRRORROROROOOOOROORORRORRROROROORRRRROROORORORROORROOOROROOOOOROORROORRRRORRROOOOOORROORROORROOOOORRRRRRRORRROOORRROOOORRORRROOROOROROORRRRROOORROOOOROOOORROORROROOOROOROORRORRROROOOOOOOORROROOOROOORRRRROOROOOOORORORORROOROOOORRORRORRRORROOORRRRORORRROROROORRROROOOROORROORORRRROROOROOROROORROOORORROROORRORROOOROORROORRRRROORRORRROOOOORRORORRRORROOROORRORROOROOOROOOOORORORORROORROORORROOOOROORRROOOROOOOROOROORROROOOROROOORROROOOOROROORROOROOORRROROOOOORORRRORROORRRROROOORRORRRRRRROORRORRORRROOORORROOOOOOROOROORRRRRROOOOOOORRORROOORRRORROOORORORROOORROOOORRORORRROROORRRRORRRRROOROOORORROROOROOOOROROORRORRORORRRRORORORRRORORRROORRRRRRRROOOROOROOOOROOROOOOORRRRROOROORRRORRRRORORROOORRRORRRROROROROOOROOROROOOORRRORRORRRROORROOORORRROROOOOOROORRROOROORRRROORRRORROOOROROROROORORROROORRROOROOOORROORRORRRROROORORRRRORRRRRROOOOORRORRORRRRROOOROOROROOOOOORRRROOROORRRORROOORORRRRROOORORROOROROROOROROORRRRRORROOORROOOOORRRRORORROOOROROORRRROOOOORORORRORRRRRORORROORRRRRRROOOOOORORRRRRRRRROROORORROORROROOORRRROOROORRORROORROOORRRRROORRRRROORROOORORRROORROOOOOOORRRROOROROOROOOOROOROOROROROOOROOOORRORROORRROOORROOORROORRROOOORRORROROOROOORRORRORROOORRROOORORROROOORORRRRRORRRRRRRRRRROOORROROOORRRORRORRROOOOOOOOOOORRORRRRORRORRROROORRROOROROROOROOORROROORORROOROROOORROORRROORROORORORROORROORROOORROOOOROROORRROOORROOOOORRRROOOROROOOOROORROROOOOORRROROOROOOOOOORRORRRORRROOORRROOORORROOORRRORROORROORRROOORRROOOOROOORROOROOORROROOOOORORROROROORRROOORROOORRORRROORRRORRRORRROROOORRORROORORROROOROOOROOOOOORORRRRRRRROOOROOORORRRORROOOROOOROOOROORRRROROROOORRRORRRORORORORORRROOROOOORRRRORRORRRROROROOOOROROROOORORRORRRORRORRORRORORORORRRROOOOROROORRROROOROORROORROORROROOOOOROOROORRORROOOOOOROOOORORROORRORORRROOOROOORRROORROOOOOROROORRRORROOORORORRRROORRRROOOOOOOROORRROOORROOOOOOROOROORROORRROROROORRORROOORRORRROOOROOOOOOORROOOROOOOORROOOROORRRORRRRORORROOORROOORORORORRRORRRORROROOROROOORORORORRRRORROOROOOROORRRRRRRORRRROROROORROOROOOROORRRRRRROROOROORRORORROROOOOOORRORRRROROORRRORROORRORRORORORROOOOOOORRORROROORORRORROOROROORRROOROORORROORROROOROOOROOOOOOOOOROOORRRRROOORROORRROOORRROOOROOORRRRRORORORRRORROROROROROROROROOOOOOROROOROOROOORRROROOROOROOORRRRROORRROOOOORROORROOROOOORRRROORORRORRRORORRROORRORRROOROOROROROOROOROOROOOOOROOOOORRRROORORROOOOROORRROOORROOOOOROOROORORROOOORRRORROOORORRROOORRORORRRRRROROORORRORORRRRRRRORROORROOOOOOROROOOOORORRRROROOROOORORORORRRROROOORROROORORRRORORRORRRRORRORROOORROORRRRRORRROROOOOORORRROORRRORRROROOROROOOROROOORORRORORROOOOORRROORRROOOOOORRRRORRROOOORROOOOOORORROOOROROOROROORRRRORROORRRORRRRROOOORRRRRORRORROROOORRORRRRRORRRRRRRRRRRRRROORROORRORORORROOOROOROORRRRRROOOOOOOOORROROOORRRROORORROROOORRROOOROOOORORORROROROOORRRROOOOORROOORRROROOORORRRORRRRRORORRRRRROOOORORROORORROOOOOROOORRORRORRROROOOORRRROORORRRORRRORRRRRRRRRORROROORROROOOOOOROORROROOROOROOOOROOOOOROROROOROROOOOORROORORORROOORORRRROOORORORORORRROORROOOORRRRORRRROOORROORRORRORORRROOOOOOOOOROORRRRRROORRRRRORRORROOORRROOOORRRORROROOOOOORORRRRROROOROORORRORORRORRROOOOOROOOOORORRRROROORRRRRROORORRROOORORRRROOROOOORORROROOORRRRRRROORRORORRRROOROOOOORORORROROOROOROOORRORRROORRROORORRRRORRROOORORRRRRRRORRRRROORORRORORRORRRORORRRRORORRORROOOORORROORRRORORRRRORORRRRRORRRRORRRRRROORORRRRROOOORORROROROORROROOOORRORRORROOOOOOROORORRRRROORROOOOOROOORRROOORORORROOROORRRRROROOOORORROORRRRORRRROORRRROROOROOORROOORRRRORRRORROOORRORORORRROOORRROROORROORROORORRORRRRRRRRROORORORORROOOORORRROROOROOROOOORROORROORRRRORRRRRRORORRROORRRORROROOORROOROOROORROROORROOROOORRRROROORORRROROORORROORORRORORROORROORORRORROROOOOORROOOOROOOORROOOROROOOOOROROOOROROOOOORRRORRROORROORROORRROOOOOOORRRORRRORRORRRROORRRRRORRROOOOROORORROOOOOOOOOORROORORROROORROORRRRROOOORRRORORRRORROROOORORRORRORROORRRRRORRORRRRRORRORRRRRORROROROOROORORRRROOOOROOOORROROOORORROORRROORORORORROOOOOOORRRROOOOORRRORORORRROOROOORRRROOROOORRRRORRRROROOOORROOOOROORRRRROORROROOROOOOOORROOROROORROROORRROROOORRROORRRROROOORRRRRORORORRRROOROORROROOORORORRORROOOOOROOROROOOORRRROOOOORROROROROROORRRRROOORRORRROROROORRRORORROOOOROORRROOOOOOOOORORRROROOOOOROROORRORRROOOOORRROOOOOROOORROROOOROOOROROOORRRRROROROOOROOOROROROOORORRROROOROROOOOOORORORRROORRROROOOROOORORRRRROOOOROROORRRRROORRRORORORORRORRROOOOROROORROROROOORRROORROOROORRORROOROOOOROROROROORROORRRRROORRORRROOORRROROROOOOOORRORRRRROORRORRRORRORROORORORORRRORROORRROROOOROORRORRRROROOOOOOOORRRROROORORRRORRRORROORORRROOOOORORORORRRORRRROOOOOOORRORROORROROOOOROOOROOORRROROROORROOOOOOROOORROORRROROOROORROORRROOORROROROORORRORROOORRRRORRORRROOOORORROOOROOOROOOOOROOOOOROORROOOOOORRRORRRORRROOOORORRRROROROROROOROOOOOROOROOOOROROOROORROOORRRORRORORRRRRROOOORORRORORRROORORRRROROORRORRROORORROORROORORORRORRRRRORRORROOOOOORRRROROOORROROROOROOOOROOOOROROOROOOOOOROOROORRRROOOROOOORORRRORRRROOORRRRRORRRRRORROORROOROROOROOOOROOOOORORRRRRRROORORROORRRRORORRORORORRORRORRROORRORORRORRORROOOOROOROROOROORORROOOOOORRRORROOORRRORRROOROORROROOORROOROROOORRRRROORORROOOOORROOOORRRROOORRRRRROROOOROOORROORRRRORRRORORRORORORRROORORROOOROOOORORRRROOROOOOROOOOROROOORRROOOORROROORROOOORRROOOORORRORRORRRORRRROOROROOOOORRRORRORRROOOOOOROOROOORROOOOOROORROOOROOORRROORRORRRORRRORORRRROOORROORRRRRORRRORROOROROOORRRROOOOOOROORRRRRRROORRRROROOROOROROOORRORORRORRRROOROORRROORORRRROOOOOOOOOOROOROROOOOOROROOORORRROROOOORRRRORORRRORORRRROORORRRRORRROOROOORORRRRORRORROOROOROOOOOOORRROOOOOOOOOROOOORRRRRORORORORRORRRROOORRROROOORORRORROORORRORORRRROOOORORRRORRRRRORROOOROOOOROORORRRORORROORORRRORRRRORORROOOROOOOOROORRRRRRROROORRORRORRRORROOORRRRORRRRRRRORRORRRRROOOORORORORRORRRRRRRRORROOROOOOORRRRORRORRRORRORRRRRORRROROOORROORRRORRORRRRRRRRRRROORORRRORROOOROROORRORRORRORRRROORRORRORORRRROROORORRRRRROROORRRROROOOOROOOROOORRORROROORORORORRRROOOORRRORORRORORORRRORORROORRORORORROOORRRRRROROOROROOROROORRORORROOOOOROORORROORRROORRRRORRRROROORRROROORROROOOROROOOOORRROROOORORROROROROOORROOOOORRRRRROORORRRROOORORROOROROOORROOROOOOROROORORRROORORRORROOOOORROORRRROROOOOOOORRRROROORRROROORRRROOOROROROOOOOROOOOOROORROOOROORRROORRRROORROROROROOOOOORRRRORORRRORROOROORRORRRRROROROORRROROORORORRRROORORROROOOORORRORRRRORORRRRRRROOOROORORORORORRRRRROORROORRORROOOOROOOOOOOOROOROORRRORORROORRROORORORRROOOORROOORROOROOORROROORORRRORORORROOOOROORROOORORRROORRORRROOORROROROORRORORRRRRRROORORROOOORROORROOOOOORRORRORROOOORRROOOROOOROOOROOOROROOROOORRRRRRROOORROORRORORORRRROOORRRORROROOORROOOOORROORRORRROOOROOOOOROROOOORROOOOOOROOOOROOOROOORRORROOORROROORRRORRRRORORRROOOOOROORRRROROROOOOROOROOOOOOOORRROOROOROOOORRROORORORRROORRRORROOOORRRRROORORRRROOOOORRRRRRORRRRRRRRRRROROOROORRROROOROOOOROROORORRORORRROROOROOROOORROORORRRRRORRRROOOORORORROROROORRRRRORRORROORORORRRRRORRRRRROOORRORORRRRROOORRRORRORROOROOORRRRROROOOOROROROOOROOOROROROROORORORRRRORROROOOORORRRROROOOOROROOOROOROORRROOORROOROOOROOORORROOOOOOORRORRROROOOROROORRRROORORROOORROROOORROORROORRROORORROORORRRRROORRRROOOOORROROROOOOOOORRORORRROROORRROOOOORRROORROOOROROOOORORRROORORORROOROROORRORRRRRROORRRROOOOOROORRRROROOORRORRORRRRRRROOORORRRRRRRROORRRRROROROORORROORROOOROOROOORROOROOOORORROORRRORORORRROOORROOORORROORRRRRORRROROROORORORROOORRORRRRRRROROOROORROOOOROORRRROORRORROROOOOOORRRROORRRRROORROOOORRORROOOOORROOROROORORROORORRRORRRRRORRRORRROROOOOROORRROOROOOOOOORRORORRORRRROOOORRRRROORRROORRRRRRRORROOROORRROOROORRORROOOOOROOROORRRORORRORRRRORRRORRRORRRRORROOROORORRROORROORROORRORRORRORRRORORRRRORRRRRORROOORORRORROOOOORRRORROOOOOOOOOORORRRORROOORROOROOOOOOORRRRROOORRRROOOORRRRROORRRRROOOROOROOOOOROOORRRRRRRRROOROORRROROORORRROROROOOOOOOORORORORRORRROORRORRRROROROROORROORROORRORROOOORRRRRRRRRRRRRORRRRORORROORORORRORRRRRRORROORROORORRORRRRRRRORROOROOOOROOORROROOOOOROOOOOOROORRROORRRROORROORROOORRORORORRROORRRORROROORORROOOOROOOORRORROOOROOOOOORORRRRRROOORORORROORROOOOOORRROROOORROROOOOROORORRORORRROORRORROOOOOOOORRRROORRRROROOROOOROOROROOOORRRRRRRORRORORRROORRRROOROOORRRRRRRROROORROORORRRRRORRRROROORROOROOOOOROOOOROOROORROROOOORRORORORRROOOORRRROOROROOOORROOROOOOOROORORORORROOORROORRRRRORROOORROORRRROROOROOOOORRORRRRRROOOROORROROROOOORRROOOROORROORORORRRORROROOROROOOORRRRROORRRROROOROOOOROOOOROROROOORROOOOROOOOROOORRRRROOOORRROORROROOOROROROOORROOROORRROORRRRRROROROOOORRROOROOOORROOOOROOROOROOOORROOROOOROROOOROOORROROOORORORRORORRROORRORORROOOOOROROORROORORRRRRROOORROORORRRRORORORRORROOROROORRRORRRRRORRORRORRRRRORRRROORRRRRRRORROOROOOROOROORROOROOOOOOOORROORRROROOOORRORRRROORRRROOOOROORRORRORRROORRORROROROOROOORROROORROOOOOOORROORORORRROROROOROOORRRROOORORROORORRRRORROOROOORRRRRRRORROORRRRRORRROOROORORORROORROOOOOOROOROORROROORRRRORORROORORORRRORRROOOOOOORRORRRRRORRROROORRORORRRORORORORRRRRRRRRRRROOROORROORROOROOOORORORROROOOORRRROORROOROORORORORROORRRRORORRRORORROOORRRRORORRORORROORROROORROOROORROROORORRORRORRRORORRRORRRRROORRROOOOROOROOOROOOORRRRORRRROOOOOORRROORROOOROROORRORRRRORORRROORRRROORRRRORORORROORRRROROORRRRRRRRROOROOOOROROORRORRROOOROOROOOOROROOORRRRROOOOROORORORRORRROORORRRORRRRORORORRROOOORROORRROORORROORROOOOROOOROROOROOOOOOOROOOOOORROROROOORROROROORRROORROOOORRRRROROORORRORRRROORORORROROROOOOOORROORROROOORRRORRORROORRROOORORROOOOOOOORROROROOROOORRRROOORRRROORROORROROROOORORRORROOORROORRRRROOOOORORROOOOOOORROOOOOORRRRORRROOORRRRROORORORROROROOROORRRRRROROORRORORRROROOOOORRRROORORRRRORRRRROROOORROORRRORRORORRORROOOOOOOORORRRRROORROOROROOOOROROROROOOROROOOORRORRRRORRROOOOOOROOROROOOORORROOOOOOORORRROROROORROORRRRROOROROROOOOOOORORROOORORRRRRRRROOORORROORROOOOROOORRRORROORROOOORRRRRORROOORRRROOROORROOOROROOOOOROOOOROROOROOOORORRORORRORORRROROROORRORRROOOROROOOOOOORRRRRROROOORRRRRRROOOROROROROOOOOOOOORORRRORRORROORROORRORROOORRRROORRRRRORORROOROOORRRRRROOROORORRRRRRROOOOOOROROOOOOOOORROOOROOROORORORORRRROOORROOOROOORRRRORRRORROOROOROORRORRRROROROOORRRRROOOOORORRROORRRRRRRROORROORORROORRROOOOOORROROROORORROOOOORORORRRROOORRORRROORROOOOORRRORRRRORRORORROROOOORRRROOOORROROORROOROOOROOORROOOOOORORORROOROORORRORORRRORROOOORORRRORROOORRRROOROOOOOROORRRROOOROOOOORORROOOOROROOORORROORORORROOORRROORORORROROROOORORORROORRRROOROROROOOOORORROROOORROROOROORORORORRRRRRORORORRROOROOROROROOORRROOROOROROORRORROROROOOORRRRORROOORORRROOOOOORRRRORORRRORROOOOOROOOOORROORRRRRRROOOROOOOORRROOORRRRRRRORRORRROROROOORRRRRRRRRORRRRRROOROOORORRRRRRORROROOOOORORRRROORORORRRRORROROOORRRROOOORORRROORRROOROOOORRRORORRORORORROROOORORRROOORRRRORROORORRRRORORORORRRRORORORRRRORRRRRORROORRRRORRORRROOOORORRROORROOOOOOROORRRRROOROROORRRRRROOOORRORORROOOOOOORROROOOOOOOORROOROOOOROROROROROOOOORRROORRRRROORORORRRRRRORORROOOROOORRORRORRROORRORORROOOOOORRRROOOOOROOOROOOROORRRRRROOOOROOROOOORRORRORORORRRRRORROORRRROROROROOOOOORORRRRRORRRROOROORORRRROOROROROOROORRRORROOOROROORORRROORROOORROROOROORRROOORRRRRRRRRORRROOORORRRORRRRRORORRORRORRRRRRRROOOOROOOROOORORRRRRRROOOOOOOOROOORRROROROROOOOOOOROOOORRRRRRROOOROOOOROORRROORORRRROORORRORROORORORRRRORRORROOROORROOROOOORRRRORORRORORRORRROORRORORRRRRORRORRRORRORROROOOORRORORRRRRRRRROOROOOORROROOORRRRRRORRORROROORRORORORRRORORORORROROORRORROOOOOROROOROOORRROROOORORROOOROOORROOROROROROOROOORRRORROOOROROOORRRROROOOOOOORRRORRRROORROOOORRORRORRROOORRROROROOROROOOROROORRRRORROOORRROORROOOOORRROROOROOROOROOORRRRROOOORRROORORORORRRORORRRORORROROOORORROOORORROOROROOOOORORRORORORRRROORRRORRROORRROOOROOORROOOROORRRRRRROORRRORROOOOOORROROROOOOROORORROOROORORORORORRROOOOROOOOROOROOOROROOOOOOOORORROORROOOORRROROROOOORORRROOOORORORRRROOOOOORORRROOOOROORRRRROORRRRRRORORORRORROOOORRRRRORROORORRORRRRORROROORRROORORRROORRRRORRRORROORORRROROOORRORROOOOORRRRRROORORRRORORRRRRRROORRRRORRORRROROOOORORRROOROOOORRORROOROOORORRROOOORRROOOORRRORRRROROOORROOROORROOOOORRRORRRORROROOROORORRRRORRROOOOOOOOORORROROOOORROOOOOOOOOOOOORRROORORRRRROORROROROORRRORORORROOROOOOOOORRRRRORRRRORROORRROORORRROROROORRORROOROOOOORRRORORORROROOROOORORROOORRROORRRROROOOROORRRROOOORRRROORRROOROORRROOOORRRRORRRROOROOOOOOOROORRORRRRRRRRROORORRRORRRROOOROROOORRORRORRRROOOROOORRORRROOROROROORRORRRORRROOOOOROOOROOORORRROOOORRRRROROOORRRORRRORORORORROORRRRORROORROOOORRRROORRROROOOOROOOOROOROORRROORROROOROORRROOORROOOORROOOROOOORORRROORRORORORROOORORRROORORRRRORORRRRROROOORRROORROROOOOROORROROOROOORORORRORRORRRROOOOORRORORORRROORRRRRRORRRROORRROORRROROORRRROOOROORRROROOORRRROOROORROOROORROORRRORORORORRORROROROORRRRORORORROOORROOROORRRRORORORRROOOORORRROOOOOORORRORRRRRORORROOOORORRRROOROOOOROOROOROOOOOORRROORORRORRRROOORRRRRROROOOOROORORRRORRRRROOORRRRORROORRRROROROROORROOOOORROROOOROOORROOROOOORORORORORRRRROROROOOORROROOORRROOORORORROORORROORRROORROOORROROROORORROOOOORRRORROOORORORROOORORRORRROROOOOOOROORROROOOOROROOOOOOOROORRRORORRRORRRRORRRRORORORRRRROORROORRORRROROOOOOOORORORROOROROORRRRROORORRROOOORROORRROOOOROOOROORRRORROORORRRORORORRROOOROROOROOROORORORORROOROOOOROROORROROOOOORRRRRORRORORRRRRORORORRRRROOORORRORORRORRRRRORRRRRRRRORROOROROORROORORROOOORORRRRORRRROOOORORORRRORORORORROOROORRORROORORRRRRRRRRORRRRORRROROORRRORRRROOOOOORROROOROROOROROROORRROROOORRROOROORRRROROROROROROORRRROROORRRRRROOROORROROOOORRRRRRROORRROROOOORROOOOORRRROORORRRROOROORRROOOROOROROROOOOORORRRROOOOROOOOORROROOOOOORRROOOOROORRRROROOORRRROROOORRRORORRRORORRRRROOORRORRORRROOOORROOROORORRRRORRRRRROOOOOOOROROORRROROOOOOORRRRRRROOORRRORRRROOORORRROORROROOROORRRRRORROORORRRRORRRORRRORORRROROOROROOORRORROOOROOOOOORORROOORROROOOOOOORROOORORRORORROOORRRRROOOORRRRORRROOOOOORORRROOOROOROOOORRORRORROOORRRORRROROROORRROOOROOROOOOOROROOORROROOROROOROOROOOROORRROOORROOROROROOOOROORROOOOOOROORORRORORORRRROOOROROORORRRRORORRROROOOOROOROROOROORRROOROOOOROOORRRRORROOORRROROORROOOORRROROOORORRRRROOORORORORROORRRRRRRORORRRRRRRRRRRROROOORROORORRRRROROORORRRRORRORROOOROOOOOOOROORRRROROOOORROROORRORRROROOORORRORROOROOOROORORORRRROOOORRROOROOROROOORORORROOOOOROROROOOORROOOORROROOOOOOORROORORRRRROOORROOORROOROOORRRRROOOOROOROOOOOOORORRORROOOROOROOORRRRORRRORORORRROOOOORRRROOOORROROROORORROOROORRRROOROOOORRRRROROOORROORRRROOORROOOOOORRORRROORROROOOROORRROORORROOORROOROOORRROROROORRORRROOROOORRORORORRRRRRRRORORROORORORRROOOORORRRRROOROOROOOORRORRORRORRROORORROROROORRRORORRRORRRRROORORROORROROORRORRRRRORRROROORRROROOOROOOOROOORROOROROORROOORRROROROOOOORORRRRRROROOOOROROOROOOOROOORRROOROROORROORORRROOOOORORRROROORROOOORRORORRRORORRROOOROOOOORRRROOOROOOORRROORRORRROOOOORRRRRRRROORRRRRRRROORORORRROOOROOOOROORORRORROORORORROORROOOORORORRRRROROOOORRRRRORROORORRRORORORROROORRROOROORRORRROOOROOOOOOROROOOROORORORROROROOORROOOORRRRORORORRRROOOOOORROOOROORRROROORRROOOOORRROOORRORORORORROROOORORROORRRRRROROOROORORRORRRRORROORRROROOROOOORRROOROORRORROORORRORRRROOROROROORRRROORORRRRORORROROOOROOOOORRRROOORRORORROORROOORROORRRROORRRROOOOOOOROOORRRROOROROOROOROORORORORORRROOOROORROROOOORRRRORRRROROORROROOOOROOOROROROOORORROORROOROOOOORORORRRRORORROORRORRRRRROROORORRRRORRORRRORRRORORROOROOORRRRORROOROOOOOOOOOOROROOOROOOOOOOOOROROORROORRRORRROROOROROROROOORORORRORORROOROOROOORORRRRRROOORRRORRRROROROORROORROORORRORORRORRRRRROOOROROOORRORORRORRROOOOOOOOROROROOOORORROORORRRRRROOORROORORRRROORROOOORROOROOOORRROOORROOOOOORRORORORORORRRROORRROOOROROROOROOOOOROOOOOOOOOOOOOOORROORRROORROOORORORORROROROOORRORORROROORORRRROOORRRROROOORROROOOROORRROOROORRROROORRORRRRROORRRROOROOORORROOROOORRRRRRRRRRORRRRROOOORRRORRRROOROOROORRRRROOROORORRRORRRRRRROOROORRRRRRORRROOOORROROOOOOOORORRROORROORRORRRRRRRROOOORRROORROOROROOORORORRRRRRRROOOROOOOROORRRORORROORRORROORROROOROROROOOOOORRRRROORRORRROOROORROOROOORRRORRORRORRORORROOORRRRRROOORRORORROROROOROOOOORROROOROOORROOORRRROROOOROROROOORROOORROOOOOROOROOOOOOROROOORRRRROOOORROORROOOORRROOOOORRROOROORROORORORROOORRORRRRROORROOOORRORORRRRORRROORORORRORRRRROOOROOOOOORORORRRORROROOOROOROOORROOORRRRRRRRRRRORRRORORRROOORRORRRORORRORROROOOORRRRORRROOOOROOROORROOROOOORORRORROROORROOROROORRORORRRRRORORRRROORRRRRORRRRRORROOROOROORRRRRRROOOOROROORRRROROROOROOOROOOOROROOOOORORRORRRRRORRRROOROOORRORROOORRRORRRORROROOROROOROROOROOORRRRRROORORRROOOROORORRRRROROOOOORORRROOOOOORRORRROOROORORRROROORRORRROROOOOOROORRRRROROROROOOROROOROORRRROOROOOOOOOOROOOORRROORRROROOROORORORORORRRROOORROROROOORORORROROOOORORROOORRRRRROORROORRRORRRROOOROORRROOOROORORRRROOROORRORRRRRROOOOORRRRRROOROOOROOOROORRRRRROOORORROOOOOROOORROORRRORRORROROOOOROROROOOORORROOROOROORRORROROROORORRROROOOORRRRRRROOROORORRROROOOROROOOOROOOOOOOOROOOROORROOROROOROROOORRROOORORRROORORRORROORRRRRRRORRORORROOROORROOORRORORROROORORROOORROOOOROORRRORRRROROORRROOOORRRRROOROOOROOOOROORORORROROROORRORROORRRORROOOOORORRORORRROROORORRROORRRRROROROOROROOOOOOROORORRRROOROOROORROORORRROORORRRORRORROROOORROOROORORROORROOOOORRORROORROROOOROROORRROORRROOOROOROROORRRROOOORRORRORORROROROOROOOOOROORRROOORORROOROORROOOORORRROOORRORROROOOROOOOROORRROORROROROROOOOOROOOOORRRORORRRRROOROOOOOORRORROOOORRORRORROORROOOORRORORRRORRORORROOOOROORROROOOOOOROORRORROORROOORRROOROROOORRRROROROOOORRRRROOOOORROROOORRRRORROORROROOROOORORRRRRORRRRRORORROOOORROOOROOOOROORRRRRRRRROROORRORRORORROOOROORRORRORRROOOORORORROORRORROORRRRRRROOOOORROOORORROOORORROORRORRRROORRRORORORRORRROORRROROOROORORORROROOOROORROORRROORROROOORORRORRRRRRRROOROOOOORRRRRORORORROROOOOROOROROOOROOROORORRROROOROROROORRRROORRRROORROOROORROORRRROOOROOORRRRRRRRRORORRRORRRRRRRRROOROROOROOOROORROORROORORRRRORRRROORRRORORROORORORRROOOOOORRRRORORRROORRORORROOOOOORRRRRRRRRRORRRRRORROORORRROOORROOROOROORRORROORRORORRRRRROOOROOOORRRRORRRORORROOROORORRROOOORRROOROORROROOROOOROROOROORORORRROOOOOROOORRRROOOORRRORRRROROORORORRRROOOOOOORROOROROOROOOORROROOROOORORRRROORRROORRRRROOORRORORRROORRRRORRRRRRORORRORROORORRRRRRRRRRROOROORORROORRRRROORRRRRRRRRROORRRRORORROROOROORORRORRRORROOOROOORROOOOROROOORORROROORRORORRRROORRROOOORORORRROROOOROOOOOROORORRORORORRRRORROORRRRROOOOROROOOOORORRRRRRROORRROROORRRROOORROORRROORROORRROROROOORROOROROORRRRORRRORORRORRROROOOROROOOORROOORRORRRRORROORORRROORRROOORRRROORORROORROROROROOOROOOOORRORROOOORROOOORRROOORRROROROROROORORRORROORRORROOOROORRRROORROOORORRRRROORORROOROOORRRRRORROOROOOOOOORRRROOORROORRRRRRRORRORRROOOORRORROOORRROORRORRRRRRROROORRROORROROORRORORRORRRRRRRROOORORRRORRRROORORROORRORRORROOORROOROOOOORROORRROOOORRRRORORORORRRRORROOROROOOORRRRRRROORRRRRORRORROROORRORORORORRORRRRRRRROOROROORORORRRRROORRORORRRRRRROOOOOORRORORROOROROOROOOOOOORROOORRROOOOOROOOROORRRRORRROOOOORROROORRROORRRROOOOOOROOROOOOROOORRRORRROOROORRROROORRRRROOORRRORRORRORORROOOOOROROOOROOOOROORRROORORRORRROOORROOORROROOOORROORRRRROROOOOORRORORRRROROROROORRRRRRROOOORRRROOORRORRRRROORRORROOROORROOROOORRROROOOOROROORRRROOOOROOORROOOOOORRRROORRROORROOORRROORROROROOOROOROROOROORROOORROOOROOOOOORRRRORROROROOOOORRROROROOOORRRORROROORRROOORRROORORORRROOOOOOROOROOOOOORRROORRRORRRRRRROROROROORRROOOOOROROROOOOOOOOOOROOROOOROORRROOOOORROOORRROOOROORROOOROROORORROROORRRRRRROOROROOROROOOOORRROROOOROOROORRRRROROOORORROROORORROOOOORRRORRORRRORORRORRRROORORRROOOROOORROORRROROORRRORRRROOROOOOORRROORRRORRRRRRORRRORROOROOORRRRROOOORRRRROOROROORROROORRRRRRRORORRORROORRROORRRRRRROOOOOOOOOROOOOROOORRRROORORRORORORORORORORORROOOOROORRROORORRRROROOORRROOOOOORRRRROORORRRORRRORRRORRRROOORRRORROROROOROOROORROROOROORORRORRRRORORRROOORORROOOORRROORRORROORRRROROORRRRORRROROOROORROOROOOROORRROOROORROOROORROOOOOOORRROROOOOORROROORRROOOORORORRROROOOORRROOOORORROORRRRORORRORROROROOORORORRRORROORORROROOROOORORRROORORRORRORRRRRORORRROOORROORRRROROORRORORROROORRORROOROOOOROOROOORRORRORORRRORRORRRRROORROOOOROROOROOOOROOROORROOROOOOORROORORRROROOOROOORRRRRROROOORROOOOOOOOOOROROOOROORORROORORROOORRROOROOOORORORORRORRROORRRRRORRORRORORORRRROOOROOROOORORRRRORRORRROORROROROROOOROROOROOOOOROOOOROROOOOOROORRROOROROOORRROOORRORROROROORRRRRROORRROROORRROOORRORROORRRORROOOOROOROORRRROOOROROOROOROOORROOOROROROORROROROOROROOORROROORRROROOROOOOORORROORRORRORRRROORROORRORRROOOOOORRRRRORRRORRORORRROROROORRRORORRORRRRORRROOOOROOOOOROROROOOOORORRORRROORRRROROROROORRRROROROOOORRRROOOOOOORROROOOOOOOOROORRRORRRROOORRRRRRRORORORROROOORRROOROORRROOOOOOOORORRROROORORRORORRORRORORORORORRROOOROROOOORRROORROORORROORORRROOORORRRRRRRRROORRRORRRROORROORRRORRRORRORROROOOOOROORRROROOOOORORROOROROOOORRRRROOOOOROROROROOOOORRRORORRROROORRRRORRRROROOROOORORROROORRROOOOORORROORROOROROOOROOOOOOROOOROROOROOORORRRROOORROOOOORROOORORRRORRRRRORRRRROORORRROOOORRORRORROOROOOOOOOOORRRORROROROOOROOROOORRROOORRRORRORORROROOORRROORROOOOORROORORRRRRORRRROROORORROOORRRRRROORRRORRORRRRROROOOOOORRRORROORRRRRROOROOROORRRROOOOROORRRROOROORRRROROROROOROORRRORRRRRRRROROOOOOORORRRRRRROORRRORRRORRORRRROOORRRORRRRRRRROORORROROROOROORRRRRRRORROROOROOOORRORRORORRROOROOROOROOOOROOORORRORROOROOOORRROORRRROORRROOOORROORROORRROOROOORRORRRRRRROOORROROORRRRRRRRROOORORRRRRRRRRRRRROROORROORRORRRRRROROOOORORRORROOOOROORRORORRRRRROOOOROOOOOOOORRROORRORRORRORRRROORROOORRROORRORORRROORRORRORROOOORRRORRRRORROROOOOOROOOOOROOOOROORORORROORORORRRROROROORORORORORROOOOORRROOOROORROORRRROORORROORRRROOROORRRROORORORRRROOROORRRORROOROROOOROROORRORRORRROOOOORRORORRORRRORRROORORRRORROOOOOROOOOOORRORRORROOROOROOROOOORRRROOOORROROOOROOORORORORROOORORROOORRRRORRROROORRRRORRRROOROORORORORROOOORRROORORRORROOOROROOORRRORRRRORRRROOROORRROOOROROOOROORRRORRRRRRRORRROORORORROROROROOROOOOORRORRRROORROORORRRRRRRROORRRROORORRRROOOOOORORROROOROOORRORRRORRORROOOORRROORORRRRROOOOOROORRORORROOORRORORRROROORRRORROOOOROROORRRRRRORORRRORORROROORRORROORRRRORROORRRRRROOOOOOOORROOROROOOORRORORROORROOOORRRRORRORRRRORORROOROROROORROOOOROOORORROORRORROORORRROOROOOOORORRRROOROROOOORRRROORRROROROROOORORROOOROROROOROOOROORRORORRRRRRORORORRRRRROORROOOROOORORORRORORRROOROOROOOOOORRRROROROOOORROOROOOROOOORRROOOORRROROOOOROORRRORORRRORORROORRORROORROROOORROROOOOROORRORORRRORRRROOOORRROROOOOOOORROOOORORROROORRROOORORRROROROROOORROROOORORRRRROOOORORRORROORRRRRROOORRRORRORROORROORORRORORROROOOROORORRORROOOOOROROOROOROROOOOROROOOOOROOORRORRRROORROROORRROROOORROORRROORRORROORORORORRRRORORRORORRORORRRORRRORROOROOROOOOROOOOROORORRORROOROORRORORRRRORRRORORORROORRORRROOROOOROOROORORRORROOROROOOOROOORORORRRROROOOOOROOOORROORRRROROOOOORROROOOROOOOROOOOOOROOOOOORRRRORRORORROOOROOOROROROOORRROOOOORROORRRROOOOROORRORRROOROROROOOOOROOROROROOORROROORRRRRRRRROORRRROOOROROOOROOOROOROOROORORORRRRROROROROROORORRROROOORRORRORROOORORRRROORROOOOORORORRRRRROOORRRROROOORROOORRRORRORRORRRROOOOOORRROOOORRRORRROORROROOOOORRORORROROOOROOOROORRRRROORRRORRROROOROROROROOOORRROOROROOOOOORORRROOOOROORRRORRRROOROORRROOOOROROOORRORORROORRORORORROORRRRROORRRORORRRRORRORORORORRRORRORRRRRRROOORORRRRRRRRROROORORRORORROROORROROORROOROORROORORROORROOORRORRRROOROROOOROOORORRRRRRROOROOOOOOOORRRRORORORORRRRRRRRRRRROOOOORRRRRRRRRORRRORRORROORRORRRRROORROOROORRORRORROOROOOOORROORORORRROOOROOORORROOORRRORORROORROORROOORRRRORORROORORRRRRRROOROOORORORRORROOROOORORRRRRRORORRROORRORRROORRRROOOROOROROOOORORROOOOOOROROOOORRROROOOROROROOOORROORRRRORORORRRRRRROORRORROOORORORRORRROOOROOROOOORRRRRRROOROOROORRRROOOROROROOOOOOOROORRRRROROOROORRROROOROOORRRRORORORRORRROORRROORROOROOOROOOOROORRORRORRRORROOOOROORRROOORRORORRRORRRORRRRRRRRORORRORORROROOROORRORRRRRORRORRRROOROOOOORRRORORRORRORROORRROROORRROOORORROORORRRRRRRROROORRROOROOOOOORORORRRROOROOORROOROORORRRROOORORROROOORROOORORORROORRRRRROROOOORROORRORRRRRRRRRRORRORROROOORORROOOORRRRORRORROROORRORROOORORRRRROORROROORROOOOROOOROORRRRROOROOOROOROROORORRROORROOOORORRROROROROORROOORRRROOOOORRRRRORRROROOROROORROOROORRROOORRORROROOOORRORRROROROORORROOROORROROOORROORRORORRROROOOOOROOORORRROOORRRORORORROROOORRORORORRORRORRRRROORROOROOROROOORORROROROOOOOOOORRRROORRRROORORRRROORROOORRORORRORORROORRROROORROOOROOOOORROORROOOOORROROORRRORRRRRROOOROOROORRROOOORORORRORORRRRRROROOOROROORRRRORRRRORRRORRORRRROROOOORRRRRRRRRRRRROOORROROOOOOROROOOROORORRRRORRORORROORORORORROOORORROORRORORRRRRORORRRORORRORORRORRRORROROOOROOOOROOOROROOOOOOORORRRROOORRRROOOROORROORROOORROROORROOORRRRROORROORORORORORRROROROORRORROOORRORORRORROORRROROORRRORORROOORRROROOORROOOORORRORRORROOROOROOROORRROORRRRRRORORROOOORRRROROORRRRRRROORRORRROOOOORRROORORRRORROORROROORRRRROROROROOORRRRRRRORORROORRRRRROOOORRRROOOOOOOROOOOOORRRROROOORRROOROOORORRRRRROOORROORRRROOOORRRORORROORORRORRRORROOROOOROROORORORROOROORRRRROORORRROOOOROROROOOORRORORRORROOORORROOOROROOOOOORROROOROOOROOORORROORROORORRROOORROOOOOROOORROOORRRRRROOOOOOORRORRROOOORRRROOOROORORRROORROORORROROORRORRROOOOOORRORORRORORRRRRRROOROROORRRRROORRRRORRRRORRRRRRROOORORORRORROOROOOROOROOROOROORRROROOOORRORORORORRRORORRROROROORRORRROROORROOOOOOOOROOROOOOORRRRRRRRORORORRROORRROROROOORRORRORROOORORORROOORORRRRRROOROOOOORRROOOOROROROROOOORORROOOOORRRORROOORORROOROOORROROORRROROORROORRRROOROOOORRRRROOOROOOOORRRROOOROOOOORRRORRORROOOOORRRRORRORORRROOOROORRORORRROORRRRRROOROOOOOOOROOORRORRRROOORORRORROORRROOOORORRRRRORRRROORRRRRORORRORRORRRRORRRRROOOOORRORROORRRRROORRORRORRRROROROOOROORRRORRORROOOORORRORROOROORRORORRORROOORORORRRRRRORRORRRORRRROROOOORRRROORRORROROORRORROOROORRROOOOORRRORRRRRORRRRRRROOOOROOROROORRORORRORRRORRORRORORROOOROROOOOORORRORROROOROORROROOORROOORRRORORROORRRROORRROORORORRROOORROORRRRROORROOORRROORROOROOORRORRORROORRRRRORRORRRORRROROOROOORORRROORROOROORRORORRORRROORRRORRRORORRORORORROOOROOROORRRROOOOOOROOOOROORROOOORRRORRORROROROOOOORRRRROOOORROOROROORRORRORRRORORROORRROORROOOOROROOORROOROOOOOORRRRROROORRROOROROROORRRROOOOROOOOOOROOOOOOOOORORRROOROOOOOROROROORRROORROOOROROORRRRRRROORROROROORORRORORROORROOOOOOOORRRRORORORRRRRROOROOROOORRRROROORORROORRRROROOOROROORORROOROORROOROOROORRRROOROORORRROOOROROOOROORROOOOORRRORRRROOOORRRROOOOROROOROOORROROOROOORRRORRORORORRORRRROORORORORRRRORROOOOROOOOOORRORRRRRRRRRORRORROOORROROROROOROROROOROOROROOOOORRORRRRRRRROOOOOROROOORRRROROROOOROOROORORRROORORRRORRORRRROORRRROOOROOROORRRROROOROOOOORRRORROROROOOOORRRROROOOROROORRORRRRROROOROOOROORRROORRROOOROROOROOORORROOORRRRRRRORRRRROORROROROROROOROOOOOOOORRORRORRROOROOOORORRROROROOOOROORROOOOOORROOORRRORROROORRRROROROOORRROOORRROROOOORROOOROOROROOOROORORORROOROROROORORROROOOORRRROOROROORRRRORROROOORORROOOROOOOORORRROORROORORROOOOOOORRRROOORRRORROROORORRRROORRROROOROOROOROORROOROORRORRRORRRRORRRROORRROROORORRRORRORRORRORORRORRROOORROOOOROOROORROOOOORORROORRROOOOOROROOORRRORRROOROOOOOOOOOOORRROROOOOROOOROOROORRRRORORORORROOOORRROROROORORORRORRRROORORRORORORRROOORROROOOOORRRRROORORORRROOROORRORORRROORRORRORROOOOROORRRORROROOOOORRRRRORORROOORROOORRRORRRROORRRRRRRROROORRORROOROORORRORRRORRORRORRRRRROROOORROORORROOOOORRORROOORRORRRROOOORROROORROORRRRRRROOOOOOOOORROOROROOOROROORRORRORORRORORORRRORRRROOOOOOOROOOOORRRRRORORRORRORROROORRROOROROROORROROROORORRRRROOOROORROROOORORRORORRRRRORRORROOOORRROORRORRRROORRORRORRORORRROORRRROORORRRROOOOOORORROROOROOOOOOOORRRRORROOOOORROOROORRRRROROOORRRRRROOROROROORRRRROOROOROOOROOROROOORORRRRRORROOROROROOOOOORRRORORROOROOOORORORRRROORORORRORRROOROROOORRORROOROROOOORORROOROOORORRRRRRRORRROOOORRRORROROROOORORORRORROORROOOROOOOROOOROOORROORROROORORROOORRROORORORRROOROOROOOOOOOROOOOROOORROORROOORROOOOROOORRRROOORORORROOORRROOROROORORORRORRROOOROROORRRRRROORRROORROORORROROROOORRRRORROROOROOOOOORRORROORRRRRORRRRORROOOROROOORRRRRRROORRORRORRORROROROORRROOROOROOROOROROOOOORRORRRRRORROOOOOOORROOORRROOORORRRROOROROORRROOOORRROORROOOORROROOORORRRORORRROOROORORRROOOORRROOOOOROOORROROOOORROORORROOOOROROOORORRRRRRROOOOORRORRORORRRRORRROROORRRORRRORORRRORRROOOOOOROOORRRORROORRRORORROORORORORORORRRRRRRROOROOROOOOOORRRROOORRROOROOROORRORRRRORRROOROOOORROORRRROORROOOROORRRRRRRORORORORORROROROOORRRRROOROOROOOOOOOOROORORRRORRRRRRORORRROROOORROOOORRRRORRRRRROORROORROORRRRRRORRRRRRROOOOOOORRORRRRRORRORRROORORROROOORROORORORRRRRORROOOORROORORORORRRORROROOROORORRROOOORRRRORORRRRRORRRROOROORROORRROOROOORORROROOROORRORRROORRRRRROOORRRROROOORROOROOOOROROOROORORORRORROOORROROORRRORRRROOORRORRORRROOORRORRROOROORORRRORORRRROOROROROOOOOOORROROOOOROORROROOOROOROORRRORORROOROORROOOORROOOOOORRRORRROROOOOROROORROROORORRROOROOOOOORROOORRRRORRRORORORRORORROORRROORRRORRRRRROROOOORROORROOOROROROOOOOORORROORRROOOORRRRRORRRROROOORROROORRRRRRROOOOROORRORROROROROOOORRRRRRRORORRRROORROORROOORRROOOOROORROORRRRRRROORRRROORRORRROOOOORROOOOOORORRROROORRRRRORRORORORROOOOORROOROOOORRORRRRORRRRRRRRROROROOORROORORROOOROOORRRRRRRRORRRROROORORRRROORROOOOOOOROORRRRROOROROOORROROORORRROORROORRORRROORRROROORORORRRRRRRRRRORROOOROROOOOOOORORRRRORRORROOOOOORRRRRORORORORORRORRRRORROOORRRROOROOOOROOORORRRORRRROROOOROROOORRROOROOORORRRRRRORORRROOROOORRORORRORORRRROROOORORRORRRRORRORORORRRRORROOORRROROORROROOOOOOOOOOOOOORROOOOOOOROOOOORRRROOORORORORORRORRROOORRROORORROROOORRRORORORRORROOROOROOOOROOOOOROORORRRRRROOROROOOOOORORRRRORORORRRROROOORROOROORRROROORROORROORROOOORRRRRRORORROOOOROORRRROROORRRORRORRORROORRROOORRRROOOROROOORROROOORROOOOOROOOOORORORRRORORROORRRORRRORROROROROOORRRRROROORRRORRRROOROOOORORRRRORROOOROROROOOORORORRROOOOROOROOORRROOOORORRRRRRRORROROROOOOOORRORRRORORORRRRRRRORRRRORRROOOROROOROOROOROOROORORRORORROROROROOORROORRRROORRRRORORRRRRORROORROORORRORRRORRORORORRORRRORRRRRROORRRROROOROROOORRORROORRORRORRRORROORRROROOORROOOROROORRORRORRROORRORRRROROORORROORRROROORRROOOROOOOOOORORORORRRORRROOOOORORORRROOORORRRRORRORROOOORRROORRRORROORROOROOOORORROOORRRROORORRORRRRROOOOOORROOROOROORORORRORRRORROOORROOOOORORRRROORRORROOOOORROOOOOOROOORORRORRRROROOOORRRORRROOOROOOROROOROROORRROOOROOOROORRORRRORRRRORRRRORROROROROROOORROOROOOOOROORROROOROOOOROORRROORRRRRRROORORRORRROROOOOOORROROROROOROOOROROOOOORROOOORORROOORRRROORRORRRRORRROROOORRRORRROOOOOORORRRRORRRRRORRRORRORRORRRROROORROOROROOROROORORRRORRROROOROROOORROORRRORRROORRORORRRORORRRROOOORORROOOOORORRORRRRRROROOOOOROORORROOOOOOOROOOOOOOORROOOROOORROOROROOORRRROOOOROROOOORROOOROOOROOOORRORORORORORORORORROOROOOOOORRRROORROOROROOOROOOOORROROOOOROOROROORORORRROORRRRORRRORORORRRRRORRROOOROORROOOOOROORORROORRRRROORRROORRRROOORORRRROOROOOOOOROOOROOORORROOROOOOOOOROOOROOORORORRRORRRROOOORRRROOORROORRRORORRORRRRORRRROOROORORROOOROOOOOROORORRROOROORROOORRORORORRROOOOROOOORORORORROOOROROOORRORRRORROOORRORRRRORRRROROOOOOOORORORROOORRORRORRRORROORROOOROORROOOORRROROORRORRRRRORRROOOORROOOORRORRROOOOOOROOROOROOOORROORRROROROOOROROROORORORROORRORORRROORRROOOOROOOORORRRROOOOOROOOROROOROOORRRROOORRORROORRRORRROROOOOOOROOROORRRRRORRRRRRRRORRRRRRROOOORROOROOROORRRRRRORRROOROORORRRORORROROOOOOOOROOORROOOORRRRRRROROORRORROOORRORORROOOROOROOROROOOORRRRROOOROORRORROORRROORORROOOROOROORRORORRRORRRORROOOOOOOROORRRRRRRRORRORRRRROOROORORORROOOOROORORRRRROORROROOORROORRRROOOROOOORORORRROORROOORROOOROORRORRRORROORROROROOOOOROORORRRRROOROOOOOOOOORRROORRRORRRRORROROROOROOORRRROORRRORRRORROOOOORRROOROROROOOORRORRRRRRORRROORORROOOORRRROOORROOROOOORRRROORORROROROORROOOOOORRRRROOROORROROORROOOOROORORORROOROOOOORROOORRORORRRORORRROOOOORORORORRROOOORRROORORRROOORRROORRROROORORRORRORORRRORRROORROOOOOOROOOORROOROORRORRRRORRRRRROOOROROROORORROROORROOORRORRRRROORRRROROROOOORORROROROOROOOOOOROOROORRORORORRRRRRRRRROOOORRROROOOOROOOOROORRORRORRRRROOOOOORROOORRROOOOOROOROOOORORRROOOORROOOROORROOORRROROROOROOROROOORORORRORROOROORORROROROROOROOOOORORRRORROORRRRORRRORRRROOROROROOORROORRRRRRROROORROORRRORORROOOOOORORRORORRRROOROOOOOROOOOOORORRRRORORRRRORRROORRROORROROROROORROORROORRRRRRRORRRRRRRORROORORROROORRRORROOOORORROROROORROROORROORRORORORORROORROROOOROOOOOOOORROROROOORRORRRRROROROOOROROROOROROORRRORORROORORRROOORRROORRROROROOROOOROOORRRORRRRRRRROOORRRRORORRROOOOOROOOROOROOOORROOROORROORORROOORORORORROROROOORROOORORORROROROORORRRRRRRRRROORROROOORRORROORRRRRRORROROOOOOROOOORRORORROROORORROOORROORRROOORRORORORROORORORRORORRRRORROOOROROOOORORRRROROOOOOROORORRROOORROORROROOROOOROOORROORRORRORRRRRRORRROROOOOOORRRRRRORRROROORROORRORORRRRROOOOOROORORROOROROOOROOOORRRORRROORROOOOROORRROROROOOORRORRRRROOROOOROOORROORROOROROROOOORRRROORRORRROORORORROORRROROOOROORORRRROROOOROROORORRRRROROROOOOROOROROOORROORRRORRORROORRRROOOORROORRRORROROORROOOOORORROROROOOORRROOOOORORRRROOOORORROOROOORROROOORROOORRORRROROROORORORRRRRORORROOOOROOOROOOOOOORRROOROOROOROORRROOROROORORORRRRRROORRRRROOOOOOOOORROOOOROOROOOORRRROOOORRROOOORRORRROOOORORRRRRORRROOOROOOORROOOROROROROROOOOOROOROOOORRROROOORORRROOORRROOOROROOORRRORORRRORRRROOORRORRROORROROOROOOORRRRORORRRORROOOORRRROORRRORRRORROORORRRRORRROOOORORORROOOOOROORRRRRRRRROROOORROROOOROOOORROOOORRRRRRRORRROORRROOOROOORRRROORRORROROOOOOORORROOROOORORRORORRORRROOOORRRRROROOOORRRRORRROOOORORRROOOOOROROOORRRRORRROROROROROORORROROOOOROROORORORORRRRRROROORROROORROOORRROROROOOOROOROORRRRROOROORRRORROOOOORRRRROORRRRRROORROOOOOOOORRROORORRORROOROOORRRRROOORROOOOROROOOORORRROROROOOOOORROORRROOROORRROROOROROOORRRRRORRROORRRORORRRORRROORRROOROOROROROROOROOOOOOOROOOOROORRROOOOOORORORROOORRRROOOORROOOROOORRRORORRRRRORORRRRROOOORRROROOOOOROOOORORRRRRRRRRRORORRRRORORRRRROOOOORORROROOROROOOOOOOORRORRORROOORORROORRRRRROORROOOROOOOROORRROROOOOROORROOOOORRRORROOOOROOROROOORROOOOOOROROORRRRROOORRRORROOOROOOOROROOOOOROOOOOROROOOROORORRROROOORORORORRROOOORRROOOORORROROORRRROOORRORORORRRRROOORORROROROOORORORRORRRRRORROOOORRRORROORRRORORORROROOROROORRRORROOOORRROOOOROORRRROOORRRORROORRRRORROROROOOOROORRROOROOOOORROROOOOROOOORRRORRRRRRROROROOORORRRRRORORORORORROOOOOORRRROOOOOOROOROOOOOOROROOORRROORORROOORRORRRROROROOOROROORROOOROORRORROOOOOOROOORRRRORRRRRROORRORRRROOOROOOORRRORRORRORRORRORRROOROROORRRORRRROROORORORRORORROOOOROROOOOOOROOOORRRROORORRRRROORRROROOOORROORRRRORRRORORRORORRORRRROORRORORRROOOOOOORROROOOOOROOOOOROORRORROOOROOOROOOORROOROROROROOROOOOOROORRRORORORROOOOOOOOROROOORRORRRORROORROORORRRROOORRROORRRROROOOOOROORRRRRORROORRRRROOROOOOORRRORRROROROOOOOROOROORROOORRRRROROOORROORRROROOOOORRRROOORORROORRRORROOOOOROORRRORRORRRRRORRROROOROOOORRROROORORORRORRORRORRRROOROOORORRRRROROROOROORRORROORRRRROORORRRORRRRORROROROOROOORROORRRORRORRRRROROORRROOOOORRRORRRRRRORRORRORRRRRRORRROOORORORROROOOROOOOROOROOROROOORRRORRRROOORRRROORROOORRRRROOORRRROROORRRORROROORORORRRROROROOROROOORROROOROOORRRROROOORORRORORRRROORROOORRRORRRORRROORORRRRORRRROORORRRRRRROORRORRRRRORRORRRRRROOOROORRORRRORRRRRORRRRORRORROROROOOROORROROOORROORROOOOOROROROOOORRRRRRORROOROOOOORRRRRROROOORORROOROOROOOOORRROOOROORORRRRORORRROOORORRROOROROROOORORRORROROOOORRRROORORRORRRRORROOROOORROOOROOROOORRROROORROOROROROROORROOORROORORROORORROOOOOORORORROROOOOOORORROOOOROOOORRROOORROROOORORRRROROOORRRRROORRORORROORRROOOOOOOROROOOROORRRRROROORRRRORORRROOROOROROOOROORORORORRRROOOROOORROOOOROOORORRRRRORORROROROROROOOROROORRORRORROROOROROROROOORROORROROORRRRRRROOROOOORORRORROROROOOOROOOOROORRRROORRROORROROOOORROOOROROOOROOORORROROROROOOOOOOORORRRROOOORORRROROORRRRORORORRRROOROOOROORROORROOROOROOROOOOORRRORORROOOROROOOROORROOORROORRORORRRORRRORRROOOORROOOOROOOOORROOORORRORRORRRRORROOORRRRROOOOOORRORROOOOOOOOOROROOOROOROOOORRROOOOORRRROROOORROOOOOOROROROROOORRROORRORRROOROORORORRORRORRROORROROORRORRROORROORROOOOOOOOOORROORRRRRRRRROORRRORORORRROOOOROOOROOOOOOORORORRROOORROROOORRRROORROOORRRRRRRROROROORROOOOROORRRRRORORRORRRRRORROOOOROOOROOOOOOOROOOOROORORORROORRRROOOORRRORRORORORRROOOORORORROORORORORORROORRRORRROOOOOOOROORROOORORRRRRORRORRORRORORORORRRRROOOORORORRRRORROORORRRRROOROOROROORORRRRROROORRROOOOROOOOORROOORROROOROOORORROOOOROOORRRRROOORRRORORRRORRRROROROOORORRORRROOROOOOROROOROORRORORORRRRRRRRRRROOORORROOOORROORORROROOOOOORROROOOOROOORRROOOROORORRROOROORORRROOOOOOROORRRRROOROOOORROOOORROROOROROOORRRORRROOORRORRRRRRRROOORORRRRRRRRORRROOOOOROROORORRROOORRORRORRORRRROOOROROOOOOROORRRORRORRRRRRRRRROORORROOORROOOOOROORROOROORRRRRORRORRRRORRRORRRROOROROOOOROORRRRROOOOOROOOROOROROROOORORRROORROOORROORROOORRORRORORORORRROOROOOOOORORRROORRORRRRRRRRRRRRORROORRROROOROORROOROOOOOOOOORORRROOROOOOOORRRRROOORRRROOOORORRORRRRORROOOOOOORRRORRORORRRROOROORORRORORORRRORROORORORROORRRROOOOOORORORROROORRROORRORORRORRORORORROROORRROOROOOROORORROROROOOORROOROOOOOROORRORRRROOOOOROROROORROOORROORRRRROORRORORORRRROROOOORRORRRORROOROROOOORRRRRRRRROOOROOOOOORROOORROOORRORROOROORRRROOORRORROOOROROROORORRRORRRORROOORROORORORROROOROROOROROORRRROOOOOROOOOOORRROORROOORROOROOROROROORRROROOROOOOORRRORROORRRRRRRRROORORROORRRROORROORRRRROROOOOOORROOORRRROORRRRRRRORROROOORRRRORROROORROOORRORROROOORRRROORRORROOROROOORROROROORRROORROROORRORORORRRORROOOOORRRRROOOORORROROORRRRRRRROORRRORROROORRRROORROROORRRRRROOOOORRORRROOROORRRORROROOROORORROOOOROOROOOORROOOROOOORRORRRORRRROORRORORORRORORROORRRRRRRROORROOOORROORRROORRRROORROOROORORROOORROOOOOOOROOOOORRRRRORORRRORORRROOORRRROOORRRRRRROROORORRRRRORRRRORRORRRORRORORRRROOROOOORORRORRROOOOOROORRRORROOROOORRRROOOROORRRRROROOROORROOOORRROOOORRROORORRORROOORRRRROOOORROOORRORORRORROOROOOROORORRROORORORORROORORROOROOORORRRORROOOROOOOROORRRORRORRROOOROORRORRROROOOOOOROORORORROROOOORRROORORROOORRROOROOOOROOROROOOOOOROROORRROOOORROOORRROOROOORORORORRROROROROORORRRORRRRROOOORROOOOOOORROORRROOOOORORRORROROORRRORRROROROORRROOOROOROROOOOOOOOOROORROOROOROOORORORRRRORRROOORRORRRROOORROOROOOOROOOOOOOORRORORRORORRRORORRRROORROORRROORRROOOORORRORORRRRRRRRRRORRORRROROROROOOROOROOROOOOOOORRORORROORROORRRRRROOOROROROOOROORORRRRORRRRORROORRROROOORRROOOOOOOOOORORROORRRORRORROOOORRROOORROOOROOROROOROOOOROOORORROOORROOORRROORRRRRROOOOORROOOOORROOORRRORRRROOROORRRROORRROORORRROOROROORROOOORRRORRRORRRRRRORROORORROOROORRRRRRORRROOROORORRROORROROORRRRRRORORRORRROOOOOOROROOOOORROORROROROORORROORORORRRORORORROOOOOOOROORORRROORROOORORRRRORRROROOOROROOOOOOOROORRRRORROROOOOOORRRRORROOORORORROOROROOROROROROOROOROOOOOORORROOORRROORROOORRRORROROROROOROOORORROROORRRROORORROOOORROOORROOOROOORORROORRRROROORRRRROOROROROORRRROORRRORRORRRORRORORRORRRROOROOROROORRRROROROORRRORRRRRROOOOROROOOOROORROORROORORROOOOORROORROROROOORRROOROROOORORORORROORROOROROROORORRRORORROORRRRORORRORROORROOOROORORRRRRRRORROORRRORROOOORRROROORROOOROORROROORROOROROROORROOOROROROORROROORRRROORRROROOOORROROOORRORRRRORRRRROORRORROOOROOOOORROROORRORRRRRROOOOOORRROROORRRRROORROROOROORROOORRRRRRROOOOOOOORRORROOOOOOOORORRORORROOORRROOOOROORRRORORORRRRORRRRROOOOOORROORRRRRRRRRRRRORORRORRROOORROROROORORROROOROROOOORRORRRRRRROROOOOOROOROROOOOOORROOROOROOORROOOORROORORRORRROOOORROOOROOOOORROOOOOROROROORRROOOOOORROOORRORORRROOROOOOOROORRRROOOOOROORORRRRRROOOROROROROOROOORROORRRRORORRORROORRRRRORORORRRRROOOOROORROOROOOOOOOOORRRRORROROOORROOORRRORRROOORROOROORROOOORRRRORORROOOOOORRRRROORRRRROORROROOOOORORORRRORROORORROORRRRROORRORORRRRORROOOORROOROOOOOROOOOOORORRORRRROOORROROORRRRRORORORORRORRRROORRRORORRROROORORRRROOROOOOROOOROOOROROORROORRRRROORROOOROOORRRROORROOOOROOROOROROORRORRRORRRRROOORRROORRRROROORRROOOOOORORRORRRORRRORRRROORRROROROROORORRRRRRRRROROOROOOOROOORROOORROOOOOOOOOOOROOORROOOOOOROOORROOORRRROROROOOORRORORRROORRROOORRROROOOOROROROOORRROROROOOOORRORORRROOORROOOOOROORROOORORORRRORORROOOROOOORRRRROORRROROOOOOOOOROOORRORROOROOOORRRRRORROOORORROOOORRRRROORORORRORRRRRROOOORROROOOOOOOOORORRORRRORRORRRRRORROROROOOORRROORORRROORORORRORROROROOORRRORRROROROOORRROORORROORROROOROOOOROOROOORRRRROOOROORORRRRROROOROOOROROOOOOOORORRRRRORORROORRRROOROORRROOOOOOROORORROORORORRRRRORORORRROOORRORRRORROORROOROOOOOOOORORORORORRORRRRROORRROROOOOROROOOOROOOROOOOOROOOROORRROOORORRORORROOOORROOOORRRRORRRRROORORORRRRRORRORRRRRORROOROOROOOORROOROOOOOOORORRORORRRORRRRORRRRROOORRRROOOOROORORRROOROOOROOOOORRROORORORRRRORORROOORRRORRROOORRROORRORRORRORROROROORORRORRORRORORROOROORRRRROROOOOOOOORROORORRRRROROOOOOORORRROROROOOOOOOOROOORORRROORRRRORRROROOORROOORRROOOOOOOOOROOROORROORRRROOORROORRROROOOORRRORRRORORRROROROORRROOOROROROORROORORRORROOOROROROROROOOOOOORROOOOOOOROOOORORORRRROROOOORRRRROROROROORRROOOORORRRORORORROROROOOORRROROOORRRRORRORROROOORRRROOROORORRROOROORRRRRRRORORORRORRRROORROROROOOORRORROOOOROORRROROOORRORRRRRRRORRRRROOORRRORRROROOOOOOOOOROORRORRRROOOROOORROORRRRROOOORORROOOOOOOOORORRRRRRRRRRRRROROROORORORRORORRRRRRORROOOOOOOOOROORORRRRROROOOORORORRROOOROOOROROOOORRRRORROOOOOORORRROORRRRORRRORRORRRORRRROOOOOROORROROORROOROORRORRROROORRRORRRORRRROROOORRROROROORRROORROOROOOOOROORRRORRROOOORRRRROOROROOORORROOOORORRRRROOOOROORORORRRROOOOORRROROOOOROROROORRROROOROOORRROROOOOOORROOORRRRROROOORRRROORRROORRROOOORRROROORROOORRORROORORORRRROOORRROORRROROROOROORROOOOROORORRORROOOOOOROROOOORRRROOOROROROORRRROOOOORORRROOROOROOORORRORRRRRRRRROOOOROOOORORRORORRRROOOOROORROROROOOORRROORORRRRORRRROORORRORORRROOOROOORRRRRRROROORRRROOOROROORRORRROOOOOOROROROOROOOORROORRORORRORROOOROOROORRRROOORROROORRRORROORRRRROORRRRRRORRRRRRROOORORRROORORRRORRRRORORROROORORRRROOOORRRRRRRRRRROORROOORRRRORRROROROOROOOROORROOOOOORRORRORORRRRORORROROOOROOOOOORROOORORRRRRRRORROOOORROOORRROOOOORROOOOROORRROROROORORORRRORORORRROOORORORROOROOORORROORORRRRRORRROOOOORORRRROORORROOOOROROORRORROOORRRORROOORORROORORRRRORROORRROORROORORORRRROROOOROOROOOROOROORROOOOORO\n"
  },
  {
    "path": "challenge1/tests/mon9b.out",
    "content": "82660\n"
  },
  {
    "path": "challenge1/url.txt",
    "content": "http://main.edu.pl/en/archive/pa/2010/mon\n"
  },
  {
    "path": "challenge2/.gitignore",
    "content": "pilots\ntests.zip\ntests/\n"
  },
  {
    "path": "challenge2/README.md",
    "content": "# The pilots challenge\n\nTo run c++ solution run\n```bash\ng++ pilots.cpp -O2 -o pilots\n./run_tests.sh ./pilots\n```\n\nTo run Python solution run\n\n```bash\n./run_tests.sh python2 pilots.py\n```\n"
  },
  {
    "path": "challenge2/download_test.sh",
    "content": "#!/bin/bash\n\n# stop script on error and print it\nset -e\n# inform me of undefined variables\nset -u\n# handle cascading failures well\nset -o pipefail\n\n curl -o tests.zip \"http://main.edu.pl/en/user.phtml?op=tests&c=1700&task=633\"\n unzip tests.zip -d tests\n"
  },
  {
    "path": "challenge2/pilots.cpp",
    "content": "\n#include <cstdio>\n#include <algorithm>\n#include <queue>\n#define ST first\n#define ND second\nusing namespace std;\ntypedef pair<int,int> PI;\n\n\nint t,n,T[3000007]; //12 MB\ndeque<int> MX, MN; // wartosc,pozycja\n//TOTAL: 12 MB\n\nbool test(int x) {\t\n\t//printf(\"%d..\\n\", x);\n\tMX.clear(); MN.clear();\n\tfor(int i=0; i<n; ++i) {\n\t\twhile(!MN.empty() && T[MN.back()]>=T[i]) MN.pop_back();\n\t\tMN.push_back(i);\n\t\twhile(i>=x && MN.front()<=(i-x)) MN.pop_front();\n\t\t\n\t\twhile(!MX.empty() && T[MX.back()]<=T[i]) MX.pop_back();\n\t\tMX.push_back(i);\n\t\twhile(i>=x && MX.front()<=(i-x)) MX.pop_front();\n\t\tif(i>=x-1 && T[MX.front()]-T[MN.front()]<=t) return 1;\n\t\t//if(i>=x-1) printf(\"   %d: %d, %d\\n\", i, T[MN.front()], T[MX.front()]);\n\t}\n\treturn 0;\n} \n\t\n\n\n\n\nint main() {\n\tscanf(\"%d%d\", &t,&n);\n\tfor(int i=0; i<n; ++i) scanf(\"%d\", T+i);\n\tint l=1,r=n,sr,wyn;\n\twhile(l<=r) {\n\t\tsr=(l+r)/2;\n\t\tif(test(sr)) { wyn=sr; l=sr+1; }\n\t\telse r=sr-1;\n\t}\n\tprintf(\"%d\\n\", wyn);\n}\n"
  },
  {
    "path": "challenge2/pilots_n.py",
    "content": "# n solution\n\nfrom collections import deque\n\n# read in the first line of input\nk, n = [int(x) for x in raw_input().split(' ')]\n# read in the second line of input\nA    = [int(x) for x in raw_input().split(' ')]\nassert len(A) == n\n\n# check all the subsequences and keep the length\nbest_sequence_length = 0\n\n\nmin_extravaganza = deque()\nmax_extravaganza = deque()\n\ndef ok():\n    if len(min_extravaganza) == 0:\n        return True\n    else:\n        difference = A[max_extravaganza[0]] - A[min_extravaganza[0]]\n        return  difference <= k\n\nstart, end = 0, 0\n\nwhile end < len(A):\n    while end < len(A) and ok():\n        best_sequence_length = max(best_sequence_length,\n                                   end - start)\n\n        while len(min_extravaganza) > 0 and \\\n                A[min_extravaganza[-1]] >= A[end]:\n            min_extravaganza.pop()\n        min_extravaganza.append(end)\n\n        while len(max_extravaganza) > 0 and \\\n                A[max_extravaganza[-1]] <= A[end]:\n            max_extravaganza.pop()\n        max_extravaganza.append(end)\n\n        end += 1\n\n    if ok():\n        best_sequence_length = max(best_sequence_length,\n                                   end - start)\n\n    if min_extravaganza[0] == start:\n        min_extravaganza.popleft()\n    if max_extravaganza[0] == start:\n        max_extravaganza.popleft()\n    start += 1\n\nprint best_sequence_length\n"
  },
  {
    "path": "challenge2/pilots_n2.py",
    "content": "# n^3 solution\n\n# read in the first line of input\nk, n = [int(x) for x in raw_input().split(' ')]\n# read in the second line of input\nA    = [int(x) for x in raw_input().split(' ')]\nassert len(A) == n\n\n# check all the subsequences and keep the length\nbest_sequence_length = 0\n\nfor start in range(0, n):\n    minimum_so_far = A[start]\n    maximum_so_far = A[start]\n    for end in range(start + 1, n + 1):\n        minimum_so_far = min(minimum_so_far, A[end - 1])\n        maximum_so_far = max(maximum_so_far, A[end - 1])\n        # line below is O(n)\n        difference =  maximum_so_far - minimum_so_far\n        if difference <= k:\n            best_sequence_length = max(best_sequence_length,\n                                       end - start)\n        else:\n            # smartness (difference will newer decrease!)\n            break\n\nprint best_sequence_length\n"
  },
  {
    "path": "challenge2/pilots_n3.py",
    "content": "# n^3 solution\n\n# read in the first line of input\nk, n = [int(x) for x in raw_input().split(' ')]\n# read in the second line of input\nA    = [int(x) for x in raw_input().split(' ')]\nassert len(A) == n\n\n# check all the subsequences and keep the length\nbest_sequence_length = 0\n\nfor start in range(0, n):\n    for end in range(start + 1, n + 1):\n        current_seq = A[start:end]\n        # line below is O(n)\n        difference =  max(current_seq) - min(current_seq)\n        if difference <= k:\n            best_sequence_length = max(best_sequence_length,\n                                       len(current_seq))\n\nprint best_sequence_length\n"
  },
  {
    "path": "challenge2/pilots_nlog2n.py",
    "content": "# LAZYYYYYY\n"
  },
  {
    "path": "challenge2/pilots_nlogn.py",
    "content": "# n * log n solution\n\nfrom bintrees import FastAVLTree\n\n# read in the first line of input\nk, n = [int(x) for x in raw_input().split(' ')]\n# read in the second line of input\nA    = [int(x) for x in raw_input().split(' ')]\nassert len(A) == n\n\n# check all the subsequences and keep the length\nbest_sequence_length = 0\n\n\nmin_tree = FastAVLTree()\nmax_tree = FastAVLTree()\n\ndef ok():\n    if max_tree.is_empty():\n        return True\n    else:\n        difference = max_tree.max_item()[0][0] \\\n                     - min_tree.min_item()[0][0]\n        return  difference <= k\n\nstart, end = 0, 0\n\nwhile end < len(A):\n    # extend the sequence until violation reached.\n    while end < len(A) and ok():\n        best_sequence_length = max(best_sequence_length,\n                                   end - start)\n        min_tree.insert((A[end], end), None)\n        max_tree.insert((A[end], end), None)\n        end += 1\n\n    if ok():\n        best_sequence_length = max(best_sequence_length,\n                           end - start)\n\n    # move starting position by 1.\n    min_tree.remove((A[start], start))\n    max_tree.remove((A[start], start))\n    start += 1\n\nprint best_sequence_length\n"
  },
  {
    "path": "challenge2/run_tests.sh",
    "content": "#!/bin/bash\n\n# stop script on error and print it\nset -e\n# inform me of undefined variables\nset -u\n# handle cascading failures well\nset -o pipefail\n\nSCRIPT_DIR=$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\n\nfor filename in `ls $SCRIPT_DIR/tests/*.in | sort --version-sort -f`; do\n    output_filename=${filename::-3}.out\n    time $@ < $filename | diff -bs - $output_filename\ndone\n"
  },
  {
    "path": "challenge2/url.txt",
    "content": "http://main.edu.pl/en/archive/oi/17/pil\n"
  },
  {
    "path": "hello.txt",
    "content": "hi\nhow are you?\n"
  },
  {
    "path": "lecture1/Fast exponentiation and fibonacci sequence.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"import cProfile\\n\",\n    \"from operator import mul\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Fast Exponentiation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We can quickly compute $a^b \\\\ mod\\\\ m$ using, the following trick best illustrated by example.\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"5^{13} = 5 * 5^{12} = 5 * (5^6)^2 = 5 * ((5^3)^2)^2 = 5 * ((5*5^2)^2)^2 = 5 * ((5*5*5)^2)^2\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"In that example even though we would naively need 11 multiplications to calculate results we managed to get away with 5.\\n\",\n    \"In general we can write out \\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"fexp(a,b,m) =\\n\",\n    \"\\\\begin{cases}\\n\",\n    \"a & \\\\text{if}\\\\ b=1\\\\\\\\\\n\",\n    \"fexp(a,b/2,m)^2 &\\\\text{if}\\\\ b\\\\ \\\\text{even}\\\\\\\\\\n\",\n    \"a \\\\cdot fexp(a,b-1,m) &\\\\text{otherwise}\\n\",\n    \"\\\\end{cases}\\n\",\n    \"$$\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def fexp_recursive(a, b, m, mul_op=mul):\\n\",\n    \"    # We can easiely handle b = 0, here, but we choose not to\\n\",\n    \"    # this will be helpful later when we deal with matrices...\\n\",\n    \"    assert b >= 1\\n\",\n    \"    if b == 1:\\n\",\n    \"        return a\\n\",\n    \"    elif b % 2 == 0:\\n\",\n    \"        conquered = fexp_recursive(a, b / 2, m, mul_op=mul_op)\\n\",\n    \"        return  mul_op(conquered, conquered) % m\\n\",\n    \"    else:\\n\",\n    \"        b_one_less = fexp_recursive(a, b - 1, m, mul_op=mul_op)        \\n\",\n    \"        return mul_op(a, b_one_less) % m\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"64\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"fexp_recursive(2, 6, 1000)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"4\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"fexp_recursive(2, 6, 10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         89 function calls (46 primitive calls) in 0.000 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"     44/1    0.000    0.000    0.000    0.000 <ipython-input-2-78a9a64277e1>:1(fexp_recursive)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"       43    0.000    0.000    0.000    0.000 {operator.mul}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"fexp_recursive(2, 10000000000, 10)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Iterative approach\\n\",\n    \"Very similar algorithm can be written out without recursion by looking at binary representation of b and noticing that if $i-th$ bit is one, then we need to multiply the result by $$a^{2^i}$$\\n\",\n    \"Don't worry if you don't fully understand the code below. It is included here, to show you that there are multiple ways of approaching implementation of this kind of solution. Also iterative algorithms are sometimes preferred - we will get back to that point below.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def fexp_iterative(a, b, m, mul_op=mul):\\n\",\n    \"    assert b >= 1\\n\",\n    \"    result = a\\n\",\n    \"    multiplier = a\\n\",\n    \"    b -= 1\\n\",\n    \"    while b > 0:\\n\",\n    \"        if b % 2 == 1:\\n\",\n    \"            result = mul_op(result, multiplier) % m\\n\",\n    \"        multiplier = mul_op(multiplier, multiplier) % m\\n\",\n    \"        b /= 2\\n\",\n    \"    return result\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"64\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"fexp_iterative(2, 6, 1000)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"4\"\n      ]\n     },\n     \"execution_count\": 8,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"fexp_iterative(2, 6, 10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         57 function calls in 0.000 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 <ipython-input-6-dc8e4fdca639>:1(fexp_iterative)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"       54    0.000    0.000    0.000    0.000 {operator.mul}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"fexp_iterative(2, 10000000000, 10)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Fibonacci sequence\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The Fibonacci Sequence is the series of numbers: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... The next number is found by adding up the two numbers before it. I.e. 3 is found by adding the two numbers before it (1+2). Here we will explore 3 different algorithms for computing the $n^{th}$ Fibonacci number and analyze their time complexity. We denote the $n^{th}$ Fibonacci number as $F_{n}$. Code for the following 3 algorithms is in recitation1.py which is available on the Stellar site under recitation materials. \\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Naive Recursion\\n\",\n    \"\\n\",\n    \"By definition, $F_{n} = F_{n - 1} + F_{n - 2}$. As this is the ``naive'' algorithm, let's not try to be too clever and instead simply write an algorithm using only this definition!\\n\",\n    \"\\n\",\n    \"Now to analyze the runtime. Formally this algorithm can be analyzed by solving the recurrence, $T(n) = T(n - 1) + T(n - 2) + \\\\Theta(1)$. This is a tough recursion to solve! Let us separately find an upper and lower bound instead of a $\\\\Theta$ relation. \\n\",\n    \"\\n\",\n    \"It is clear that the recurrence $T(n) = 2T(n - 1) + \\\\Theta(1)$ is strictly greater than our original, so let us use it to find an upper bound. Each recursive call results in two child recursive calls until the base case is reached. Therefore, there will be $\\\\Theta(2^{i})$ recursive calls made at the $i^{th}$ level of recursion. Since, the subproblem size only decreases by one on each call, there will be $\\\\Theta(n)$ levels of recursion before the base case is reached. Therefore this recurrence solves to be $\\\\Theta(2^{n})$ and we can conclude that our algorithm is $O(2^{n})$\\n\",\n    \"\\n\",\n    \"The recurrence $T(n) = 2T(n - 2) + \\\\Theta(1)$ is strictly less than our original. Using similar logic as above we can see that this recurrence solves to $\\\\Theta(2^{\\\\frac{n}{2}})$ and we conclude that our algorithm is $\\\\Omega(2^{\\\\frac{n}{2}})$.\\n\",\n    \"\\n\",\n    \"Challenge Problem: Find a tight asymptotic bound to this algorithms runtime. Hint: Draw a tree diagraming recursive calls and look for the pattern!\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def fibonacci_recursive_slow(n, m):\\n\",\n    \"    assert n >= 0\\n\",\n    \"    if n == 0:\\n\",\n    \"        return 0\\n\",\n    \"    elif n == 1:\\n\",\n    \"        return 1\\n\",\n    \"    else:\\n\",\n    \"        return (fibonacci_recursive_slow(n - 1, m) + fibonacci_recursive_slow(n - 2, m)) % m \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"55\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"fibonacci_recursive_slow(10, 1000)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         2692539 function calls (3 primitive calls) in 0.888 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"2692537/1    0.888    0.000    0.888    0.888 <ipython-input-10-c32dd02825c7>:1(fibonacci_recursive_slow)\\n\",\n      \"        1    0.000    0.000    0.888    0.888 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"fibonacci_recursive_slow(30, 1000)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Memoized Recursion\\n\",\n    \"It's often the case that we can improve the efficiency of algorithms by exploiting natural ``structures'' present in the problem. Notice in the naive algorithm that we often compute the same thing multiple times! This occurs because we have overlapping subproblems. For example, both $F_{n - 1}$ and $F_{n - 2}$ depend on the solution to $F_{n - 3}$. We can take advantage of this structure by memoizing (storing) the solutions to subproblems as we go. Therefore instead of recalculating them we can simply look them up! Look in recitation1.py for python code.\\n\",\n    \"\\n\",\n    \"This improved algorithm has a time complexity of $\\\\Theta(n)$. This can be seen from the fact that we in total solve for $\\\\Theta(n)$ $F_{i}$s, each of which take only constant time to compute. \\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"cache = {}\\n\",\n    \"def fibonacci_recursive_fast(n, m):\\n\",\n    \"    if not (n,m) in cache:\\n\",\n    \"        assert n >= 0\\n\",\n    \"        if n == 0:\\n\",\n    \"            result = 0\\n\",\n    \"        elif n == 1:\\n\",\n    \"            result = 1\\n\",\n    \"        else:\\n\",\n    \"            result = (fibonacci_recursive_fast(n - 1, m) + fibonacci_recursive_fast(n - 2, m)) % m\\n\",\n    \"        cache[(n,m)] = result\\n\",\n    \"    return cache[(n,m)]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"55\"\n      ]\n     },\n     \"execution_count\": 14,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"fibonacci_recursive_fast(10, 1000)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         1783 function calls (3 primitive calls) in 0.004 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"   1781/1    0.004    0.000    0.004    0.004 <ipython-input-13-45ec8644bee2>:2(fibonacci_recursive_fast)\\n\",\n      \"        1    0.000    0.000    0.004    0.004 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"fibonacci_recursive_fast(900, 1000)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Iterative versus recursive solutions\\n\",\n    \"The code below should give a runtime error on a standard Python interpreter - because its exceeding the default stack limit. This kind of limitation is why we often opt for iterative versions of the algorithm. Don't worry though, it turns out that for every recursive solution there exists an itertive equivalent. Indeed - we can emulate recursion stack with a stack datastructure. Such a solution is often tedious to implemented and constact factor of the runtime become large. There's why we often seek for *natural order of calculation*, i.e. order in which we compute the subproblems, such that by the time we need a particular result it has alredy been computed. For example in case of Fibonacci the natural order of computatation is to compute $F_1$, then $F_2$, then $F_3$ etc. Notice how resulting solution is even simpler than the recursive one!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fibonacci_recursive_fast(9000, 1000)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def fibonnaci_iterative(n, m):\\n\",\n    \"    assert n >= 0\\n\",\n    \"    if n == 0:\\n\",\n    \"        return 0\\n\",\n    \"    f_current, f_previous = 1, 0\\n\",\n    \"    for _ in range(n - 1):\\n\",\n    \"        f_current, f_previous = f_current + f_previous % m, f_current\\n\",\n    \"    return f_current\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"55\"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"fibonnaci_iterative(10, 1000)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         4 function calls in 1.025 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.901    0.901    1.025    1.025 <ipython-input-17-732ce64d7038>:1(fibonnaci_iterative)\\n\",\n      \"        1    0.000    0.000    1.025    1.025 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"        1    0.124    0.124    0.124    0.124 {range}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"fibonnaci_iterative(10000000, 1000)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Matrix exponentiation\\n\",\n    \"\\n\",\n    \"Take a moment to think back to the recursive squaring algorithm from lecture. In a similar fashion, we can compute the $n^{th}$ Fibonacci number in logarithmic time by repeatedly squaring the matrix \\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\\\begin{align}\\n\",\n    \"\\\\begin{bmatrix}\\n\",\n    \"    1 & 1 \\\\\\\\\\n\",\n    \"    1 & 0\\n\",\n    \"\\\\end{bmatrix}\\n\",\n    \"\\\\end{align}\\n\",\n    \"\\n\",\n    \"In fact\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\\\begin{align}\\n\",\n    \"\\\\begin{bmatrix}\\n\",\n    \"    1 & 1 \\\\\\\\\\n\",\n    \"    1 & 0\\n\",\n    \"\\\\end{bmatrix} ^{n} \\n\",\n    \"= \\n\",\n    \"\\\\begin{bmatrix}\\n\",\n    \"    F_{n + 1} & F_{n} \\\\\\\\\\n\",\n    \"    F_{n} & F_{n - 1}\\n\",\n    \"\\\\end{bmatrix}\\n\",\n    \"\\\\end{align}\\n\",\n    \"\\n\",\n    \"To give a rough proof of why this is the case, let us use induction on $n$. Our claim is trivially true in the base case $n = 1$. Now assuming that our claim holds for this matrix to the $n^{th}$ power, we must show that our claim is also true for this matrix to the $(n + 1)^{th}$ power. \\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\\\begin{align}\\n\",\n    \"\\\\begin{bmatrix}\\n\",\n    \"    1 & 1 \\\\\\\\\\n\",\n    \"    1 & 0\\n\",\n    \"\\\\end{bmatrix}\\n\",\n    \"*\\n\",\n    \" \\\\begin{bmatrix}\\n\",\n    \"    1 & 1 \\\\\\\\\\n\",\n    \"    1 & 0 \\n\",\n    \"\\\\end{bmatrix} ^{n} \\n\",\n    \"= \\n\",\n    \"\\\\begin{bmatrix}\\n\",\n    \"    1 & 1 \\\\\\\\\\n\",\n    \"    1 & 0 \\\\\\\\\\n\",\n    \"\\\\end{bmatrix}\\n\",\n    \"*\\n\",\n    \"\\\\begin{bmatrix}\\n\",\n    \"    F_{n + 1} & F_{n} \\\\\\\\\\n\",\n    \"    F_{n} & F_{n - 1}\\n\",\n    \"\\\\end{bmatrix}\\n\",\n    \" = \\n\",\n    \" \\\\begin{bmatrix}\\n\",\n    \"    F_{n + 1} + F_{n} & F_{n} + F_{n - 1} \\\\\\\\\\n\",\n    \"    F_{n + 1} & F_{n}\\n\",\n    \"\\\\end{bmatrix}\\n\",\n    \"=\\n\",\n    \"\\\\begin{bmatrix}\\n\",\n    \"    F_{n + 2} & F_{n+1} \\\\\\\\\\n\",\n    \"    F_{n + 1} & F_{n }\\n\",\n    \"\\\\end{bmatrix}\\n\",\n    \"\\\\end{align}\\n\",\n    \"\\n\",\n    \"Success! \\n\",\n    \"\\n\",\n    \"The runtime analysis for this algorithm is identical to that for modular exponentiation using repeated squaring. In particular we do not include cost of matrix multiply in our analysis, because matrix has constant size.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"F = np.array([[1, 1],\\n\",\n    \"              [1, 0]])\\n\",\n    \"\\n\",\n    \"def fibonnaci_matrix(n, m):\\n\",\n    \"    Fn = fexp_recursive(F, n, m, mul_op=np.dot)\\n\",\n    \"    return Fn[0][1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"55\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"fibonnaci_matrix(10, 1000)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         90 function calls (47 primitive calls) in 0.001 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"     44/1    0.000    0.000    0.001    0.001 <ipython-input-2-78a9a64277e1>:1(fexp_recursive)\\n\",\n      \"        1    0.000    0.000    0.001    0.001 <ipython-input-23-eff9346cd7e3>:4(fibonnaci_matrix)\\n\",\n      \"        1    0.000    0.000    0.001    0.001 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"       43    0.000    0.000    0.000    0.000 {numpy.core.multiarray.dot}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"fibonnaci_matrix(10000000000, 1000)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Problems to think about (non-examinable, non-compulsory, strictly for fun...)\\n\",\n    \"\\n\",\n    \"1. Give an example of another operation besides multiplication and matrix multiply that can be efficiently composed using fast exponentiation.\\n\",\n    \"\\n\",\n    \"2. Compute the n-th item of tribonacci sequence using the three methods presented above:\\n\",\n    \"\\n\",\n    \"\\\\begin{align}\\n\",\n    \"s_n =\\n\",\n    \"\\\\begin{cases}\\n\",\n    \"1 & \\\\text{if}\\\\ n \\\\in \\\\{ 1,2,3 \\\\} \\\\\\\\\\n\",\n    \"2s_{n-1} + 2s_{n-2} + s_{n-3} & \\\\text{otherwise}\\n\",\n    \"\\\\end{cases}\\n\",\n    \"\\\\end{align}\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture1/Stock Exchange.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import cProfile\\n\",\n    \"import random\\n\",\n    \"import time\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Stock Exchange Problem\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Consider the following problem. We have a non-empty array representing evolution of price of a particular stock over time.\\n\",\n    \"```python\\n\",\n    \"A = [20, 3, 19, 1, 15, 6]\\n\",\n    \"```\\n\",\n    \"Given this information we want to find what is the optimal profit we can make using single buy and single sell operation (here we have perfect knowledge of the prices - you can imagine that this quantity is something that quantitative traders would like to know, to compare their decision to the best possible decision given perfect knowledge of the future).\\n\",\n    \"\\n\",\n    \"More formally we want to find two numbers $b$, $s$, such that $$0 \\\\leq b \\\\leq s \\\\leq |A|$$ and $$A_s - A_b$$ is maximum possible. Of course we cannot sell before buying.\\n\",\n    \"\\n\",\n    \"For example for the array given above, the biggest profit we can make is $16$ (make sure you can see that). Below we present three different solutions to this problem.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# here we seed the random number generator, to ensure, that we generate \\n\",\n    \"# the same random instance every time we pass seed equal to a particular \\n\",\n    \"# value. This way the speed comparison is fair.\\n\",\n    \"def make_prices(n, seed):\\n\",\n    \"    \\\"\\\"\\\" Return array of n random prices. \\\"\\\"\\\"\\n\",\n    \"    random.seed(seed)\\n\",\n    \"    return [ random.random() for _ in range(n) ]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Naive solution\\n\",\n    \"This solution is a direct search of values of $b$ and $s$. The complexity is $O(n^2)$ (intiutively we have two nested for loops, each of which does $O(n)$ iterations, when $n$ = len(A).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def naive(A):\\n\",\n    \"    \\\"\\\"\\\" return best gain on A, using naive method \\n\",\n    \"        running time, due to doubly-nest loop, is O(n^2)\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    n = len(A)\\n\",\n    \"    ans = 0\\n\",\n    \"    for i0 in range(n):\\n\",\n    \"        for j0 in range(i0,n):\\n\",\n    \"            ans = max(ans, A[j0]-A[i0])\\n\",\n    \"    return ans\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"16\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"naive([20, 3, 19, 1, 15, 6])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         50025009 function calls in 14.463 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.004    0.004    0.005    0.005 <ipython-input-1-a3d706331740>:1(make_prices)\\n\",\n      \"        1    9.050    9.050   14.458   14.458 <ipython-input-2-1b173f4b093c>:1(naive)\\n\",\n      \"        1    0.000    0.000   14.463   14.463 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 random.py:100(seed)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {function seed at 0x7f90fbfeb578}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {len}\\n\",\n      \" 50005000    5.213    0.000    5.213    0.000 {max}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"    10000    0.001    0.000    0.001    0.000 {method 'random' of '_random.Random' objects}\\n\",\n      \"    10002    0.195    0.000    0.195    0.000 {range}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# slowness alert!\\n\",\n    \"cProfile.run(\\\"naive(make_prices(10000, 1))\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Divide and conquer approach\\n\",\n    \"Here we split our array into two simpler problems corresponding to left half of the array $L$ and right half $R$. \\n\",\n    \"For example if \\n\",\n    \"```python\\n\",\n    \"A = [20, 3, 19, 1, 15, 6]\\n\",\n    \"```\\n\",\n    \"we can imagine that\\n\",\n    \"```python\\n\",\n    \"L = [20, 3, 19]\\n\",\n    \"R = [1,  15, 6]\\n\",\n    \"```\\n\",\n    \"In order to reduce our problem to those simpler problems we need to consider three cases:\\n\",\n    \"1. $ b,s \\\\in L$ - we can solve it by solving original problem for $L$\\n\",\n    \"2. $ b,s \\\\in R$ - we can solve it by solving original problem for $R$\\n\",\n    \"3. $ b \\\\in L$ and $ s \\\\in R$ - we can solve it by finding minimum in $L$ and maximum in $R$ and returning the difference\\n\",\n    \"\\n\",\n    \"We need not consider the case $s \\\\in L$ and $b \\\\in R$ (why?).\\n\",\n    \"\\n\",\n    \"This way we reduced our problem to two smaller problems. This is good - we will keep changing bigger problems into smaller problems until we get problem so small that it is trivial to solve - in this case if our array is of size 1, then the maximum profit we can make is $0$.\\n\",\n    \"\\n\",\n    \"The complexity of this solution is can be calculated by solving the following equation:\\n\",\n    \"\\n\",\n    \"\\\\begin{align}\\n\",\n    \"T(1) =& 1\\\\\\\\\\n\",\n    \"T(n) =& T(n / 2) + T(n / 2) + O(n)\\n\",\n    \"\\\\end{align}\\n\",\n    \"The three summands in the equation above come for cases 1,2,3 listed above. In particular notice that case 3 requires single read through data and therefor has complexity $O(n)$. The solution to this set of equation is $T(n) = O(n \\\\lg{n})$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def dc(A, lo=None, hi=None):\\n\",\n    \"    \\\"\\\"\\\" return best gain on A[lo:hi], using divide & conquer \\n\",\n    \"        running time is solution to T(n) = 2*T(n/2) + Theta(n) = Theta(n log n)\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    if lo is None:\\n\",\n    \"        lo = 0\\n\",\n    \"    if hi is None:\\n\",\n    \"        hi = len(A)\\n\",\n    \"    n = hi-lo\\n\",\n    \"    # base case\\n\",\n    \"    if n == 1:\\n\",\n    \"        return 0\\n\",\n    \"    # divide and conquer\\n\",\n    \"    # divide into lo:mid and mid:hi\\n\",\n    \"    mid = (lo+hi)//2            \\n\",\n    \"    # recurse on left half\\n\",\n    \"    gain_low = dc(A, lo, mid)\\n\",\n    \"    # recurse on right half\\n\",\n    \"    gain_high = dc(A, mid, hi)\\n\",\n    \"    # figure out best gain for buying in left half, selling in right half\\n\",\n    \"    buy_price = min([ A[i] for i in range(lo, mid) ])\\n\",\n    \"    sell_price = max([ A[i] for i in range(mid, hi)])\\n\",\n    \"    gain_cross = sell_price - buy_price\\n\",\n    \"    # optimum is max of three cases just solved\\n\",\n    \"    return max(gain_low, gain_high, gain_cross)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"16\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dc([20, 3, 19, 1, 15, 6])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         80001 function calls (60003 primitive calls) in 0.073 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.004    0.004    0.005    0.005 <ipython-input-1-a3d706331740>:1(make_prices)\\n\",\n      \"  19999/1    0.047    0.000    0.068    0.068 <ipython-input-9-e8b912c3a064>:1(dc)\\n\",\n      \"        1    0.000    0.000    0.073    0.073 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 random.py:100(seed)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {function seed at 0x7f90fbfeb578}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {len}\\n\",\n      \"    19998    0.008    0.000    0.008    0.000 {max}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"    10000    0.001    0.000    0.001    0.000 {method 'random' of '_random.Random' objects}\\n\",\n      \"     9999    0.004    0.000    0.004    0.000 {min}\\n\",\n      \"    19999    0.008    0.000    0.008    0.000 {range}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"dc(make_prices(10000, 1))\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Solution by algorithmic thinking\\n\",\n    \"Notice that if we know a $k$ such that $b \\\\leq k \\\\leq s$ then we can find $b$ and $s$. Indeed, $b$ is minimum to the left of $k$ and $s$ is maximum to the right of $k$. Since we don't know which $k$ is correct, we need to try all values. Implementing that solution naively leads to $O(n^2)$ complexity. Not happy.\\n\",\n    \"\\n\",\n    \"To improve on it notice that we can precompute answer to all the questions of form *minimum to the left of $k$* (and store them in the array $B$) and *maximum to the right of $k$* (and store them in array $S$) in complexity $O(n)$. Once promputed - we can just look them up in complexity $O(1)$, which we will do $n$ times - once for each value of $k$. The total complexity is sequal to:\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"\\\\text{work to precompute B} + \\\\text{work to precompute S} + \\\\text{work to evaluate all values of k}\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"Notice that all the of those have complexity $O(n)$, so the total complexity is $O(n)$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def lin(A):\\n\",\n    \"    \\\"\\\"\\\" return best gain, computed by linear-time alg \\n\",\n    \"        running time is Theta(n)\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    n = len(A)\\n\",\n    \"    # B[k] = min{ A[i0]: i0 <= k }   for k = 0, 1, ..., n-1\\n\",\n    \"    #      = price to buy at if you have to buy no later than k (and sell no earlier than k)\\n\",\n    \"    B = [A[0]] * n\\n\",\n    \"    for k in range(1, n):\\n\",\n    \"        B[k] = min(B[k-1],A[k])\\n\",\n    \"    # S[k] = max{ A[j0]: j0 >= k }   for k = 0, 1, ..., n-1\\n\",\n    \"    #      = price to sell at if you have to sell no earlier than k (but bought no later than k)\\n\",\n    \"    S = [A[n-1]] * n\\n\",\n    \"    for k in range(n-2, -1, -1):\\n\",\n    \"        S[k] = max(S[k+1], A[k])\\n\",\n    \"    # G[k] = S[k] - B[k] for k = 0, 1, ..., n-1\\n\",\n    \"    #      = best gain from buying no later than k, then selling no earlier than k\\n\",\n    \"    G = [ S[k]-B[k] for k in range(n) ]\\n\",\n    \"    # opt = max { G[k]: 0 <= k < n }\\n\",\n    \"    #     = best possible gain for given input A\\n\",\n    \"    opt = max(G)\\n\",\n    \"    return opt\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"16\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"lin([20, 3, 19, 1, 15, 6])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         30010 function calls in 0.026 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.004    0.004    0.006    0.006 <ipython-input-1-a3d706331740>:1(make_prices)\\n\",\n      \"        1    0.015    0.015    0.020    0.020 <ipython-input-12-21a4740e4169>:1(lin)\\n\",\n      \"        1    0.000    0.000    0.026    0.026 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 random.py:100(seed)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {function seed at 0x7f90fbfeb578}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {len}\\n\",\n      \"    10000    0.003    0.000    0.003    0.000 {max}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"    10000    0.001    0.000    0.001    0.000 {method 'random' of '_random.Random' objects}\\n\",\n      \"     9999    0.003    0.000    0.003    0.000 {min}\\n\",\n      \"        4    0.001    0.000    0.001    0.000 {range}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"lin(make_prices(10000, 1))\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"source\": [\n    \"# Problems to think about (non-examinable, non-compulsory, strictly for fun...)\\n\",\n    \"1. **Maximum sum subsequence problem** - given an array A find a contiguous subsequence of maximum sum. For example for\\n\",\n    \"```python\\n\",\n    \"A = [10, -2, 10, 5, -4, 14]\\n\",\n    \"```\\n\",\n    \"the answer is 15.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Hint to problem 1\\n\",\n    \"cyph = lambda x: chr((ord(x) + 64) % 128)\\n\",\n    \"''.join(map(cyph, '\\\\x08).4z`2%$5#%`4()3`02/\\\",%-`4/`4(%`34/#+`%8#(!.\\\\'%`02/\\\",%-'))\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture11/BFS.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from collections import defaultdict\\n\",\n    \"from igraph import Graph as PlottableGraph, plot, layout, Plot\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 79,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Graph(object):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        self.adj = defaultdict(lambda: [])\\n\",\n    \"        \\n\",\n    \"    def add_edge(self, a, b):\\n\",\n    \"        self.adj[a].append(b)\\n\",\n    \"        self.adj[b].append(a)\\n\",\n    \"        \\n\",\n    \"    def draw(self, root):\\n\",\n    \"        graph = PlottableGraph()\\n\",\n    \"        figure = Plot(bbox=(800, 600))\\n\",\n    \"        for name in self.adj:\\n\",\n    \"            graph.add_vertex(name=name, label=name)\\n\",\n    \"        for name, neighbors in self.adj.items():\\n\",\n    \"            for neighbor in neighbors:\\n\",\n    \"                if name < neighbor:\\n\",\n    \"                    graph.add_edge(name, neighbor, color=\\\"black\\\")\\n\",\n    \"        for vv in graph.vs:\\n\",\n    \"            if vv.attributes()[\\\"name\\\"] == root:\\n\",\n    \"                root = vv.index\\n\",\n    \"                break\\n\",\n    \"                    \\n\",\n    \"        figure.add(graph, layout=graph.layout(\\\"kk\\\"), margin = 100,\\n\",\n    \"                          vertex_label_dist=1, root=root)\\n\",\n    \"        return figure\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 90,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def bfs(graph, start):\\n\",\n    \"    node_to_depth = {start: 0}\\n\",\n    \"    parent = {start:None}\\n\",\n    \"    \\n\",\n    \"    next_level = [start]\\n\",\n    \"    while len(next_level) > 0:\\n\",\n    \"        print (\\\"Level %d:\\\" % (node_to_depth[next_level[0]],))\\n\",\n    \"        current_level = next_level\\n\",\n    \"        next_level = []\\n\",\n    \"        for node in current_level:\\n\",\n    \"            print \\\"    \\\", node\\n\",\n    \"            for neighbor in graph.adj[node]:\\n\",\n    \"                if neighbor not in node_to_depth:\\n\",\n    \"                    node_to_depth[neighbor] = node_to_depth[node] + 1\\n\",\n    \"                    parent[neighbor] = node\\n\",\n    \"                    next_level.append(neighbor)\\n\",\n    \"    return node_to_depth, parent\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 80,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"g = Graph()\\n\",\n    \"g.add_edge(\\\"START\\\", \\\"study_hard\\\")\\n\",\n    \"g.add_edge(\\\"study_hard\\\", \\\"mit\\\")\\n\",\n    \"g.add_edge(\\\"study_hard\\\", \\\"giveup\\\")\\n\",\n    \"g.add_edge(\\\"study_hard\\\", \\\"get_a_real_job\\\")\\n\",\n    \"g.add_edge(\\\"study_hard\\\", \\\"start_a_business\\\")\\n\",\n    \"g.add_edge(\\\"start_a_business\\\", \\\"marry\\\")\\n\",\n    \"g.add_edge(\\\"get_a_real_job\\\", \\\"marry\\\")\\n\",\n    \"g.add_edge(\\\"marry\\\", \\\"HAPPY\\\")\\n\",\n    \"\\n\",\n    \"g.add_edge(\\\"giveup\\\", \\\"lookforjob\\\")\\n\",\n    \"g.add_edge(\\\"lookforjob\\\", \\\"mcdonalds\\\")\\n\",\n    \"g.add_edge(\\\"mcdonalds\\\", \\\"low_income\\\")\\n\",\n    \"\\n\",\n    \"g.add_edge(\\\"mit\\\", \\\"grad_school\\\")\\n\",\n    \"g.add_edge(\\\"grad_school\\\", \\\"low_income\\\")\\n\",\n    \"g.add_edge(\\\"low_income\\\", \\\"unsatisfied_demands\\\")\\n\",\n    \"g.add_edge(\\\"unsatisfied_demands\\\", \\\"DEPRESSION\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 81,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE\\nQVR4nOzdd5xkVZn4/0/P9HQOE5gBhiE6IhkBRXIWCQ4SzFlRgmERVmVFdFl3XdnfrgEzZkVBQETF\\ngIsSFETJoANLGhjykCZ0mtj3+8dT9ZuamuoK3dV9q6o/79frvqb71qlzn1s1M3Wfuuc8ByRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkkapKe0AJEmSpHGwO7ArMCfz+7PA34G7U4tIgAmIJEmSGkdbG3y0Gc7ohI59YXge\\nNAM8AWtvhikDMLAWLlgJnwdWphyvJEmSpDq1TxcsOQ7674IkGWG7E5IF0N8FzwB7px20JEmSpDrT\\nAm/phsGriyQe+dvvIOmCgRZ4U9rxS5IkSaofB3TBULG7HsXuhnTCILBf2ichSZIkqfa1d8DzV40i\\n+chuv4DhDlgCtKV9MpIkSZJqWBt88lgYGG3ykd2OgoF2+Je0z0eSJElSDeuGZ+4cY/KRQHIbJN3w\\nVNrnI0mSJKl27bwp9I81+UggGYZkNvQDO6R9UpPBlLQDkCRJkkZht/1guBodNQH7Rl+7V6M/FWcC\\nIkmSpHo0d5sqThzfDlqBLarVn0ZmAiJJkqR61JR2ABodExBJkiTVo6cehZXV6mxR9PVktfqTJEmS\\n1FichC5JkiRp4liGV5IkSdKEaYFzjoa+sSYgR8KKZvjntM9HkiRJUm1r74DnrxpD8vELGO6KuR8t\\naZ+MJEmSpNp3QCcM3TWK5OMuSDpj7sdeaZ+EJEmSpPrwiimwvBtWXV1B8vFbSLpgoAXemPYJSJIk\\nSaoPewLPAicB+3TBkuOgv9jdkDshWQD9XbAE2Dvd8CVJkiTVi12IylWvz9nX1gbndsFzs6HvOFh+\\nBqw5A9YcB8tnQ18XPNsGn6SKq6hLkiRJGl9JzjYIPAr8AngzG69QnhTZCrVZCTwA/AfQPkKbVcDa\\nzDE7Kzje7pk2rcAngIXAAPBipq/Dc/opp03uOQD0Al8AFgOrM39+HugpEOMtFF4UPL9PSZIkadLL\\nvUhuAbYE3gDcDFxNXLwXaltOf63AHsB1wNcKtNkJeIa4i3E1cGGRvkbyI+CnwI6Z480m5oJcX2Gb\\n3GN1AHcB3wNeSrwuLwW+C9zBxsnUj4FTC8RmAiJJkiTlGekiuRn4X+LOQam2pfqbRyQauW12IIZd\\nvSezb25em3KPNwhMr0Kb3GN9Gvj1CO1+DZyb97zNgEXAJkX6lCRJkkTxi+R9gXvKbFuszTxionhu\\nm8XAyTn75gJ9FcSWtQjYrwptco/1d+CAEdodSOHX5J+A7xTpU5IkSRLFL5I7iLsHuW3LmQOS1ULM\\n1fgj8I3Mvm0zbd6f02YXYgjWFQViK3W844HngMuIJGBfYGpeP+W0ye1zCJhJYTPZ+DUh098dwD4j\\n9ClJkiSJ0gnIQJltc9vkTjB/CPhcpq9tiEnuhRKKZ4A5FcSWaxbwTuArRBKwCHhVhW3GmoBA3GW5\\nnfXJjQmIJEmSlKfYRfJ+xGTsctqWarMF8CDwkbw2bcAriWFNn6ogtmLeAvyjwjZjHYKV9T3gQyM8\\nJkmSJE16I10kTyWGRZ1dRttS/c0lyvGeVaTNdsDzQHeFxytkBlFqt5I2Y5mEnms2cXdlToHHJEmS\\npEkv9yJ5GnGn4iTgRsZehhdgc+B+4KNl9HM5G5azLed41xMldTcl4n8pcDHwgwrb5B6rE7ibKLs7\\nP/Oc+cQk80JlePOdBvywzPglSZKkSSV3HsYQUZ3ql8QQpdEuRJi1GfB/wL8W6KeQI4k5FJUc7zDg\\n58TdjEHiTst/EnNOKmmTH9N04IvA48Aa4DFiYcJCCxHmm0IsTmgCIkmSJE2QTYi5Ep9JOxBJkiRJ\\njW0WMXn9P9IORJIkSVJjmwncSQxxkiRJkqRxM4OYpH1+2oFIkiRJamw9wM3Al9l48rokSZIkVU03\\ncBPwNUw+JEmSJI2jLmLNkK9j8iFJkiRpHHUCfwK+icmHJEmSpHHUDlxDrPg9JeVYJEmSJDWwNuD3\\nwEXA1JRjkSRJktTAWoHfAT/B5EOSJEnSOGoFfgtcgsmHJEmSpHE0DbgCuDLzsyRJkiSNi2bgcuCX\\nQEvKsUiSJElqYM3AZcBVmHxIkiRJGkdTiDK7v8bkQ5IkSdI4mgJ8H/gDseaHJEmSJI2LKcB3gWuB\\njpRjkSRJktTAmoBvA9dh8iFJkiRpHDUBFwA3AJ0pxyJJkiSpwX0R+CvQk3YgkiRJkhrb54G/Ab1p\\nByJJkiSpsf03cAsmH5IkSZLG2XnAbcD0lOOQJEmS1OA+BdwDbJJ2IJIkSZIa2znA34HZaQciSZIk\\nqbH9C7AQmJN2IJIkSZIa28eBe4FN0w5EkiRJUmP7EPAgsEXagUiSJElqbB8AHgLmpR2IJEmSpMZ2\\nGvAwsGXagUiSJElqbKcAi4Ct0g5EkiRJUmN7O7AYmJ92IJIkSZIa29uAx4CXph2IJEmSpMb2ZuBx\\nYPu0A5EkSZJUXzqAnYBDgIOAHYCWIu2PJ+58vGzcI5MkSZLUMBbMgutbYOU86HsFLN8Tlm8O/a0w\\nOAN+DRyQ95zjgKeAXSc+XEmSJEn1aOteuOUl0HcRJC9AkuRtT0HyDRjeFPpnwG+BmcACIvnYPd3w\\nJUmSJNWLA3pg+Zdh3boCiUf+tgqST8KaHlgKPAu8PO0TkCRJklQfduyCvhvKSDzyt0sg6YIXgU3T\\nPglJkiRJtW9aFzz+fRiuNPnIbufCml64Oe0TkSRJklTjWuGsw6B/tMlHAslaSLaDfmIiuiRJkiQV\\n1g3P/G0MyUd2uxSSmXBL2ucjSZIkqXbtsQWsGGvykUCyEpJ2GAJmp31SmhympB2AJEmSKvaKw6p0\\nHdcK7AYrsRqWJogJiCRJUp1phnnbxmrnVbEtNANbVKs/qRgTEEmSpDozBdraqthfe1wTtlaxS2lE\\nJiCSJEl1ZjU88RisqlZ/i2ENsSK6NO5MQCRJkurPA7fEvI2quAemAvdXqz9JkiRJjaW1DQaer0IV\\nrDsh6YbH0z4hTR7eAZEkSao/q1rg8i/A6rF29FnoXwPfqEZQkiRJkhrX5h3Q//AY7n7cCEknPA+0\\np30ykiRJkmrcVDhlG1ixbBTJx2OQzIB+4DVpn4ckSZKkOtEON24D6x6qIPm4FZJNYKAVPpZ2/JIk\\nSZLqx+uBJ5rhs+0w9ClYvbxI4rEEkg/AUCsMAG9KO3hJkiRJ9eMIYAmwa+b3l/bClW2w8mhY/nlI\\nfgLJRZD8FwwfCMtaYagTvgNsnl7YkiRJksZDUkHb44lSuNnnlHruy4nk45ACj/UAb2yBzwFJL1ze\\nDJ8BXkvlk80rOYdaVO/xS5IkSQUVutCt5OL3YWC/Mp+7DfAYkbSUMtYL8Hq/gK/3+CVJkqSCxnqh\\nuw5oKqPdpsCDwOll9msCoprjQoSSJKmejXSBmeT9/FbgDmAlMXTpImBWTpv5wJXAs8Aq4HY2nKS9\\nPfAz4AVgOfBzYJO8YyU5W34MxfpPiGuy4RGeC3AccDfwdOa4s4DmvDbvIe6krCaSlFOpTDnPPw64\\nk3gdHwbOzYsjIZKjRcR53gPsC7wDeAAYBP4EbJvznGKvbbbPUu9fOfGXeo8lSZKkkspNQBYChwFd\\nwFzgJ8DFOW1uB84CZgAtwN7AFTmP3w0cSsyh6AW+Any7RBy5+0r1n//83N/3Jy7kbwN+ALwU+D1w\\nTk6b1wCPAAdnzvEQYPEIcRVSzvP3J16H/YEO4oI+P46ESDB2yPRzPrAUuCFv31U5zynntS31/pUT\\nf6n3QJIkSSqp3ARkj7zH5xArgGetAOZVcNweYtJ4sThy95Xqv1gC8gfgauJieWpm3zziW/6sG4AF\\neX0cP0JchZTz/GuAV+S1yY8jIRKNrBkj7FtaJJZCr22p96+c+Ct9jyVJkqSNlJuAFBp2ntvmc8Bz\\nwDeBd7JxmdqtiQTgWdYPs1pbIo5K+i+WgAwRw7PWEnNFskO11uW0eQGYntdH9uK/HOU8/7lMDMXi\\nSNh4LstI+7LKeW1LvX/lxF/qPZAkSZJKKnSBPYWNE5BynrsbsTL45cCLwJk5j11HXMBuQcx5aCvj\\nGJX0P1IC8lHiQv9lI5xD1ouMLQEp5/lDlL5oL7caWO6+0by2+fvLPf9i74EkSZJU0vPEcJxcezK6\\nBCTXtsCynN/7ibkFWQflPX8N64dHjab/QgnIe4h5DbcApxXpCyZmCNaNZcQxmgSk1Gtbzvs3mvPP\\nfw8kSZKkki4mJiTPBTqJycwLqfwC9nfAqzN9dBGVnG7NefwO4tvyDmAv4N685z9MTITOHSpUSf+F\\nEpBngJ2Aw4khRu8iKj91Zvb9Jqf90YxtEno5zy8njtEkIKVe23Lev3LiL/UeSJIkSSXNAn7E+tKq\\ndxIlWyu9gD0GuJ4YZvQcMScht1TsHkQVpVXEhe2H855/IlF6dm3O/kr6z227X+b3V+XsOxi4lrhb\\nMJj5+fC88zmZuAjPLUNbbgJS7vNLxTGaBKTUa1vuHaxS8Zd6DyRJkqRJZwfizsexaQciSZIkqbFt\\nCTwGvD3tQCRJkiQ1thnAP9hwUb9qSopskiRJkiaRDuBm4ItpByJJkiSpsTUDvwJ+SuHF9iRJkiSp\\nar4F/B6YlnYgkiRJkhrbvxHlZ7vTDkSSJElSYzsDuB+YnXYgkiRJkhrbG4Ange3SDkSSJElSY3s1\\nsWr7bmkHIkmSJKmx7UEkH4emHYgkSZKkxvZS4BngTWkHIkmSJKmxbQo8BHwg7UAkSZIkNbZu4Fbg\\nc2kHIkmSJKmxtQJ/BL4DNKUciyRJkqQGNgW4BPg5MDXlWKSa0px2AJIkNbAZwJbAHGCQmIT8CJCk\\nGZQmxFeAecCRwLqUY5EkSVIDa5kGH5wJd/fAwE6wdF9Yvhcs2xKWdcHSHvgBsEPagWrcnA0sBGal\\nHYgkSZIa25EdsOQg6LsakjWQJHnbI5CcB2s6YagTvkfME1DjeC/wKLBFynFIkiSpkXXB6TNg8OoC\\nSUeh7QVIXgeD0+FuYGba8asqTiAWGtwp7UAkSZLUwKbCiZtB/6NlJh/ZbRiSj8Kq3ijTOi3t89CY\\n7A88B7wq7UAkSZLU2Lbqgr57Kkw+cpOQBTDQDZ9P+0Q0ajsSBQZem3YgkiRJanC98PPPwJrRJB/Z\\n7TlIOqNK1nZpn48qthXwOPCOtAORJElS45vTDkMrxpB8ZLezYFU7/E/aJ6SKzCSqXZ2bdiCSJEma\\nHE55PfSPNflIILkTkm54Ou0TUtk6gb8CX0o7EEmSJE0S0+HHF1Yh+cjOBWmDldGtalwzcBVwKbHi\\nuaQK+I9GkqRRaoatq7XYQxOwKazC9SNqXRPr1295BzCcbjhS/WlOOwBJkupYWzVXEWyBBBcmrHX/\\nDuwMHAqsTjkWqS55B0SSpFEahseqOWnj2VgL5Kkqdqnq+gjwBuAoYEXKsUh1ywREkqRR6oe774hh\\nU2P2DLAK2oAzgSNwYcJa80bgY8AxxIKDkiRJ0oTbdXNYXo1J6N+C4S74A3AecBuwHLgGOBvYK8Vz\\nFBwJvIDvgyRJktLWA/f9aozJx1pIto4hPYfmdL0JMdznQuAR4OHMz28AZk34iU5eexJ3PA4t1VCS\\nJEmaCEdsCQP9Y0hAvgRrp8ONJY6zHXAKcBnwPHGX5HxiuFbb+J7ipLU9MTruzWkHIkmSJGW9oRWG\\njoahdaNIPm6ApAOWEQlGuaYSw4HOJoZpLWXD4VpN1T7JSWgz4q7TB9IORJIkSYKYJH4BsAjYpxv+\\ndgT0L6sg+fgpDLdDP3EXYyw6M32cT9wZWULcKTkF2HqMfU9G04G7iddTkiRJSt1mwA3A1ayfj9HS\\nAT+YBQPfgeHVRRKPeyE5BvrbI1EYj4nNm7J+/sgTbDh/xJXWi2sFrgW+i3eSJEmSVAP2Ax4jhjsV\\nukA9oBdu6YKhd0D/BXGnI/k+JJ+GdTvCsnZY0QKfIu5cTITc+SMvsuH8kZYJiqEeTAWuzGxTU45F\\nkiRJ4mzgWWLF8lI2B05uhy9Nh19Nhx9PgU8CB1D+xW05x6lUM3HX5TwiEVlBzB9JcP7I14liAO1p\\nByJJkqTJrRO4mJgXMJ/xSQwKmYjjzCKGZiVEud+nWT9/ZIsJOH6tOAe4F0scS5IkKWU7AvcB32F9\\nudtGSkDyj5U/XCt3/kj3BMYzkU4GHgXmpRyHJEmS6sgpxDf4q4EHgVPZ8AI+Ac4EHgeGM/u2B35G\\nrHK9HPg5sQBg1uuBPmIhupH6LWY+MZ/gWWAVcDvwprw2xxFDoVYCi4mL4dyY3wrckXl8CXARG39L\\nfyrwUCbGh4D3F4ilVJtC55Rf7refDeePNBd4Tr05kXh/d047EEmSJNWP1xLJx8FAV+bPR9k4AbkW\\n2Cpn393ECtftQC/wFeDbrC+x+zTwZE6/hxBJQrkJyO3AWcAMYrL33sAVOY8fCzyVib+LSFh+lBfz\\nQuCwzONzgZ8Qw8GyTiCSqsOIOxSHZX5fUGGbcs6pgw3L/T7H+uFa25bx/InQTSQThxLzbbZn5Dk3\\nBxCLOu4zMaFJkiSpUfyJuIjPtYCNE5DdSvTTQyQE1wO/B/7ChhfpAMdTfgKyguLDev5C3GUZSQLs\\nkbdvDnHRnHVTJqZcJ7DhyurltBnNcK/ccr+Ps+FwrZmj6G+0mqbCW2bCzS2waivoeyUsfzksnwP9\\nbdA/PRK/3Ndyd+J1zH9/JUmSpJJeZOP1LWawcQKSX3J2a+LCNFvZKrudR3xr/kIZ/RbzOeIuwTeB\\ndxKVsXINUvxCPQGmjLA/68VMTPkxvlhhm2rMN8mdP7KUDYdrtVah/0J26oGFu0HfZZAsL7DuyqOQ\\nfAGGZ8JAb9w92olYH6XQUDVJkiSppHITkHzXEUnCFsAniGQh/+J+LAkIxF2XjwGXZ/o7M+exFyid\\ngJTaX0sJSK5sud+ziTstfcQ8krOpUrnfqfDaLhj4IQwPl7HyfD8k74fVPTEP5n/GenxJkiRNXoWG\\nYL2W0glIPzGk6cfEfJC35LW7gbENwcq3LbAs5/frgJOKtC8nAbkJeF3e48ez8RCsUm3Gu+JWttzv\\nhcAiYkJ9dv7IVkWeN5J9OmHwpjISj/ztszDcHXOEeqp1cpIkSZpcXktc1B5IrNlxYOb3UgnIQmKS\\n+Q+BfYl1IHLbHc2Gk9sPobJJ6L8DXp2JqQs4Hbg15/FDiKFAxzDyJPRCcvefkInpkLwY8yehl2oz\\nkSV/oXi5394Sz+3ugBd+AcOVJh/Z7V0w1B1VzyRJkqRROZX4VjtbLvcMovRtVv4F9knEPIXFmXaL\\ngQ8XaHcyxcv7FnMMMaF9iBjedQUbV4s6EbgzE8MjwHuLxDzS/tOI0rprGLkMb6k2E52A5Mov9zvA\\nhvNHNpi70w7/31thYLTJRwLJICSbxB2w/Sb4XCVJktSg9iUWEMw3lbiwfQR4xYRGpHLll/vNnT+y\\ndxv0LxpD8pHdvgzD0+EXKZ6nJEmS6thFwC7ExeuriDkdH8trsykx7+J/2XDBQdW23HK/z+48hqFX\\nudsSSNqiEll+dTRJkiSppHcBfyeG79xLVJvKLWG7D/AY60vsVkNSZNM4mALnfBzWViMBSSDZGpYD\\nu6Z9XpIkSWosZwDP4KJzda8XvvvVKiUfCSQHRVWyo9M+L2kyaU47AEmSxlEHMWxnd6Iy1oPphqOx\\nmgIdbVXsr22DPyRNhEKrq0qS1AheAvwFWEvMCTH5aAB98PDTVRzi9kT09VS1+pMkSdLkdAJR9vaU\\ntANR1b1jAfRVY/jVKkjao0TyrLRPSpIkSfUpW2L3CWD/lGPR+JjdDkMrq5CA/B6SGXBP2ickSZKk\\n+rQpcC2xXsTslGPROJoO130Z1o01ATkQ+qbFAo2SJElSRV5FlNg9n+qV2FXt2nk6DDwzhuTjF5D0\\nwGIsyCNJkqQKZUvsHpd2IJo4bfCvL4e+oVEkH/dC0g39wN5pn4ckSZLqRwfwI2Lxwe1TjkUTr2k6\\n/PIVMPBcBcnHX2Lex2AbvDvtE5AkSVL92A64E/gp0JVyLErPlE44fxb0fxeG1xZJPF6A5COwsitW\\nPn9N2oFLkiSpfhyPJXa1ob164ZYuGHoj9H0Rkosh+SEkn4XkAFjWAiu74btYoECSJEllmsL6ErsH\\npByLQtUWBKzScbcBPjQNvjodftUNP2uC1cA7gJ4Ji06SJEl1bw5RYvcP+A12Lam1BKSQu4C9xisQ\\nSZWbknYAkiSVsDdwK3ALcBQx/EqTW1MFbe8DdhyvQCRJktRYTgGWAK9LOxAVlH8n4lTgIWLY00PA\\n+3Me25Iol5zrxzk/NwHPAvMqPG4CvBW4A1hJ/H25CJiVefzTwGeJMs23ZdosBk6uIPbscU4HFgGr\\niBXU9yWGdz0ADAJ/ArbNe95xRMGElcDDwLm49ogkSVLNyZbY/QfwspRj0chyE4ETgMeBw4DuzJ+P\\nAwty2twL7Jr5eTtgGJib+f2VmccrPW4CLMwcryvT30+AizOPvx64GXgKeG2mzXzi71clsSdEgrFD\\npo/zgaXADXn7rsp5zv7A3Zk/OzLH/T1wTpnnKUmSpAmwHfFt9qVYYrfW5SYCNxEVynKdANyY8/uX\\ngDMzP58JrGP9nYhPA18cxXETYI+8x+cAz2d+3hkYIhKRkZQTe0IkGlkzRti3NOf3a4BX5PU7D3iw\\nSCySJEmaQEcBT2OJ3XqRmwi8SFyA55qR2Z91NPDrzM/XA98Brsj8fnPm8UqPm1B4Tmu2TUvm582L\\n9FdO7Akbzz0ZaV/Wc8DazLaOuOOTZH6WJElSirIldp8EDkw5FpWv0gSkg7go3xToz/z5LLAZMJB5\\nvNLjjlQRK3f/WmIY1EjKTUCKHaPQviGKJz7SpGQVLElS2mYS4+ZfSQyl+XO64WiU7gMOytt3MBvO\\n6xgk5kR8BvgLMWH8buDfiDsgg+MU21LgxCKPlxP7aNyOBRQkSZJqyiuJikTnY2WgepQ/CX0xcAgx\\nd+eQzO8L8p7zcWIIUnYuyFmZ3z82yuOWcwfkImA5cAwjT0IvFfto7oAcDrwAvIuoytWZ2febEWKW\\nJEnSOHofMVH4zWkHolHLvwA/jShhu4bCpWwBdmfDyds7Zn7ffZTHLScBeRsxofxOooTuI8B7K4x9\\nNAkIxJ2Ua4khZ4OZnw8fIWZJkiSNg3bi2+eFWGJXE2NPYt0OSZIkTTLbEuPiLyPWW5AmQgdx98Fh\\nfpIkSZPIa4gSu2ewcelSKVdSZButRcBLxx6aJEmSal1uid38SkPSRPkNVqSSaoK3IiVJpcwAjgC2\\nAmYT6zU8BfyJ0is6zyAqEM0A9iaSECkN9xIT3n+ZdiDSZGcCIkkaya7T4ctDsN+rYHAXaNkKOpbB\\nmvth8FqYlsDzA3D2OriUjYfHvBK4HPgpcC6xGJyUlvuIilSSJEmqMVO64fMzYOCrsG4AkqTAtg6S\\nP0KyK6zohVuJVa2zTiZK7L4lnVOQNrIv8fdUkiRJNaS5C67ZF/peHCHxyN+GITkPVnXAs8CurC+x\\nu0PRI0kTazrQhwUQJEmSakcvfOtwGFxdZvKRu30V1nXFIm9XYold1aYniblMkiRJqgGv3gL6l48i\\n+chu74E13fC9tE9EGsE1wFFpByFJkiSY0guLfjmG5COBZCkkvbHg245pn5BUwJeBM9MOQprspqQd\\ngCSpJuw9EzY5boydTAc+CNM64ZRqBCVV2X2YHEupMwGRJNEJJ70F2qvR10nQPA3eUI2+pCq7F9gp\\n7SAkSZImvdlww1iHX+WW522ONT+mpX1eUp45wItpByFNdt4BkSQxDJtvXqW+pgC9sBLYrEpdStXy\\nLLCODdeskTTBTEAkSQDr1lWxs+FYa6GaXUrVch8Ow5JSZQIiSaIJnnq6Sn2tBfqgFVhSpS6lanIi\\nupQyExBJEivgT9fGsKkxuxnogkV4B0S1yQRESpkJiCSJ1XDl5VUahnU5rF4Jl1ahK2k8WAlLkiSp\\nFvTAHd+FdWOpgPUEJO0wAGyZ9vlII9gSqNaIQ0mSJI3BftNh4MkxlN89CgY64Ytpn4hURBOwHJiZ\\ndiCSJEmTXguctxP0LRtFAvLPsKoT7gTa0j4PqYS/AfulHYQkSZKgqRe+sy0MPFRm4jEEydthqAfu\\nJxZ6k2rdD4D3pR2EJEmSMlrh1A7o+xAMj5SILIXk2zC8CfT3wk+B9rTjlsp0NvD5tIOQJEnSht7Y\\nDs91wPItoe/V0PdeWHkiDOwGK1ph1Qy4Htg77UClCi0Afpt2ENJk1ZR2AJKkmnUNMVTlEmAPYCtg\\nNlHl6ingFqAfP0tUf+YDfwC2STkOSZIkZewJPAo0l2iXjPCzVMumEIl0V9qBSJIkKVwMfKTC55iA\\nqJ7cBeyVdhCSJEmTWQKcDjwODAP/APYF3gE8AAwCfwK2zXtO9s/8TapllxB/tyVNsFK31iVJk8tb\\ngOuAJcA6YqLuPcBxwBPAucCXiUm8uZqIpMP5IKoX9wE7ph2EJEnSZJYQd9s7k8sAACAASURBVDye\\nJ9bzmJHZt0NOmxnA0rznFPpZqnWvB65MOwhJkqTJLAE+BXwrb1/+XY2Rkg4TENWTnYnFMyVJkpSS\\nBHga2D5vX6F2pX6Wal0LMAS0ph2INNlMSTsASVJN+Ssx4Xw01gJTqxiLNJ5WE6WmX5pyHNKkYwIi\\nSYL1icPnxtDHY8AR+Nmi+nEvsFPaQUiTjR8SkiSA12X+vGUMfXwM+AbxzbLDsVQPrIQlSZKUkltY\\nn4RIk8XbgJ+mHYQkSdJkcyCwENfw0OSzB7HOjSRJkibQr4D3pR2ElIIOYBAXZpYkSZowOwNPYilS\\nTV6LsBKWNKGchC5Jk9tZwFeBVWkHIqXESljSBPOWo6RyvAx4bSvMb4cth2GwHx4ZhpuAPxBDGFR/\\n5gILgPlpByKlKFsJ65dpByJNFiYgkoo5pAe+MRW2eh2wB3RsCqwEHoXhq+CUv0PbNPj6APwbsCLV\\naFWpfwIuwvdNk9t9wMFpByFJ0mQ3rRu+Nxf6LodkGJJkhO1JSN4Ng13wHLB32oGrbL3EezYv7UCk\\nlO0D3Jp2EJIkTWbTuuGmI6G/v0jikb/9FoY7YQA4Ou0TUFk+Cvwo7SCkGtAD9GEZakmS0jEdvn8U\\nDK6tIPnIbjdC0hUf5FaUqW0twOPArmkHItWIJ4Gt0w5CkqTJ6LC50Nc3iuQju30N1vU6nKHWvQv4\\nXdpBSDXkGuCotIOQJGnS6YH7rxhD8pFAsg6S+XEXZEHa56OCmoC/A4elHYhUQ75MlKSWJEkTaJdN\\nob/YhPNyt+9DMguuTvuEVNAxwG1pByHVmNOBb6cdhCRJk0oLnPNBWDnW5COB5DlIWmNtEEt9157r\\ngDelHYRUYw4Gbkw7CGmycCV0SQB0wctfAa3V6GsToBvWEQvdqXbsA2wJ/CztQKQacx+wc9pBSJOF\\nCYgkAJpgi02r2N8cWAtsXsUuNXZnAV8ikkNJ6z1L/J+1WdqBSJOBCYgkAJpgcKiK/Q3F/y+DVexS\\nYzMfOAj4XtqBSDXqPmDHtIOQJgMTEEkArIJHn6xSXwmwJNaaeKpKXWrszgQuxKRQGsl9wE5pByFN\\nBiYgkgDogz/+MsrnjtkdQAu8QGxK32xi4vlX0w5EqmHeAZEmiAmIpKxFN0HH0ip0dCmsWQNXVKEr\\nVccHgcuA59IORKph92ICIknShNgfuApY3A43fwiGxlKC9zFIOmKYzxYpn5dCJ7AE2C7tQKQatyXw\\ndNpBSJLUqKYC7yQWpPt75ucWYIs26LtpDKugHwErO+GCNE9OG/ggcHnaQUh1oAlYDsxMOxBJkhpJ\\nB3AG8BBx1+OAAm0WzIDBhRUmH8OQfBDWdMIqYsKz0tcMLAJemXYgUp34G7Bf2kFIktQItiDuSjwH\\n/AjYvVjjqfCubui/CobLST5ehORYWNEJtxKLed1OVFxyJfR0vRG4Pu0gpDryfeB9aQchSVI925lI\\nOJ4GzqOyRbb26YHFB0DfryAZLJB43A/JZ2BtFwz0RIWllsxzu4BfAVcDPVU8H1XmVuDYtIOQ6sjH\\ngc+nHYQkSfVoAXAN8Agx5Kp7lP00T4VTZsKdrbBqG1ixD6zYHZbPgsFOWNYTCc72BZ47FTgfuAfY\\napTH1+gdSszvaUo7EKmOLAB+m3YQkiTVi2ZiMvkdwF+JD9JqldpOgOnArsDhROWs7Sjv4vYU4DHg\\nFWUeR9XxW+DdaQch1ZmXAI+mHYQkSdVWrYvsbD/TgbOJycYjTSyv1rFG60jgSeD4cT6OwsuBxcC0\\ntAOR6swUYIAYRipJUsOoZgJyAfBM5s+XVqnfkY41VrsQQ8LOq0JfKu6HwMfSDkKqU3cBe6UdhCRJ\\nlZgPXAk8S5SkvR14U+axpMAGMYfiZ8ALRB36nwOb5PSZEKVtHweGi/RTTKljFJMApwIPAquBh9l4\\neM9IMeTu3xd4ERhi49cmv20CvJUYUraSWEzvImBWXv/HAXdm2jwMnMuG1beKvR/lPF5vtiKqnY12\\n3o802V0MvCPtICRJqsTtwFnADKIq1N7AFTmPF7pQv5uYNNwO9AJfAb6d95x7iKpG/0fM9aj0rkSp\\nYxSTEOOiDyaGJhxCDPE5Mq/NSM/Nup2oMvMz4I/EfJKRXpsEWAgcljnmXOAnxMVB1v6Z89qfWONk\\nPvB74Jy8YxZ7P0o9Xm/+B/ivtIOQ6tingP9MOwhJkiqxAphX5PFyEoce4m5HGzGJOyG+5c+dWD7W\\nYVHZY5QjyRw71/FsuMZEOQlI9rVpIoZiPcCGQ8fyE5A98vqaAzyf8/s1bDy5fR5xpyb/mCMp9Xg9\\nmU68PnPTDkSqY68n7opKklQ3PkcMgfkmcadi87zHC12ob0186/4s64dUDQNPEGVuE9avsVGsn2IK\\nHWNtmc/NVsHKNYMYzlUqntz9+a/NmcBTwIEF2iYUruKV2+Y54hzWAutYPzxtXZFj5r8fpR6vJ/8C\\nfC/tIKQ6txNwf9pBSJJUqd2IScCXE3Mezsx5rNCF+nXEhfCBxLCobJKwXZHnVJqAZI+xBTFHoq2C\\nPkabgEwpsD//tfk6sVDi29k4ARkplqwhyksYir0f5TxeD9qIZG6HtAOR6tw0YBBoTTsQSRpPWxOr\\nFb8nsx2LC7c1km2BZTm/ryEW6cs1CPyOWC/jbGK4U6mL8UL9FNPPhqUlDxqh30JGGoJ1Q87vzxND\\npHLtWeIY2ddmPjG3JWH92iLlJCA3AqcV6b/YMUf7eK06mSjDLGns7iPWPZKkhtI8DU7vhYc6YWg/\\nePGNsOyNsGw/eLEDhnrhwSlReaiSi0yl73fAq4FO4oL/dGLyeNbDwGuIb9neQFxEDxETrKcT5R/v\\npXQCku2n3MUG7yC+2e8Y4RjFjDQJ/aicNhcT5zCXOPdDiUnkucco9trMyrT9KcXvzuTuP5y4C/Ou\\nzPM7M/t+U+Yxy3m8HkwhEriD0g5EahBXAG9MOwhJqqZdeuCRA6DvOkjWQpLkbWshuRaS/aGvJxaY\\n2zntoFW2Y4jJ2UPE3IIriG/Vs95C3C3IzsM4grhTcDtRBnYx8GFKJyAnEn831o7weL49ShyjmIS4\\n0/AQcedlEfDevDaziPkq2XK2dxJldHOPUeq1STJ93FQktvz9BwPXEnd4BjM/H17BMUs9Xg+OA/6S\\ndhBSA/kPXLNIUqOYCsd2wsBPYTg/6RhpuwSGO6F/Khyddvwak02ID7QniYvs/ApPCk3EMLQHcT5D\\nuf4MnJR2EFIDeRtwadpBSFI17NIB/TeVmXjkbjdC0hHf8O6U9kmoYjsSCcczwPnANqlGUz/eSCRr\\nh6YdSI3bjyhnXO5QPEml7UGsvSRJdW1aFyy+pII7H/nbRbCuO4a+NJc8mmrBEcSk4EeBM4h1N8ZT\\nodXRs9t4Pnc87UusVfLulOOoZT+n8on4korrIIZ0+nkrqX61wj8dBgOjTT6y24HQ3wofTPt8NKJm\\nYi2J24FbiEnm01KNqP5tR0yYvwC/5c+3I1F6ty3tQKQGtAjYPu0gJGnUeuGJv44x+UgguQmS3phA\\nrNrSSdzleJi463FAuuE0nBnAH4GfEd9MKlwIfCrtIKQG9WvgdWkHIUmjtf0mMDBchQRkGJKZcVv4\\nJWmflACYR3wz/wxxMbhbuuE0tGZi0cK/ApumHEst2JyopjYz7UCkBvXfwCfSDkJqRI5tnBh77g/r\\nmkq3K6kJ2BfW/CbKtj5chS4b1c7AMW0wvxXmJdC/Im6n30h8k75yjP3vAnycWD/iQmB3YMkY+1Rx\\na4EPEHeabiG+mbwr1YjS9UFi7ZUX0w5EalD3EWseSVJdOusMWDXWux/Z7cNx8Xxm2idVo47sgYc2\\ngf73weCXIbkUku9D8ilY+3JY1gpDHfBZYthUJZqI1cBvBO4HTmHDlcU1cU4k7jodm3YgKeki1lvZ\\nJuU4pEa2D/W3KKkk/f8+dhasrlYC8pH4JvgSosrSTsTq2ZNdWy9ctjX0/bLE67cYkrfCQFdcwL68\\njL6nERPL7yIWe1uAk6Frwd7AE8CH0g4kBWcQ/wdIGj89QB/Qjp+zkurQ20+CFdVKQF4Xd0B+B1xG\\nfBv/MJGUvAgsBK4h1p04n/iWfgGwFzCXxrxw7uiFu0+AwaEKXscrYoHHAUZeZ2IGsXDgE8Rr7cTy\\n2rMFcAcxD2dqyrFMlGnAY8SwP0nV1wWcPh1ubIHhqbC2FVZOhbVd8Fg7fBH//UmqA7tvAX3VSkA2\\ni29kds07RguRYOxFJBynEBfPFxJVmW4jynUOZf68LbP/wky7/ESlGlNWJkJTL/zm9bByNJP8r4Gk\\nI17P+Tl9bsX6ieUX5D2m2tNF/F3+HeO/1koteCvwh7SDkBrRNHhvJyxdAP2XQrIk5/NiEJK/QXIO\\nrJkBA72xUvrstGOWpJE0dcHzC6uQfNwDSXeM/R6tVkonKkvZMFG5jLgQP5sYinQEMcm7dwxxVMvr\\nXwJ9g2N4Tf8L1vbATcCriNdgCfGa+MFSP6YCXwbuJhLIRtVEnONr0g5EajCtvXDJjtB/VxmfG/2Q\\nnA2ru+LzopyhvJI08VrgMydV4S7I8dDXAv86ASG3EwvAHUAspncGMaTrR8QQr4XACiJReZgYCjZS\\nojJeE7WndMETvx/ja7oakrkxhG1xJu7WcYpX4+8U4n3cK+1AxsmriSFnkqqnqQd+dSQM9Vf4+XEp\\nDLfHZ6ELFkqqSd0dsOy6MVwo/yGGCy2l8upN42mkRCV3fspq1icqufNTzsg854BMH5WWhd5nuyrN\\nrfkKDM+ImFX/XkPcvWvEBcT+F3h72kFIjaQNztkF+kd7J/1rsK4z5mW1pX0uklTIUT0w8MAo/oN7\\nAJKemDD96rRPYpRmEHdDjiDuMpxN3C0pZyJ9fqIyFaAdzv8ErKlGArIYksy3WGoMuxLrvpyddiBV\\ntCfwKK7fJFXTnHYYeGiMnyFHwkB7Y/1/I6mRdMDpM2DwLxX8x3YjJDNgsANOTTv+CZCbqBSdSN8L\\nyy+vQvKR3TqjX1eVbhybEzX8v01Ujqp3P8H1f6Sqaof/Og1WjvXz4971X2L5BYGkmvXqTlj6Hhh8\\ntMh/aI9C8m4Y7IxhV4enG3JN6QV2mgmL/lTFBGRrWE4kP2ocncCVxNClWiiaMFrbEZNda2n4pVT3\\neuGJ26v0GbJLfIb4WS2ppvV2whfbYOBl0HcKrP4MJJ+B5BRYvT2saIP+TvgCk6O0aMU2gb+OdQJ6\\n7jYnyvFum/Z5qeqaiDtpf6d+Vw7/EvDZtIOQGsycLhgaTQn3Qtu5sK4F/iPtk5LU2JIKH/sIMcTn\\nI3n7mzPts9taoszuRUB3Xp/ZbSXwAPEfXXvm8Z8RcyoK+Vrm8YYyEy7/XpU+ONZCMg3W4CTCRnYy\\nMYSv3haUnAU8D8xJOxCpwey5PSyr1pdY34NkpsVMJI2zShOQO4F3A3eVaN8K7AFcRyQO5bbZlEhc\\n9s7re1/guczjjeZ9J1Rpgcfr44Pj/rRPSOPuCGKBybemHUgFzgW+lXYQUgM6fG9YWq0E5EpINoFr\\n0z4pSY2tkgTk5cCfMz/fycaLFhXqax5xoVRJm3cQi5RlJ8FNA/5B45btnNs5irrthbbTYGUb/Hva\\nJ6QJsTNRde28lOMoRzvwNK4xII2HXbeF5dVKQL4JyfSo3ihJ46aSBORLwFsyP38o83upvuYRk04r\\naQPwG+ATmZ/PBX5dJM661wWXngOrxvKh8SAkHdAPbJL2+WjCzAL+BHwfaEk5lmJOJSbRS6q+3jZY\\nuapKCcgZsLoZzkn7pCQ1tqTEljWNmPyavciZQSxYlFsWNLd9C7A78EfgGxW2gfV3RY7J/DmvstOq\\nOy9ph4HRVjFZA8m+sKoDPpn2iWjCtQI/JtahmZ1yLIVMIeZ67Zd2IFKjmgl3X12lBGSzKGSyW9rn\\nJKmxlXsH5Hg2rl5zcWZ/bvvstgp4CPgc0FFhm6xTgGHg/aVOohFMhTfPhsEHK/ywWAvJu2F1V9Ru\\n/xaNsVaEKpOtkPUg8LJ0Q9nIiURyJGmcNMNZx0L/WJOPP0LSBU8Q/6dI0rgpNwH5BYXvkPyizL4q\\naZPVVGH7ujcNPtAD/deU+WHxHCSHQV93XOBtSnwT/mesNDRZvQl4Ejg47UBy3AK8Lu0gpAbX3gkv\\n/HkMyccaSHaIux8npX0ykhpfOQnIbGAZG6/j0ZPZPzuv/WiPV432jeDgLnjycOj/LSRDBT4oFkJy\\nLqzphIFu+G/WT9hvAs4mvgl3McLJaT/iG8x3ph0IcCCwEL9NlSbCiTOh/8lRJiCnwWAX/D7tk5A0\\nOZSTgHyE+Ga9kB+zfk0QE5DqmTYNPjQd7m6FVdvA8n1g+a6wbDoMdMILnfAdRl5w8PXE3Bm/eZ6c\\nXgLcC5xPzMFIy6+A96V4fGlS6YJ/3xYGFlWQeKyD5KOwqgsW44LBkiZIOQnIXcS6A4Ucwfo1QUxA\\nCkuA04FFxLyXe4h1Td5BTM4dJCoZ5SYT2xOLLr5AzO34I3FbfL9MuwQ4E3icmCdD3r6EWE/lUTYs\\n09qV2T+zmieomjSTWGPnMtYv9DmRdiaGg7WmcGxp0poGf+mFNd+H4bUlko+FkBwC/b3wN6KqniSp\\nQSREgrEDkQCcDywFbsjbd1XOc+4GDiUuHHuBrwDfzuvzWmCrIvuuAs7IHOfiTF/vIe6caHJoAX4A\\n3MzEL+L5XdaX0pY0Md5NDHvcvxdu3Rz6/hlW/RaSv0PyACR/huTrMHwQLO+EFa3xOdFcvFtJUr1J\\niEQja8YI+5YW6aOHuLOR22d+mcT8fQcD9wFtxDoRf8lsu1cQuxrDGUTFuZ0m6HhzgeeJv9eSxl9C\\nLA68hA0r4e3dDJ+bCbfOgMd7YMlMWNgNVxBFK8Yy5Go8Rj1IkqokYeNJuCPty9qa+IB4lvUVx9bm\\ntc1feK7QvtuA4zI/fwZYCexVQexqHNl5QUdPwLHOB74wAceRFBLgfuDNE3zMarSRJI2DQv8Bl9p3\\nHbE+yhbErfG2vMfL7fPNRFlegH8D/pMYl2+ZxcnpVUSFrA+M4zF6gedo/MVDpVqSABemcMxqtJEk\\njYPRJCD9xNyQrIMYXQLSTExE349YK6QZ2AV4mPQrJCkd2xJjxC9gfN7/fwYuGod+pXozmgIkEHet\\nbyPuWC8GTs57/D3E/+GriZLrF2eOlVvw4VRi2OXqzJ/5C/omwFuBOzLHWUL8u82diJ5bDGU58HNg\\nk7w+isV1al6b+cCVxJ39VcDtxDAwSdI4GE0CcgdR0aqDGDJ1L6NLQMj08xDwqZx9s4jKWpdReBV6\\nNbZu4NfEBUU13/8WYq7SrlXsU6pXoylAcizwFPDazOPzgR/lPP4a4BFijl8XcZG/lg3//z+B+Hd4\\nGPFv/bDM7wvyYluYeayLmLf1EyKZySqnGMpIcR1CJE+5bW4HziLmhrUAexNDjSVJ42A0CcgexH/W\\nq4j/xD/M6BOQbmJ12/wqSM3EB8qdbFhNS5PDVOCrRBntLavU5zuBq6vUl1TvRlOA5C/EfK2R3MD6\\nRGIWcYf7s2z4//9NwPF5zzuBuAueG9seeW3mEMUjRlKoGEqhuLKOz2uzAodmStKk8Vo2/AYt3ylE\\nkvOqiQlHNeYM4DFgzzH20wT8HTh8zBFJjWE0BUgGKb5O0wvA9EwfVxHFHrKJTdaLbFyBbkZmf+4x\\nCw3BrLQYSn5c+cfMbfM5Yn7YN4kvKzYvcHxJUgOYS1wUlvrW6dXA08SHgiafo4lhH/nfYObbA/hU\\nB/ygF37TGWPG/5UYSnE0MW5dUhjN3e8XKJ6AvEhc6H+MKDDSzOgTkEJGWwwlG1f+MfOPs1sm9ssz\\nzzlzhDgkSXUqISazH1tm+/nEXJPxmpys2rYbMYb7jLz9U4A39cDiLWHZR2DlNyC5DJILIfkorNoW\\nlnbCqinwdWJol6TRV0AsVqXwBuBfiC8Msl8s5Q91ugl4Xd7zjmfjIViFjLYYSjlDsPJtCywr8rgk\\naZLoJm7r/4aYdKjJZS5xF+NC4hvP2T1w687QfxMkSZHtNkj2hP7euOM2N9WzkGrDaBKQQ4hS2cdQ\\neBL624hhUGcy8mTvEzL7Dslrkz8JvVTMlRRDOZrSk9B/R9xt78y0OR24dYQ4JEmTzFSiMss9bFwe\\nUo2vE/glcH0HLDkTVq0tkXxkt2FIzoXVHTGMZLuUz0NK22gSEIATieIgq4iL+vdm9k8FriW+JHqE\\nkcvdApxGVD9cw8hleEvFXGkxlJNLxHUMcD0wRMwFuQI/YyRJed5H3OY/NO1ANOE6uuG5z8BwOYlH\\n/nYBrO2Jix5LPEvV82/A73GIrCSpwe1PDAf4YNqBaOK0waePhYHhUSQf2e1NMNgJn0/7XKQGcRRR\\nrW5O2oFIkjQR5hG34bPzAtTYNmmH/kVjSD4SSJ6GpAMGsO6/NFZbA88Qq6hLkjRpdAFXErf/80st\\nqoFMhfefCANjST6y23tgqBk+mvY5SXWsBfgr8PG0A5EkKQ1NwHnAA2y4kq8ayEz440+rkHwkkPwG\\nkplWuZHG4vPAz9l48UJJkiaVNxHzQo5IOxBV33R48v+qlIA8CUknLE37nKQ6dRLwMN51liQJiPKM\\njwBnpx2IqqsVBpZWKQFZA8nUWLPAqj1SZV4CLAFekXYgkiTVkrnALcC3iHHKagCdsOypKiUgfZBM\\nizUEJJWvHbgbqw9KNc9v16SJ9xRwEPFheS2Wh2wILfD8E1Xq60mg3SFYUqW+SCwE+7W0A5FUnAmI\\nlI6VwDuJlXlvAnZONxyNUdNqeOAaRlwluSLXQNIEf65GX9Ik8U7ii53T0w5EkqR6cBJRq/51aQei\\nih0AXEAsdPaPl8HKagzB2htWEH8vJJW2MzHvY5e0A5EkqZ7sBiwiyvWqtm1PvE/3Avdnft4JaOqB\\n/7t0jMnHbyHpgcXA1NTOUKof3cS/w7emHYgkSfVoE+B64BJifohqx7ZEorGQmKJxPoWHzb1mNgw8\\nO8rkYxkkW8AwsXilBQqk0i4BvpN2EJIk1bNW4PvAzcBmKccy2c0BzgBuBJ4mhlodQIm5c53wX6+C\\n/r4Kk49BSA6Hge54/39OLETowpXSyE4Fbgfa0g5EkqRGcAYxDMda9hOrm5jMeg1RhepHxMKRlQyH\\nauqAr24Dy/9RZvLxACQvg+Wd8IOcY70TeJb4u+BqztKG9iLmfcxPOxBJkhrJUcQ3729LO5AG18H6\\nimTLgMuABYzxW9U2eFcnLHs7DP4ZkrV5Scc6SP4KyftgqBNWtMJpBbrZBrgB+F9i/RhJMJNY0PW4\\ntAORJKkRbQ/cR8w5sGx29TT/v/buPUquqk70+DfpPPuR7hCS8IhIBBzkMowobx8BIujIQ4IzjoIK\\nKoo6KgP3jlxBR2f0grqce3VGUYcl48URh3F0UK6ODgMCgo4ohDfyikHeJARIdzqv7pz7x+/U6upK\\nVdep7tN9qqq/n7VqdaXq1N6/U3nt3zl7/zaRZFwOrCOSj3cCfTn309sJn+6DtZ2wZV8YPgIG9oeN\\n3bClDx6bD58jBlS1dADnE2tPVuUcn9RqZhB/X79YdCCSJLWzXYBrge8SV+s1PjOINRxfJ5KOm4D3\\nAYty7qfWXiC7EdO6TgUOY+w7GtXaOIRIRi8nporlKZf9S6Qp8N+Jv7uziw5EkqR2Nwv4O+B24MUF\\nx9JqXkksIH8E+A2xpmKvsvfzHnzXam82sJVs6zlqtTGfOJc1xKZreTEBUSt4DfAE8KKiA5EkaTp5\\nHzGQPqLoQJrcfoyUzX0gfV5rt/mpSkB2J6ZRTaSNkuOJPwefJZ9yvSYganaLiQ0//7joQCRJmo5e\\nAzwKnFF0IE1md2KtxD3EVdLSXh37EvtqPEPcgbgV+LP0M0mVB9QekFe+/i7gYWAb8CBRFjQhyuc+\\nTpRVLnk5cEcax1hrPkr9nAbcBmwhqv18i9HTxQ5P+9gO9BOle3etaONc4s/KjgwxS82qg5iG+pmi\\nA5EkaTrbhxhof4npvTh9MSN7dTxF9b06bgXOAxYSdwsOA75X9n61wXeWBOT1RCWeFUA3cDRxV6J0\\nzNXAeyqOv4tsm6YlxO/vsWnbewDfBq4oO+YO4BjgLGJNy43ApRVtXMfo6Wb1Ypaa0V8RleCm8791\\nkiQ1hR7gh8CPgd6CY5lK3YyUzV1PLMo+idF3G8ptBJaN0d54E5Ab0n7LnVJ2zApi0Xhpzcc7iCTp\\nj8aIpbyfgyteW0KcbzV7AzcDmxlZ3J4AB1UcVy9mqdkcT9zFW1p0IJIkKXQQU43uApYXHMtkmgP8\\nKTvv1TE/w2cvJu4QfI1IXHaveH+8Cciz7Fy2d2HFMb9hZK+Ci4mBVBYJ1a/2lrf9YuJOzjOMTB8b\\nJqZllZKKyvUhWWKWmsWexHTKFUUHIkmSdnYa8BgxJadd1NqrY+E42joI+EuilPEGYm1ESdYEZGbF\\n6xuoP5h/K/Dz9PkviHUcWWRJgH5GJDV7Et/VvPT9Q4Dfps8ry/VmiVlqBrOBXwIfKzoQSZJU21FE\\nEvKhogOZgNJeHV8izuUmYo3Hnjn2sZy4i1KynbiTVG49MeWp3CtobAoWRGKwlvi9eRo4M2OMWRKQ\\nAWI6Wslry96fnz5fQxQtaCRmqRl8HriKbGWrJUlSgZYR036+Tmtt1HUwkXSsJSo/nUN++538O3Ac\\n0EUM2D8A/Lrs/YeJxdnlU56uIBZ975F+7hhiUXj5QP2Pybag+1zgIaLi1OszxpwlAbktbbuT2Ovk\\n3or3E3Yu15s1ZqlIq4i/l+O52ylJkgrQTZRk/Q+y/Qd+EPAm4L3EQunj2HmazmTYl5G9Oh5i7L06\\nJuKNwPXEAu11xLqJ8vUypxJ3CoYYGYgvIqZ+lUr3riamuVUO1N9DDOjHKmnbQ5TJvYsoxZtFlgTk\\nYKLC11YiifgwOycgEJXC/g24BfiDjDFLRXkJUazh0KIDkSRJjZlBDOgfAF5W5f3eLvhCF6xbAv0r\\n4NnT4YVV8NwfwYY5sKUPfgW8Lue4diPubvwGeJK46/HKnPtoNicS+9qB8gAAFn5JREFUyczj7LwA\\nfiq9k0iozsFpLWpO84HbiWRakiS1qLcQVxNPLL3QAW/ugufPhMG7IUmqPAYguQKSZdDfB9cwsakQ\\nuzKyV8cGYnrYq9l53UU72oO487EXcadiVrHhsDexX8hPGCnXKzWLS4B/KjoISZI0cQcTU4zOXwCf\\nXgqDt9dIPCof2yH5H7C1O67e79NAn+V7dTxL/b062lFCLBQ/gZjSta7ivVqPydZB7Bj/GDH1TmoG\\n7yDWMXXXO1CSJLWGPWbAmt1h+5MZk4/yx/+Goa5YZzDW2pA5RJLxL0SVqauJvTuy7NXR7g4g1ro0\\nk0OJcr2X46BPxTqAqBJ3YNGBSJKk/Ly0EwbvHUfyUXq8Gzb3xD4a5ToY2atjPTFda7x7dbSzY4Dr\\nig6iivnEOpw1xLQ4aap1AXcD7yo6EEmSlKOF8OPPwNB4k48Eko2Q9MEgMaWrtFfHo4zs1bGswFNs\\ndn8GfKfoIMbweuD3jJTrlabKFcBlRQchSZLytbQTtmyaQPJRelwMO+ZHSdn7iHUEexd7ai3jI0TC\\n1swWExu/3QK8tOBYND28l9jPZl7RgUiSpBx1wFmnwqaJJh8JJA9C0g0bsYxroz4DXFB0EBlZrldT\\n4RXEuo/9ig5E0tSbWf8QSa2sG448NnbLnrB9gY5Y97FbHu1NI0uJwVYruBw4DPgTYhd5y/Uqb73A\\nlcR+Hw8WHIukApiASG1uNuy9Z47tLY0dtPNscjpYStxVaBVriYXzPyOmZFmuV3mZQSS5PyEq5kma\\nhkxApPY3K88d/9Kd9KbDJoJ5aqU7ICVDwOeAVcDnsVyv8nEOsTnpeUUHIqk4JiBSmxuCR57Msb2n\\nYTaxMaGyW0LrJSAlvwZeDjwH3InlejV+ryKKV7wV2F5wLJIkabLMhA+/AwbzWIT+GCTzY3dv74A0\\nZpD22JCxvFzv7IJjUWvZldjM9I1FByJJkibf3r0wuD2HBOQrsKMPvlf0CbWYHuCFooPIUalc76+w\\nXK+y6QD+E7i46EAkSdIU6YFffHWCGxFuhWRp7AGyoujzaTH70p6VfizXq6w+DlyDd04lSZpWDu2F\\nTU9MIAH5BGzriapIasxRxG7x7Wg58HOiotHuBcei5nQc8ChRiEGSJE0nc+Azfwj9A+NIPr4fO6Cv\\nB5YVfR4taBXtPW1tFrGw+DHg5IJjUXPZkyhYcXTBcUiSpILM6IXvHAADjzeQfHwVhrtiDcOhRZ9A\\ni3o/8NWig5gChwH3Y7lehVnADcCFRQciSZIKNh/OXwCbLoLtz4+RePwXJK+G/gXwADHVRuPzSeBT\\nRQcxReYDXwIeJkquavr6LPBjLPcvSZJS+/TB1XNh61HQ/2EYugiSv4LkNNiyBDZ1w9Oz4+q9C0cn\\n5ivAB4oOYopZrnd6OwVYAywsOhBJzcnKJdL01g28Dli+APbaBgNbYi7/L4C7Jth2QrZ/Y7IeN97j\\ni/avwHdo73Ug1SwBLgV2A95B3ElT+1sO/JJYD3RLwbFIkqQGJEUHkIOs59Doubbad/Nzpvfu4Zbr\\nnT7mEknHXxQdiCRJalyrDbKrmaxzaLXv5n5gv6KDKNhyohTxv2O53nb298B3iw5CkqTp6H3A74Bt\\nxAZ0Z7PzoPlkYDWwhViw+3GiagzpsZWPel5KTPV5lqhY9X1g14zxJsC5RK3+HRljzNLneO+AnA08\\nRHx/DwHvrXL82cR3uy2N7cyMfRXheaC36CCagOV6W9ccogT3XsC8Gse8HbgP6JmqoCRJUjiRSD5W\\nEOsrVgBrGT3IfhVwR/qzk9gp+6fABWXHNHqV/w7gGKIKUS9xJfLSjJ9NgOuIwUUjMdbrczwJyCoi\\nETqWGMgcm/76pIrj1zLyHR8NPAIcn7G/qTQP2Fx0EE3Gcr2tYflc+PwCWDsThvugfxfo74ChLniq\\nEy4BDkqPfRnwNPCHxYUrSdL0dSORhJQ7idGD7GuAQyqOWUZc0S+Z6DSjBcTAPYuEkYFESZYY6/U5\\nngTkZqKCTrlVjN5JPGF0QkL6mesz9jeV9iKSI41mud7mNbcbvtgFg+fBtpshGaoo0X0bJJ+CoV7Y\\n1Av/DNwLnFVw3JIkTVsbgL6K1xYyepC9DhhKH8PEtKckfV7SaALyYqLK0jOMTNsayvjZhJhiUS5L\\njPX6HE8CsoGdS3cuTF8vP77ad/xsxv6m0iFYCWgsbyB7ud795sEnF8F9XbBxBiSzYNsCWLcQrgLe\\nws5/jtWY3XrhzlNh8JkMm5RuhOSDMNQDA8SUTEmSVIAsCchm6i/EbTQB+RlwMbAnMdd+XgNtVDsu\\nS4z1+jQBgROAq4sOosktAX4A/Irqi/WXdsG3u2DwI7DlvyB5IR0Ab4PkCUj+EZIjYGMXPAW8dUqj\\nbx/dPfDQ/4TtOzIkH+WPr8GOLliPBQYkSSpEtSlYJzJ6kH0TscHfWLbT2AaAA4yeT/9aJpaAZImx\\nXp/jnYL1por3TyHbFKwbMvY3ld4NfKPoIFpEebnekv/WBU99ELY8m2EgfC0ky2CgOzZ/dAPNBvTA\\nVafBYCOJR/njQtjWDbdhqWVJkqbcicQOwK8ButKfaxg9yF5JXK0/A1iUHrcS+FHZMQ8Tu0nPzNjv\\nbUQlq07glcSc7IkkIFlirNfneBehP0IsLC9fYJ5lEfobMvY3lT4GXFR0EC2kvFzvEV3w3JWwo5GB\\n8HOQvBYGerIXYRAcuQg2DY4z+UggGYbkABjo8A6UJEmFOJsYIJfK8J4DbK04ZgVReWoAGEyfryx7\\n/1QicRki20D+YODWtJ9HgA9n/BxjHFcvxnp9jrf/9xPld7dTuwxv+TFriDsNzej/MPqKvuqbBVzY\\nBUPfgOHxDIb7IdkP+mfDe4o+mVawC1z7Dw0metUeP4WkN/5eSpKkgh1J1MfXzmYRyU27ugJ4W9FB\\ntJr5cP4JsHkig+F7IOmO/Wncl2JsPXNhc/8Ek4/SXZA+2ESU7ZakmrJO75CU3beAA4mpSYcDXwMu\\nKzSi5nUo7Z2cLSH2R1B2s4ELv1B7w7tMDgBOgFlz4EP5hNW2XvEy2JrHhiwzgZVRMe+oHJqT1MZM\\nQKT8/SfwHaKU7T8C3wT+doJtJmM8JvOzeRir/8uIdSTtaikmII1auT/s2D+Hhj4InZ3NOz2vWey5\\nPMexwEth/szRm5pK0k5mFR2A1Ib+b/rI00QqyxRdlabo/ou0lKjspIzmw/Fvzmna1KuALfAioJeY\\njlWkUnnpmUQ8EP8Hl851DlHsAeLuz/z0+XxG7gZ1MbLXSQ8j/4f3MpJENNpP34KRviasDzpmw8LK\\nRW+SVM4ERJImxyxiANiM+5M0rU7Y9yU5XZHvAJbC0CPwp8Q+FaXNDhcwUqa3j0iSZzCyv0xHegzp\\nZ0ozlOZGiEDjicHzjNz5ez59bRjYmD7fThR8gCjsUFobtRnYkj7fRBS3AOhnZOPPtcTUJ4Dn0p87\\nGEm6htLjST+/KX2+BVj5JHy57Hwn5HHYthUezaMtSe3LBESSJseuxAaKO+odqBEzYVHlLpMT0RtJ\\nw9nAY8QgH2LQP5w+L08MSoP3YaKCHYxODCoH75vT54OMVLobqNFPs7rztznepVwd38uavNqT1J5M\\nQCRpcrgAfRyG4cl1Oba3PpKDtwP359hsO7lzA2y/H/iDCTb0PHBLJHzXTjwsSe3MReiSNDlcgD4O\\nA3D/AyNTiyZkK/BsTJN6PI/22lQyE6788s57FTXsMhjuhBsYuUskSZKkKfR2oiSzGnPEcnhhontS\\nJJD8AJJd4NdFn1ALWDoPNv12At/1M5D0xN2mA4s+GUnNzzsgkjQ5vAMyPrc8A1t/lUNDX4ZNz7sH\\nTxZPb4OPHgcD4ykVth14Iwxsg0uAu3OOTZIkSRl9Dvho0UG0og5412Hwwo4JXJG/CZIueIqR6lSq\\nowcuPRA2PdHA9/wCJMfCYC9cgxc1JUmSCvVN4Iyig2hRHb1w6ydh63iSj6chWQIDHXBC0SfSYmZ0\\nwicWwcDlsGO4zvd8NSTLoL8Hvo5FbSRJkgr3Y+ANRQfRwnbthicugm2N3An5HST7QX8nXFD0CbSw\\nw3ph9VLo/3PY/F1Ibobkl5D8GyQfhW3LYeOCKLd7fNHBSpIkKdwKHFx0EC1ut264+zgYqLdAejsk\\nl8KOBbBpLnyk6MAnQVJAm+cRmxkmu8J9u8L9i+D62fAFYqP5jrE/nrmfiR4vSZIkYuO7PYsOog10\\nzoFPzoeB18PGKyC5B5L1kDyWXpm/ALbtBv0LIuk7suiAJ0kRCcjDwFFT0M9Ej5ckSZr2ZhD7Kswu\\nOpAWUm/Q2Qu8bVe4eiE8PA829sC6xXD7fLgYOGQKYixSEQnIMDnukt4AExBJkqQG7QI8W3QQLcZB\\n59gqv5+zgYeAbenP91b5TL1jKts8AngC+ED6XvmjkTbPBR4Fdowz9iQ95sH0mIeBM6ucnyRJklL7\\nA/cWHYTaSvkgfhUxwD8W6El/Pgqc1OAx5W2ekr5/TI33G2nzOmCvCcSeAGuBFUA3cDTwCC54lyRJ\\nqmkFcH3RQTSZ9wG/I65oP0hc4S4fmCbAYmA9ML/is53p64vTX58MrAa2EFfHP87oMrC17qZU9tdK\\nV9nLY7+ZSBjKrQJuavCYUpt/DtwJ7DNGn420edAEY08YnZCQfuZ6JEmSVNVbgCuLDqKJnEgkH6Ur\\n2iuIK9yVCQHAD4HTKj5/evo6RPWlO9KfncC+wE8ZXXY3awKylta5yl4e+wZgYcX7C9PXGzkmAT5F\\nJAU9dfpspM3KzR8bjT0B+qoc47RGSZKkGj4E/F3RQTSRG4kkpNxJVE9A/gT4j4pjrwHeXPa8csH5\\nMuJORmVblSr7a6Wr7JOVgBwNPA28sU6fjbQ5VjsmIJIkSZPg08S0IIUNVB9QVktA5gLrGClhvCz9\\ndemq+jpgKH0MEwudk/R5ZVuVKvtrpUFu5TSmN1W8fwo7T8Gqd0ypzUOIxedvHaPPRtus1U7WNqol\\nhzdUaVuSJEnAP1C9KtF01UgCAvBV4GPp8wuAS8re2wzsXqe/aoPgmVX6a9UEZBUxXexoRk8fq1yE\\nXu+Y8jYPAH5PrIup9v542hxv7LWmx72hStuSJEkCriIWSitUm4J1IrUTkCOA36bP709/XXIT8P46\\n/a0HllS89ooq/bXSVfbKgf37iRK226ldhrfeMZVt7k1MZTu/xvvjaXM8sScVx6wB3l2lXUmSJKV+\\nCRxedBBN5ERiEPkaoCv9uYbaCQhE4nFu+rPcSuIuxRnAorS9lcCPyo65Avg2sEf6/jHAPVX6W4tX\\n2SfbLGCw6CAkSZLa3RpgedFBNJmziQF/qQzvOcRu8SWVCciF6bEXVmlrBbHXxAAxuL2OSEJKFgGX\\nA8+kfawmKmtVJiBeZZ98RwK3Fh2EJElSuxsgSsSqtiOB+wrs353XJ98w8Xv82qIDkSRJamddQH/R\\nQTShbwEHEonZ4cReHn9ZYDwmIJIkSWoLLyGm9Wi0M4C7gE3AvcT6jpkFxmMCIkmSpLZwJPCLooOQ\\nJKlZFXn1SZLa0VJiZ2lJklSFCYgk5WsJJiCSJNVkAiJJ+fIOiCRJYzABkaR8LSX2n5AkSVWYgEhS\\nvpyCJUnSGExAJClf3gGRJGkMJiCSlC/XgEiSJEmaMhuAvqKDkCRJktT+5gKbiw5CkqRm5hQsScrP\\nYmBd0UFIktTMTEAkKT8uQJckqQ4TEEnKjwvQJUmqwwREkvLjHiCSJNVhAiJJ+XEKliRJdZiASFJ+\\nvAMiSVIdJiCSlB/XgEiSVIcJiCTlxylYkiTVYQIiSfnxDogkSXWYgEhSflwDIkmSJGlKdABb05+S\\nJKkG74BIUj4WAc8Bw0UHIklSMzMBkaR8uABdkqQMTEAkKR+u/5AkKQMTEEnKhxWwJEnKwAREkvLh\\nFCxJkjIwAZGkfDgFS5KkDExAJCkfTsGSJCmDWUUHIEktaiZwOLAfcffjcGAdsA/wcIFxSZLU1GYU\\nHYAktZi+bvjrYXjXEphxGMzYHTq2wpxHYetNMGMGrBuAvxmGy4AdRQcsSZIkqQV1wCld8MJZsPkh\\nSJIqj2FIboTkSOhfAPcTd0QkSZIkKbseuGAxDN5WI/Go9rgUhrtgI/DqouOXJEmS1CLmwNuXwuZH\\nG0g+So8fQZImId4JkSRJklTXHvNg0+pxJB+lxxdgqAduL/pEJEmSJDW5PvjWebB1vMlHaV3IfjAA\\nrCr6fCRJkiQ1r865sHn9BJKP0uNKSHaBm4s+IUmSJEnN6+Qj4YWJJh8JJP2QzIMtQHfRJyVJUpHc\\nCV2SapgFL1+ZU8LQDbw4EpD982hPkqRWZQIiSTV0wvI9cvx3cq/4sWde7UmS1IpMQCSpthkzJqHN\\n/JuUJKl1mIBIUg0DsOZx2JFXe7+HBHg8r/YkSWpFJiCSVMMOuP3aKJ87YQPAIzAfuC+P9iRJkiS1\\nH8vwSpIkSZo6XfDNc2HzRDci3Ac2AicXfT6SJEmSmtse82DT6gkkIH8LQ71wS9EnIkmSJKkFdMDp\\ni2HTo+NIPn4ESSdsAF5U9HlIkiRJahE9cMFiGLytgeTjUhjuiqlXRxUdvyRJkqQW0wGndMELZ8Hm\\nh8ZY73EjJEdA/wJ4ANin6LglSWomboglSY3p64a/HoIzlwCHwoy9oHMbDD8Mm2+GOTNh/QD8zTBc\\nRo77iEiSJElqLXOBjwH3AJuItRlXASvT95MMj5KZwBeBbcAPgL8A3sbIHY/yz2wBHgI+C3SVtdFI\\nf5IkSZJazOXAPwMvI5KRxcBbgOtrHF8vAVgNnAncXuezc4ADgZ8AXx+jPRMOSZIkqY0MAn0NHD9W\\nQvBy4Ofp89Xpr+t9dg/gqXH2J0lSW5hZdACSNIWeAg7Iqa0zgUvS599If51FV/1DJEmSJLWDU4B1\\nwL8AHwGOBDrGOL7WHYnZwF3E1CqAhcDv09erfbZ8Ctb3xtGfJEmSpBa1CHgn8PfAbcAa4PAax9ZK\\nCE4B/lfFa1ekr5d/tvLxFLBkjNhMQCRJkqQ29zbg7hrv1UoIrqJ6gnFVjc/OAw4F7gQ+MUYsJiCS\\nJElSm1tIlOOtplpCsBh4HlhQ8fqC9PXFY3z2JcB6oKeB/iRJaisuQpc0nVxPlN1dSqzX2A/4CvDD\\nBto4Hfh/wMaK1zemr58+xmfXAD8DTmugP0mSJEkt6ljg+8Qdj0HgAeAioLPG8dXuSNwOvK7G8a9j\\nZE+QWnczjgdubaA/SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZI0if4/ELs0n59KyKcA\\nAAAASUVORK5CYII=\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fd158921dd0>\"\n      ]\n     },\n     \"execution_count\": 81,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"g.draw(root=\\\"START\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 91,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Level 0:\\n\",\n      \"     START\\n\",\n      \"Level 1:\\n\",\n      \"     study_hard\\n\",\n      \"Level 2:\\n\",\n      \"     mit\\n\",\n      \"     giveup\\n\",\n      \"     get_a_real_job\\n\",\n      \"     start_a_business\\n\",\n      \"Level 3:\\n\",\n      \"     grad_school\\n\",\n      \"     lookforjob\\n\",\n      \"     marry\\n\",\n      \"Level 4:\\n\",\n      \"     low_income\\n\",\n      \"     mcdonalds\\n\",\n      \"     HAPPY\\n\",\n      \"Level 5:\\n\",\n      \"     unsatisfied_demands\\n\",\n      \"Level 6:\\n\",\n      \"     DEPRESSION\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"node_to_depth, parent = bfs(g, \\\"START\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 94,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def get_shortest_path(node, parent):\\n\",\n    \"    result = []\\n\",\n    \"    while node is not None:\\n\",\n    \"        result.append(node)\\n\",\n    \"        node = parent[node]\\n\",\n    \"    return list(reversed(result))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 95,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['START',\\n\",\n       \" 'study_hard',\\n\",\n       \" 'mit',\\n\",\n       \" 'grad_school',\\n\",\n       \" 'low_income',\\n\",\n       \" 'unsatisfied_demands',\\n\",\n       \" 'DEPRESSION']\"\n      ]\n     },\n     \"execution_count\": 95,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"get_shortest_path(\\\"DEPRESSION\\\", parent)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture12/DFS.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 65,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from collections import defaultdict, deque\\n\",\n    \"from igraph import Graph as PlottableGraph, plot, layout, Plot\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Graph(object):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        self.adj = defaultdict(lambda: [])\\n\",\n    \"        self.nodes = set()\\n\",\n    \"    def add_edge(self, a, b):\\n\",\n    \"        self.adj[a].append(b)\\n\",\n    \"        self.nodes.add(a)\\n\",\n    \"        self.nodes.add(b)\\n\",\n    \"\\n\",\n    \"    def draw(self, root):\\n\",\n    \"        graph = PlottableGraph(directed=True)\\n\",\n    \"        figure = Plot(bbox=(800, 600))\\n\",\n    \"        for name in self.nodes:\\n\",\n    \"            graph.add_vertex(name=name, label=name)\\n\",\n    \"        for name, neighbors in self.adj.items():\\n\",\n    \"            for neighbor in neighbors:\\n\",\n    \"                graph.add_edge(name, neighbor, color=\\\"black\\\")\\n\",\n    \"        for vv in graph.vs:\\n\",\n    \"            if vv.attributes()[\\\"name\\\"] == root:\\n\",\n    \"                root = vv.index\\n\",\n    \"                break\\n\",\n    \"                    \\n\",\n    \"        figure.add(graph, layout=graph.layout(\\\"kk\\\"), margin = 100,\\n\",\n    \"                          vertex_label_dist=1, root=root)\\n\",\n    \"        return figure\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"g = Graph()\\n\",\n    \"g.add_edge(\\\"START\\\", \\\"study_hard\\\")\\n\",\n    \"g.add_edge(\\\"study_hard\\\", \\\"grad_school\\\")\\n\",\n    \"g.add_edge(\\\"study_hard\\\", \\\"start_a_business\\\")\\n\",\n    \"g.add_edge(\\\"start_a_business\\\", \\\"happy_life\\\")\\n\",\n    \"\\n\",\n    \"g.add_edge(\\\"grad_school\\\", \\\"fear_of_being_expelled\\\")\\n\",\n    \"g.add_edge(\\\"fear_of_being_expelled\\\", \\\"apply_for_funding\\\")\\n\",\n    \"g.add_edge(\\\"apply_for_funding\\\", \\\"work_hard\\\")\\n\",\n    \"g.add_edge(\\\"work_hard\\\", \\\"publish\\\")\\n\",\n    \"g.add_edge(\\\"publish\\\", \\\"out_of_funding\\\")\\n\",\n    \"g.add_edge(\\\"out_of_funding\\\", \\\"fear_of_being_expelled\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE\\nQVR4nOzdeZxcVZ3w/093p5P03p0NCDsiWxAJjMiegAuLiRBHRoVHEBmWUTFGRxj1QXFGf+LMPI64\\nPMqjjwsMiCLOKI4bqOzIFoaHfQkQAgkEkkDSnXSSTt/fH6fqlerqqu6q7qo+Xbc/79frvqrq1q1z\\nv7dIyP3WOed7QJIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkaYTqYgcgSZImtC7gGGAXoA1YB6wAbgV6IsYlqUpMQCRJ\\nUgxHdsH/2giHHAZb9ob6aVD/MvQ/AdsehMktcMs6WAI8GjtYSZIkSbWpqQN+tgN0/xj6eyBJCmzr\\nIPk6bOuEnnb4GtAQO3BJkiRJtWV6Ozz+AdjUWyTxKJSIHAs9nXALMDX2BUiSJEmqDZM74f4LYWt/\\niclHdtsKyQLo7YCfx74ISZIkSTVgKnxxHnT3lZl8ZLduSPaCDcAHYl+LJEmSpPFtZhP0PD3C5CO7\\n/QmSVngJmBz7giRJkiSNU/Xw8Q/AxtEkH9ltLrwOnBz7miSNXH3sACRJUrp1wRnvg6ZKtPVBaGuH\\n91WiLUmSJEkp1ATrX65A70cCyV2QTIfHYl+TpJGzB0SSJFVT41ZonlmhxnYGNsOsCjUnKQITEEmS\\n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\\nKUlKz2LiIdAdwEXAJ4FxZfYvdW2aADxPpFZBXEfeyL5f7Nj8FKy7BlCfJGkIVBOAbCXGbeR8mt1v\\n9IulVz1W4z7jiXEixwCPU/3g8GoDkMeBC6osU5KUrr2Ac4hxhMuJXpGjS+xb6tq0GPh+wXu3Zd/P\\nP7Zwe4dILy7FAESS6qiaAGQ5cAkxcPtI4AV2v9F/jd0HmJ9S4z5k61kF/PkAz6FcALKI6HE5l7gQ\\nZrLv/aKGuiRJ6Tgb+E2Jz0pdm+6leIBxb4ljW4gZe39N+euKAYgk1VE1AcjhwDJgOxE0XMjuN/oX\\nEIHDDuKp1pIi5VXaB2ASkac7Y4DnUC4AgQiAHiZ6dbqzrxcV2U+SNLQ6iOl4iyn2+z0NeJ+YCCXf\\n5Oz708ocO4+YXGVSDfVJkppYNT/c1f64n0ZM1yhJGjkeJcb1zSDGa8wnUqf+rcT+xa4ZFwM/KbH/\\nT7KflzoW4E5iPapq65MkNbG0ApBZxODCOYNrjiSpyZxALGK7keh9fgn4ayK1t5hi14xngRNL7H8i\\n/WuClLrenEz05ldbnySpiaURgCREWtSpJT5zpVpJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\n0kj2f53hgpk+/uATAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fbf7291fb10>\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"g.draw(root=\\\"START\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# DFS\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 92,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def dfs(graph, start):\\n\",\n    \"    visited = {}\\n\",\n    \"    def recurse(node):\\n\",\n    \"        print(node)\\n\",\n    \"        for neighbor in graph.adj[node]:\\n\",\n    \"            if neighbor not in visited:\\n\",\n    \"                visited[neighbor] = True\\n\",\n    \"                recurse(neighbor)\\n\",\n    \"    recurse(start)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 93,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"START\\n\",\n      \"study_hard\\n\",\n      \"grad_school\\n\",\n      \"fear_of_being_expelled\\n\",\n      \"apply_for_funding\\n\",\n      \"work_hard\\n\",\n      \"publish\\n\",\n      \"out_of_funding\\n\",\n      \"start_a_business\\n\",\n      \"happy_life\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"dfs(g, \\\"START\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Cycle detection\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 60,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# now ancestors is a set of nodes on \\\"DFS tree\\\"\\n\",\n    \"# path from start node to current node. \\n\",\n    \"\\n\",\n    \"def ensure_no_cycle(graph, start):\\n\",\n    \"    visited = {}\\n\",\n    \"    ancestors = set()\\n\",\n    \"    \\n\",\n    \"    def recurse(node):\\n\",\n    \"        ancestors.add(node)\\n\",\n    \"        print(node)\\n\",\n    \"        for neighbor in graph.adj[node]:\\n\",\n    \"            if neighbor not in visited:\\n\",\n    \"                visited[neighbor] = True\\n\",\n    \"                recurse(neighbor)\\n\",\n    \"            elif neighbor in ancestors:\\n\",\n    \"                raise Exception(\\\"Cycle\\\")\\n\",\n    \"        ancestors.remove(node)\\n\",\n    \"    recurse(start)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Proof cycle detection works\\n\",\n    \"1. Back edge $\\\\Rightarrow$ cycle: trivial\\n\",\n    \"2. Cycle $\\\\Rightarrow$ backedge:\\n\",\n    \"\\n\",\n    \"Look at the first node discovered by DFS from that cycle $u$\\n\",\n    \"\\n\",\n    \"Let's consider a cycle $C$. Let $v$ be the first node on $C$ visited by DFS and $u$ we see on $C$ when we follow edges from $v$. We know that $u$ is descendant of $v$ in DFS tree, because of the fact that by assumption $u$ was not yet visited when we entered $v$ and there is a path from $v$ to $u$ (and DFS will always follow unexplored paths). Also edge $u \\\\rightarrow v$ cannot be a part of DFS tree, so it must be a back edge.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 61,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"START\\n\",\n      \"study_hard\\n\",\n      \"grad_school\\n\",\n      \"fear_of_being_expelled\\n\",\n      \"apply_for_funding\\n\",\n      \"work_hard\\n\",\n      \"publish\\n\",\n      \"out_of_funding\\n\"\n     ]\n    },\n    {\n     \"ename\": \"Exception\",\n     \"evalue\": \"Cycle\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[1;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[1;31mException\\u001b[0m                                 Traceback (most recent call last)\",\n      \"\\u001b[1;32m<ipython-input-61-f0128eba7554>\\u001b[0m in \\u001b[0;36m<module>\\u001b[1;34m()\\u001b[0m\\n\\u001b[1;32m----> 1\\u001b[1;33m \\u001b[0mensure_no_cycle\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mg\\u001b[0m\\u001b[1;33m,\\u001b[0m \\u001b[1;34m\\\"START\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n      \"\\u001b[1;32m<ipython-input-60-2d6fb18515cf>\\u001b[0m in \\u001b[0;36mensure_no_cycle\\u001b[1;34m(graph, start)\\u001b[0m\\n\\u001b[0;32m     17\\u001b[0m         \\u001b[0mancestors\\u001b[0m\\u001b[1;33m.\\u001b[0m\\u001b[0mremove\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mnode\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     18\\u001b[0m \\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 19\\u001b[1;33m     \\u001b[0mrecurse\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mstart\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n      \"\\u001b[1;32m<ipython-input-60-2d6fb18515cf>\\u001b[0m in \\u001b[0;36mrecurse\\u001b[1;34m(node)\\u001b[0m\\n\\u001b[0;32m     12\\u001b[0m             \\u001b[1;32mif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32mnot\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mvisited\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     13\\u001b[0m                 \\u001b[0mvisited\\u001b[0m\\u001b[1;33m[\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m]\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mTrue\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 14\\u001b[1;33m                 \\u001b[0mrecurse\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     15\\u001b[0m             \\u001b[1;32melif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mancestors\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     16\\u001b[0m                 \\u001b[1;32mraise\\u001b[0m \\u001b[0mException\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"Cycle\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-60-2d6fb18515cf>\\u001b[0m in \\u001b[0;36mrecurse\\u001b[1;34m(node)\\u001b[0m\\n\\u001b[0;32m     12\\u001b[0m             \\u001b[1;32mif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32mnot\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mvisited\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     13\\u001b[0m                 \\u001b[0mvisited\\u001b[0m\\u001b[1;33m[\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m]\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mTrue\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 14\\u001b[1;33m                 \\u001b[0mrecurse\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     15\\u001b[0m             \\u001b[1;32melif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mancestors\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     16\\u001b[0m                 \\u001b[1;32mraise\\u001b[0m \\u001b[0mException\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"Cycle\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-60-2d6fb18515cf>\\u001b[0m in \\u001b[0;36mrecurse\\u001b[1;34m(node)\\u001b[0m\\n\\u001b[0;32m     12\\u001b[0m             \\u001b[1;32mif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32mnot\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mvisited\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     13\\u001b[0m                 \\u001b[0mvisited\\u001b[0m\\u001b[1;33m[\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m]\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mTrue\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 14\\u001b[1;33m                 \\u001b[0mrecurse\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     15\\u001b[0m             \\u001b[1;32melif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mancestors\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     16\\u001b[0m                 \\u001b[1;32mraise\\u001b[0m \\u001b[0mException\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"Cycle\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-60-2d6fb18515cf>\\u001b[0m in \\u001b[0;36mrecurse\\u001b[1;34m(node)\\u001b[0m\\n\\u001b[0;32m     12\\u001b[0m             \\u001b[1;32mif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32mnot\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mvisited\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     13\\u001b[0m                 \\u001b[0mvisited\\u001b[0m\\u001b[1;33m[\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m]\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mTrue\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 14\\u001b[1;33m                 \\u001b[0mrecurse\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     15\\u001b[0m             \\u001b[1;32melif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mancestors\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     16\\u001b[0m                 \\u001b[1;32mraise\\u001b[0m \\u001b[0mException\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"Cycle\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-60-2d6fb18515cf>\\u001b[0m in \\u001b[0;36mrecurse\\u001b[1;34m(node)\\u001b[0m\\n\\u001b[0;32m     12\\u001b[0m             \\u001b[1;32mif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32mnot\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mvisited\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     13\\u001b[0m                 \\u001b[0mvisited\\u001b[0m\\u001b[1;33m[\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m]\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mTrue\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 14\\u001b[1;33m                 \\u001b[0mrecurse\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     15\\u001b[0m             \\u001b[1;32melif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mancestors\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     16\\u001b[0m                 \\u001b[1;32mraise\\u001b[0m \\u001b[0mException\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"Cycle\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-60-2d6fb18515cf>\\u001b[0m in \\u001b[0;36mrecurse\\u001b[1;34m(node)\\u001b[0m\\n\\u001b[0;32m     12\\u001b[0m             \\u001b[1;32mif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32mnot\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mvisited\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     13\\u001b[0m                 \\u001b[0mvisited\\u001b[0m\\u001b[1;33m[\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m]\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mTrue\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 14\\u001b[1;33m                 \\u001b[0mrecurse\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     15\\u001b[0m             \\u001b[1;32melif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mancestors\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     16\\u001b[0m                 \\u001b[1;32mraise\\u001b[0m \\u001b[0mException\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"Cycle\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-60-2d6fb18515cf>\\u001b[0m in \\u001b[0;36mrecurse\\u001b[1;34m(node)\\u001b[0m\\n\\u001b[0;32m     12\\u001b[0m             \\u001b[1;32mif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32mnot\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mvisited\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     13\\u001b[0m                 \\u001b[0mvisited\\u001b[0m\\u001b[1;33m[\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m]\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mTrue\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 14\\u001b[1;33m                 \\u001b[0mrecurse\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     15\\u001b[0m             \\u001b[1;32melif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mancestors\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     16\\u001b[0m                 \\u001b[1;32mraise\\u001b[0m \\u001b[0mException\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"Cycle\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-60-2d6fb18515cf>\\u001b[0m in \\u001b[0;36mrecurse\\u001b[1;34m(node)\\u001b[0m\\n\\u001b[0;32m     14\\u001b[0m                 \\u001b[0mrecurse\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mneighbor\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     15\\u001b[0m             \\u001b[1;32melif\\u001b[0m \\u001b[0mneighbor\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mancestors\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 16\\u001b[1;33m                 \\u001b[1;32mraise\\u001b[0m \\u001b[0mException\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"Cycle\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     17\\u001b[0m         \\u001b[0mancestors\\u001b[0m\\u001b[1;33m.\\u001b[0m\\u001b[0mremove\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mnode\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     18\\u001b[0m \\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;31mException\\u001b[0m: Cycle\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"ensure_no_cycle(g, \\\"START\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 79,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def recover_cycle(graph, start):\\n\",\n    \"    visited = {}\\n\",\n    \"    ancestors = set()\\n\",\n    \"    path = deque()\\n\",\n    \"    cycle_end = [None]\\n\",\n    \"    \\n\",\n    \"    def recurse(node):\\n\",\n    \"        ancestors.add(node)\\n\",\n    \"        path.append(node)\\n\",\n    \"        for neighbor in graph.adj[node]:\\n\",\n    \"            if neighbor not in visited:\\n\",\n    \"                visited[neighbor] = True\\n\",\n    \"                recurse(neighbor)\\n\",\n    \"            elif neighbor in ancestors:\\n\",\n    \"                cycle_end[0] = neighbor\\n\",\n    \"                raise Exception(\\\"Cycle\\\")\\n\",\n    \"        path.pop(node)\\n\",\n    \"        ancestors.pop(node)\\n\",\n    \"    try:\\n\",\n    \"        recurse(start)\\n\",\n    \"    except:\\n\",\n    \"        while path[0] != cycle_end[0]:\\n\",\n    \"            path.popleft()\\n\",\n    \"        return path\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 78,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"deque(['fear_of_being_expelled',\\n\",\n       \"       'apply_for_funding',\\n\",\n       \"       'work_hard',\\n\",\n       \"       'publish',\\n\",\n       \"       'out_of_funding'])\"\n      ]\n     },\n     \"execution_count\": 78,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"recover_cycle(g, \\\"START\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BFS and DFS are close cousins really.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 86,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def bfs_from(graph, source):\\n\",\n    \"    q = deque()\\n\",\n    \"    # initially source is on the queue\\n\",\n    \"    distance = {source: 0}\\n\",\n    \"    q.appendleft(source)\\n\",\n    \"    # while queue is not empty\\n\",\n    \"    while len(q) > 0:\\n\",\n    \"        # consider the node that has been in the queue for\\n\",\n    \"        # the longest\\n\",\n    \"        node = q.popleft()\\n\",\n    \"        # for all neighbours\\n\",\n    \"        for neighbour in graph.adj[node]:\\n\",\n    \"            # if they were NOT visted yet\\n\",\n    \"            if neighbour not in distance:\\n\",\n    \"                # mark their distance and put them on queue\\n\",\n    \"                distance[neighbour] = distance[node] + 1\\n\",\n    \"                q.append(neighbour)\\n\",\n    \"    return distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 95,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def bfs_from(graph, source):\\n\",\n    \"    q = deque()\\n\",\n    \"    distance = {source: 0}\\n\",\n    \"    q.appendleft(source)\\n\",\n    \"    while len(q) > 0:\\n\",\n    \"        node = q.popleft()\\n\",\n    \"        print(node)\\n\",\n    \"        for neighbour in graph.adj[node]:\\n\",\n    \"            if neighbour not in distance:\\n\",\n    \"                distance[neighbour] = distance[node] + 1\\n\",\n    \"                q.append(neighbour)\\n\",\n    \"    return distance\\n\",\n    \"\\n\",\n    \"def dfs_from(graph, source):\\n\",\n    \"    q = deque()\\n\",\n    \"    distance = {source: 0}\\n\",\n    \"    q.appendleft(source)\\n\",\n    \"    while len(q) > 0:\\n\",\n    \"        node = q.pop()   # only change!\\n\",\n    \"        print(node)\\n\",\n    \"        for neighbour in reversed(graph.adj[node]): # ok fine\\n\",\n    \"            if neighbour not in distance:\\n\",\n    \"                distance[neighbour] = distance[node] + 1\\n\",\n    \"                q.append(neighbour)\\n\",\n    \"    return distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 100,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE\\nQVR4nOzdeZxkVXnw8V93z9LTy6wwDDOswyL7LsjmAC4IDDIIKCGKgMqor4Z3jIgxwYAxr0TNqwZF\\njUYjRGJQQIM7vuyoKIssAwgMOwOzL73M3vf941Slq29XVVd1V/fpuv37fj7307XcOve5heB56pzn\\nHJAkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSRqkhtgBSJIklXEosD8wM/d8OfAw8Gi0iCQNiQmIJEkabSY1w6Xj4K/a\\nYNLR0DMHxgG8DFt/C40boGsT/N/N8CVgU+R4JUmSJNWpY9tgxQLofASSpMTxICSnQWcbvAocETto\\nSZIkSXWmGd7TDt23lkk80sdPIWmDrglwduz4JUmSJNWPee2w4dEqko/88QAkrdANHBX7JiRJkiSN\\nfq0tsPoXg0g+8sePoKclTMeaGPtmJEmSJI1iLXDFAugebPKRP94MXZPg47HvR5IkSdIo1gYrBjP1\\nKn38HpIp8FLs+5EkSZI0eh08GzqGmnwkkPRAMh26gD1j35Sk0hpjByBJksa0g46rUUMNwFGwFTi4\\nRk1KGgYmIJIkKabZu0FzrRqbG4rQ59SqPUm1ZwIiSZKiabQvIo05/ksvSZKi6YFXnoMNtWrvOdgE\\n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\\nLybSZSlSplJ9kqQGVo8AJCHSov6wxHv+oZGkwbcUuBE4gghGphErFC4vUb7S5/JTRODxdIVr9wWO\\nBO4FbihzP/8OSJIkSQ1kG32XUC+nXEDwYXqXWn8q93Ola2cAa2usT5KGjGKb7kmSpL7WAr9bp3td\\nAFyfe/3j3M9pjKtcRJIkSVIjWASsB24C/gw4DmgqU77UiMQYYo7fvrmfJwG/yZ0vdm1+CtatNdQn\\nSZIkaZiaApwHLCH2hXoD+FiJsqUCgkXAdwvOLcudz7+28FgLTC/TNgMQSZIkqcGdAzxf4r1SAcEd\\nFA8w7ihx7VjgGOBZym9MawAiSZIkNbhJxHK8xRQLCKYBm4C2gvNtufPTylx7CPAesUlt2vokachx\\nErokSeksJ5bd3Y+Yr/E7wD8S+3ik9UXgLmBLwfktufNfLHPtG8DDwLlV1CdJkiRpmDoJuI0Y8dgG\\nvAr8LdBaonyxEYmngYUlyi+kd0+QUqMZpwBPVlGfJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJKmC/wPpqauSTA8gEAAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fbf581ffa90>\"\n      ]\n     },\n     \"execution_count\": 100,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"g.draw(root=\\\"START\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 98,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"START\\n\",\n      \"study_hard\\n\",\n      \"grad_school\\n\",\n      \"start_a_business\\n\",\n      \"fear_of_being_expelled\\n\",\n      \"happy_life\\n\",\n      \"apply_for_funding\\n\",\n      \"work_hard\\n\",\n      \"publish\\n\",\n      \"out_of_funding\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"_ = bfs_from(g, \\\"START\\\") # iterative DFS\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 96,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"START\\n\",\n      \"study_hard\\n\",\n      \"grad_school\\n\",\n      \"fear_of_being_expelled\\n\",\n      \"apply_for_funding\\n\",\n      \"work_hard\\n\",\n      \"publish\\n\",\n      \"out_of_funding\\n\",\n      \"start_a_business\\n\",\n      \"happy_life\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"_ = dfs_from(g, \\\"START\\\") # iterative DFS\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 97,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"START\\n\",\n      \"study_hard\\n\",\n      \"grad_school\\n\",\n      \"fear_of_being_expelled\\n\",\n      \"apply_for_funding\\n\",\n      \"work_hard\\n\",\n      \"publish\\n\",\n      \"out_of_funding\\n\",\n      \"start_a_business\\n\",\n      \"happy_life\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"dfs(g, \\\"START\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Topological sort\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 108,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"g = Graph()\\n\",\n    \"g.add_edge(\\\"intersections.cpp\\\", \\\"geometry.o\\\")\\n\",\n    \"g.add_edge(\\\"triangles.cpp\\\", \\\"geometry.o\\\")\\n\",\n    \"g.add_edge(\\\"utils.cpp\\\", \\\"geometry.o\\\")\\n\",\n    \"\\n\",\n    \"g.add_edge(\\\"utils.cpp\\\", \\\"random.o\\\")\\n\",\n    \"\\n\",\n    \"g.add_edge(\\\"neural_network.cpp\\\", \\\"ai.o\\\")\\n\",\n    \"g.add_edge(\\\"behavioral_model.cpp\\\", \\\"ai.o\\\")\\n\",\n    \"g.add_edge(\\\"utils.cpp\\\", \\\"ai.o\\\")\\n\",\n    \"g.add_edge(\\\"random.o\\\", \\\"ai.o\\\")\\n\",\n    \"\\n\",\n    \"g.add_edge(\\\"geometry.o\\\", \\\"game.o\\\")\\n\",\n    \"g.add_edge(\\\"ai.o\\\", \\\"game.o\\\")\\n\",\n    \"\\n\",\n    \"g.add_edge(\\\"queue_server.cpp\\\", \\\"queue_server.o\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 109,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE\\nQVR4nOzdd5xcVd348c+mbs1mk0BCCCBKkypVBITQO9J5REUFaTZ+2NvziAXBR1FUlBJRQcEGqAgi\\n5QFCsVBFeg8dUkl2N3Wz9/fHmXVnJzOzszOze6Z83q/XfWXnzp1zv2dns3u/c8/5HpAkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSSpSQ+wAJEmSFNXGwI7A2sAYYC7wJHAv0BsxLtUoExBJkqT6M3osnNIMX26ASbvB6vVh\\nzBjgVei5B5gPvQ3w0274GrAkcrySJEmSqtSmE+C53aDzLkhWQ5Jk2Z6G5EOwtAUWjYaDYwctSZIk\\nqfrMbIbOy6A3W9KRbbsXksnQ3QafjR28JEmSpOqxaTN03VRg4pG+vQDJFFg2Go6O3QlJkiRJla+h\\nDR6/AHqGmnz0bfdA0ghdhMnqkiRJkpTdaHjvFtDVW2Ty0bd9FJa3w6zY/ZEkSZJUwSbDfX8sMflI\\nIHkdkvGwFBgfu0+SJEmSKtPERli+tAwJSALJdrAY2D92p1S9RsUOQJIkScNq801gWVOZGtsLmoFt\\nytSc6pAJiCRJUm2bvl4Zr/nWgzFt8LZytaf6MyZ2AJIkKa+O1NYJzIsci6pTQ+wApHTeAZEkqbKM\\n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\\nxTkgkiQplr7SRQ7QDhxFmJvRQniWGZb5Odee1Pu/AWYS5i5cQhjmtLDCensGEO9AlPpeSrUlbaji\\nliRJkmpKqd6N9Pm9HJhYLAOuq+A+hRwHbKuw3geAK4pczxdvegjWZanrczhwCFY+xdqUbktaqbgL\\nDa96sMIykiRJUk2pNAFZDVxI/xEbMwnDfuYRVoZqy5y7p0Td9wLnZ8q3A9cDyyusdwbwEjCL/JO5\\n88WbnoS+LlNP7kTu9CT0fHLPl2pLunypuAtNML+owjKSJElSTak0AbkceIEwLyP3/HTCKlfdhPkN\\nSwjJQrG6ZxEmTPcQ5k/cReg5yFWq3mxMTxKWv10DfLJEvOlYriMsv7uXwsvw5pN7vpy2pOspFneS\\niuuF1PVyy0iSJElSSeUMWXOTRVWNk9AlSZIkDRkTEEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJGmQ/D/yfRRryhuu\\nIwAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fbf581ff850>\"\n      ]\n     },\n     \"execution_count\": 109,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"g.draw(root=\\\"\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 138,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def topological_sort(graph):\\n\",\n    \"    visited = {}\\n\",\n    \"    result = []\\n\",\n    \"    def recurse(node):\\n\",\n    \"        for neighbor in graph.adj[node]:\\n\",\n    \"            if neighbor not in visited:\\n\",\n    \"                visited[neighbor] = True\\n\",\n    \"                recurse(neighbor)\\n\",\n    \"        result.append(node)\\n\",\n    \"    \\n\",\n    \"    for potential_start in graph.nodes:\\n\",\n    \"        if potential_start not in visited:\\n\",\n    \"            visited[potential_start] = True\\n\",\n    \"            recurse(potential_start)\\n\",\n    \"    return list(reversed(result))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 139,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['triangles.cpp',\\n\",\n       \" 'behavioral_model.cpp',\\n\",\n       \" 'neural_network.cpp',\\n\",\n       \" 'utils.cpp',\\n\",\n       \" 'random.o',\\n\",\n       \" 'ai.o',\\n\",\n       \" 'intersections.cpp',\\n\",\n       \" 'geometry.o',\\n\",\n       \" 'game.o',\\n\",\n       \" 'queue_server.cpp',\\n\",\n       \" 'queue_server.o']\"\n      ]\n     },\n     \"execution_count\": 139,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"topological_sort(g)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 130,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def topological_nondfs(graph):\\n\",\n    \"    indegree = {node:0 for node in graph.nodes}\\n\",\n    \"    \\n\",\n    \"    for node in graph.nodes:\\n\",\n    \"        for neighbor in graph.adj[node]:\\n\",\n    \"            indegree[neighbor] += 1\\n\",\n    \"    \\n\",\n    \"    enabled = [node for node in graph.nodes\\n\",\n    \"                    if indegree[node] == 0]\\n\",\n    \"    result = []\\n\",\n    \"    while len(enabled) > 0:\\n\",\n    \"        node = enabled.pop()\\n\",\n    \"        result.append(node)\\n\",\n    \"        for neighbor in graph.adj[node]:\\n\",\n    \"            indegree[neighbor] -= 1\\n\",\n    \"            if indegree[neighbor] == 0:\\n\",\n    \"                enabled.append(neighbor)\\n\",\n    \"   \\n\",\n    \"    return result\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 131,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['triangles.cpp',\\n\",\n       \" 'behavioral_model.cpp',\\n\",\n       \" 'neural_network.cpp',\\n\",\n       \" 'utils.cpp',\\n\",\n       \" 'random.o',\\n\",\n       \" 'ai.o',\\n\",\n       \" 'intersections.cpp',\\n\",\n       \" 'geometry.o',\\n\",\n       \" 'game.o',\\n\",\n       \" 'queue_server.cpp',\\n\",\n       \" 'queue_server.o']\"\n      ]\n     },\n     \"execution_count\": 131,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"topological_nondfs(g)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture12/Google BFS.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Google BFS question\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from collections import deque\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Given a 2D board with emergency $E$ and some policeman $P$, what is the distance from an emergency to closest policeman. Nodes marked as $X$, are walls and cannot be traversed.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Think a little bit about how to solve it\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 66,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"example = [\\n\",\n    \"    \\\"...P...\\\",\\n\",\n    \"    \\\"...XXX.\\\",\\n\",\n    \"    \\\"EX..P..\\\",\\n\",\n    \"    \\\".X.....\\\",\\n\",\n    \"    \\\".......\\\",\\n\",\n    \"    \\\".......\\\",\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"class MapGraph(object):\\n\",\n    \"    def __init__(self, mmap):\\n\",\n    \"        \\\"\\\"\\\"Graph abstraction for our map\\\"\\\"\\\"\\n\",\n    \"        self.dim_x, self.dim_y = len(mmap), len(mmap[0])\\n\",\n    \"        self.mmap = {(x,y):mmap[x][y] for x in range(self.dim_x) \\n\",\n    \"                                      for y in range(self.dim_y)}\\n\",\n    \"\\n\",\n    \"    def neighbours(self, node):\\n\",\n    \"        \\\"\\\"\\\"Returns all the direct neighbors of a given node\\\"\\\"\\\"\\n\",\n    \"        x,y = node\\n\",\n    \"        # There are four directions in which we can go\\n\",\n    \"        for dx, dy in [[0,1], [0,-1], [-1,0], [1,0]]:\\n\",\n    \"            nx, ny = x + dx, y + dy\\n\",\n    \"            if (0 <= nx < self.dim_x and # but we cannot got through walls\\n\",\n    \"                    0 <= ny < self.dim_y # (at least not yet!)\\n\",\n    \"                    and self.mmap[nx,ny] != 'X'):\\n\",\n    \"                yield nx, ny\\n\",\n    \"    \\n\",\n    \"    def find_all(self, letter):\\n\",\n    \"        \\\"\\\"\\\"Finds all the coordinates where a given letter occurs\\\"\\\"\\\"\\n\",\n    \"        res = []\\n\",\n    \"        for x in range(self.dim_x):\\n\",\n    \"            for y in range(self.dim_y):\\n\",\n    \"                if self.mmap[x,y] == letter:\\n\",\n    \"                    res.append((x,y))\\n\",\n    \"        return res\\n\",\n    \"    \\n\",\n    \"    def show(self, what=None):\\n\",\n    \"        \\\"\\\"\\\"Displays the graph\\\"\\\"\\\"\\n\",\n    \"        what = what or self.mmap\\n\",\n    \"        for x in range(self.dim_x):\\n\",\n    \"            for y in range(self.dim_y):\\n\",\n    \"                print(what[x,y] if (x,y) in what else '?', end='')\\n\",\n    \"                print(' ', end='')\\n\",\n    \"            print('')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 67,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \". . . P . . . \\n\",\n      \". . . X X X . \\n\",\n      \"E X . . P . . \\n\",\n      \". X . . . . . \\n\",\n      \". . . . . . . \\n\",\n      \". . . . . . . \\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[(2, 0)]\"\n      ]\n     },\n     \"execution_count\": 67,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"g = MapGraph(example)\\n\",\n    \"g.show()\\n\",\n    \"g.find_all('E')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The solution is maybe somewhat counterintuitive - we start our search from emergency, not policeman\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 68,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def bfs_from(graph, source):\\n\",\n    \"    q = deque()\\n\",\n    \"    # initially source is on the queue\\n\",\n    \"    distance = {source: 0}\\n\",\n    \"    q.appendleft(source)\\n\",\n    \"    # while queue is not empty\\n\",\n    \"    while len(q) > 0:\\n\",\n    \"        # consider the node that has been in the queue for\\n\",\n    \"        # the longest\\n\",\n    \"        node = q.popleft()\\n\",\n    \"        # for all neighbours\\n\",\n    \"        for neighbour in graph.neighbours(node):\\n\",\n    \"            # if they were NOT visted yet\\n\",\n    \"            if neighbour not in distance:\\n\",\n    \"                # mark their distance and put them on queue\\n\",\n    \"                distance[neighbour] = distance[node] + 1\\n\",\n    \"                q.append(neighbour)\\n\",\n    \"    return distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 76,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \". . . P . . . \\n\",\n      \". . . X X X . \\n\",\n      \"E X . . P . . \\n\",\n      \". X . . . . . \\n\",\n      \". . . . . . . \\n\",\n      \". . . . . . . \\n\",\n      \"\\n\",\n      \"2 3 4 5 6 7 8 \\n\",\n      \"1 2 3 ? ? ? 9 \\n\",\n      \"0 ? 4 5 6 7 8 \\n\",\n      \"1 ? 5 6 7 8 9 \\n\",\n      \"2 3 4 5 6 7 8 \\n\",\n      \"3 4 5 6 7 8 9 \\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"g = MapGraph(example)\\n\",\n    \"distances = bfs_from(g, g.find_all('E')[0])\\n\",\n    \"g.show()\\n\",\n    \"print('')\\n\",\n    \"g.show(distances)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 70,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def solve_google(example):\\n\",\n    \"    g = MapGraph(example)\\n\",\n    \"    # comute distances from emergency to everywhere welse\\n\",\n    \"    distances = bfs_from(g, g.find_all('E')[0])\\n\",\n    \"    # find the minimum distance policeman\\n\",\n    \"    res = float('inf')\\n\",\n    \"    for policeman in g.find_all('P'):\\n\",\n    \"        res = min(res, distances[policeman])\\n\",\n    \"    return res\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 71,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"5\"\n      ]\n     },\n     \"execution_count\": 71,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"solve_google(example)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Success! \\n\",\n    \"\\n\",\n    \"We solve the problem correctly in $O(nm)$, which is the best solution we can hoped for!\\n\",\n    \"\\n\",\n    \"## Follow up question\\n\",\n    \"\\n\",\n    \"Find the worst place for emergency (furthest from all policeman)\\n\",\n    \"\\n\",\n    \"Think about how to solve it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 72,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"example2 = [\\n\",\n    \"    \\\"...P...\\\",\\n\",\n    \"    \\\"...XXX.\\\",\\n\",\n    \"    \\\"EX..P..\\\",\\n\",\n    \"    \\\".X.....\\\",\\n\",\n    \"    \\\".......\\\",\\n\",\n    \"    \\\".......\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"There are many suboptimal solutions, but it turns out we can still solve it in $O(nm)$, by starting BFS from all the policeman simultaneoursly!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 73,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def bfs_from_many(graph, sources):\\n\",\n    \"    q = deque()\\n\",\n    \"    distance = {s: 0 for s in sources} # <--- this line changed\\n\",\n    \"    q.extendleft(sources)              # <--- this line changed\\n\",\n    \"    while len(q) > 0:\\n\",\n    \"        node = q.popleft()\\n\",\n    \"        for neighbour in graph.neighbours(node):\\n\",\n    \"            if neighbour not in distance:\\n\",\n    \"                distance[neighbour] = distance[node] + 1\\n\",\n    \"                q.append(neighbour)\\n\",\n    \"    return distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 74,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \". . . P . . . \\n\",\n      \". . . X X X . \\n\",\n      \"E X . . P . . \\n\",\n      \". X . . . . . \\n\",\n      \". . . . . . . \\n\",\n      \". . . . . . . \\n\",\n      \"\\n\",\n      \"3 2 1 0 1 2 3 \\n\",\n      \"4 3 2 ? ? ? 3 \\n\",\n      \"5 ? 2 1 0 1 2 \\n\",\n      \"6 ? 3 2 1 2 3 \\n\",\n      \"6 5 4 3 2 3 4 \\n\",\n      \"7 6 5 4 3 4 5 \\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"g = MapGraph(example2)\\n\",\n    \"distances = bfs_from_many(g, g.find_all('P'))\\n\",\n    \"g.show()\\n\",\n    \"print('')\\n\",\n    \"g.show(distances)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 77,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def solve_google_hard(example):\\n\",\n    \"    g = MapGraph(example)\\n\",\n    \"    # compute distances from all the policeman\\n\",\n    \"    distances = bfs_from_many(g, g.find_all('P'))\\n\",\n    \"    # find the minimum distance policeman\\n\",\n    \"    return max(distances.values())\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 78,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"7\"\n      ]\n     },\n     \"execution_count\": 78,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"solve_google_hard(example2)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.4.1\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture15/Dijkstra's algorithm.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 58,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from collections import defaultdict, deque\\n\",\n    \"from Queue import PriorityQueue\\n\",\n    \"from igraph import Graph as PlottableGraph, plot, layout, Plot\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 94,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Graph(object):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        self.adj = defaultdict(lambda: [])\\n\",\n    \"        self.nodes = set()\\n\",\n    \"        \\n\",\n    \"    def add_edge(self, a, b, weight):\\n\",\n    \"        self.adj[a].append((b, weight))\\n\",\n    \"        self.nodes.add(a)\\n\",\n    \"        self.nodes.add(b)\\n\",\n    \"\\n\",\n    \"    def draw(self):\\n\",\n    \"        graph = PlottableGraph(directed=True)\\n\",\n    \"        figure = Plot(bbox=(400, 400))\\n\",\n    \"        for name in self.nodes:\\n\",\n    \"            graph.add_vertex(name=name, label=name)\\n\",\n    \"        for name, neighbors in self.adj.items():\\n\",\n    \"            for (neighbor, weight) in neighbors:\\n\",\n    \"                graph.add_edge(name, neighbor, color=\\\"black\\\", weight=weight, label=str(weight))\\n\",\n    \"                                    \\n\",\n    \"        figure.add(graph, layout=graph.layout(\\\"kk\\\"), margin = 100,\\n\",\n    \"                          vertex_label_dist=1)\\n\",\n    \"        return figure\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 95,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"g = Graph()\\n\",\n    \"g.add_edge(\\\"A\\\",\\\"B\\\", 2)\\n\",\n    \"g.add_edge(\\\"A\\\",\\\"C\\\", 3)\\n\",\n    \"g.add_edge(\\\"B\\\",\\\"D\\\", 4)\\n\",\n    \"g.add_edge(\\\"C\\\",\\\"D\\\", 1)\\n\",\n    \"g.add_edge(\\\"D\\\",\\\"A\\\", 1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 96,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAABmJLR0QA/wD/AP+gvaeTAAAawUlE\\nQVR4nO3deZxcZZno8V/SnXTS3UlnkSQQICCEXQlgkEVQkXFhEbjsM6igAzKCBBWJ3lFvrt5B7gfH\\nGYwCYkbHZcDhqsAAiiiiRBbBBVGWkR1CABcC6U5n77p/PNV2p+nqrq46VW8tv+/ncz6prq4+eU7S\\ndZ46532f5wVJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkqSMjEsdgFQlewILgFnA\\neOCPwAPAb4BcwrikumUCUSOb2AbnTYQL2mDKwdC3LbSOB56FTXfBuNWwPgeX9cJngd7UAUuS0tun\\nE559G/TcC7lcge33kDsR1nTAn4FDUwctSUqoBd7ZAWuuhb5CiWPo9lPIdcGadvj71PFLktLYrwN6\\n7y4ycQzeHoLcVFgLHJ76ICRJ1TWhA1ZcPYYrj6HbjyE3GVYBU1IfjCSpStrgg4dAT6nJo387GdZ2\\nwEWpj0eSVCXT4LHby0weOcj9N+Q64irEWYqS1AS274LezRkkkBzkdoDVwMLUByXVsvGpA5Ay8tr9\\nYENWv9CHQguwd0a7kxqSCUSNYpt5MCGrne0Ak1thu6z2JzUiE4gaRabjFeNsbyKNygSiRrHyKdiY\\n1c6egLWb4Jms9idJql0OokuSSuM0XklSScbDOQfBy+UmkBOgexJ8OvXxSJKqJ5NWJh3wJ6Aj9cFI\\nkqprv3ZYU2ozxS5YAxyW+iAkSQmMh0Ud0DeWdu638dd27u8H7gcuBXZIeySSpGraDngK+GAZC0qd\\nTNSBbAZuwPbuktTwuoDfAWflv57YBhdMgednQs/R8NJ5sPF82HgsvDwHujvgL+3wGaB9yL5+QiSR\\n/u3X+f1OrtKxSJKqpBX4AfD5Yb6XG7JtBF4ArgZmFtjfnsCGYX72eeBiYG6GsUuSEvoK8F2G764w\\n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\\nmECkQXIwrgIl41ahqyGZQKRB1sMTKzPc38ro+PtshruUaoYJRBqkB+65LQa+y/YcsDreY09nsT9J\\nUm1zGq8kqTRT4KaLYEO5hYSzoBt4Q+rjkSRVTyatTLrg+6kPRJJUZePhg9tDTynNFK+Cvg54gcos\\nkytJqnVT4fNjaefeB7lLop37i8DeqeOXJCU0xgWluvMLSlk4qKZggZM0ullT4KINcMq2sGkfGD8P\\nOnph46Ow7k5oa4Vne+BTm+Fqon2JJEl/1Uosefs9Yu30jUAvsBw4KmFckqQa1wbcAXwV2AOYCEwj\\nlq91xpUkqaCPY2GgJKkE9wMHpg5CklR/1gLTUwch1QqbKUqSSmICkYr3CLBb6iCkWtGSOgCpjkwH\\nTgL+M3UgkqT6Mgm4G1hGTOOdQEzjfTtO45UkjWIy8L+Ah4D1wGrgFuDIlEFJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJzeD/AxyO/k8yE0oWAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7ffc0c07d0d0>\"\n      ]\n     },\n     \"execution_count\": 96,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"g.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Dijkstra's algorithm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 97,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def dijkstra(graph, source):\\n\",\n    \"    # set of already explored nodes (S from lectures)\\n\",\n    \"    visited   = set()\\n\",\n    \"    # distance from source\\n\",\n    \"    distance = defaultdict(lambda: float('inf'))\\n\",\n    \"    # predecessor on the shortest path from source\\n\",\n    \"    predecessor = defaultdict(lambda: None)\\n\",\n    \"    # queue of tuples (distance, node). \\n\",\n    \"    # returns shortest distance first\\n\",\n    \"    q = PriorityQueue()\\n\",\n    \"    \\n\",\n    \"    # add source to the state\\n\",\n    \"    distance[source] = 0\\n\",\n    \"    q.put((0,source))\\n\",\n    \"\\n\",\n    \"    # while there are still nodes in the queue\\n\",\n    \"    while not q.empty():\\n\",\n    \"        _, node = q.get()\\n\",\n    \"        # check that we did not already process this node\\n\",\n    \"        # (nodes can be inserted to the queue multiple times)\\n\",\n    \"        if node in visited:\\n\",\n    \"            continue\\n\",\n    \"        # mark as visited\\n\",\n    \"        visited.add(node)\\n\",\n    \"        \\n\",\n    \"        # for every neighbor\\n\",\n    \"        for neighbor, edge_len in graph.adj[node]:\\n\",\n    \"            # can we relax the edge?\\n\",\n    \"            if distance[neighbor] > distance[node] + edge_len:\\n\",\n    \"                # store updated distance\\n\",\n    \"                distance[neighbor] = distance[node] + edge_len\\n\",\n    \"                # add edge to the queue (maybe again...)\\n\",\n    \"                q.put((distance[neighbor], neighbor))\\n\",\n    \"                # store predecessor\\n\",\n    \"                predecessor[neighbor] = node\\n\",\n    \"\\n\",\n    \"    return distance, predecessor\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 98,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAABmJLR0QA/wD/AP+gvaeTAAAcX0lE\\nQVR4nO3debjddX3g8ffNeresEEISwo4IKFFBNuNSSyEIQaYQKFbROo9gl2mo2EKFcXDGPsZOfTpM\\nqzZanUKtC1ZkCALKWAsEqBpIQFbZl4QkhBDIvTeBhJz543OP5+Tmrmf7/n7nvF/P83vukpvf+fyU\\nm8/5Lp/PFyRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkmqkLXUAkjSCBcBbgX36\\nv94I/Aq4L1lEAkwgkrKpvR0+PQGWdkHnibBrP5gA8DzsvBvG9ULvTrhqO3wJ2J44XklSBpzQDRvO\\nhJ41UCgMca2GwmLo6Yb1wHGpg5YkJTQJzp8CfbcMkzgGXjdDoRt6J8F5qeOXJKWxsBu2DTfqGG40\\n0gV9wEmpH0KS1FgdnbBpRQXJo3hdD7s6YQPQnvphJEkN0g6Xnw69lSaP4rUIejvgstTPI0lqkCmw\\nfnWVyaMAhVVQmALrUj+PJKkxjpoNPdUmjwIUdkFhFvQAb079UK1gXOoAJLW8o0+CXbW4URtwYtxr\\nQS3up+GZQCSlNvfAGi58HwyTgXm1up+GZgKRlJodMXLKBCIptXVP17AVyZNxr7W1up8kKbuOmg19\\nLqJLkkbrYOBK4MFueMNtvJKk4ewNLAVWAq8A1wAnT4LLT4Ot1SaQU+DVCXBJ0ieUJNXMJGAJsALY\\n2v9xCdBR9jM1aWXSHWsfkxr/iJKkWmkDTiZGGJuJEceFwF7D/J2FXdBXSTPFNVDoirWPY+r/aJKk\\nengbcBXwLPAYscZxxGj/ciXt3G/iN+3cz63PI0mS6mVf4FLgQeK42auobiQw1gOlNuCBUpKUG1OI\\nKamVwKvEVNViarf+0N4OV3TDi7Ng65nwylLYsRR2nAmvzIKt3bCxHS7H9u2SlHkTiSRxLaXF8AuA\\n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\\n7JlLdo6ybQPeRUxHnUGcm3EdcY7GXdgSXWppJpDsmUNtzwHpBj4J/M0of768RuMsomju+8SZGlmr\\n0ZCklrcA+DDwKWLX0o3936vWe4BniB5Ow7U3H6xGYyn53QkmSU2tvR2u6IYXZ0PvWbD1T2DbH8HO\\nM2H7bOjtho3tcDlj7wM1kWgNspNSE8A/G/AzUyjVaGyk1BJ9/2oeSpJUXyd0w4YzoWcNFApDXKuh\\nsBh6uqOp4HGjvPchwM8pJY7idTuxw2uwGo29avx8kqRamwTnT4G+W4ZJHAOvm6HQDb2T4LwRbv9h\\n4oClgcmjQCyAP0FMj/1nLOyTpFxZ2A3bhht1DDca6Ypjbk8a5L7TiamowRJH+fWHjXlMSVItdXTC\\nphUVJI/idT3s6owDjcrXRN4FPM3IyaMA3NLIB5Yk1UA7XH469FaaPIrXIujtiGNVxxNFfTsYXfIo\\nAK9jexFJypcpsH51lcmjAIVVUJgSo5AfM/rEUX59KMHjS5IqdNRs6Kk2eRSgsAsKs6K4782pH0pS\\naxuXOoAWcfRJNWr70QacGPeqRaGhJFXMBNIYcw8cezHgkA6GycC8Wt1PkiphAmmMttQBSFKtmUAa\\nY93TsL1WN3sy7rW2VveTJGWXi+iSpMrUeBtvVs4LkSTV2yT4zGmwtdoEcgq8OgEuSf08kqTGqUkr\\nk+5Y+5iU+mEkSY21sAv6KmmmuAYKXbH2cUzqh5AkJVBJO/eb+E0793NTxy9JSmusB0ptYPQHSklS\\nQ1jglk57O3x6AiztgPYTYddB0AnwFPTdDeO2wbadcNV2+BI1rCORJDWP44B/JY6u3UEcHPUfwBkp\\ng5IkZdtk4E7gm8CRxA6r6cBpwE0J45IkZdxfAj9MHYQkKX/uB05MHYQkKX+24TGzknLIbrySpIqY\\nQNJ7DDvrSsqh8akDEDOICvPvpQ5EkpQv7UTNxz8S23gnEtt4F+E2XknSCDqA/wY8DLwGvAr8BDg9\\nZVCSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSlCX/H4og5XDhLpeJAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7ffbf7d95050>\"\n      ]\n     },\n     \"execution_count\": 98,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"g.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 99,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(defaultdict(<function __main__.<lambda>>, {'A': 0, 'B': 2, 'C': 3, 'D': 4}),\\n\",\n       \" defaultdict(<function __main__.<lambda>>, {'B': 'A', 'C': 'A', 'D': 'C'}))\"\n      ]\n     },\n     \"execution_count\": 99,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dijkstra(g, \\\"A\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Negative edge example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 100,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"g = Graph()\\n\",\n    \"g.add_edge(\\\"A\\\",\\\"B\\\", 2)\\n\",\n    \"g.add_edge(\\\"A\\\",\\\"C\\\", 3)\\n\",\n    \"g.add_edge(\\\"B\\\",\\\"D\\\", 3)\\n\",\n    \"g.add_edge(\\\"D\\\",\\\"C\\\", 4)\\n\",\n    \"g.add_edge(\\\"C\\\",\\\"B\\\", -2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 101,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAABmJLR0QA/wD/AP+gvaeTAAAbM0lE\\nQVR4nO3deZRddZXo8W+qUqlKTUlISAJJGIRADGFUBgXsKEFmFBRxxAZt3rJftzz6sQjwbBvobo3a\\n2ETpJTS2rXTTKjaKgogi0AIyBJBRZpQhhBAIEJLKnNz3x65rKkXN99zzu8P3s9ZZubl169x9oFL7\\nnv37/fYPJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSMjIqdQCSMtcKHArMACYC\\nq4DFwO3A8oRxqcaYQKTasft4uGg1zNsT1s+CxqnQ8DpsfgY23wVjxsJDb8BZwG9SBytJSq+hDb48\\nDrq+BhuXQ6HQx7EaCldCYTtYOR6uAdpSBy5JSqdpHPzqQOh6tZ/E0ftYD4VTYU0nPANMSX0BkqQE\\nxsGVh8PadUNMHj2Ps2HjOHgIaE59HZKkfJ04A1auGEHyKEBhExTeD10tsCD1hUiS8jO6Axb/YoTJ\\no3g8B4VWWA1sl/qCJEn5eN8sWFFK8igep8Ga0TA/9QWp+jSkDkDS8HXCSZ+C9izO9RFo6YSPZ3Eu\\nSVKFmwS/uzmDu48CFN6EwhhYk/qaVH28A5Gq0EaYun1G5+oAGuJ3QUdGp1SdMIFIVaoMbSTsTKFh\\nMYFIVWg0LF2S0blWApuhALyZ0SlVJ0wgUhVaD3ffAZuzONcdQDs8kcW5JEmVz2m8kqQRGd0GL2Wx\\nkHBstHt3IaEk1YFOYCHw+gxYW2ork1a4IPUFSZLKaxRwCrE51EJgm1b43mHQNZJmimfB2g5YBDQl\\nvSpJUlnNITaBWgS8s8fzpbZzn5zkaiRJZVcsVy0l7j76mjnphlKSpD/pXa6aOITv2X08XDcG1u4N\\nr30cVp0Nm0+D1YfA682wbjzcB1xYzsAlSenMAf6HKFftP8zvLfQ41gOvAQ8C/wRM6n7NYuCjWQQq\\n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\\n/wPQlPqCJEk5aISTZsGq/sY7hnp8HtaPh++mvh5JUk4mwl3/XWLyKEBhGRSaYQ2Oe0hSXehsgbWr\\nMkggBSgcENN0j0l9UZL61pA6ANWUWbvA2raMTnYYtDfAPhmdTlLGTCDK0vbTMjzZdGjosCW7VLFM\\nIMqSrXGkOmICUZaWLIZCVidbDJtWRsNESVKNcxBdkjQyTuOVJI3Uh3eDN0tdSPjXsKYdLk99MZKk\\n/JTcyuQ+KLTBm8C2qS9GkpSvmS2wYiTNFF+AwiRYBRyf+iIkSWkMu537vfypnfvZqYOXJKU1sxOe\\nfjesLHFDKUkVyIVfKrfGRvhMG3xhFEx6N6zfBcY2QePz0HUP8CowxC1tJUl1alfgY8BPgA3AlcBB\\nuKBVkjRE9wN/DjyQOA5JJfCTn/K2DzHL6rtE2xO77UpVqjF1AKo75wDXAI8Q29W+D7ghaUSSpIrX\\nBDwMjOn++wTgedz3XKpK3oEoT8cT5asbu/++FtifGFB/PFVQkqTKdw0x7tH7uCZlUJKkyrYt8AbQ\\n2ev5zu7n7XslVRlLWMrL6UT56vu9nl8HzAEmAXflHZQkqfI9AMzr52vzcE2IJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSpEH8f2kopTwnV1FaAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7ffc0c0bcc90>\"\n      ]\n     },\n     \"execution_count\": 101,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"g.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture16/Bignums.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Number(list):\\n\",\n    \"    @staticmethod\\n\",\n    \"    def wrap(n):\\n\",\n    \"        return Number(reversed([ord(c) - ord('0') for c in str(n)]))\\n\",\n    \"    \\n\",\n    \"    def __repr__(self):\\n\",\n    \"        return ''.join([str(d) for d in reversed(self)])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"([1, 1], [2, 1])\"\n      ]\n     },\n     \"execution_count\": 2,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"a = Number.wrap(11)\\n\",\n    \"b = Number.wrap(12)\\n\",\n    \"a, b\\n\",\n    \"list(a), list(b)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Addition\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def add(a, b):\\n\",\n    \"    c = Number()\\n\",\n    \"    carry = 0\\n\",\n    \"    for i in range(max(len(a), len(b))):\\n\",\n    \"        r = carry + (a[i] if i < len(a) else 0) + (b[i] if i < len(b) else 0)\\n\",\n    \"        c.append(r % 10)\\n\",\n    \"        carry = r / 10\\n\",\n    \"    if carry > 0:\\n\",\n    \"        c.append(carry)\\n\",\n    \"    return c\\n\",\n    \"\\n\",\n    \"Number.__add__ = add\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"13\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"Number.wrap(6) + Number.wrap(7)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"76\"\n      ]\n     },\n     \"execution_count\": 5,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"Number.wrap(6) + Number.wrap(70)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Substraction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 80,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def sub(a, b):\\n\",\n    \"    c = Number()\\n\",\n    \"    carry = 0\\n\",\n    \"    for i in range(max(len(a), len(b))):\\n\",\n    \"        r = carry + (a[i] if i < len(a) else 0) - (b[i] if i < len(b) else 0)\\n\",\n    \"        carry = 0 \\n\",\n    \"        while r < 0:\\n\",\n    \"            r += 10\\n\",\n    \"            carry -= 1\\n\",\n    \"        c.append(r % 10)\\n\",\n    \"    assert carry == 0, \\\"negative result\\\"\\n\",\n    \"    while len(c) > 1 and c[-1] == 0:\\n\",\n    \"        c.pop()\\n\",\n    \"    return c\\n\",\n    \"Number.__sub__ = sub\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 81,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"1\"\n      ]\n     },\n     \"execution_count\": 81,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"a, b = Number.wrap(7), Number.wrap(6)\\n\",\n    \"sub(a,b)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 82,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"64\"\n      ]\n     },\n     \"execution_count\": 82,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"Number.wrap(70) - Number.wrap(6)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 83,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0\"\n      ]\n     },\n     \"execution_count\": 83,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"Number.wrap(70) - Number.wrap(70)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Multiplication by digit\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 126,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def mul_by_digit(number, digit):\\n\",\n    \"    res = Number()\\n\",\n    \"    carry = 0\\n\",\n    \"    for i in range(len(number)):\\n\",\n    \"        r = carry + number[i] * digit\\n\",\n    \"        res.append(r % 10)\\n\",\n    \"        carry = r / 10\\n\",\n    \"    if carry > 0:\\n\",\n    \"        res.append(carry)\\n\",\n    \"    return res\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 127,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"1107\"\n      ]\n     },\n     \"execution_count\": 127,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"mul_by_digit(Number.wrap(123), 9)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Karatsuba Multiplication\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 116,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def mul(a, b):\\n\",\n    \"    if len(a) < len(b):\\n\",\n    \"        a, b = b, a\\n\",\n    \"    # now a is longer of the two\\n\",\n    \"    assert len(a) >= len(b)\\n\",\n    \"    if len(b) == 0:\\n\",\n    \"        return Number.wrap(0)\\n\",\n    \"    elif len(b) == 1:\\n\",\n    \"        return mul_by_digit(a, b[0])\\n\",\n    \"    \\n\",\n    \"    mid = len(a) / 2\\n\",\n    \"    y1, x1 = a[:mid], a[mid:]\\n\",\n    \"    y2, x2 = b[:mid], b[mid:]\\n\",\n    \"    H = mul(x1, x2)\\n\",\n    \"    L = mul(y1, y2)\\n\",\n    \"    M = mul(add(x1,y1), add(x2,y2))\\n\",\n    \"    M = sub(M,H)\\n\",\n    \"    M = sub(M,L)\\n\",\n    \"    \\n\",\n    \"    res = Number([0] * (2 * mid) + list(H)) + Number([0] * (mid) + list(M))   + L\\n\",\n    \"    return res\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 124,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"1353\"\n      ]\n     },\n     \"execution_count\": 124,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"mul(Number.wrap(123), Number.wrap(11))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 123,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"for a in range(1112):\\n\",\n    \"    for b in range(123):\\n\",\n    \"        A,B = Number.wrap(a), Number.wrap(b)\\n\",\n    \"        assert int(str(mul(A, B))) == a*b\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Multiplication\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def sqrt(a):\\n\",\n    \"    nextx, x = None, a\\n\",\n    \"    while True:\\n\",\n    \"        print(bin(x), x)\\n\",\n    \"        nextx = (x + (a/x)) / 2\\n\",\n    \"        if x == nextx:\\n\",\n    \"            break\\n\",\n    \"        x = nextx\\n\",\n    \"    return x\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"('0b10000011100010000100', 538756)\\n\",\n      \"('0b1000001110001000010', 269378)\\n\",\n      \"('0b100000111000100010', 134690)\\n\",\n      \"('0b10000011100010010', 67346)\\n\",\n      \"('0b1000001110001100', 33676)\\n\",\n      \"('0b100000111001101', 16845)\\n\",\n      \"('0b10000011110110', 8438)\\n\",\n      \"('0b1000010011010', 4250)\\n\",\n      \"('0b100010001100', 2188)\\n\",\n      \"('0b10011000001', 1217)\\n\",\n      \"('0b1100111101', 829)\\n\",\n      \"('0b1011100011', 739)\\n\",\n      \"('0b1011011110', 734)\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"734\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sqrt(734 * 734)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"('0b10000011111001001011', 540235)\\n\",\n      \"('0b1000001111100100110', 270118)\\n\",\n      \"('0b100000111110010011', 135059)\\n\",\n      \"('0b10000011111001011', 67531)\\n\",\n      \"('0b1000001111101001', 33769)\\n\",\n      \"('0b100000111111100', 16892)\\n\",\n      \"('0b10000100001101', 8461)\\n\",\n      \"('0b1000010100110', 4262)\\n\",\n      \"('0b100010010010', 2194)\\n\",\n      \"('0b10011000100', 1220)\\n\",\n      \"('0b1100111111', 831)\\n\",\n      \"('0b1011100100', 740)\\n\",\n      \"('0b1011011111', 735)\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"735\"\n      ]\n     },\n     \"execution_count\": 14,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sqrt(735 * 735 + 10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"('0b10000011111000110111', 540215)\\n\",\n      \"('0b1000001111100011100', 270108)\\n\",\n      \"('0b100000111110001110', 135054)\\n\",\n      \"('0b10000011111001000', 67528)\\n\",\n      \"('0b1000001111100111', 33767)\\n\",\n      \"('0b100000111111011', 16891)\\n\",\n      \"('0b10000100001101', 8461)\\n\",\n      \"('0b1000010100110', 4262)\\n\",\n      \"('0b100010010010', 2194)\\n\",\n      \"('0b10011000100', 1220)\\n\",\n      \"('0b1100111111', 831)\\n\",\n      \"('0b1011100100', 740)\\n\",\n      \"('0b1011011111', 735)\\n\",\n      \"('0b1011011110', 734)\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"734\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sqrt(735 * 735 - 10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"200000000000000000000\\n\",\n      \"100000000000000000000\\n\",\n      \"50000000000000000001\\n\",\n      \"25000000000000000002\\n\",\n      \"12500000000000000004\\n\",\n      \"6250000000000000009\\n\",\n      \"3125000000000000020\\n\",\n      \"1562500000000000041\\n\",\n      \"781250000000000084\\n\",\n      \"390625000000000169\\n\",\n      \"195312500000000340\\n\",\n      \"97656250000000681\\n\",\n      \"48828125000001364\\n\",\n      \"24414062500002729\\n\",\n      \"12207031250005460\\n\",\n      \"6103515625010921\\n\",\n      \"3051757812521844\\n\",\n      \"1525878906293689\\n\",\n      \"762939453212380\\n\",\n      \"381469726737261\\n\",\n      \"190734863630774\\n\",\n      \"95367432339674\\n\",\n      \"47683717218412\\n\",\n      \"23841860706357\\n\",\n      \"11920934547482\\n\",\n      \"5960475662345\\n\",\n      \"2980254608357\\n\",\n      \"1490160858358\\n\",\n      \"745147536028\\n\",\n      \"372707969625\\n\",\n      \"186622291390\\n\",\n      \"93846987363\\n\",\n      \"47989057987\\n\",\n      \"26078337348\\n\",\n      \"16873768965\\n\",\n      \"14363242737\\n\",\n      \"14143837480\\n\",\n      \"14142135726\\n\",\n      \"14142135623\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"1.4142135623\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sqrt(2 * 10**20) / float(10**10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture2/Document distance.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Document distance\\n\",\n    \"\\n\",\n    \"In this section, we analyze an algorithm for calculating the distance between two documents\\n\",\n    \"in terms of the angle between them. In other words, we try to see how much overlap these\\n\",\n    \"documents have in terms of their constituent words with no regard to their order. For exam-\\n\",\n    \"ple, `[\\\"Steve\\\",\\\"is\\\",\\\"pretty\\\",\\\"cool\\\"]` is quite close to `[\\\"Steve\\\",\\\"is\\\",\\\"pretty\\\",\\\"awesome\\\"]` but an exact\\n\",\n    \"match for `[\\\"is\\\",\\\"steve\\\",\\\"pretty\\\",\\\"cool\\\"]`. This algorithm has applications in search engines, where\\n\",\n    \"we match documents based on the document distance between a query and a stored document.\\n\",\n    \"In this section we walk through the algorithm line-by-line. See the \\\"Document Distance\\\"\\n\",\n    \"handout for a full description of the algorithm and iterative improvements we make on it. The\\n\",\n    \"improvements lead to the following. Note that $O(L)$ denotes time linear in the length of an array\\n\",\n    \"$L$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"import string\\n\",\n    \"import sys\\n\",\n    \"import cProfile\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"with open(\\\"book1.txt\\\") as f:\\n\",\n    \"    document1 = f.read()\\n\",\n    \"with open(\\\"book2.txt\\\") as f:\\n\",\n    \"    document2 = f.read()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def read_file(filename):\\n\",\n    \"    \\\"\\\"\\\" \\n\",\n    \"    Read the text file with the given filename;\\n\",\n    \"    return a list of the lines of text in the file.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    try:\\n\",\n    \"        f = open(filename, 'r')\\n\",\n    \"        return f.readlines()\\n\",\n    \"    except IOError:\\n\",\n    \"        print \\\"Error opening or reading input file: \\\",filename\\n\",\n    \"        sys.exit()\\n\",\n    \"\\n\",\n    \"def get_words_from_line_list(L):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Parse the given list L of text lines into words.\\n\",\n    \"    Return list of all words found.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"    word_list = []\\n\",\n    \"    for line in L:\\n\",\n    \"        words_in_line = get_words_from_string(line)\\n\",\n    \"        word_list = word_list + words_in_line\\n\",\n    \"    return word_list\\n\",\n    \"\\n\",\n    \"def get_words_from_string(line):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Return a list of the words in the given input string,\\n\",\n    \"    converting each word to lower-case.\\n\",\n    \"\\n\",\n    \"    Input:  line (a string)\\n\",\n    \"    Output: a list of strings \\n\",\n    \"              (each string is a sequence of alphanumeric characters)\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    word_list = []          # accumulates words in line\\n\",\n    \"    character_list = []     # accumulates characters in word\\n\",\n    \"    for c in line:\\n\",\n    \"        if c.isalnum():\\n\",\n    \"            character_list.append(c)\\n\",\n    \"        elif len(character_list)>0:\\n\",\n    \"            word = \\\"\\\".join(character_list)\\n\",\n    \"            word = word.lower()\\n\",\n    \"            word_list.append(word)\\n\",\n    \"            character_list = []\\n\",\n    \"    if len(character_list)>0:\\n\",\n    \"        word = \\\"\\\".join(character_list)\\n\",\n    \"        word = word.lower()\\n\",\n    \"        word_list.append(word)\\n\",\n    \"    return word_list\\n\",\n    \"\\n\",\n    \"def count_frequency(word_list):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Return a list giving pairs of form: (word,frequency)\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    L = []\\n\",\n    \"    for new_word in word_list:\\n\",\n    \"        for entry in L:\\n\",\n    \"            if new_word == entry[0]:\\n\",\n    \"                entry[1] = entry[1] + 1\\n\",\n    \"                break\\n\",\n    \"        else:\\n\",\n    \"            L.append([new_word,1])\\n\",\n    \"    return L\\n\",\n    \"    \\n\",\n    \"def word_frequencies_for_file(filename):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Return alphabetically sorted list of (word,frequency) pairs \\n\",\n    \"    for the given file.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    line_list = read_file(filename)\\n\",\n    \"    word_list = get_words_from_line_list(line_list)\\n\",\n    \"    freq_mapping = count_frequency(word_list)\\n\",\n    \"    return freq_mapping\\n\",\n    \"\\n\",\n    \"def inner_product(L1,L2):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Inner product between two vectors, where vectors\\n\",\n    \"    are represented as lists of (word,freq) pairs.\\n\",\n    \"\\n\",\n    \"    Example: inner_product([[\\\"and\\\",3],[\\\"of\\\",2],[\\\"the\\\",5]],\\n\",\n    \"                           [[\\\"and\\\",4],[\\\"in\\\",1],[\\\"of\\\",1],[\\\"this\\\",2]]) = 14.0 \\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    sum = 0.0\\n\",\n    \"    for word1, count1 in L1:\\n\",\n    \"        for word2, count2 in L2:\\n\",\n    \"            if word1 == word2:\\n\",\n    \"                sum += count1 * count2\\n\",\n    \"    return sum\\n\",\n    \"\\n\",\n    \"def vector_angle(L1,L2):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    The input is a list of (word,freq) pairs, sorted alphabetically.\\n\",\n    \"\\n\",\n    \"    Return the angle between these two vectors.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    numerator = inner_product(L1,L2)\\n\",\n    \"    denominator = math.sqrt(inner_product(L1,L1)*inner_product(L2,L2))\\n\",\n    \"    return math.acos(numerator/denominator)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def document_distance(d1, d2):\\n\",\n    \"    sorted_word_list_1 = word_frequencies_for_file(d1)\\n\",\n    \"    \\n\",\n    \"    sorted_word_list_2 = word_frequencies_for_file(d2)\\n\",\n    \"    distance = vector_angle(sorted_word_list_1,sorted_word_list_2)\\n\",\n    \"    return distance\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"KeyboardInterrupt\",\n     \"evalue\": \"\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[1;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[1;31mKeyboardInterrupt\\u001b[0m                         Traceback (most recent call last)\",\n      \"\\u001b[1;32m<ipython-input-5-229c2733c718>\\u001b[0m in \\u001b[0;36m<module>\\u001b[1;34m()\\u001b[0m\\n\\u001b[1;32m----> 1\\u001b[1;33m \\u001b[0mdistance\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mdocument_distance\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"book1.txt\\\"\\u001b[0m\\u001b[1;33m,\\u001b[0m \\u001b[1;34m\\\"book2.txt\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m      2\\u001b[0m \\u001b[1;32mprint\\u001b[0m \\u001b[1;34m\\\"The distance between the documents is: %0.6f (radians)\\\"\\u001b[0m\\u001b[1;33m%\\u001b[0m \\u001b[0mdistance\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-4-e8249b2cd580>\\u001b[0m in \\u001b[0;36mdocument_distance\\u001b[1;34m(d1, d2)\\u001b[0m\\n\\u001b[0;32m      1\\u001b[0m \\u001b[1;32mdef\\u001b[0m \\u001b[0mdocument_distance\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0md1\\u001b[0m\\u001b[1;33m,\\u001b[0m \\u001b[0md2\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m----> 2\\u001b[1;33m     \\u001b[0msorted_word_list_1\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mword_frequencies_for_file\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0md1\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m      3\\u001b[0m \\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m      4\\u001b[0m     \\u001b[0msorted_word_list_2\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mword_frequencies_for_file\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0md2\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m      5\\u001b[0m     \\u001b[0mdistance\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mvector_angle\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0msorted_word_list_1\\u001b[0m\\u001b[1;33m,\\u001b[0m\\u001b[0msorted_word_list_2\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-3-5fa6de42b2ce>\\u001b[0m in \\u001b[0;36mword_frequencies_for_file\\u001b[1;34m(filename)\\u001b[0m\\n\\u001b[0;32m     68\\u001b[0m     \\\"\\\"\\\"\\n\\u001b[0;32m     69\\u001b[0m     \\u001b[0mline_list\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mread_file\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mfilename\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 70\\u001b[1;33m     \\u001b[0mword_list\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mget_words_from_line_list\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mline_list\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     71\\u001b[0m     \\u001b[0mfreq_mapping\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mcount_frequency\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mword_list\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     72\\u001b[0m     \\u001b[1;32mreturn\\u001b[0m \\u001b[0mfreq_mapping\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-3-5fa6de42b2ce>\\u001b[0m in \\u001b[0;36mget_words_from_line_list\\u001b[1;34m(L)\\u001b[0m\\n\\u001b[0;32m     20\\u001b[0m     \\u001b[1;32mfor\\u001b[0m \\u001b[0mline\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mL\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     21\\u001b[0m         \\u001b[0mwords_in_line\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mget_words_from_string\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mline\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 22\\u001b[1;33m         \\u001b[0mword_list\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mword_list\\u001b[0m \\u001b[1;33m+\\u001b[0m \\u001b[0mwords_in_line\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     23\\u001b[0m     \\u001b[1;32mreturn\\u001b[0m \\u001b[0mword_list\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     24\\u001b[0m \\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;31mKeyboardInterrupt\\u001b[0m: \"\n     ]\n    }\n   ],\n   \"source\": [\n    \"distance = document_distance(\\\"book1.txt\\\", \\\"book2.txt\\\")\\n\",\n    \"print \\\"The distance between the documents is: %0.6f (radians)\\\"% distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"KeyboardInterrupt\",\n     \"evalue\": \"\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[1;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[1;31mKeyboardInterrupt\\u001b[0m                         Traceback (most recent call last)\",\n      \"\\u001b[1;32m<ipython-input-10-2e1697c4dfe3>\\u001b[0m in \\u001b[0;36m<module>\\u001b[1;34m()\\u001b[0m\\n\\u001b[1;32m----> 1\\u001b[1;33m \\u001b[0mdistance\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mdocument_distance\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[1;34m\\\"book1_small.txt\\\"\\u001b[0m\\u001b[1;33m,\\u001b[0m \\u001b[1;34m\\\"book2_small.txt\\\"\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m      2\\u001b[0m \\u001b[1;32mprint\\u001b[0m \\u001b[1;34m\\\"The distance between the documents is: %0.6f (radians)\\\"\\u001b[0m\\u001b[1;33m%\\u001b[0m \\u001b[0mdistance\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-4-e8249b2cd580>\\u001b[0m in \\u001b[0;36mdocument_distance\\u001b[1;34m(d1, d2)\\u001b[0m\\n\\u001b[0;32m      1\\u001b[0m \\u001b[1;32mdef\\u001b[0m \\u001b[0mdocument_distance\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0md1\\u001b[0m\\u001b[1;33m,\\u001b[0m \\u001b[0md2\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m----> 2\\u001b[1;33m     \\u001b[0msorted_word_list_1\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mword_frequencies_for_file\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0md1\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m      3\\u001b[0m \\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m      4\\u001b[0m     \\u001b[0msorted_word_list_2\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mword_frequencies_for_file\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0md2\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m      5\\u001b[0m     \\u001b[0mdistance\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mvector_angle\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0msorted_word_list_1\\u001b[0m\\u001b[1;33m,\\u001b[0m\\u001b[0msorted_word_list_2\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-3-5fa6de42b2ce>\\u001b[0m in \\u001b[0;36mword_frequencies_for_file\\u001b[1;34m(filename)\\u001b[0m\\n\\u001b[0;32m     68\\u001b[0m     \\\"\\\"\\\"\\n\\u001b[0;32m     69\\u001b[0m     \\u001b[0mline_list\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mread_file\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mfilename\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 70\\u001b[1;33m     \\u001b[0mword_list\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mget_words_from_line_list\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mline_list\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     71\\u001b[0m     \\u001b[0mfreq_mapping\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mcount_frequency\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mword_list\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     72\\u001b[0m     \\u001b[1;32mreturn\\u001b[0m \\u001b[0mfreq_mapping\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;32m<ipython-input-3-5fa6de42b2ce>\\u001b[0m in \\u001b[0;36mget_words_from_line_list\\u001b[1;34m(L)\\u001b[0m\\n\\u001b[0;32m     20\\u001b[0m     \\u001b[1;32mfor\\u001b[0m \\u001b[0mline\\u001b[0m \\u001b[1;32min\\u001b[0m \\u001b[0mL\\u001b[0m\\u001b[1;33m:\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     21\\u001b[0m         \\u001b[0mwords_in_line\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mget_words_from_string\\u001b[0m\\u001b[1;33m(\\u001b[0m\\u001b[0mline\\u001b[0m\\u001b[1;33m)\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m---> 22\\u001b[1;33m         \\u001b[0mword_list\\u001b[0m \\u001b[1;33m=\\u001b[0m \\u001b[0mword_list\\u001b[0m \\u001b[1;33m+\\u001b[0m \\u001b[0mwords_in_line\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[0;32m     23\\u001b[0m     \\u001b[1;32mreturn\\u001b[0m \\u001b[0mword_list\\u001b[0m\\u001b[1;33m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m     24\\u001b[0m \\u001b[1;33m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[1;31mKeyboardInterrupt\\u001b[0m: \"\n     ]\n    }\n   ],\n   \"source\": [\n    \"distance = document_distance(\\\"book1_small.txt\\\", \\\"book2_small.txt\\\")\\n\",\n    \"print \\\"The distance between the documents is: %0.6f (radians)\\\"% distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"The distance between the documents is: 0.667024 (radians)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"distance = document_distance(\\\"book1_tiny.txt\\\", \\\"book2_tiny.txt\\\")\\n\",\n    \"print \\\"The distance between the documents is: %0.6f (radians)\\\"% distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         42760 function calls in 0.193 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 <ipython-input-3-5fa6de42b2ce>:1(read_file)\\n\",\n      \"        2    0.001    0.001    0.024    0.012 <ipython-input-3-5fa6de42b2ce>:13(get_words_from_line_list)\\n\",\n      \"      200    0.016    0.000    0.023    0.000 <ipython-input-3-5fa6de42b2ce>:25(get_words_from_string)\\n\",\n      \"        2    0.066    0.033    0.066    0.033 <ipython-input-3-5fa6de42b2ce>:50(count_frequency)\\n\",\n      \"        2    0.000    0.000    0.090    0.045 <ipython-input-3-5fa6de42b2ce>:64(word_frequencies_for_file)\\n\",\n      \"        3    0.102    0.034    0.102    0.034 <ipython-input-3-5fa6de42b2ce>:74(inner_product)\\n\",\n      \"        1    0.000    0.000    0.102    0.102 <ipython-input-3-5fa6de42b2ce>:89(vector_angle)\\n\",\n      \"        1    0.000    0.000    0.193    0.193 <ipython-input-4-e8249b2cd580>:1(document_distance)\\n\",\n      \"        1    0.000    0.000    0.193    0.193 <string>:1(<module>)\\n\",\n      \"     3965    0.001    0.000    0.001    0.000 {len}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {math.acos}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {math.sqrt}\\n\",\n      \"    16663    0.002    0.000    0.002    0.000 {method 'append' of 'list' objects}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"    16471    0.002    0.000    0.002    0.000 {method 'isalnum' of 'str' objects}\\n\",\n      \"     2720    0.001    0.000    0.001    0.000 {method 'join' of 'str' objects}\\n\",\n      \"     2720    0.001    0.000    0.001    0.000 {method 'lower' of 'str' objects}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {method 'readlines' of 'file' objects}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {open}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run('document_distance(\\\"book1_tiny.txt\\\", \\\"book2_tiny.txt\\\")')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Optimization 1: remove list concatenation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def get_words_from_line_list(L):\\n\",\n    \"    word_list = []\\n\",\n    \"    for line in L:\\n\",\n    \"        words_in_line = get_words_from_string(line)\\n\",\n    \"        word_list.extend(words_in_line)\\n\",\n    \"        return word_list\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"The distance between the documents is: 1.201624 (radians)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"distance = document_distance(\\\"book1_tiny.txt\\\", \\\"book2_tiny.txt\\\")\\n\",\n    \"print \\\"The distance between the documents is: %0.6f (radians)\\\"% distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"The distance between the documents is: 1.201624 (radians)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"distance = document_distance(\\\"book1_small.txt\\\", \\\"book2_small.txt\\\")\\n\",\n    \"print \\\"The distance between the documents is: %0.6f (radians)\\\"% distance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         442 function calls in 0.021 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 <ipython-input-11-af1902ee9362>:1(get_words_from_line_list)\\n\",\n      \"        2    0.000    0.000    0.016    0.008 <ipython-input-3-5fa6de42b2ce>:1(read_file)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 <ipython-input-3-5fa6de42b2ce>:25(get_words_from_string)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 <ipython-input-3-5fa6de42b2ce>:50(count_frequency)\\n\",\n      \"        2    0.000    0.000    0.017    0.008 <ipython-input-3-5fa6de42b2ce>:64(word_frequencies_for_file)\\n\",\n      \"        3    0.000    0.000    0.000    0.000 <ipython-input-3-5fa6de42b2ce>:74(inner_product)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 <ipython-input-3-5fa6de42b2ce>:89(vector_angle)\\n\",\n      \"        1    0.004    0.004    0.020    0.020 <ipython-input-4-e8249b2cd580>:1(document_distance)\\n\",\n      \"        1    0.000    0.000    0.021    0.021 <string>:1(<module>)\\n\",\n      \"       37    0.000    0.000    0.000    0.000 {len}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {math.acos}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {math.sqrt}\\n\",\n      \"      171    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {method 'extend' of 'list' objects}\\n\",\n      \"      157    0.000    0.000    0.000    0.000 {method 'isalnum' of 'str' objects}\\n\",\n      \"       26    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}\\n\",\n      \"       26    0.000    0.000    0.000    0.000 {method 'lower' of 'str' objects}\\n\",\n      \"        2    0.016    0.008    0.016    0.008 {method 'readlines' of 'file' objects}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {open}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run('document_distance(\\\"book1.txt\\\", \\\"book2.txt\\\")')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Various smaller optimizations\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# global variables needed for fast parsing\\n\",\n    \"# translation table maps upper case to lower case and punctuation to spaces\\n\",\n    \"translation_table = string.maketrans(string.punctuation+string.uppercase,\\n\",\n    \"                                     \\\" \\\"*len(string.punctuation)+string.lowercase)\\n\",\n    \"\\n\",\n    \"def get_words_from_text(text):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Parse the given text into words.\\n\",\n    \"    Return list of all words found.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    text = text.translate(translation_table)\\n\",\n    \"    word_list = text.split()\\n\",\n    \"    return word_list\\n\",\n    \"\\n\",\n    \"def count_frequency(word_list):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Return a dictionary mapping words to frequency.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    D = {}\\n\",\n    \"    for new_word in word_list:\\n\",\n    \"        if new_word in D:\\n\",\n    \"            D[new_word] = D[new_word]+1\\n\",\n    \"        else:\\n\",\n    \"            D[new_word] = 1\\n\",\n    \"    return D\\n\",\n    \"\\n\",\n    \"def word_frequencies_for_text(text):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Return dictionary of (word,frequency) pairs for the given file.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    word_list = get_words_from_text(text)\\n\",\n    \"    freq_mapping = count_frequency(word_list)\\n\",\n    \"    return freq_mapping\\n\",\n    \"\\n\",\n    \"def inner_product(D1,D2):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Inner product between two vectors, where vectors\\n\",\n    \"    are represented as dictionaries of (word,freq) pairs.\\n\",\n    \"\\n\",\n    \"    Example: inner_product({\\\"and\\\":3,\\\"of\\\":2,\\\"the\\\":5},\\n\",\n    \"                           {\\\"and\\\":4,\\\"in\\\":1,\\\"of\\\":1,\\\"this\\\":2}) = 14.0 \\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    sum = 0.0\\n\",\n    \"    for key in D1:\\n\",\n    \"        if key in D2:\\n\",\n    \"            sum += D1[key] * D2[key]\\n\",\n    \"    return sum\\n\",\n    \"\\n\",\n    \"def vector_angle(D1,D2):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    The input is a list of (word,freq) pairs, sorted alphabetically.\\n\",\n    \"\\n\",\n    \"    Return the angle between these two vectors.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    numerator = inner_product(D1,D2)\\n\",\n    \"    denominator = math.sqrt(inner_product(D1,D1)*inner_product(D2,D2))\\n\",\n    \"    return math.acos(numerator/denominator)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         19 function calls in 0.336 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        2    0.226    0.113    0.226    0.113 <ipython-input-19-227e470e7bd3>:15(count_frequency)\\n\",\n      \"        2    0.000    0.000    0.313    0.156 <ipython-input-19-227e470e7bd3>:27(word_frequencies_for_text)\\n\",\n      \"        3    0.011    0.004    0.011    0.004 <ipython-input-19-227e470e7bd3>:35(inner_product)\\n\",\n      \"        1    0.000    0.000    0.011    0.011 <ipython-input-19-227e470e7bd3>:49(vector_angle)\\n\",\n      \"        2    0.000    0.000    0.087    0.043 <ipython-input-19-227e470e7bd3>:6(get_words_from_text)\\n\",\n      \"        1    0.009    0.009    0.333    0.333 <ipython-input-7-ac93d2f4306b>:87(document_distance)\\n\",\n      \"        1    0.003    0.003    0.336    0.336 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {math.acos}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {math.sqrt}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"        2    0.076    0.038    0.076    0.038 {method 'split' of 'str' objects}\\n\",\n      \"        2    0.011    0.005    0.011    0.005 {method 'translate' of 'str' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"document_distance(document1, document2)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         509 function calls in 0.026 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        2    0.000    0.000    0.021    0.011 <ipython-input-14-b6cbf467a347>:1(word_frequencies_for_text)\\n\",\n      \"        3    0.000    0.000    0.000    0.000 <ipython-input-14-b6cbf467a347>:18(inner_product)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 <ipython-input-14-b6cbf467a347>:8(insertion_sort)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 <ipython-input-15-1f90468eae9b>:1(count_frequency)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 <ipython-input-7-ac93d2f4306b>:13(get_words_from_string)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 <ipython-input-7-ac93d2f4306b>:77(vector_angle)\\n\",\n      \"        1    0.004    0.004    0.026    0.026 <ipython-input-7-ac93d2f4306b>:87(document_distance)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 <ipython-input-9-af1902ee9362>:1(get_words_from_line_list)\\n\",\n      \"        1    0.000    0.000    0.026    0.026 <string>:1(<module>)\\n\",\n      \"      127    0.000    0.000    0.000    0.000 {len}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {math.acos}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {math.sqrt}\\n\",\n      \"      148    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {method 'extend' of 'list' objects}\\n\",\n      \"      155    0.000    0.000    0.000    0.000 {method 'isalnum' of 'str' objects}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}\\n\",\n      \"       26    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}\\n\",\n      \"       26    0.000    0.000    0.000    0.000 {method 'lower' of 'str' objects}\\n\",\n      \"        2    0.021    0.010    0.021    0.010 {method 'split' of 'str' objects}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {range}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"document_distance(document1, document2)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture2/binary_search.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 75,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"from scipy.spatial.distance import cosine as cosine_similarity\\n\",\n    \"import random\\n\",\n    \"import cProfile\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Binary search simulation\\n\",\n    \"\\n\",\n    \"To understand the kind of problems that computers need to deal with on daily bases I prepared a little simulation.\\n\",\n    \"\\n\",\n    \"You are given a hand of 20 sorted cards and your task is to find a particular card. Have fun!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 76,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generated_ordered_cards():\\n\",\n    \"    cards = []\\n\",\n    \"    cards.extend(unichr(x) for x in range(127185, 127185 + 14))\\n\",\n    \"    cards.extend(unichr(x) for x in range(127169, 127169 + 14))\\n\",\n    \"    cards.extend(unichr(x) for x in range(127153, 127153 + 14))    \\n\",\n    \"    cards.extend(unichr(x) for x in range(127137, 127137 + 14))\\n\",\n    \"    return cards\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 77,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"DOMAIN = generated_ordered_cards()\\n\",\n    \"NUM_SAMPLES = 20\\n\",\n    \"\\n\",\n    \"class Problem(object):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        self.elements = set()\\n\",\n    \"        while len(self.elements) < NUM_SAMPLES:\\n\",\n    \"            self.elements.add(random.choice(DOMAIN))\\n\",\n    \"        self.elements = sorted(list(self.elements), key=lambda x: DOMAIN.index(x))\\n\",\n    \"        self.hide_all()\\n\",\n    \"        self.query = random.choice(self.elements)\\n\",\n    \"    \\n\",\n    \"    def ask(self, position):\\n\",\n    \"        assert 0 <= position < NUM_SAMPLES\\n\",\n    \"        self.visible[position] = True\\n\",\n    \"        return self\\n\",\n    \"    \\n\",\n    \"    def hide_all(self):\\n\",\n    \"        self.visible = [False for _ in range(NUM_SAMPLES)]\\n\",\n    \"        \\n\",\n    \"    def _repr_html_(self):\\n\",\n    \"        els_html = []\\n\",\n    \"        for el_idx in range(len(self.elements)):\\n\",\n    \"            if self.visible[el_idx]:\\n\",\n    \"                els_html.append(\\\"<td style='text-align:center'><font size='5'><b>%s</b></font></td>\\\" % (self.elements[el_idx]))\\n\",\n    \"            else:\\n\",\n    \"                els_html.append(\\\"<td style='text-align:center;background:lightskyblue'<small><font color='grey'>%d</font></small></td>\\\" % (el_idx,))\\n\",\n    \"        header_html = u\\\"<center><h1>Find %s! (♣ < ♦ < ♥ < ♠)</h1></center><br />\\\" % (self.query,)\\n\",\n    \"        table_html  = \\\"<table width='100%%' height='50px' style='table-layout: fixed'><tr>%s</tr></table>\\\" % (\\\"\\\".join(els_html))\\n\",\n    \"        return header_html + table_html\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 81,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<center><h1>Find 🂷! (♣ < ♦ < ♥ < ♠)</h1></center><br /><table width='100%' height='50px' style='table-layout: fixed'><tr><td style='text-align:center;background:lightskyblue'<small><font color='grey'>0</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>1</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>2</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>3</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>4</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>5</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>6</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>7</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>8</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>9</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>10</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>11</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>12</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>13</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>14</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>15</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>16</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>17</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>18</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>19</font></small></td></tr></table>\"\n      ],\n      \"text/plain\": [\n       \"<__main__.Problem at 0x7ff69c3e8090>\"\n      ]\n     },\n     \"execution_count\": 81,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"p = Problem()\\n\",\n    \"p\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 86,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<center><h1>Find 🂷! (♣ < ♦ < ♥ < ♠)</h1></center><br /><table width='100%' height='50px' style='table-layout: fixed'><tr><td style='text-align:center;background:lightskyblue'<small><font color='grey'>0</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>1</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>2</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>3</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>4</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>5</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>6</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>7</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>8</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>9</font></small></td><td style='text-align:center'><font size='5'><b>🃈</b></font></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>11</font></small></td><td style='text-align:center'><font size='5'><b>🂱</b></font></td><td style='text-align:center'><font size='5'><b>🂶</b></font></td><td style='text-align:center'><font size='5'><b>🂷</b></font></td><td style='text-align:center'><font size='5'><b>🂦</b></font></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>16</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>17</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>18</font></small></td><td style='text-align:center;background:lightskyblue'<small><font color='grey'>19</font></small></td></tr></table>\"\n      ],\n      \"text/plain\": [\n       \"<__main__.Problem at 0x7ff69c3e8090>\"\n      ]\n     },\n     \"execution_count\": 86,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"p.ask(14)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Binary search implemetation - GLOVE vectors\\n\",\n    \"\\n\",\n    \"Glove vectors try to assign vectors of numbers to words in surprising ways. One interesting property they have is\\n\",\n    \"ability to solve many analogies. For example:\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"V_{\\\\text{berlin}} - V_{\\\\text{germany}} \\\\approx V_{\\\\text{paris}} - V_{\\\\text{france}}\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"Today we will try to write an algorithm that can quickly find vectors from Glove database\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 92,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Glove(object):\\n\",\n    \"    def __init__(self, path):\\n\",\n    \"        self.word_vector = []\\n\",\n    \"        \\n\",\n    \"        with open(path) as f:\\n\",\n    \"            for line in f:\\n\",\n    \"                if len(line) < 1:\\n\",\n    \"                    break\\n\",\n    \"                line = line.split(' ')\\n\",\n    \"                word, vector = line[0], np.array([float(x) for x in line[1:]])\\n\",\n    \"                self.word_vector.append((word, vector))\\n\",\n    \"        self.word_vector.sort()\\n\",\n    \"        \\n\",\n    \"    def __call__(self, key):\\n\",\n    \"        return self.find_vector(key)\\n\",\n    \"        \\n\",\n    \"    def find_vector(self, key):\\n\",\n    \"        for word,vector in self.word_vector:\\n\",\n    \"            if word == key:\\n\",\n    \"                return vector\\n\",\n    \"        raise KeyError(key)\\n\",\n    \"        \\n\",\n    \"    def find_closest_word(self, key_vector,blacklist=[]):\\n\",\n    \"        best_similarity = float('inf')\\n\",\n    \"        best_word = None\\n\",\n    \"        for word, vector in self.word_vector:\\n\",\n    \"            if word in blacklist:\\n\",\n    \"                continue\\n\",\n    \"            similarity = cosine_similarity(vector, key_vector)\\n\",\n    \"            if best_similarity > similarity:\\n\",\n    \"                best_similarity = similarity\\n\",\n    \"                best_word = word\\n\",\n    \"        return best_word\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 93,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Download from http://nlp.stanford.edu/projects/glove/\\n\",\n    \"glove = Glove(\\\"/home/sidor/projects/Dali/data/glove/glove.6B.300d.txt\\\")\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 52,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# this call is quite slow...\\n\",\n    \"def analogy(thisword, tothis, islikethis):\\n\",\n    \"    key_vector = glove(tothis) - glove(thisword) + glove(islikethis)\\n\",\n    \"    best_word = glove.find_closest_word(key_vector, blacklist=[thisword, tothis,islikethis])\\n\",\n    \"    print(\\\"%s is to %s like %s to <%s>\\\" % (thisword, tothis, islikethis, best_word,))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 88,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"germany is to berlin like france to <paris>\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"analogy(\\\"germany\\\", \\\"berlin\\\", \\\"france\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"movie is to movies like school to <films>\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"analogy(\\\"movie\\\", \\\"movies\\\", \\\"school\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 57,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"movie is to actor like school to <teacher>\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"analogy(\\\"movie\\\", \\\"actor\\\", \\\"school\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 55,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"smaller is to small like bigger to <big>\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"analogy(\\\"smaller\\\", \\\"small\\\", \\\"bigger\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 56,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"smaller is to small like big to <huge>\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"analogy(\\\"smaller\\\", \\\"small\\\", \\\"big\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 60,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"one is to two like two to <three>\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"analogy(\\\"one\\\", \\\"two\\\", \\\"two\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 59,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"king is to queen like man to <woman>\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"analogy(\\\"king\\\", \\\"queen\\\", \\\"man\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Finding a vector given a word\\n\",\n    \"Notice that implementation of find_word above is quite naive:\\n\",\n    \"    \\n\",\n    \"```python\\n\",\n    \"    def find_vector(self, key):\\n\",\n    \"        for word,vector in self.word_vector:\\n\",\n    \"            if word == key:\\n\",\n    \"                return vector\\n\",\n    \"        raise KeyError(key)\\n\",\n    \"```\\n\",\n    \"\\n\",\n    \"Every query to look up a word takes about 100ms. This is not very good if we want to run millions of such queries per second!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 94,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         4 function calls in 0.135 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.000    0.000    0.135    0.135 <ipython-input-92-dbe6e5a0c3c4>:14(__call__)\\n\",\n      \"        1    0.135    0.135    0.135    0.135 <ipython-input-92-dbe6e5a0c3c4>:17(find_vector)\\n\",\n      \"        1    0.000    0.000    0.135    0.135 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run('glove(\\\"zebra\\\")')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Implementation using binary search\\n\",\n    \"\\n\",\n    \"Here we perform binary search algorithm. List of words `glove.word_vectors` is sorted alphabetically. Now we wish to find index `i`, such that `glove.word_vectors[i][0] == key` for some `key` word.\\n\",\n    \"\\n\",\n    \"Let $l$ be the lowest index in our array (zero) and $h$ be the highest index in our array (in this case 400000 - 1). To find and index on which a particular word is stored we find the middle $m = (h + l) / 2$. If key at index $m$ (denoted $k_m$) is less than desired key $k^*$ we know that $k^*$ is on some index in range $(m, h)$ otherwise it is in range $(l, m-1)$. This idea can be recursively applied to all the subranges. Notice that with each query range size is halved, so the complexity of the solution is $O(\\\\log{(h - l)})$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 95,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def find_vector(self, key, lo=None, hi=None, debug=False):\\n\",\n    \"    # Make sure by default we search over entire table\\n\",\n    \"    if lo is None:\\n\",\n    \"        lo = 0\\n\",\n    \"    if hi is None:\\n\",\n    \"        hi = len(self.word_vector) - 1\\n\",\n    \"    \\n\",\n    \"    if lo > hi:\\n\",\n    \"        raise KeyError(key)\\n\",\n    \"    \\n\",\n    \"    mid = (hi + lo) / 2\\n\",\n    \"    word, vector = self.word_vector[mid]\\n\",\n    \"    if debug:\\n\",\n    \"        print(\\\"Looking for %s in range(%d, %d). Middle is %s\\\" % (key, lo, hi, word))\\n\",\n    \"\\n\",\n    \"    if word == key:\\n\",\n    \"        return vector\\n\",\n    \"    elif key < word:\\n\",\n    \"        return self.find_vector(key, lo, mid - 1, debug=debug)\\n\",\n    \"    else: # key > word\\n\",\n    \"        return self.find_vector(key, mid + 1, hi, debug=debug)\\n\",\n    \"    \\n\",\n    \"Glove.find_vector = find_vector\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 96,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Looking for zebra in range(0, 399999). Middle is jurnal\\n\",\n      \"Looking for zebra in range(200000, 399999). Middle is ramdass\\n\",\n      \"Looking for zebra in range(300000, 399999). Middle is syme\\n\",\n      \"Looking for zebra in range(350000, 399999). Middle is vadims\\n\",\n      \"Looking for zebra in range(375000, 399999). Middle is wilbarger\\n\",\n      \"Looking for zebra in range(387500, 399999). Middle is yevtushenko\\n\",\n      \"Looking for zebra in range(393750, 399999). Middle is zeughaus\\n\",\n      \"Looking for zebra in range(393750, 396873). Middle is zaa\\n\",\n      \"Looking for zebra in range(395312, 396873). Middle is zaremba\\n\",\n      \"Looking for zebra in range(396093, 396873). Middle is zehava\\n\",\n      \"Looking for zebra in range(396093, 396482). Middle is zayu\\n\",\n      \"Looking for zebra in range(396288, 396482). Middle is zeami\\n\",\n      \"Looking for zebra in range(396386, 396482). Middle is zeder\\n\",\n      \"Looking for zebra in range(396386, 396433). Middle is zebu\\n\",\n      \"Looking for zebra in range(396386, 396408). Middle is zebic\\n\",\n      \"Looking for zebra in range(396398, 396408). Middle is zebras\\n\",\n      \"Looking for zebra in range(396398, 396402). Middle is zebra\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"vec = glove.find_vector(\\\"zebra\\\", debug=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 72,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Looking for ronrivest in range(0, 399999). Middle is jurnal\\n\",\n      \"Looking for ronrivest in range(200000, 399999). Middle is ramdass\\n\",\n      \"Looking for ronrivest in range(300000, 399999). Middle is syme\\n\",\n      \"Looking for ronrivest in range(300000, 349998). Middle is sensationalism\\n\",\n      \"Looking for ronrivest in range(300000, 324998). Middle is rs6\\n\",\n      \"Looking for ronrivest in range(300000, 312498). Middle is rescue\\n\",\n      \"Looking for ronrivest in range(306250, 312498). Middle is riveras\\n\",\n      \"Looking for ronrivest in range(309375, 312498). Middle is romero\\n\",\n      \"Looking for ronrivest in range(310937, 312498). Middle is rostekhnadzor\\n\",\n      \"Looking for ronrivest in range(310937, 311716). Middle is rosaleda\\n\",\n      \"Looking for ronrivest in range(310937, 311325). Middle is ronstadt\\n\",\n      \"Looking for ronrivest in range(310937, 311130). Middle is ronayne\\n\",\n      \"Looking for ronrivest in range(311034, 311130). Middle is rongbuk\\n\",\n      \"Looking for ronrivest in range(311083, 311130). Middle is ronin\\n\",\n      \"Looking for ronrivest in range(311107, 311130). Middle is ronni\\n\",\n      \"Looking for ronrivest in range(311119, 311130). Middle is rono\\n\",\n      \"Looking for ronrivest in range(311125, 311130). Middle is ronsard\\n\",\n      \"Looking for ronrivest in range(311125, 311126). Middle is ronon\\n\",\n      \"Looking for ronrivest in range(311126, 311126). Middle is ronquillo\\n\",\n      \"Not found!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"try:\\n\",\n    \"    vec = glove.find_vector(\\\"ronrivest\\\", debug=True)\\n\",\n    \"except KeyError:\\n\",\n    \"    print(\\\"Not found!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 97,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         21 function calls (5 primitive calls) in 0.000 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 <ipython-input-92-dbe6e5a0c3c4>:14(__call__)\\n\",\n      \"     17/1    0.000    0.000    0.000    0.000 <ipython-input-95-eec181511d7b>:1(find_vector)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {len}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run('glove(\\\"zebra\\\")')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"source\": [\n    \"### Extra problems (not graded)\\n\",\n    \"1. Here's another way of thinking about binary search - we are looking for higest $x$ such that property $p(x)$ is true. For example if we are looking for index of a key in array $p(x) = k_x \\\\leq k^*$. Can you give examples of other properties that we can binary search over? What makes a property suitable for use in binary search?\\n\",\n    \"\\n\",\n    \"2. Binary search can **not** be used to minimize a quadratic function. Can you find a similar algorithm that can?\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Hint to problem 2\\n\",\n    \"cyph = lambda x: chr((ord(x) + 64) % 128)\\n\",\n    \"''.join(map(cyph, \\\"\\\\t.34%!$`/&`30,)44).'`2!.'%`).`47/`0)%#%3l`#/.3)$%2`30,)44).'`)4`).`4(2%%`0)%#%3n\\\"))\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture4/Heaps.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class MaxHeap(object):\\n\",\n    \"    def __init__(self, max_size=128):\\n\",\n    \"        self.storage = [None for _ in range(max_size)]\\n\",\n    \"        self.heap_size = 0\\n\",\n    \"    \\n\",\n    \"    def display(self, width=80):\\n\",\n    \"        next_element = 0\\n\",\n    \"        for i in range(0, 1000):\\n\",\n    \"            level_elts = 2**i\\n\",\n    \"            elts = self.storage[next_element:min(next_element + level_elts, self.heap_size)]\\n\",\n    \"            next_element = min(next_element + level_elts, self.heap_size)\\n\",\n    \"            if len(elts) == 0:\\n\",\n    \"                break\\n\",\n    \"            positions = [ (i+1) * width / (level_elts + 1) for i in range(level_elts)]\\n\",\n    \"            output = \\\"\\\"\\n\",\n    \"            for j, (elt, pos) in enumerate(zip(elts, positions)):\\n\",\n    \"                idx = 2**i + j - 1\\n\",\n    \"                while len(output) <= pos:\\n\",\n    \"                    output += \\\" \\\"\\n\",\n    \"                output += \\\"%d[@%d]\\\" % (elt,idx)\\n\",\n    \"            print(output)\\n\",\n    \"            print()\\n\",\n    \"    \\n\",\n    \"    def fix_down(self, index):\\n\",\n    \"        while index < self.heap_size:\\n\",\n    \"            # pick maximum child\\n\",\n    \"            max_child_idx = None\\n\",\n    \"            if  2 * index + 1 < self.heap_size:\\n\",\n    \"                max_child_idx = 2 * index + 1\\n\",\n    \"\\n\",\n    \"            if 2 * index + 2 < self.heap_size and \\\\\\n\",\n    \"                    self.storage[2 * index + 1] < self.storage[2 * index + 2]:\\n\",\n    \"                max_child_idx = 2 * index + 2\\n\",\n    \"\\n\",\n    \"            if max_child_idx is None or \\\\\\n\",\n    \"                    self.storage[index] > self.storage[max_child_idx]:\\n\",\n    \"                # heap property satisfied\\n\",\n    \"                break\\n\",\n    \"            \\n\",\n    \"            self.storage[index], self.storage[max_child_idx] = self.storage[max_child_idx], self.storage[index]\\n\",\n    \"            index = max_child_idx\\n\",\n    \"            \\n\",\n    \"    def fix_up(self, index):\\n\",\n    \"        assert index < self.heap_size\\n\",\n    \"        while index > 0:\\n\",\n    \"            parent_idx = (index - 1) // 2\\n\",\n    \"            if self.storage[index] >= self.storage[parent_idx]:\\n\",\n    \"                self.storage[index],  self.storage[parent_idx] =  self.storage[parent_idx], self.storage[index]\\n\",\n    \"                index = parent_idx\\n\",\n    \"            else:\\n\",\n    \"                break\\n\",\n    \"    \\n\",\n    \"    def insert(self, element):\\n\",\n    \"        self.heap_size += 1\\n\",\n    \"        new_index = self.heap_size - 1\\n\",\n    \"        self.storage[new_index] = element\\n\",\n    \"        self.fix_up(new_index)\\n\",\n    \"\\n\",\n    \"    def extract_max(self):\\n\",\n    \"        self.storage[0], self.storage[self.heap_size - 1] = self.storage[self.heap_size -1], self.storage[0]\\n\",\n    \"        self.heap_size -= 1\\n\",\n    \"        self.fix_down(0)\\n\",\n    \"        return self.storage[self.heap_size]\\n\",\n    \"        \\n\",\n    \"    def heapify(self):\\n\",\n    \"        for i in range(self.heap_size - 1, -1, -1):\\n\",\n    \"            self.fix_down(i)\\n\",\n    \"    \\n\",\n    \"    @staticmethod\\n\",\n    \"    def wrap_list(lst):\\n\",\n    \"        h = MaxHeap(0)\\n\",\n    \"        h.storage = lst\\n\",\n    \"        h.heap_size = len(lst)\\n\",\n    \"        return h\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                         3[@0]\\n\",\n      \"\\n\",\n      \"                           4[@1]                      5[@2]\\n\",\n      \"\\n\",\n      \"                 8[@3]           6[@4]           1[@5]           10[@6]\\n\",\n      \"\\n\",\n      \"         9[@7]    5[@8]\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"example = [3,4,5,8,6,1,10,9,5]\\n\",\n    \"h = MaxHeap.wrap_list(example)\\n\",\n    \"h.display()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                         3[@0]\\n\",\n      \"\\n\",\n      \"                           8[@1]                      5[@2]\\n\",\n      \"\\n\",\n      \"                 9[@3]           6[@4]           1[@5]           10[@6]\\n\",\n      \"\\n\",\n      \"         4[@7]    5[@8]\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"h.fix_down(1)\\n\",\n    \"h.display()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                         8[@0]\\n\",\n      \"\\n\",\n      \"                           3[@1]                      5[@2]\\n\",\n      \"\\n\",\n      \"                 9[@3]           6[@4]           1[@5]           10[@6]\\n\",\n      \"\\n\",\n      \"         4[@7]    5[@8]\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"h.fix_up(1)\\n\",\n    \"h.display()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                         10[@0]\\n\",\n      \"\\n\",\n      \"                           8[@1]                      2[@2]\\n\",\n      \"\\n\",\n      \"                 6[@3]           3[@4]           1[@5]           2[@6]\\n\",\n      \"\\n\",\n      \"         4[@7]    5[@8]\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"example = [3,10,2,6,8,1,2,4,5]\\n\",\n    \"h = MaxHeap.wrap_list(example)\\n\",\n    \"h.heapify()\\n\",\n    \"h.display()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"h = MaxHeap(128)\\n\",\n    \"h.display()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                         10[@0]\\n\",\n      \"\\n\",\n      \"                           5[@1]                      4[@2]\\n\",\n      \"\\n\",\n      \"                 1[@3]\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"h.insert(1)\\n\",\n    \"h.insert(4)\\n\",\n    \"h.insert(5)\\n\",\n    \"h.insert(10)\\n\",\n    \"h.display()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"10\\n\",\n      \"5\\n\",\n      \"4\\n\",\n      \"1\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"while h.heap_size > 0:\\n\",\n    \"    print(h.extract_max())\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def heap_sort(array):\\n\",\n    \"    as_heap = MaxHeap.wrap_list(array)\\n\",\n    \"    as_heap.heapify()\\n\",\n    \"    while as_heap.heap_size > 0:\\n\",\n    \"        as_heap.extract_max()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[1, 2, 2, 3, 4, 5, 6, 8, 10]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"example = [3,10,2,6,8,1,2,4,5]\\n\",\n    \"heap_sort(example)\\n\",\n    \"print(example)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.4.1\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture5/BST.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from collections import namedtuple\\n\",\n    \"from igraph import Graph, plot, layout\\n\",\n    \"%config InlineBackend.figure_format = 'png'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 433,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Node(object):\\n\",\n    \"    def __init__(self, key, payload=None):\\n\",\n    \"        # key of the three\\n\",\n    \"        self.key     = key\\n\",\n    \"        self.payload = payload\\n\",\n    \"        self.left    = None\\n\",\n    \"        self.right   = None\\n\",\n    \"        self.parent  = None\\n\",\n    \"        \\n\",\n    \"    def is_left_child(self):\\n\",\n    \"        return self.parent is not None and self.parent.left is self\\n\",\n    \"    \\n\",\n    \"    def is_right_child(self):\\n\",\n    \"        return self.parent is not None and self.parent.right is self\\n\",\n    \"\\n\",\n    \"    def __repr__(self):\\n\",\n    \"        return '<Node key=%d left=%s right=%s>' % (self.key, self.left, self.right)\\n\",\n    \"        \\n\",\n    \"def BST_find(where, key):\\n\",\n    \"    if where is None:\\n\",\n    \"        return None\\n\",\n    \"    elif where.key == key:\\n\",\n    \"        return where\\n\",\n    \"    elif key < where.key:\\n\",\n    \"        return BST_find(where.left, key)\\n\",\n    \"    elif key > where.key:\\n\",\n    \"        return BST_find(where.right, key)\\n\",\n    \"        \\n\",\n    \"def BST_insert(where, key, payload=None):\\n\",\n    \"    if where is None:\\n\",\n    \"        return Node(key, payload)\\n\",\n    \"    elif key <= where.key:\\n\",\n    \"        where.left = BST_insert(where.left, key, payload)\\n\",\n    \"        where.left.parent = where\\n\",\n    \"    elif key > where.key:\\n\",\n    \"        where.right = BST_insert(where.right, key, payload)\\n\",\n    \"        where.right.parent = where\\n\",\n    \"    return where\\n\",\n    \"\\n\",\n    \"def BST_minimum(root):\\n\",\n    \"    current_node = root\\n\",\n    \"    while current_node.left is not None:\\n\",\n    \"        current_node = current_node.left\\n\",\n    \"    return current_node\\n\",\n    \"\\n\",\n    \"def BST_draw(node, g):\\n\",\n    \"    if node is None:\\n\",\n    \"        return\\n\",\n    \"    \\n\",\n    \"    if node.left is not None:\\n\",\n    \"        BST_draw(node.left,  g)\\n\",\n    \"        left_id = str(id(node.left))\\n\",\n    \"        left_color = \\\"black\\\"\\n\",\n    \"    else:\\n\",\n    \"        g.add_vertex(shape=0,)\\n\",\n    \"        left_id = len(g.vs) - 1\\n\",\n    \"        left_color = \\\"#00000000\\\"\\n\",\n    \"    \\n\",\n    \"    if node.right is not None:\\n\",\n    \"        BST_draw(node.right, g)\\n\",\n    \"        right_id = str(id(node.right))\\n\",\n    \"        right_color = \\\"black\\\"\\n\",\n    \"    else:\\n\",\n    \"        g.add_vertex(shape=0,)\\n\",\n    \"        right_id = len(g.vs) - 1\\n\",\n    \"        right_color = \\\"#00000000\\\"\\n\",\n    \"\\n\",\n    \"    g.add_vertex(name=str(id(node)), label=str(node.key), shape=\\\"rectangle\\\", color=\\\"lightblue\\\")\\n\",\n    \"    if node.left is not None or node.right is not None:\\n\",\n    \"        g.add_edge(str(id(node)), left_id, color=left_color)\\n\",\n    \"        g.add_edge(str(id(node)), right_id, color=right_color)\\n\",\n    \"        \\n\",\n    \"def BST_succesor(node):\\n\",\n    \"    if node is None:\\n\",\n    \"        return None\\n\",\n    \"    elif node.right is not None:\\n\",\n    \"        return BST_minimum(node.right)\\n\",\n    \"    else:\\n\",\n    \"        current_node = node\\n\",\n    \"        while True:\\n\",\n    \"            if current_node.parent is None:\\n\",\n    \"                return None\\n\",\n    \"            if current_node.is_right_child():\\n\",\n    \"                current_node = current_node.parent\\n\",\n    \"            elif current_node.is_left_child():\\n\",\n    \"                return current_node.parent\\n\",\n    \"            \\n\",\n    \"class BST(object):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        self.root = None\\n\",\n    \"    \\n\",\n    \"    def empty(self):\\n\",\n    \"        return self.root is None\\n\",\n    \"    \\n\",\n    \"    def insert(self, key, payload=None):        \\n\",\n    \"        self.root = BST_insert(self.root, key, payload)\\n\",\n    \"    \\n\",\n    \"    def find(self, key):\\n\",\n    \"        return BST_find(self.root, key)\\n\",\n    \"    \\n\",\n    \"    def minimum(self):\\n\",\n    \"        return BST_minimum(self.root)\\n\",\n    \"    \\n\",\n    \"    def succesor(self, node):\\n\",\n    \"        return BST_succesor(node)\\n\",\n    \"    \\n\",\n    \"    def delete(self, delete_me):\\n\",\n    \"        replacement = None\\n\",\n    \"        if delete_me.right is not None:\\n\",\n    \"            replacement = delete_me.right\\n\",\n    \"            if delete_me.left is not None:\\n\",\n    \"                min_right = BST_minimum(replacement)\\n\",\n    \"                min_right.left = delete_me.left\\n\",\n    \"                delete_me.left.parent = min_right\\n\",\n    \"        elif delete_me.left is not None:\\n\",\n    \"            replacement = delete_me.left\\n\",\n    \"        \\n\",\n    \"        if delete_me.parent is None:\\n\",\n    \"            assert delete_me is self.root\\n\",\n    \"            self.root = replacement\\n\",\n    \"            if replacement is not None:\\n\",\n    \"                replacement.parent = None\\n\",\n    \"        else:\\n\",\n    \"            if replacement is not None:\\n\",\n    \"                replacement.parent = delete_me.parent\\n\",\n    \"            if delete_me.is_left_child():\\n\",\n    \"                delete_me.parent.left = replacement\\n\",\n    \"            elif delete_me.is_right_child():\\n\",\n    \"                delete_me.parent.right = replacement\\n\",\n    \"    \\n\",\n    \"    def draw(self):\\n\",\n    \"        g = Graph()\\n\",\n    \"        if self.root is not None:\\n\",\n    \"            BST_draw(self.root, g)\\n\",\n    \"            root_id = [i for i, node in enumerate(g.vs) if g.vs[i]['name'] == str(id(self.root))]\\n\",\n    \"            assert len(root_id) == 1\\n\",\n    \"            return plot(g, layout = Graph.layout_reingold_tilford(g, mode=\\\"in\\\", root=root_id), \\n\",\n    \"                        bbox=(300,300), vertex_size=30)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 424,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"x = BST()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 425,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\ngg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fd60ec9e590>\"\n      ]\n     },\n     \"execution_count\": 425,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"x.insert(3)\\n\",\n    \"x.insert(4)\\n\",\n    \"x.insert(1)\\n\",\n    \"x.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 387,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAIAAAD2HxkiAAAABmJLR0QA/wD/AP+gvaeTAAAMvUlE\\nQVR4nO3df2xV5R3H8aIwflzAQMedYtwy42IZYAyG6dTYBvVuEdxW2ESldyYOUtaWsIyNxWWQbnFO\\nV4H5o5QFBGmZ+GNcNqyGGdd1UQoFh8NShcyYGRM2wdbZra1yE9kfJfXh9hb13HPO9/k+z/v1FzTz\\neLLw2fdNIbsjTp06VQRAzjnSLwD4jhECwhghIGyk9AvAOidOnKivr4/o4clksqqqKqKHKzWCb8wg\\nR2dn57WlZanb7gj9yT3dXW8cbD/62quhP1k1LiHymFRcvLBmReiPfev1o+sPtof+WO34PSEgjBEC\\nwhghIIwRAsIYISCMEQLCGCEgjBECwhghIIwRAsL4a2sIqHN/27Pbthxu35P94IPi8y+4KjW3fEn1\\nuAkTpd9LHy4hAvrduntnz7lx3a6WppeOrHpke2/Pe79etlj6pVTiEiKge7bvGvxx8sKLFv3wp4uv\\nu1zwffRihCjUqQ8/7Hr737s2N1xReoP0u6jECFGQBSVTB35w4cWXmLcRnxy/J0RBdhw59uThN9c9\\n3fLZ86duvme19OuoxAhRqHNHjvr8l0qW3ffA/ud3S7+LSowQ4ciePDly1Cjpt1CJESKg+2rufO2l\\n9g/e73+/r/fo3//2mx9V33DLIumXUolvzCCgG7+zaPuDdf945eBnRo+54AtfvPGWijkLbpV+KZUY\\nIQKaVXr9rNLrpd/CBeQoIIwRAsIYISCMEQLCGCEgjBECwvgjCuTxblfXEw+vCf2xPd1doT/TAYwQ\\nuZLJ5PKa6sGfZjKZ0aNHz507N8CjstlsQ0NDKpUqKSkpKioqKh5/8zWzw3pPZ/DRaDibTCazcuXK\\nQ4cOJRKJYE9oaWlJp9MdHR2TJ08O992cwQgxrO7u7hkzZmzbtm3OnDmFPKeysrK/v7+xsTGsF3MM\\nI8SwKioqJkyY0NDQUOBzent7L7vssvvvv7+8vDyUF3MMvydEfplMZt++fYcOHSr8UYlEYuPGjel0\\nurS0lCgdikuIPMIKURNROhxGiDzCClETUTocchS5QgxRE1E6HC4hzhBFiJqI0qEYIc4QRYiaiNKh\\nyFF8JKIQNRGlQ3EJcVrUIWoiSk2MEKdFHaImotREjqKoKJYQNRGlJi4hYg1RE1E6gBEi1hA1EaUD\\nyFHfxRyiJqJ0AJfQa1IhaiJKGaHXpELURJSSo/4SDFETUcol9JQNIWryOUoZoadsCFGTz1FKjvrI\\nkhA1+RylXELv2BaiJj+jlBF6x7YQNfkZpeSoXywMUZOfUcol9IjNIWryLUoZoUdsDlGTb1FKjvrC\\n8hA1+RalXEIvdHd3z5w5s6mpyfIQNVVWVvb19TU1NUm/SOQYoRe0hKjJnyglR92nKERN/kQpl9Bx\\nGkPU5EOUMkLHaQxRkw9RSo66TGmImnyIUi6hs7SHqMntKGWEztIeoia3o5QcdZMDIWpyO0q5hA5y\\nKURNrkYpI3SQSyFqcjVKyVHXOBaiJlejlEvoFFdD1ORelDJCp7gaoib3opQcdYfDIWpyL0q5hI7w\\nIURNLkUpI3SEDyFqcilKyVEXeBKiJpeilEuonm8hanIjShmher6FqMmNKCVHdfMwRE1uRCmXUDGf\\nQ9SkPUoZoWI+h6hJe5SSo1p5HqIm7VHKJVSJEB1Kb5QyQpUI0aH0Rik5qg8hmpfeKOUSKkOInt3S\\npUt7e3t1RSkjVIYQPTuNUUqOakKIfiyNUcolVIMQ/eR0RSkjVIMQ/eR0RSk5qgMh+qnoilIuoQKE\\naDBaopQRKkCIBqMlSslR2xGigWmJUi6h1QjRwtkfpYzQaoRo4eyPUnLUXoRoKOyPUi6hpQjRcNkc\\npYzQUoRouGyOUnLURoRo6GyOUi6hdQjR6NgZpYzQOoRodOyMUnLULoRopOyMUi6hRQjReNgWpYzQ\\nIoRoPGyLUnLUFoRobGyLUi6hFQjR+NkTpYzQCoRo/OyJUnJUHiEqwp4o5RIKI0Rl2RCljFBYRUXF\\n+PHjN2zYIP0inrIhSslRSYSoOBuilEsohhC1h2yUMkIxhKg9ZKOUHJVBiFpFNkq5hAIIUTtJRSkj\\nFECI2kkqSsnRuBGi1pKKUi5hrAhR+8UfpYwwVoSo/eKPUnI0PoSoCvFHKZcwJoSoLnFGKSOMSTqd\\nTiQShKgWcUYpORqHTCazd+9eQlSROKOUSxg5QlSveKKUEUaOENUrniglR6NFiKoWT5RyCSNEiLoh\\n6ihlhLnWr19//PjxUB61c+fOUaNGzZs3b/Ar1dXVU6ZMCeXhiFRra2tra+vAj7PZbENDQyqVKikp\\nCeXhZWVlZWVlgz9lhLkunfbli2ddOXFycehPfm771hf/2jp9+vTQn4zQ1dbW/v7Z56ZfeXXoT+5s\\nb/v2Tana2trBr/B7wjy+fvsdF11yaeiPPfBcc+jPRHSmX3n1wpoVoT/2iSFfOSf0fweAT4URAsIY\\nISCMEQLCGCEgjBECwhghIIwRAsIYISCMEQLCGGFAHftevGvhzQtKpkq/CKxw7J9vLJ9XFuzXAyMM\\n6Kn6dRUr7pJ+C1ghe/LkAz+uqbp7TbB/nL/AHdAvmnZIvwJssfW+n3/1a/MuvfyKYP84lxAoyP7n\\nd7/91pvf/N73Az+BSwgE986/jj3+YF3t1qdGjBgR+CFcQiC4B1cuW7zqlxMnFfR/P8MlBILrPLB3\\nVXq++ZUFJVN3HDn2qR7CCIHgcvYWYIFF5CggjksY0OAfyw78IMD//gEDGGFArA5DBftVQY4Cwhgh\\nIIwRAsIYISCMEQLCGCEgjD+iyGP3Y1uj+ECYd7u6Qn8motPZ3jb0cyNCeey0m1LmVxhhruXLasL6\\naLTm5uZsNjv4Ia/TaqqTyWQoT0bUzI8uC9e0m1I5D+ej0SI08GHLdXV18+fP//j/NHzFCKPV0tKS\\nTqc7Ojqi+7BlaMcIIxf1hy1DO747Grk1a9a0tbVlMhnpF4GluIRxIEpxFowwJkQphkOOxoQoxXC4\\nhPEhSpEXI4wVUYqhyNFYEaUYiksYN6IUORihAKIUJnJUAFEKE5dQBlGKQYxQDFGKAeSoGKIUA7iE\\nkohSFDFCcUQpyFFhRCm4hPKIUs8xQisQpT4jR61AlPqMS2gLotRbjNAiRKmfyFGLEKV+4hLahSj1\\nECO0DlHqG3LUOgNRunPnTukXQUy4hDYiSr3CCC1FlPqDHLUUUeoPLqG9iFJPMEKrEaU+IEetRpT6\\ngEtoO6LUeYxQAaLUbeSoAkSp27iEOhClDmOEahClriJH1SBKXcUl1IQodRIjVIYodQ85qgxR6h4u\\noT5EqWMYoUpEqUvIUZWIUpdwCbUiSp3BCBUjSt1AjipGlLqBS6gbUeoARqgeUaodOaoeUaodl9AF\\nRKlqjNARRKle5KgjiFK9uITuIEqVYoROIUo1IkedQpRqxCV0DVGqDiN0EFGqCznqIKJUFy6hm4hS\\nRRihs4hSLchRZxGlWnAJXUaUqsAIHUeU2o8cdRxRaj8uofuIUssxQi8QpTYjR71AlNqMS+gLotRa\\njNAjRKmdyFGPEKV24hL6hSi1ECP0DlFqG3LUO0SpbbiEPiJKrcIIPUWU2oMc9RRRag8uob+IUksw\\nQq9VVlb29fURpbLIUa+tXbuWKBXHJfQdUSqOEYIoFUaOgigVxiVEURFRKooR4jSiVAo5itOIUilc\\nQnyEKBXBCHEGojR+5CjOQJTGj0uIXERpzBgh8qisrOzv729sbJR+ES+Qo8hj7dq1e/bsIUrjwSVE\\nfkRpbBghhkWUxoMcxbCI0nhwCXE2RGkMGCFynThxor6+fvCnzc3N2Wy2vLw8lIcnk8mqqqpQHuUM\\nRohcnZ2d15aWpW67I/Qn93R3vXGw/ehrr4b+ZNVGSr8AbDSpuHhhzYrQH/vW60fXH2wP/bHa8Y0Z\\nQBgjBIQxQkAYIwSEMUJAGCMEhDFCQBgjBIQxQkAYIwSE8dfWENDLL/zlj480HHn5wHmTi69Kzb39\\nBz8ZPXac9EupxCVEQE9v+e037lz66N7D9z75zH/eOb7p7p9Jv5FWjBABrd78+Kzr5owZl5g05XNL\\nVv9q//O7pd9IK0aIEPR0dyUmnif9FloxQoTg8Yfqrl9wq/RbaMUIUajmrRv/995731pSLf0iWvHd\\nURRk15YN+//8p1WbHjv3XH4tBcR/cQiu9Q9P7d39zOrN20ePGSv9LooxQgT0StsLux97dNWm7WMT\\n46XfRTdGiIDqli/p+2/Pd79SMviVxv1HEhMnCr6SUowQATUdOCL9Co7gu6OAMEYICGOEgDBGCAhj\\nhIAwRggI448okMe7XV1PPLwm9Mf2dHeF/kwHMELkSiaTy2ui+dvYxeNvvmZ2JE/WjI9GA4Txe0JA\\nGCMEhDFCQNj/ARpKYmpKGmK8AAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fd60ec27890>\"\n      ]\n     },\n     \"execution_count\": 387,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"x.insert(2)\\n\",\n    \"x.draw()\\n\",\n    \"x.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 388,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<Node key=3 left=<Node key=1 left=None right=<Node key=2 left=None right=None>> right=<Node key=4 left=None right=None>>\"\n      ]\n     },\n     \"execution_count\": 388,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"x.succesor(x.find(2))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 380,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<Node key=2 left=None right=None>\"\n      ]\n     },\n     \"execution_count\": 380,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"x.succesor(x.find(1))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 358,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\nfYsAAAAASUVORK5CYII=\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fd60ee02510>\"\n      ]\n     },\n     \"execution_count\": 358,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"x.insert(0)\\n\",\n    \"x.draw()\\n\",\n    \"x.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 359,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n/wG2NZ0/YdI8MQAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fd60ee02c90>\"\n      ]\n     },\n     \"execution_count\": 359,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"x.insert(2)\\n\",\n    \"x.insert(2)\\n\",\n    \"x.insert(2)\\n\",\n    \"x.draw()\\n\",\n    \"x.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 361,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\nAAAASUVORK5CYII=\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fd60ec5da10>\"\n      ]\n     },\n     \"execution_count\": 361,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"x.delete(x.find(1))\\n\",\n    \"x.draw()\\n\",\n    \"x.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 362,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAIAAAD2HxkiAAAABmJLR0QA/wD/AP+gvaeTAAAOEklE\\nQVR4nO3df0zU9x3H8XO045fCkN5Zz7TNmnb+IMs6FLS2kV+TNmjVhqz+6KJRYDNyBDOXuCxClwWr\\nLWlYZz018lMn568mguKQnnrU7tjdWSTGs+gak9lkWYETQUt/GdwfNlRPNNuXL9/398v3+fhLiHn7\\nVnnlw72+p59xt2/ftgCQ8wPpBQCzI4SAMEIICHtEegFgGE6ns6ura5SGFxYWWq3WURquwDiKGejQ\\n1Okznk6eHTcxUfXJLa66j1o9SUlJqk9WjJMQOvXyilVPPDNV9bGBlmOqzxwhXhMCwgghIIwQAsII\\nISCMEALCCCEgjBACwgghIIwQAsIIISCMt63BqIJ+7/G/1lzw/f3br79OfHzynOwFrxYUxkyIk97r\\n/8ZJCKPaV7E1JXN+ReOpvWc7S6pcX/T3vV2UL72UEpyEMKo3XY1DP7ZNeeL13/4hf95zgvsoRghh\\neLcHB0Of/6exesfMtF9I76IEIYSx5U6z3/nBlKefuftsNBBeE8LY3u/898EL/6o4euqxx+3Vb5ZK\\nr6MEIYThRTzy6JPPTit6612/u1l6FyUIIcaIb7/55pFHH5XeQglCCKN6y7Hmk7O+r7/68quBLy51\\nfPzn3xX+4rXXpZdSgmIGRjX/l6+7/lL+z/PtP4yMmvzUj+e/9qvM3GXSSylBCGFUyWlZyWlZ0luo\\ngG9HAWGEEBBGCAFhhBAQRggBYYQQEMYjCuhUc33daFwI0xsKqT5zhAgh9Ki4yHH16tWqqqqMjIwZ\\nM2aoOHm6o9Bms6k4cOS4Gg16dOvWrZycnJSUlM2bN0vvMuoIIfSoqKiou7vb5XKNGzdOepdRx7ej\\n0B2n0+nz+VpbW82QQAsnIfTG7Xbn5+d7vV673S69i0YIIXTk8uXLmZmZDQ0NM2fOlN5FOzwnhF70\\n9vYuXry4oqLCVAm0cBJCJ+7UoampqWVlZdK7aI0QQhccDkdPT49J6tAwtKOQ53Q6/X6/eerQMJyE\\nEGbCOjQMIYQkc9ahYWhHIca0dWgYTkLIMHMdGoYQQoaZ69AwtKMQYPI6NAwnIbRGHRqGEEJT1KH3\\nox2FdqhDh8VJCI1Qhz4IIYRGqEMfhBAiXHd39/bt29WdGQgEOjo6Vq9ebbfb161bp+5woyOECBcM\\nBl9MS89evkr1yf3XQlfafZc+uaj6ZEPjOSGGkZCYuNSxQfWxn316ydnuU32s0dGOAsIIISCMEALC\\nCCEgjBACwgghIIwQAsIIISCMEALCCCEgjLetQaFzZ043VO3oPBeIn5g4J3vBivUbI6NjpJcyJE5C\\nKHS0ZteiNWtr2y5sPdh0vaersmyT9EZGRQihUGn1/uR5mVExsQnWSQWlW/zuZumNjIoQQgX910Kx\\ncfHSWxgVIYQK9m8rz8pdJr2FURFCjNSxut03+/qWFBRKL2JUtKMYkcaanf6TJ0oq6yMi+FpSiD84\\nKOc5cqituam02hUZFS29i4ERQih03numub62pNIVHTteehdjI4RQqLy4YOBG/8rUaUOf2ePvjI2L\\nE1zJoAghFNob6JReYYygHQWEEUJAGCEEhBFCQBghBIQRQkAYjygwjN5Q6MB776g+tv9aSPWZYwAh\\nRDibzVbsKLxy5UpjY2NeXt6ECRNUG504/pUXUlSbNlZwNRqGwc3yWuI1IcJxs7zGOAlxD26W1x4h\\nxD24WV57FDP4ntPp9Pv9ra2tJFBLnIT4jtvtzs/P93q9drtdehdzIYSwWKhDRdGOgjpUGCeh2VGH\\niiOEZkcdKo521NSoQ/WAk9C8qEN1ghCaFHWoftCOmhF1qK5wEpoOdajeEELToQ7VG9pRc6EO1SFO\\nQhOhDtUnQmgW1KG6RTtqCtShesZrQt3xeDwej0fFgYODg/v27ZsyZUowGLRarenp6SoOx8gRQt3x\\neDyHj7ckzZ6r4sxZOa9aLJbDx1ssFgsh1BtCqEdJs+cudWxQfewB1SdCDbwmBIQRQkAYIQSEEUJA\\nGCEEhBFCQBghBIQRQkAYIQSEEUJAGG9bM6pzZ043VO3oPBeIn5g4J3vBivUbI6NjpJeCEpyERnW0\\nZteiNWtr2y5sPdh0vaersmyT9EZQiBAaVWn1/uR5mVExsQnWSQWlW/zuZumNoBAhHAv6r4Vi4+Kl\\nt4BChHAs2L+tPCt3mfQWUIgQGt6xut03+/qWFBRKLwKFaEeNrbFmp//kiZLK+ogI/iqNir85A/Mc\\nOdTW3FRa7YqMipbeBcoRQqM67z3TXF9bUumKjh0vvQtGhBAaVXlxwcCN/pWp04Y+s8ffGRsXJ7gS\\nlCGERrU30Cm9AtRBOwoII4SAMEIICCOEgDBCCAgjhIAwHlHoUdDnHY17I4I+7/Sc7FEYjBEhhLpz\\n59ak48ePDwwM5Obmqniv9fScbK5k0iFCqDvp6ekXL160WCyBQCA6mjeFjn1cl607J0+ezMvL42Z5\\n8yCE+sLN8iZEO6oj3CxvTpyEenHr1q2cnJyUlJTNmzdL7wJNEUK9KCoq6u7udrlcKtahMATaUV1w\\nOp0+n6+1tZUEmhAnoTzqUJMjhMKoQ0E7Kok6FBZOQkHUobiDEIqhDsUdtKMyqEMxhJNQAHUo7kYI\\ntUYdijC0o5qiDsX9OAm1Qx2KYRFC7VCHYli0oxqhDsWDcBJqgToUD0EIwzmdzq6uLhUHhkKhurq6\\n5cuXT548ubCw0Gq1qjgcYwAhDDd1+oynk2fHTUxUfXKLq+6jVk9SUpLqk2FovCYcxssrVj3xzFTV\\nxwZajqk+E2MAzwkBYYQQEEYIAWGEEBBGCAFhhBAQRggBYYQQEEYIAWGEEBDG29aUOHfmdEPVjs5z\\ngfiJiXOyF6xYvzEyOkZ6KRgVJ6ESR2t2LVqztrbtwtaDTdd7uirLNklvBAMjhEqUVu9PnpcZFROb\\nYJ1UULrF726W3ggGRghHqv9aKDYuXnoLGBghHKn928qzcpdJbwEDI4Qjcqxu982+viUFhdKLwMBo\\nR5VrrNnpP3mipLI+IoI/RijHV49CniOH2pqbSqtdkVHR0rvA2AihEue9Z5rra0sqXdGx46V3geER\\nQiXKiwsGbvSvTJ029Jk9/s7YuDjBlWBchFCJvYFO6RUwdtCOAsIIISCMEALCCCEgjBACwgghIIxH\\nFMNorq8bjQthekMh1WdiDCCE4YqLHFevXq2qqsrIyJgxY4aKk6c7Cm02m4oDMTZwNVo4bpaHxghh\\nOG6Wh8b4dvQe3CwP7XESfs/tdufn53OzPDRGCL9z+fLlzMzMhoaGmTNnSu8Cc+E5ocVisfT29i5e\\nvLiiooIEQnuchN/VoampqWVlZdK7wIwIocXhcPT09FCHQorZ21Gn0+n3+6lDIcjUJyF1KPTAvCGk\\nDoVOmLQdpQ6FfpjxJKQOha6YMYTUodAV07Wj1KHQG3OdhNSh0CEThZA6FPpklnaUOhS6ZYqTkDoU\\nemaKEFKHQs/0FcLu7u7t27erOzMQCHR0dKxevdput69bt07d4cDI6SuEwWDwxbT07OWrVJ/cfy10\\npd136ZOLqk8GRkh3zwkTEhOXOjaoPvazTy85232qjwVGziztKKBbhBAQRggBYYQQEEYIAWGEEBBG\\nCAFhhBAQRggBYYQQEKa7t639L86dOd1QtaPzXCB+YuKc7AUr1m+MjI6RXgpQyJAn4dGaXYvWrK1t\\nu7D1YNP1nq7Ksk3SGwHKGTKEpdX7k+dlRsXEJlgnFZRu8bubpTcClDNkCO/Wfy0UGxcvvQWgnOFD\\nuH9beVbuMuktAOWMHcJjdbtv9vUtKSiUXgRQzpDt6B2NNTv9J0+UVNZHRBj4dwEY9cvXc+RQW3NT\\nabUrMipaehdgRAwZwvPeM831tSWVrujY8dK7ACNlyBCWFxcM3OhfmTpt6DN7/J2xcXGCKwGKGTKE\\newOd0isAqjF2OwqMAYQQEEYIAWGEEBBGCAFhhBAQprtHFL2h0IH33lF9bP+1kOozAVXoK4Q2m63Y\\nUXjlypXGxsa8vLwJEyaoNjpx/CsvpKg2DVCPvq5Gs3CzPMxHX68JuVkeJqSjk5Cb5WFOOgohN8vD\\nnPRSzDidTr/f39raSgJhNro4Cd1ud35+vtfrtdvt0rsAWpMPIXUoTE64HaUOBSRPQupQwCIbQupQ\\nwCLYjlKHAnfInITUocAQgRBShwJ307odpQ4Fwmh6ElKHAvfTNITUocD9tGtHqUOBYWl0ElKHAg+i\\nRQipQ4GHGPV2lDoUeLh7XhN6PB6Px6Pi9MHBwX379k2ZMiUYDFqt1vT0dBWHA2NDeAgPH29Jmj1X\\nxV9gVs6rFovl8PEWi8VCCIH7hbejSbPnLnVsUP2XOaD6RGCs0Nf/tgaYECEEhBFCQBghBIQRQkAY\\nIQSEEUJAGCEEhBFCQBghBIQpDOE/WpqKF6Qt/elTxQvSfB/8Td2dAFNR8i/rL3V8vOuNjUVb352W\\nnNLZHtj2++KJtknP/ixZ9eUAM1ByEh6r2527tjg5LStmQlxyWlbu2uJje3arvhlgEkpCeLnj7KyM\\n+UMfzsqY39l+Vr2VAHNREsLe7u4Eq23owwSr7XpPl3orAeZCOwoIUxLCBKu1t/v7o6+3u+tHj9ke\\n8vMBPISSEP7kuVlnT38w9OHZ0x9MS56l3kqAuSgJ4cKV+e/vfLf9w1Nf3rzR/uGp93e+u3Blgeqb\\nASah5Dnh1J/P+vUft9ZseePzz64+/uRTv/nT2zwkBBRT+N/gP//SwudfWqjuKoA50Y4CwgghIIwQ\\nAsIIISCMEALCCCEgLPwRRdDnHY17I4I+7/Sc7FEYDBjePSEcvVuTpudkcyUTMCyNrssG8CC8JgSE\\nEUJAGCEEhP0XEhLJal0Wu8MAAAAASUVORK5CYII=\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7fd60ee02ed0>\"\n      ]\n     },\n     \"execution_count\": 362,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"x.delete(x.find(4))\\n\",\n    \"x.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 382,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# def BST_check_parents(node):\\n\",\n    \"#     if node.left is not None:\\n\",\n    \"#         assert node.left.parent is node\\n\",\n    \"#         BST_check_parents(node.left)\\n\",\n    \"#     if node.right is not None:\\n\",\n    \"#         assert node.right.parent is node\\n\",\n    \"#         BST_check_parents(node.right)\\n\",\n    \"# BST_check_parents(x.root)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Facebook interview question\\n\",\n    \"\\n\",\n    \"Given a binary tree determine if it satisfies binary search invariant...\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Event Queue\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 438,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from threading import Thread\\n\",\n    \"import time\\n\",\n    \"import sys\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 440,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class EventQueue():\\n\",\n    \"    def __init__(self):\\n\",\n    \"        self.q = BST()\\n\",\n    \"    \\n\",\n    \"    def put(self, seconds_from_now, word):\\n\",\n    \"        self.q.insert(time.time() + seconds_from_now, word)\\n\",\n    \"    \\n\",\n    \"    def execute(self):\\n\",\n    \"        while not self.q.empty():\\n\",\n    \"            m = self.q.minimum()\\n\",\n    \"            scheduled_time = m.key\\n\",\n    \"            if scheduled_time >= time.time():\\n\",\n    \"                time.sleep(scheduled_time - time.time())\\n\",\n    \"            print(m.payload)\\n\",\n    \"            sys.stdout.flush()\\n\",\n    \"            self.q.delete(m)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 441,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"hi\\n\",\n      \"hey\\n\",\n      \"...\\n\",\n      \"are you there?\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"events = EventQueue()\\n\",\n    \"events.put(1,\\\"hi\\\")\\n\",\n    \"events.put(2,\\\"hey\\\")\\n\",\n    \"events.put(3, \\\"...\\\")\\n\",\n    \"events.put(5, \\\"are you there?\\\")\\n\",\n    \"events.execute()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture6/AVL_and_more.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from collections import namedtuple\\n\",\n    \"from igraph import Graph, plot, layout, Plot\\n\",\n    \"%config InlineBackend.figure_format = 'png'\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BST implementation\\n\",\n    \"\\n\",\n    \"Here's a simplified implementation of a Binary Search Tree. \\n\",\n    \"We will use it as a starting point for our AVL implementation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Node(object):\\n\",\n    \"    def __init__(self, key):\\n\",\n    \"        # node key - this is the value we compare to determine where \\n\",\n    \"        # the node should be inserted.\\n\",\n    \"        self.key     = key\\n\",\n    \"        # left child (can be none if no child)\\n\",\n    \"        self.left    = None\\n\",\n    \"        # right child (can be none if no child)\\n\",\n    \"        self.right   = None\\n\",\n    \"        \\n\",\n    \"def BST_insert(where, key):\\n\",\n    \"    \\\"\\\"\\\"Inserts a node in a binary tree\\\"\\\"\\\"\\n\",\n    \"    if where is None:\\n\",\n    \"        # if we found a branch pointing to none, it means we\\n\",\n    \"        # can insert the node here\\n\",\n    \"        return Node(key)\\n\",\n    \"    elif key <= where.key:\\n\",\n    \"        # try inserting the node somewhere in the left subtree\\n\",\n    \"        where.left = BST_insert(where.left, key)\\n\",\n    \"    elif key > where.key:\\n\",\n    \"        # try inserting the node in the right subtree\\n\",\n    \"        where.right = BST_insert(where.right, key)\\n\",\n    \"    return where\\n\",\n    \"\\n\",\n    \"def BST_draw(node, g, display_height=False):\\n\",\n    \"    \\\"\\\"\\\"This method allows us to draw a binary tree.\\n\",\n    \"    \\n\",\n    \"    Don't worry about the implementation.\\\"\\\"\\\"\\n\",\n    \"    if node is None:\\n\",\n    \"        return\\n\",\n    \"    \\n\",\n    \"    if node.left is not None:\\n\",\n    \"        BST_draw(node.left,  g, display_height)\\n\",\n    \"        left_id = str(id(node.left))\\n\",\n    \"        left_color = \\\"black\\\"\\n\",\n    \"    else:\\n\",\n    \"        g.add_vertex(shape=0,)\\n\",\n    \"        left_id = len(g.vs) - 1\\n\",\n    \"        left_color = \\\"#00000000\\\"\\n\",\n    \"    \\n\",\n    \"    if node.right is not None:\\n\",\n    \"        BST_draw(node.right, g, display_height)\\n\",\n    \"        right_id = str(id(node.right))\\n\",\n    \"        right_color = \\\"black\\\"\\n\",\n    \"    else:\\n\",\n    \"        g.add_vertex(shape=0,)\\n\",\n    \"        right_id = len(g.vs) - 1\\n\",\n    \"        right_color = \\\"#00000000\\\"\\n\",\n    \"\\n\",\n    \"    label = str(node.key)\\n\",\n    \"    if display_height:\\n\",\n    \"        label = label + ' (height: %d)' % (node.height,)\\n\",\n    \"        \\n\",\n    \"    g.add_vertex(name=str(id(node)), label=label, \\n\",\n    \"                 shape=\\\"rectangle\\\", color=\\\"lightblue\\\")\\n\",\n    \"    if node.left is not None or node.right is not None:\\n\",\n    \"        g.add_edge(str(id(node)), left_id, color=left_color)\\n\",\n    \"        g.add_edge(str(id(node)), right_id, color=right_color)\\n\",\n    \"        \\n\",\n    \"        \\n\",\n    \"def BST_root_draw(root, display_height=False, width=500, height=300, margin=50):\\n\",\n    \"        figure = Plot(bbox=(width, height))\\n\",\n    \"        \\n\",\n    \"        g = Graph()\\n\",\n    \"        if root is not None:\\n\",\n    \"            BST_draw(root, g, display_height)\\n\",\n    \"            root_id = [i for i, node in enumerate(g.vs) if g.vs[i]['name'] == str(id(root))]\\n\",\n    \"            assert len(root_id) == 1\\n\",\n    \"            figure.add(g, layout = Graph.layout_reingold_tilford(g, mode=\\\"in\\\", root=root_id), \\n\",\n    \"                        bbox=(margin, margin, width-margin, height - margin), vertex_size=30)\\n\",\n    \"            return figure\\n\",\n    \"            \\n\",\n    \"class BST(object):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        \\\"\\\"\\\"This is a BST wrapper class.\\n\",\n    \"        \\n\",\n    \"        Its main function is keeping track of the root and \\n\",\n    \"        initiating recursive calls.\\\"\\\"\\\"\\n\",\n    \"        self.root = None\\n\",\n    \"    \\n\",\n    \"    def insert(self, key):        \\n\",\n    \"        self.root = BST_insert(self.root, key)\\n\",\n    \"    \\n\",\n    \"    def draw(self, display_height=False, width=500, height=300, margin=50):\\n\",\n    \"        return BST_root_draw(self.root, display_height=display_height, width=width, height=height, margin=margin)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# What's wrong with Binary Search Trees?\\n\",\n    \"\\n\",\n    \"AVL trees extend the Binary Search Trees, to provide better complexity guarantes. Both datastructures can implement any of insertion, deletion, successor etc. in $O(h)$. The difference is the fact that in case of BST height can be $O(n)$, while AVL guarantees height $O(lg \\\\ n)$. Let's try to understand this with an example:\\n\",\n    \"\\n\",\n    \"Inserting sorted sequence into BST makes it unbalanced.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\nAAAAAADshP8HqltDklDbja4AAAAASUVORK5CYII=\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d805f910>\"\n      ]\n     },\n     \"execution_count\": 29,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = BST()\\n\",\n    \"for el in [1,2,3,4,5,6]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"What we would like to see is a tree that looks more like this:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23e845cc10>\"\n      ]\n     },\n     \"execution_count\": 5,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = BST()\\n\",\n    \"for el in [4,2,1,3,6,5]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# AVL trees\\n\",\n    \"\\n\",\n    \"We can see from above example that changing the order of insertions can result in balanced tree. However the point of BST (and most other datastructures) is to be able to update it online, as the updates arrive, without necessarily knowing the elements we are going to insert in the future. AVLs provide best of both worlds - they support online updates, and the updates always result in balanced trees. \\n\",\n    \"\\n\",\n    \"### AVL invariant\\n\",\n    \"\\n\",\n    \"Let $X$ be arbitrary node in AVL tree. Let $X_L$, $X_R$ be left and right children of $X$ respectively. Furthermore let $H_X$ be height of subtree rooted in $X$. AVL trees satisfy the following invariant:\\n\",\n    \"\\n\",\n    \"$$ \\\\left| H_{X_L} - H_{X_R} \\\\right| \\\\leq 1 $$\\n\",\n    \"\\n\",\n    \"It is satisfied before and after all the operations that we perform on an AVL tree. In this recitation we will implement AVL insertion that is capable of maintaining that invariant. Notice that BST by default does not satisfy this invariant (make sure you understand why).\\n\",\n    \"\\n\",\n    \"### AVL height\\n\",\n    \"\\n\",\n    \"First step on our journey to implement AVL trees is to keep track of tree height. To implement it we first need to make sure that we understand what $H_X$ actually means. Let's look at a definition:\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"H_X=\\n\",\n    \"\\\\begin{cases}\\n\",\n    \"-1                &\\\\text{ if } X = NIL \\\\\\\\\\n\",\n    \"max(H_L, H_R) + 1 &\\\\text{otherwise}\\n\",\n    \"\\\\end{cases}\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"Notice that this definition implies that heigh of a leaf is $0$. Alternative way to view this definition of height is the maximum number of edges we need to traverse to get from a node its some leaf (and $-1$ is a special case for convenience).\\n\",\n    \"\\n\",\n    \"One way to keep track of height is to calculate it every time in $O(h)$ complexity. This is a correct solution, but as we will soon find out, we will use the information about height too often to pay the extra $O(h)$ cost. Alternative solution is for every tree to store its height. Then all we need to do is to correct it every time the tree changes.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Node(object):\\n\",\n    \"    def __init__(self, key):\\n\",\n    \"        self.key     = key\\n\",\n    \"        self.left    = None\\n\",\n    \"        self.right   = None\\n\",\n    \"        # here it is!\\n\",\n    \"        self.height  = 0\\n\",\n    \"        \\n\",\n    \"    def recompute_height(self):\\n\",\n    \"        \\\"\\\"\\\"Updates the height variable.\\n\",\n    \"        \\n\",\n    \"        Should be run every time subtree changes.\\n\",\n    \"        Assumes children height values are correct.\\\"\\\"\\\"\\n\",\n    \"        # we assure left and right already has correct height computed.\\n\",\n    \"        # if they don't exists we assume height is -1\\n\",\n    \"        left_height  = self.left.height  if self.left  is not None else -1\\n\",\n    \"        right_height = self.right.height if self.right is not None else -1\\n\",\n    \"        # height computed using formula from above\\n\",\n    \"        self.height = max(left_height, right_height) + 1\\n\",\n    \"        \\n\",\n    \"    # This will be useful later!\\n\",\n    \"    def balance_factor(self):\\n\",\n    \"        \\\"\\\"\\\"Returns the difference in height of children subtrees:\\n\",\n    \"            H_L - H_R\\n\",\n    \"        \\n\",\n    \"        Absolute value of balance factor should be less than 1 after\\n\",\n    \"        each AVL operation.\\\"\\\"\\\"\\n\",\n    \"        left_height  = self.left.height  if self.left  is not None else -1\\n\",\n    \"        right_height = self.right.height if self.right is not None else -1\\n\",\n    \"        return left_height - right_height\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Keeping track of height in AVL insertion\\n\",\n    \"\\n\",\n    \"It's really not that hard! We just need to make sure that whenever tree height could have changed we recompute the height. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def BST_insert(where, key):\\n\",\n    \"    \\\"\\\"\\\"Inserts a node in a binary tree\\\"\\\"\\\"\\n\",\n    \"    if where is None:\\n\",\n    \"        # if we found a branch pointing to none, it means we\\n\",\n    \"        # can insert the node here\\n\",\n    \"        return Node(key)\\n\",\n    \"    elif key <= where.key:\\n\",\n    \"        # try inserting the node somewhere in the left subtree\\n\",\n    \"        where.left = BST_insert(where.left, key)\\n\",\n    \"    elif key > where.key:\\n\",\n    \"        # try inserting the node in the right subtree\\n\",\n    \"        where.right = BST_insert(where.right, key)\\n\",\n    \"    \\n\",\n    \"    where.recompute_height() # <---- THIS IS THE ONLY CHANGE\\n\",\n    \"    \\n\",\n    \"    return where\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Always good to run some examples to verify our implementation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807e910>\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = BST()\\n\",\n    \"for el in [7,5,4,6,3,10,11]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# AVL rotations\\n\",\n    \"\\n\",\n    \"The only weapon at disposal of the lone worrior of the AVL clan is rotation or to be more specific two rotations (the left rotation and the right rotation). \\n\",\n    \"\\n\",\n    \"Before we dive in the technical details of how to implement the AVL rotations let's first try to gain some intuition. In AVL we strive to keep the difference between heights of right and left subtrees of all nodes at most $1$. Insertion can increase this difference to $2$ in the worst case.\\n\",\n    \"\\n\",\n    \"For example imagine that we inserted an element into right subtree and now right subtree is 2 higher than left subtree. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n/w+ejKjdQr450QAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807e710>\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = BST()\\n\",\n    \"for el in [3,1,6,5,7,8]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Intuitively what we want to do is to *rotate the tree left* - steal one node from right (and replace root by it) and add one node to the left subtree (the former root). This will result in one decrase in right subtree height and one increase in left subtree height therefore balancing the tree (in reality it is not that simple, but it is good enough for now).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# HINT: when trying to understand this function read it from the bottom!\\n\",\n    \"\\n\",\n    \"def AVL_rotate_left(node):\\n\",\n    \"    \\\"\\\"\\\"Rotates the tree left and returns a new root.\\\"\\\"\\\"\\n\",\n    \"    assert node.right is not None, \\\\\\n\",\n    \"            \\\"Tree can only be rotated left if the right subtree is nonempty\\\"\\n\",\n    \"    old_right       = node.right\\n\",\n    \"    old_right_left  = node.right.left\\n\",\n    \"    \\n\",\n    \"    # instead of old right node, old root takes old rights left subtree\\n\",\n    \"    node.right     = old_right_left\\n\",\n    \"    # node's children changed - we need to recompute the height\\n\",\n    \"    node.recompute_height()\\n\",\n    \"    \\n\",\n    \"    # old root becomes left node of old right (which becomes new root) \\n\",\n    \"    old_right.left = node\\n\",\n    \"    # old_right's children changed - we need to recompute the height\\n\",\n    \"    old_right.recompute_height()\\n\",\n    \"    \\n\",\n    \"    return old_right\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\ngg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807ea90>\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree.root = AVL_rotate_left(tree.root)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Exercise: prove that AVL rotation preserves BST invariant\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### AVL right rotation\\n\",\n    \"\\n\",\n    \"It is analogous to left rotations (in fact it inverts the left rotation)...\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# HINT: when trying to understand this function read it from the bottom!\\n\",\n    \"\\n\",\n    \"def AVL_rotate_right(node):\\n\",\n    \"    \\\"\\\"\\\"Rotates the tree right and returns a new root.\\\"\\\"\\\"\\n\",\n    \"    assert node.left is not None, \\\\\\n\",\n    \"            \\\"Tree can only be rotated right if the left subtree is nonempty\\\"\\n\",\n    \"    old_left       = node.left\\n\",\n    \"    old_left_right  = node.left.right\\n\",\n    \"    \\n\",\n    \"    node.left     = old_left_right\\n\",\n    \"    node.recompute_height()\\n\",\n    \"    \\n\",\n    \"    old_left.right = node\\n\",\n    \"    old_left.recompute_height()\\n\",\n    \"    \\n\",\n    \"    return old_left\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n/w+ejKjdQr450QAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807e690>\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree.root = AVL_rotate_right(tree.root)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## AVL insertion prelude.\\n\",\n    \"\\n\",\n    \"Assume we just performed insertion which threw our tree off balance. We will operate under recursive assumption, that child trees are balanced and that only current node maybe be unbalanced (height of one child is height of second child + 2).\\n\",\n    \"\\n\",\n    \"Intuition dictates that there are two cases to consider (left child higher or right child higher), but actually as we will soon find out there are four cases. Let's see why. \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Case 1: Right-Right case \\n\",\n    \"\\n\",\n    \"First let's look at a simple tree where right subtree is higher.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n/w+ejKjdQr450QAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807e9d0>\"\n      ]\n     },\n     \"execution_count\": 17,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = BST()\\n\",\n    \"for el in [3,1,6,5,7,8]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"As we have already seen this can be fixed with a single left rotation.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\ngg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807ec10>\"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree.root = AVL_rotate_left(tree.root)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Case 2: Right-Left case \\n\",\n    \"Let's look at the following bizzare example:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\nKTStuZZ2CNJgD3AqTT/nqeH5jfUm+oiFJEkpSyXlhgDvx1heDVyc6EbPHDiIjT//Wdzl+/QfwLZN\\nG5rMq9m0MdFqAY4QPHEtUeuB0RHzRhPs8DR2MZBUwyRJak28gf4S8K8Evy3vRnDu/ClgXivrjEu0\\nQROn38Ozi+aybs0qag98wOH6On67/g0qbvla1PJjJk1hxZxZbKvewOH6OrZVb2DFnFmJVgvBzsnl\\nNP9OWrsorpLgQr8rgBPCrzOBxRHlxhF8J5IkpV28Q+6PA/cT/Lb6IMHNU24l+IlWS1YTnGPvD7wb\\nb4POK7uE8qoVrKpayLLZMwiFjtF/8BDGTb4tavkLR4xk/949VJZPZ/++vXTvfRqjb5zE0995KN4q\\nG9xD8Dn7Ehypx3vu/C2C72IR8Dng98AtQONhg7MJrnC/NtFGSZIUj0xf8HUfcAlwZRxlHxw/7a4H\\nJky7K+VKt//mHb434w6++8qvWi27smoBq6oWzAYeTLnilv0UeB2Ym8E6JEltWKbv5f4I8YV5SirL\\np/P+jhoOH6pnx+ZNLH2gnMvGTsx0tYm4EsNckpRBqVzlnjcGD7+URXdOYe/OP9H9tNO5/NobGH3j\\npFw3S5KkrCmKQB8xZjwjxozPdTMkScoZn4cuSVIRMNAlSSoCBrokSUUgr86hb9nwFitzUKckSYUu\\nnx48MiI85cK68CRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJUpb8\\nf78nj115qKtHAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807ea50>\"\n      ]\n     },\n     \"execution_count\": 19,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = BST()\\n\",\n    \"for el in [3,1,7,6,5,8]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"OBVIOUSLY* (as 6.006 progresses you will get more and more scared of this word) you can fix this with a left rotation.\\n\",\n    \"\\n\",\n    \"*Not\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n5QAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d805fed0>\"\n      ]\n     },\n     \"execution_count\": 20,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree.root = AVL_rotate_left(tree.root)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The tree is still unbalanced. What happened? \\n\",\n    \"\\n\",\n    \"Normally, for the *perfectly* blanced subtrees (balance factor of 0) left-rotation decreases hieght of right subtree by 1 and increases the height of the right subtree by 1.\\n\",\n    \"\\n\",\n    \"As an additional side-effect the right-left subtree (the one rooted in 6 in the example) moves from right to left subtree. If that subtree is deepest (as in our example) it results in additional decrease by 1 for the right subtree and 1 increase in the left subtree. In which case the total balance is $-2$ for right subtree and $+2$ for left subtree, which means our tree is unblanced again.\\n\",\n    \"\\n\",\n    \"Notice that this situation only happens if right-left (root 6 in example) subtree is higher than right-right subtree (root 8 in our example). Is there a way to cope with such a situation? \\n\",\n    \"You guessed it - we need to right-rotate the right subtree (then right-left subtree is not longer higher than right-right subtree and we land at the familiar Case 1: right right).\\n\",\n    \"\\n\",\n    \"Let's see this in action!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\nKTStuZZ2CNJgD3AqTT/nqeH5jfUm+oiFJEkpSyXlhgDvx1heDVyc6EbPHDiIjT//Wdzl+/QfwLZN\\nG5rMq9m0MdFqAY4QPHEtUeuB0RHzRhPs8DR2MZBUwyRJak28gf4S8K8Evy3vRnDu/ClgXivrjEu0\\nQROn38Ozi+aybs0qag98wOH6On67/g0qbvla1PJjJk1hxZxZbKvewOH6OrZVb2DFnFmJVgvBzsnl\\nNP9OWrsorpLgQr8rgBPCrzOBxRHlxhF8J5IkpV28Q+6PA/cT/Lb6IMHNU24l+IlWS1YTnGPvD7wb\\nb4POK7uE8qoVrKpayLLZMwiFjtF/8BDGTb4tavkLR4xk/949VJZPZ/++vXTvfRqjb5zE0995KN4q\\nG9xD8Dn7Ehypx3vu/C2C72IR8Dng98AtQONhg7MJrnC/NtFGSZIUj0xf8HUfcAlwZRxlHxw/7a4H\\nJky7K+VKt//mHb434w6++8qvWi27smoBq6oWzAYeTLnilv0UeB2Ym8E6JEltWKbv5f4I8YV5SirL\\np/P+jhoOH6pnx+ZNLH2gnMvGTsx0tYm4EsNckpRBqVzlnjcGD7+URXdOYe/OP9H9tNO5/NobGH3j\\npFw3S5KkrCmKQB8xZjwjxozPdTMkScoZn4cuSVIRMNAlSSoCBrokSUUgr86hb9nwFitzUKckSYUu\\nnx48MiI85cK68CRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJUpb8\\nf78nj115qKtHAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807e8d0>\"\n      ]\n     },\n     \"execution_count\": 21,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = BST()\\n\",\n    \"for el in [3,1,7,6,5,8]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n/w+ejKjdQr450QAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807e610>\"\n      ]\n     },\n     \"execution_count\": 22,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Step 1:\\n\",\n    \"tree.root.right = AVL_rotate_right(tree.root.right)\\n\",\n    \"tree.root.recompute_height()\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\ngg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d807edd0>\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# Step 2:\\n\",\n    \"tree.root = AVL_rotate_left(tree.root)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Cases 3 & 4: left-left and right-left\\n\",\n    \"\\n\",\n    \"Those two cases are analogous to the cases 1 and 2, but used when the left tree is higher.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## AVL insertion \\n\",\n    \"\\n\",\n    \"Now we are going to put all of this ideas together and implement AVL insertion!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def AVL_insert(where, key):\\n\",\n    \"    \\\"\\\"\\\"Inserts a node in an AVL tree\\\"\\\"\\\"\\n\",\n    \"    if where is None:\\n\",\n    \"        # if we found a branch pointing to none, it means we\\n\",\n    \"        # can insert the node here.\\n\",\n    \"        return Node(key)\\n\",\n    \"    elif key <= where.key:\\n\",\n    \"        # try inserting the node somewhere in the left subtree\\n\",\n    \"        where.left = AVL_insert(where.left, key)\\n\",\n    \"    elif key > where.key:\\n\",\n    \"        # try inserting the node in the right subtree\\n\",\n    \"        where.right = AVL_insert(where.right, key)\\n\",\n    \"    \\n\",\n    \"    # where's height might have changed.\\n\",\n    \"    where.recompute_height()\\n\",\n    \"    \\n\",\n    \"    #################################################################\\n\",\n    \"    ###### UP TO THIS POINT IMPLEMENTATION IS IDENTICAL TO BST ######\\n\",\n    \"    #################################################################\\n\",\n    \"    \\n\",\n    \"    # insertion never changes balance factor to be bigger than 2.\\n\",\n    \"    assert abs(where.balance_factor()) <= 2\\n\",\n    \"    # we recursively assume that children are balanced\\n\",\n    \"    assert where.left  is None or abs(where.left.balance_factor())  <= 1\\n\",\n    \"    assert where.right is None or abs(where.right.balance_factor()) <= 1\\n\",\n    \"    \\n\",\n    \"    if where.balance_factor() == 2:\\n\",\n    \"        # left subtree is higher.\\n\",\n    \"        if where.left is not None and where.left.balance_factor() < 0:\\n\",\n    \"            print(\\\"Case 4\\\")\\n\",\n    \"            # Case 4: left-right\\n\",\n    \"            # left-right subtree is taller\\n\",\n    \"            where.left = AVL_rotate_left(where.left)\\n\",\n    \"            where.recompute_height()\\n\",\n    \"        # Case 3: left-left\\n\",\n    \"        print(\\\"Case 3\\\")\\n\",\n    \"        where = AVL_rotate_right(where)\\n\",\n    \"    elif where.balance_factor() == -2:\\n\",\n    \"        # right subtree is higher.\\n\",\n    \"        if where.right is not None and where.right.balance_factor() > 0:\\n\",\n    \"            print(\\\"Case 2\\\")\\n\",\n    \"            # Case 2: right-left\\n\",\n    \"            # right-left subtree is taller\\n\",\n    \"            where.right = AVL_rotate_right(where.right)\\n\",\n    \"            where.recompute_height()\\n\",\n    \"        print(\\\"Case 1\\\")\\n\",\n    \"        # Case 1: right-right\\n\",\n    \"        where = AVL_rotate_left(where)\\n\",\n    \"\\n\",\n    \"    # assert that we indeed balanced the tree.\\n\",\n    \"    assert abs(where.balance_factor()) <= 1\\n\",\n    \"\\n\",\n    \"    return where\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AVL(BST):  # <------ WARNING: inheritance\\n\",\n    \"    def insert(self, key):        \\n\",\n    \"        self.root = AVL_insert(self.root, key)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Let's verify that sorted sequence is no longer a problem\\n\",\n    \"\\n\",\n    \"In fact it is trivial - it only requires case 1!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Case 1\\n\",\n      \"Case 1\\n\",\n      \"Case 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\nRK5CYII=\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d802cf90>\"\n      ]\n     },\n     \"execution_count\": 38,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = AVL()\\n\",\n    \"for el in [1,2,3,4,5,6]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Make sure cases 1 and 2 work correctly\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Case 2\\n\",\n      \"Case 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n5AAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d802ca10>\"\n      ]\n     },\n     \"execution_count\": 39,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = AVL()\\n\",\n    \"for el in [2,5,4,3,1]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Make sure cases 3 and 4 work correctly\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Case 4\\n\",\n      \"Case 3\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\nLOKhAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d802c9d0>\"\n      ]\n     },\n     \"execution_count\": 41,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = AVL()\\n\",\n    \"for el in [4,1,2,3,5]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_height=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Pushing the limit of AVL\\n\",\n    \"\\n\",\n    \"During  the lecture we argued that \\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"n_h \\\\leq n_{h-1} + n_{h-2}\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"Where $n_h$ is the number of nodes in the tree of height $h$. It is an interesting exercise to try to come up with a tree that is the worst-possible (has maximum possible number of nodes), given the height $h$. In particular we will know that our tree is one of the worst ones if it strictly satisfies above inequality. \\n\",\n    \"\\n\",\n    \"How can we construct such a tree? Is it at all possible?\\n\",\n    \"\\n\",\n    \"In this case the answer is yes. Such tree can be constructed recursively:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def nightmare_tree(h):\\n\",\n    \"    assert h >= -1\\n\",\n    \"    \\n\",\n    \"    if h == -1:\\n\",\n    \"        return None\\n\",\n    \"    elif h == 0:\\n\",\n    \"        return Node(0)\\n\",\n    \"    else:\\n\",\n    \"        result = Node(0)\\n\",\n    \"        result.left = nightmare_tree(h-1)\\n\",\n    \"        result.right = nightmare_tree(h-2)\\n\",\n    \"        result.recompute_height()\\n\",\n    \"        return result\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAA+gAAAH0CAYAAACuKActAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE\\nQVR4nOzde5hU1Z3v/zfgBcVoFPGClzAakYSIUUQDkqSNlzM+4i0KepIJThKME5V4Q+Llx+0IGZ0I\\nSmA0EslJ1ImBiHoGNb8JE2W8QEBAGYO0oIlBA0ImasZE9CTS549VnS6aqu6qrl21du16v56nnqJ3\\n7dr724tP7epVtfZeIEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSKtctdgGSJEkp1Q/4+0j7fhX4\\nQaR9S5IisYMuSZJUWNPeffb76akXfKlnLXe65fXXWLl40ep33n7rk7XcryQpvp1iFyBJkpRWe+93\\nwHsXXH5NTTvoa5YvYeXiRbXcpSQpJbrHLkCSJEmSJNlBlyRJkiQpFeygS5IkSZKUAnbQJUmSJElK\\nATvokiRJkiSlgB10SZIkSZJSwA66JEmSJEkpYAddkiRJkqQUsIMuSZIkSVIK2EGXJEmN5Abgkbyf\\nW5LY6HkD+lZ1/Sp4DLgudhGSpO3ZQZckSfXqPOBF4P3c/bmdrN8LuCp3qwdd/fCgpcgt39W5225d\\nrk6SlDg76JIkqR4NBb4LjAP2y93PAU7o4DmfB5YA65MuZkHzxqQ3WaluBW75moEVwNk1rkuS1AE7\\n6JIkqR5dCUwjDNX+Q+5+Wm55MWcCPymw/AvAKuA9YDNwL9A7f4VnH/8Z4849lQsH9ePSU4fywJ23\\n88EHf/nr4+2HrC+afx9fP/kERn3iI1x22jB+Nu/eHdZ56pGHGPf507hwUD++cuIgZo4fyztvvwXA\\nO2+/dXRutWLfgCdhPnBWFbYrSeoiO+iSJKkeDWX7c8nJ/Tysg+ccBywtsPxGwjfw+wLHEP4+mtX6\\nYPOqZ7l/5i2MmfAtfrh8LRPn3s+LK5bx8N13FNzJisWLePCuWVx+8+3cs/xFLp02nQfvmrXDeg98\\n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\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f23d802c910>\"\n      ]\n     },\n     \"execution_count\": 43,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"x = AVL()\\n\",\n    \"x.root = nightmare_tree(5)\\n\",\n    \"x.draw(display_height=True, width=1000, height=500)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Exercise: prove that the `nightmare_tree` is worst possible tree. Verify that is satisfies BST and AVL invariants. \\n\",\n    \"\\n\",\n    \"Notice that this recursive definition of nightmare_tree size is almost fibonacci (except extra one) and has a very similar solution that is related to golden ratio. If you are curious check out the wikipedia article on AVL.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture6/Counting BST.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 60,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from collections import namedtuple\\n\",\n    \"from igraph import Graph, plot, layout, Plot\\n\",\n    \"%config InlineBackend.figure_format = 'png'\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Counting BST\\n\",\n    \"\\n\",\n    \"In this notebook we will augment BST datastructure to allow us to answer questions like \\n\",\n    \"\\n\",\n    \"What is the $k$-th smallest element in the tree rooted in $X$? \\n\",\n    \"\\n\",\n    \"in time $O(lg\\\\ n)$. The name of the function will be `kth_element(X,k)`\\n\",\n    \"\\n\",\n    \"First let's recap BST code:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Node(object):\\n\",\n    \"    def __init__(self, key):\\n\",\n    \"        # node key - this is the value we compare to determine where \\n\",\n    \"        # the node should be inserted.\\n\",\n    \"        self.key     = key\\n\",\n    \"        # left child (can be none if no child)\\n\",\n    \"        self.left    = None\\n\",\n    \"        # right child (can be none if no child)\\n\",\n    \"        self.right   = None\\n\",\n    \"        \\n\",\n    \"def BST_insert(where, key):\\n\",\n    \"    \\\"\\\"\\\"Inserts a node in a binary tree\\\"\\\"\\\"\\n\",\n    \"    if where is None:\\n\",\n    \"        # if we found a branch pointing to none, it means we\\n\",\n    \"        # can insert the node here\\n\",\n    \"        return Node(key)\\n\",\n    \"    elif key <= where.key:\\n\",\n    \"        # try inserting the node somewhere in the left subtree\\n\",\n    \"        where.left = BST_insert(where.left, key)\\n\",\n    \"    elif key > where.key:\\n\",\n    \"        # try inserting the node in the right subtree\\n\",\n    \"        where.right = BST_insert(where.right, key)\\n\",\n    \"    return where\\n\",\n    \"\\n\",\n    \"def BST_draw(node, g, display_count=False):\\n\",\n    \"    \\\"\\\"\\\"This method allows us to draw a binary tree.\\n\",\n    \"    \\n\",\n    \"    Don't worry about the implementation.\\\"\\\"\\\"\\n\",\n    \"    if node is None:\\n\",\n    \"        return\\n\",\n    \"    \\n\",\n    \"    if node.left is not None:\\n\",\n    \"        BST_draw(node.left,  g, display_count)\\n\",\n    \"        left_id = str(id(node.left))\\n\",\n    \"        left_color = \\\"black\\\"\\n\",\n    \"    else:\\n\",\n    \"        g.add_vertex(shape=0,)\\n\",\n    \"        left_id = len(g.vs) - 1\\n\",\n    \"        left_color = \\\"#00000000\\\"\\n\",\n    \"    \\n\",\n    \"    if node.right is not None:\\n\",\n    \"        BST_draw(node.right, g, display_count)\\n\",\n    \"        right_id = str(id(node.right))\\n\",\n    \"        right_color = \\\"black\\\"\\n\",\n    \"    else:\\n\",\n    \"        g.add_vertex(shape=0,)\\n\",\n    \"        right_id = len(g.vs) - 1\\n\",\n    \"        right_color = \\\"#00000000\\\"\\n\",\n    \"\\n\",\n    \"    label = str(node.key)\\n\",\n    \"    if display_count:\\n\",\n    \"        label = label + ' (count: %d)' % (node.count,)\\n\",\n    \"        \\n\",\n    \"    g.add_vertex(name=str(id(node)), label=label, \\n\",\n    \"                 shape=\\\"rectangle\\\", color=\\\"lightblue\\\")\\n\",\n    \"    if node.left is not None or node.right is not None:\\n\",\n    \"        g.add_edge(str(id(node)), left_id, color=left_color)\\n\",\n    \"        g.add_edge(str(id(node)), right_id, color=right_color)\\n\",\n    \"            \\n\",\n    \"def BST_root_draw(root, display_count=False, width=500, height=300, margin=50):\\n\",\n    \"        figure = Plot(bbox=(width, height))\\n\",\n    \"        \\n\",\n    \"        g = Graph()\\n\",\n    \"        if root is not None:\\n\",\n    \"            BST_draw(root, g, display_count)\\n\",\n    \"            root_id = [i for i, node in enumerate(g.vs) if g.vs[i]['name'] == str(id(root))]\\n\",\n    \"            assert len(root_id) == 1\\n\",\n    \"            figure.add(g, layout = Graph.layout_reingold_tilford(g, mode=\\\"in\\\", root=root_id), \\n\",\n    \"                        bbox=(margin, margin, width-margin, height - margin), vertex_size=30)\\n\",\n    \"            return figure\\n\",\n    \"            \\n\",\n    \"class BST(object):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        self.root = None\\n\",\n    \"    \\n\",\n    \"    def empty(self):\\n\",\n    \"        return self.root is None\\n\",\n    \"    \\n\",\n    \"    def insert(self, key):        \\n\",\n    \"        self.root = BST_insert(self.root, key)\\n\",\n    \"    \\n\",\n    \"    def draw(self, display_count=False):\\n\",\n    \"        return BST_root_draw(self.root, display_count)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## First step towards the `kth_element`: counting\\n\",\n    \"\\n\",\n    \"One thing that we will need for an efficient implementation of `kth_element` is the ability to quickly answer the questions of form - how many nodes are the in subtree rooted in $X$. We can compute it online in time proportional to the size of the subtree, but since we will need to compute it frequently, we will try to keep the information available for $O(1)$ lookup at all times.\\n\",\n    \"\\n\",\n    \"More formally let $count_X$ be a size of a subtree rooted in $X$. It is defined by the following recursive relation:\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"count_X =\\n\",\n    \"\\\\begin{cases}\\n\",\n    \"0                &\\\\text{ if } X = NIL \\\\\\\\\\n\",\n    \"count_{X_L} + count_{X_R} + 1 &\\\\text{otherwise}\\n\",\n    \"\\\\end{cases}\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"Let's augment the node to be able to keep track of count!\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 61,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Node(object):\\n\",\n    \"    def __init__(self, key):\\n\",\n    \"        self.key     = key\\n\",\n    \"        self.left    = None\\n\",\n    \"        self.right   = None\\n\",\n    \"        \\n\",\n    \"        self.count   = 1 # <---- here we store the count\\n\",\n    \"    \\n\",\n    \"    # If any of the subtrees change we need to recompute count using the recursive formula\\n\",\n    \"    def recompute_count(self):\\n\",\n    \"        left_count  = self.left.count  if self.left  is not None else 0\\n\",\n    \"        right_count = self.right.count if self.right is not None else 0\\n\",\n    \"        self.count = left_count + right_count + 1\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Insertion keeping track of count\\n\",\n    \"\\n\",\n    \"Let's now modify the insertion code to keep track of count. This should be quite easy, all we need to do is recompute count if any of the children of particular node changed.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 62,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def BST_insert(where, key):\\n\",\n    \"    \\\"\\\"\\\"Inserts a node in a binary tree\\\"\\\"\\\"\\n\",\n    \"    if where is None:\\n\",\n    \"        # if we found a branch pointing to none, it means we\\n\",\n    \"        # can insert the node here\\n\",\n    \"        return Node(key)\\n\",\n    \"    elif key <= where.key:\\n\",\n    \"        # try inserting the node somewhere in the left subtree\\n\",\n    \"        where.left = BST_insert(where.left, key)\\n\",\n    \"    elif key > where.key:\\n\",\n    \"        # try inserting the node in the right subtree\\n\",\n    \"        where.right = BST_insert(where.right, key)\\n\",\n    \"        \\n\",\n    \"    where.recompute_count() # <------- THIS IS THE ONLY LINE THAT CHANGED\\n\",\n    \"        \\n\",\n    \"    return where\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Let's verify that the code works\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 63,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\nuAAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f7ab18ad110>\"\n      ]\n     },\n     \"execution_count\": 63,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = BST()\\n\",\n    \"for el in [4,2,1,3,5,6]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_count=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## `kth_element` implementation\\n\",\n    \"\\n\",\n    \"**Observation** Let $X$ be a node and $X_{key}$ its key. If $X_{key}$ is $k$-th node in the sorted order then $ k > count_{X_L}$. \\n\",\n    \"\\n\",\n    \"**Explanation** All the nodes in the left subtree are smaller than $X_{key}$ (for simplicity assume all are distinct). \\n\",\n    \"\\n\",\n    \"\\n\",\n    \"This observation is fundamental for the To implement `kth_element(X,k)` function.\\n\",\n    \"\\n\",\n    \"#### Case 1: Result is in the left subtree\\n\",\n    \"\\n\",\n    \"This case occurs if $count_{X_L} \\\\geq k$. In that case we return kth_element($X_L$, k).\\n\",\n    \"\\n\",\n    \"#### Case 2: Result is in the root\\n\",\n    \"\\n\",\n    \"This case occurs if $count_{X_L} + 1 = k$. In that case we return $X_{key}$\\n\",\n    \"\\n\",\n    \"#### Case 3: Result is in the right subtree\\n\",\n    \"\\n\",\n    \"This case occurs if $count_{X_L} + 1 < k$. In that case we return kth_element($X_R$, $k - (count_{X_L} + 1)$). \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 64,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def BST_kth_element(node, k):\\n\",\n    \"    if node is None or k < 1:\\n\",\n    \"        return None\\n\",\n    \"    left_count = node.left.count if node.left is not None else 0\\n\",\n    \"    if left_count >= k:\\n\",\n    \"        return BST_kth_element(node.left, k)\\n\",\n    \"    elif left_count + 1 == k:\\n\",\n    \"        return node\\n\",\n    \"    elif left_count + 1 < k:\\n\",\n    \"        return BST_kth_element(node.right, k - (1 + left_count))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Verify on example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 65,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAfQAAAEsCAYAAAA1u0HIAAAABmJLR0QA/wD/AP+gvaeTAAAa2klE\\nQVR4nO3de5BU5Z3/8ffAjMAMIKISgmLGeIdA3J/xBlhgKiGJGlE0wu5WxawaLwtxjVgmBqPCSryh\\nUQvvq8JP/RkQl82Cuivr4hYlMohbtSnHwqjR9YaiWApyGUXO748zM/b0dM85PTPdp/v0+1V1aphz\\nnu7zTHOe59v96dN9QJIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkVZ6a\\npDsgKZZJrUsSnm1dJJWx2qQ7ICmWSaOPPv7q0ceOK+lOm5vW0PzC82BBl8qeBV2qEKOPHce0mbNK\\nus/F0FbQJZW5Pkl3QJIk9ZwFXZKkFLCgS5KUAhZ0SZJSwIIuSVIKWNAlSUoBC7okSSlgQZckKQUs\\n6JIkpYAFXSo/vwFWJN2JBDwJ/DrpTkiVyoIu9dyhQDMQZK3/IfAMsAN4C/g90BBxXw3AL1uXcpT9\\nNxZiIHAd8DrQArwETMvYfmnrMqAH+5CqlgVd6pl+wMPAeTm2XQrMB/YFjgWGA7dH3N9UYA3wai/2\\nsRz0B1YBQ4HvA4OAs1uXNhuA9cCUkvdOSgELutQz84GlQK4rmEwGngI+AzYCM4DTIu7vx8BjOdYf\\ntnLJw0wf28gFJx7NM0sf7bDx6cUPMWPyOM761jeYMXkcK5c80mH7GYePyLmzzPVnHD6C1SuWcdnU\\nyUwf28g548fStPJJ+OoVc5DxM6CwV+uXAu8CFwB/AT4HXgROymq3BDi1gPuV1MqCLnXfacBBwE0x\\n2+8LfBLR5jt0fnJwMnDK6GPGsXBtM3MWPdbhCmhNK59i6V23cuHcG1nU1MyFc2/ksTtvYf2qlTG7\\n9ZWld9/G2ZdfxcK1zcxftpIgLNltRbcm42dNxu8QXdynAwtidOE54Jj4PZbUxoIudc9IYC7wU+K/\\nUp0DPBDRZjjhq/lMs4GnRjR+k/71DQw/oJGLb/gquf/jA3dx3pXzGHPcBAY0DGTMcRM4d/a1LLsv\\nTv3s6JIbFzDmuAn0r29g6LCv8VcnTILwSUtPHQJ8E3iZ8JyCV4Ergbqsdu8BueMESV2yoEvd8xAw\\n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\\n\",\n      \"text/plain\": [\n       \"<igraph.drawing.Plot at 0x7f7ab1886d50>\"\n      ]\n     },\n     \"execution_count\": 65,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"tree = BST()\\n\",\n    \"for el in [42,13,11,33,54,65]:\\n\",\n    \"    tree.insert(el)\\n\",\n    \"tree.draw(display_count=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 66,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"True\"\n      ]\n     },\n     \"execution_count\": 66,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"BST_kth_element(tree.root, 0) is None\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 67,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"1-th element is 11\\n\",\n      \"2-th element is 13\\n\",\n      \"3-th element is 33\\n\",\n      \"4-th element is 42\\n\",\n      \"5-th element is 54\\n\",\n      \"6-th element is 65\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"for k in range(1, 7):\\n\",\n    \"    print('%d-th element is %d' % (k, BST_kth_element(tree.root, k).key))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 68,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"True\"\n      ]\n     },\n     \"execution_count\": 68,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"BST_kth_element(tree.root, 7) is None\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 69,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Median is 33\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print('Median is %d' % (BST_kth_element(tree.root, tree.root.count / 2).key))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Exercise\\n\",\n    \"\\n\",\n    \"Augment BST code for deletion to keep track of the count. Deletion code is available in notebook for lecture5.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture7/Radix Sort Performance.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import random\\n\",\n    \"import cProfile\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Radix sort\\n\",\n    \"\\n\",\n    \"Let's look at the code from pervious notebook. It is slightly augmented - `radix_sort_by_ith_digit` was incorporated in `radix_sort` and there are a few minor tweaks. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 59,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def is_sorted(array):\\n\",\n    \"    for i in xrange(1, len(array)):\\n\",\n    \"        if array[i-1] > array[i]:\\n\",\n    \"            return False\\n\",\n    \"    return True\\n\",\n    \"\\n\",\n    \"def radix_sort(array, b):\\n\",\n    \"    assert b > 1\\n\",\n    \"    i = 0\\n\",\n    \"    while True:\\n\",\n    \"        if is_sorted(array):\\n\",\n    \"            break\\n\",\n    \"        \\n\",\n    \"        buckets = [ [] for _ in xrange(b)]\\n\",\n    \"        for num in array:\\n\",\n    \"            # we no longer use an extra function call for computing the digit\\n\",\n    \"            bucket_idx = (num / b**i) % b\\n\",\n    \"            buckets[bucket_idx].append(num)\\n\",\n    \"            \\n\",\n    \"        # we reuse original space in the array,\\n\",\n    \"        # rather than allocating a new one.\\n\",\n    \"        next_index = 0\\n\",\n    \"        for bucket in buckets:\\n\",\n    \"            for num in bucket:\\n\",\n    \"                array[next_index] = num\\n\",\n    \"                next_index += 1\\n\",\n    \"        \\n\",\n    \"        i += 1\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Verify that it works on a simple example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 60,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1, 2, 2, 3, 4, 5, 5, 6]\"\n      ]\n     },\n     \"execution_count\": 60,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"example = [5,3,2,5,6,1,2,4]\\n\",\n    \"radix_sort(example, 2)\\n\",\n    \"example\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### We are now moving on to bigger examples\\n\",\n    \"The line\\n\",\n    \"```python\\n\",\n    \"random.seed(1)\\n\",\n    \"```\\n\",\n    \"ensures that we always generate the same example given test size (for fairness\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 61,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_test(test_size):\\n\",\n    \"    random.seed(1)\\n\",\n    \"    example = [ random.randint(0,2**30) for _ in range(test_size)]\\n\",\n    \"    return example\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's try it for radix sort on different bases.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 62,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         30000065 function calls in 19.327 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"       31    0.153    0.005    0.153    0.005 <ipython-input-59-77f9f94e9409>:1(is_sorted)\\n\",\n      \"        1   17.945   17.945   19.315   19.315 <ipython-input-59-77f9f94e9409>:7(radix_sort)\\n\",\n      \"        1    0.012    0.012   19.327   19.327 <string>:1(<module>)\\n\",\n      \"       31    0.000    0.000    0.000    0.000 {len}\\n\",\n      \" 30000000    1.217    0.000    1.217    0.000 {method 'append' of 'list' objects}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# BASE 2\\n\",\n    \"example = generate_test(1000000)\\n\",\n    \"cProfile.run(\\\"radix_sort(example, 2)\\\")\\n\",\n    \"assert is_sorted(example)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 64,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         2000009 function calls in 1.696 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        3    0.150    0.050    0.150    0.050 <ipython-input-59-77f9f94e9409>:1(is_sorted)\\n\",\n      \"        1    1.363    1.363    1.673    1.673 <ipython-input-59-77f9f94e9409>:7(radix_sort)\\n\",\n      \"        1    0.022    0.022    1.696    1.696 <string>:1(<module>)\\n\",\n      \"        3    0.000    0.000    0.000    0.000 {len}\\n\",\n      \"  2000000    0.160    0.000    0.160    0.000 {method 'append' of 'list' objects}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# BASE 2^16\\n\",\n    \"example = generate_test(1000000)\\n\",\n    \"cProfile.run(\\\"radix_sort(example, 2**16)\\\")\\n\",\n    \"assert is_sorted(example)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Intuitively it makes sense. We only need two iterators for $b=2^{16}$, while we need 16 for $b=2$. We cannot really have a single iteration, as $b=2^{32}$ is more than the length of the longest array we expect to ever sort.\\n\",\n    \"\\n\",\n    \"Now let's try to run the standard sorting algorithm that is implemented by Python (hybrid of insertion sort and quicksort). It is a comparison based sort and is therefore $O(n\\\\ lg\\\\ n)$. Radix sort is $O(n)$. We therefore expect our code to be faster.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 65,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         3 function calls in 0.547 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.000    0.000    0.547    0.547 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"        1    0.547    0.547    0.547    0.547 {method 'sort' of 'list' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"example = generate_test(1000000)\\n\",\n    \"cProfile.run(\\\"example.sort()\\\")\\n\",\n    \"assert is_sorted(example)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"In reality our code is 3 times slower. What a shame! Let's not give up yet...\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### A bit of bit magic.\\n\",\n    \"\\n\",\n    \"One of basic operations in radix sort is divide and modulo. In particular if our base is $b$, then in every $i$-th iteration of radix sort algorithm one of the most common operations is indexing:\\n\",\n    \"\\n\",\n    \"```python\\n\",\n    \"# determine appropriate bucket.\\n\",\n    \"(num / b**i) % b\\n\",\n    \"```\\n\",\n    \"\\n\",\n    \"This is great, but it consists of of expensive modulo and division operations (they can take up multiple processor cycles). \\n\",\n    \"\\n\",\n    \"Let's assume that b is a power of 2, i.e. $b=2^k$. Notice that `num / b**i` is equivalent to `num >> (k * i)`. In order to understand why this is the case first convince yourself that division by 2 is equivalent to shaving off rightmost bit.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 66,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"(6, 6)\\n\",\n      \"(8, 8)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(100 / 16, 100 >> 4)\\n\",\n    \"print(128 / 16, 128 >> 4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Similarly notice that for $b=2^k$ we have `num % b` equivalent to `num & (b-1)`. To understand that notice that k lowest bits of `num` correspond to the reminder mod $b$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 67,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"(4, 4)\\n\",\n      \"(0, 0)\\n\",\n      \"(11, 11)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(100 % 16, 100 & 15)\\n\",\n    \"print(128 % 16, 128 & 15)\\n\",\n    \"print(11 % 16, 11 & 15)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Both `&` and `>>` are very efficient and only take on processor cycle. We can augment implementation of radix sort from above to use them instead of `%` and `/`.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 68,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def fast_radix_sort(array, k):\\n\",\n    \"    \\\"\\\"\\\"Fast radix sort with base 2**k.\\n\",\n    \"    \\n\",\n    \"    This implementation uses bitwise operations\\\"\\\"\\\"\\n\",\n    \"    assert k > 0\\n\",\n    \"    i = 0\\n\",\n    \"    \\n\",\n    \"    b=2**k\\n\",\n    \"    b_m1 = b - 1\\n\",\n    \"    \\n\",\n    \"    while True:\\n\",\n    \"        if is_sorted(array):\\n\",\n    \"            break\\n\",\n    \"        shift = k * i\\n\",\n    \"        buckets = [ [] for _ in xrange(b)]\\n\",\n    \"        for num in array:\\n\",\n    \"            bucket_idx = (num >> shift) & b_m1\\n\",\n    \"            buckets[bucket_idx].append(num)\\n\",\n    \"                        \\n\",\n    \"        next_index = 0\\n\",\n    \"        for bucket in buckets:\\n\",\n    \"            for num in bucket:\\n\",\n    \"                array[next_index] = num\\n\",\n    \"                next_index += 1\\n\",\n    \"        \\n\",\n    \"        i += 1\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 69,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1, 2, 2, 3, 4, 5, 5, 6]\"\n      ]\n     },\n     \"execution_count\": 69,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"example = [5,3,2,5,6,1,2,4]\\n\",\n    \"fast_radix_sort(example, 16)\\n\",\n    \"example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 71,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         2000009 function calls in 1.413 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        3    0.154    0.051    0.154    0.051 <ipython-input-59-77f9f94e9409>:1(is_sorted)\\n\",\n      \"        1    1.081    1.081    1.390    1.390 <ipython-input-68-2dc028b9f7cf>:1(fast_radix_sort)\\n\",\n      \"        1    0.023    0.023    1.413    1.413 <string>:1(<module>)\\n\",\n      \"        3    0.000    0.000    0.000    0.000 {len}\\n\",\n      \"  2000000    0.155    0.000    0.155    0.000 {method 'append' of 'list' objects}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"example = generate_test(1000000)\\n\",\n    \"cProfile.run(\\\"fast_radix_sort(example, 16)\\\")\\n\",\n    \"assert is_sorted(example)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"*Good news* We got 0.2s speed up Yay!\\n\",\n    \"\\n\",\n    \"*Bad news* We are still nowhere near the performance of `.sort`. Why is that?\\n\",\n    \"\\n\",\n    \"The answer is in our choice of programming language. Python is interpreted and is known to have slowdowns up to 100x compared to low level langauges like C/C++. That's why many of Python routines are secretly implemented in C, `.sort` being one of them. In order to make the comparison fair we should also be allowed to write our implementation in C. Thankfully there's a Cython python extension, which makes it easy to interface with Python and compiles python-like code to C or C++. It should be pretty straightforward, but don't worry if you don't understand the details of the implementation below.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 72,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"The Cython extension is already loaded. To reload it, use:\\n\",\n      \"  %reload_ext Cython\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%load_ext Cython\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 73,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"%%cython --cplus\\n\",\n    \"\\n\",\n    \"from libcpp.vector cimport vector\\n\",\n    \"cimport cython\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"cdef c_is_sorted(list array):\\n\",\n    \"    \\\"\\\"\\\"Equivalent to implementation of is_sorted from above.\\n\",\n    \"    \\n\",\n    \"    However this one is compiled to pure C++ (thanks to cdef).\\n\",\n    \"    We cannot call it directly for Python.\\n\",\n    \"    \\n\",\n    \"    The reasons it is slightly different from above is the fact that\\n\",\n    \"    \\n\",\n    \"        for current_num in array\\n\",\n    \"        \\n\",\n    \"    is super-efficient in Cython.\\\"\\\"\\\"\\n\",\n    \"    cdef unsigned int lastnum = 0\\n\",\n    \"    cdef bint         first_iter = True\\n\",\n    \"    \\n\",\n    \"    for current_num in array:\\n\",\n    \"        if not first_iter:\\n\",\n    \"            if lastnum > current_num:\\n\",\n    \"                return False\\n\",\n    \"        else:\\n\",\n    \"            first_iter = False\\n\",\n    \"        lastnum = current_num\\n\",\n    \"    return True\\n\",\n    \"\\n\",\n    \"def c_radix_sort(list array, int k):\\n\",\n    \"    assert k > 0\\n\",\n    \"    # Just like in C Cython requires us \\n\",\n    \"    # to forward declare the variables\\n\",\n    \"    cdef int i          = 0\\n\",\n    \"    cdef int b          = 2 ** k\\n\",\n    \"    cdef int b_m1       = b - 1\\n\",\n    \"    cdef int shift      = 0\\n\",\n    \"    cdef int next_index = 0\\n\",\n    \"    cdef int num        = 0\\n\",\n    \"    # vector[vector[int]] is a list of lists of integers.\\n\",\n    \"    # (actually it is very efficient dynamically resizeable\\n\",\n    \"    # array)\\n\",\n    \"    cdef vector[vector[int]] buckets\\n\",\n    \"    \\n\",\n    \"    # initialize list with b empty arrays\\n\",\n    \"    for _ in xrange(b):\\n\",\n    \"        buckets.push_back(vector[int]())\\n\",\n    \"\\n\",\n    \"        \\n\",\n    \"    # The code below barely changed compared to origninal\\n\",\n    \"    # the only difference is the fast that we access buckets\\n\",\n    \"    # slightly differently to be compliant with vector API.\\n\",\n    \"    while True:\\n\",\n    \"        if c_is_sorted(array):\\n\",\n    \"            break\\n\",\n    \"        shift = i * k\\n\",\n    \"\\n\",\n    \"        for bucket_idx in xrange(b):\\n\",\n    \"            buckets[bucket_idx].clear()\\n\",\n    \"        \\n\",\n    \"        for num in array:\\n\",\n    \"            bucket_idx = (num >> shift) & b_m1\\n\",\n    \"            buckets[bucket_idx].push_back(num)\\n\",\n    \"        \\n\",\n    \"        next_index = 0\\n\",\n    \"        for bucket_idx in xrange(b):\\n\",\n    \"            for in_bucket_idx in xrange(buckets[bucket_idx].size()):\\n\",\n    \"                array[next_index] = buckets[bucket_idx][in_bucket_idx]\\n\",\n    \"                next_index += 1\\n\",\n    \"        \\n\",\n    \"        i += 1\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 74,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1, 2, 2, 3, 4, 5, 5, 6]\"\n      ]\n     },\n     \"execution_count\": 74,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"example = [5,3,2,5,6,1,2,4]\\n\",\n    \"c_radix_sort(example, 16)\\n\",\n    \"example\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 75,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         3 function calls in 0.128 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.000    0.000    0.128    0.128 <string>:1(<module>)\\n\",\n      \"        1    0.128    0.128    0.128    0.128 {_cython_magic_a617e99601e7e788cc896c9cdd2003a9.c_radix_sort}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"example = generate_test(1000000)\\n\",\n    \"cProfile.run(\\\"c_radix_sort(example, 16)\\\")\\n\",\n    \"assert is_sorted(example)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Victory!\\n\",\n    \"\\n\",\n    \"Our implementation of radix sort is 4x faster that default Python sort. \\n\",\n    \"\\n\",\n    \"This is expected as it has lower complexity and a very low constant of proportionality. \\n\",\n    \"\\n\",\n    \"Bear in mind that Python sort is more general though - it would be nontrival to use radix sort to sort long strings for example.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture7/Understanding Radix Sort.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Understanding radix sort\\n\",\n    \"\\n\",\n    \"First building block we will need is the `is_sorted` function. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def is_sorted(array):\\n\",\n    \"    \\\"\\\"\\\"Takes a sequence and returns true if an only if sequence is sorted.\\\"\\\"\\\"\\n\",\n    \"    # check all the n-1 pairs of adjacent elements for \\n\",\n    \"    # order violation\\n\",\n    \"    for i in xrange(1, len(array)):\\n\",\n    \"        if array[i-1] > array[i]:\\n\",\n    \"            return False\\n\",\n    \"    # if no violations, then by transitivity of < the sequence is sorted.\\n\",\n    \"    return True\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"([1, 4, 6, 7, 8], True)\\n\",\n      \"([1, 4, 7, 6, 8], False)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Verify implementation on few test cases\\n\",\n    \"example1 = [1,4,6,7,8]\\n\",\n    \"example2 = [1,4,7,6,8]\\n\",\n    \"print(example1, is_sorted(example1))\\n\",\n    \"print(example2, is_sorted(example2))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Stable sorting\\n\",\n    \"\\n\",\n    \"Python sort is stable. It means that if we have two elements that have the same value of *sorting key* they will appear in the output in the same order that they appeared in the input.\\n\",\n    \"\\n\",\n    \"Let's see an example: we have a list of pairs $(a,b)$ and we want to sort them in the nondecreasing order by $a$ and by nondecreasing $b$ if $a$'s are the same\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[(3, 1), (3, 2), (1, 1), (1, 2), (2, 2), (2, 1)]\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"example = [ (3,1),(3,2),(1,1),(1,2), (2,2),(2,1)]\\n\",\n    \"example\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We can achieve that by sorting first by $b$ and then **stable-sorting** by $a$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[(3, 1), (1, 1), (2, 1), (3, 2), (1, 2), (2, 2)]\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sorted_idx2 = sorted(example, key=lambda x: x[1])\\n\",\n    \"sorted_idx2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[(1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2)]\"\n      ]\n     },\n     \"execution_count\": 5,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sorted_idx12 = sorted(sorted_idx2, key=lambda x: x[0])\\n\",\n    \"sorted_idx12\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Unstable sort example\\n\",\n    \"\\n\",\n    \"Sort does no have to be stable. For example merge sort isn't.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class MaxHeap(object):\\n\",\n    \"    def __init__(self, array, key):\\n\",\n    \"        self.storage = array\\n\",\n    \"        self.heap_size = len(array)\\n\",\n    \"        self.key = key\\n\",\n    \"        self.heapify()\\n\",\n    \"    \\n\",\n    \"    def fix_down(self, index):\\n\",\n    \"        while index < self.heap_size:\\n\",\n    \"            # pick maximum child\\n\",\n    \"            max_child_idx = None\\n\",\n    \"            if  2 * index + 1 < self.heap_size:\\n\",\n    \"                max_child_idx = 2 * index + 1\\n\",\n    \"\\n\",\n    \"            if 2 * index + 2 < self.heap_size and \\\\\\n\",\n    \"                    self.key(self.storage[2 * index + 1]) < self.key(self.storage[2 * index + 2]):\\n\",\n    \"                max_child_idx = 2 * index + 2\\n\",\n    \"\\n\",\n    \"            if max_child_idx is None or \\\\\\n\",\n    \"                    self.key(self.storage[index]) > self.key(self.storage[max_child_idx]):\\n\",\n    \"                # heap property satisfied\\n\",\n    \"                break\\n\",\n    \"            \\n\",\n    \"            self.storage[index], self.storage[max_child_idx] = self.storage[max_child_idx], self.storage[index]\\n\",\n    \"            index = max_child_idx\\n\",\n    \"            \\n\",\n    \"    def fix_up(self, index):\\n\",\n    \"        assert index < self.heap_size\\n\",\n    \"        while index > 0:\\n\",\n    \"            parent_idx = (index - 1) // 2\\n\",\n    \"            if self.key(self.storage[index]) >= self.key(self.storage[parent_idx]):\\n\",\n    \"                self.storage[index],  self.storage[parent_idx] =  self.storage[parent_idx], self.storage[index]\\n\",\n    \"                index = parent_idx\\n\",\n    \"            else:\\n\",\n    \"                break\\n\",\n    \"    def extract_max(self):\\n\",\n    \"        self.storage[0], self.storage[self.heap_size - 1] = self.storage[self.heap_size -1], self.storage[0]\\n\",\n    \"        self.heap_size -= 1\\n\",\n    \"        self.fix_down(0)\\n\",\n    \"        return self.storage[self.heap_size]\\n\",\n    \"        \\n\",\n    \"    def heapify(self):\\n\",\n    \"        for i in range(self.heap_size - 1, -1, -1):\\n\",\n    \"            self.fix_down(i)\\n\",\n    \"            \\n\",\n    \"def heap_sort(array, key=lambda x:x):\\n\",\n    \"    h = MaxHeap(array[:], key)\\n\",\n    \"    while h.heap_size > 0:\\n\",\n    \"        h.extract_max()\\n\",\n    \"    return h.storage\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[(2, 1), (1, 1), (3, 1), (2, 2), (3, 2), (1, 2)]\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sorted_idx2 = heap_sort(example, key=lambda x: x[1])\\n\",\n    \"sorted_idx2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[(1, 2), (1, 1), (2, 1), (2, 2), (3, 1), (3, 2)]\\n\",\n      \"Notice that secondary sorting criterion is violated.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sorted_idx12 = heap_sort(sorted_idx2, key=lambda x: x[0])\\n\",\n    \"print(sorted_idx12)\\n\",\n    \"print(\\\"Notice that secondary sorting criterion is violated.\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Counting Sort\\n\",\n    \"\\n\",\n    \"In order to keep complexity at $O(n)$, we will need to divise a procude that sorts without using comparisons.\\n\",\n    \"\\n\",\n    \"Assume we only have elements $0, 1, ..., (k-1)$ in the array. We know that all zeros come before all ones etc. We can therefore put all the numbers in $k$ different buckets and later read them off.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def count_sort(array, k, key=lambda x: x):\\n\",\n    \"    \\\"\\\"\\\"Stable sorts array by using key to determine ordering of elements.\\n\",\n    \"    \\n\",\n    \"    Assumes all elements are in range(0, k)\\\"\\\"\\\"\\n\",\n    \"    # initialize array \\n\",\n    \"    buckets = [[] for _ in range(k)]\\n\",\n    \"    # for every key store all the elements\\n\",\n    \"    # with that key\\n\",\n    \"    for element in array:\\n\",\n    \"        buckets[key(element)].append(element)\\n\",\n    \"    output = []\\n\",\n    \"    # red numbers from buckets in order\\n\",\n    \"    for bucket in buckets:\\n\",\n    \"        for element in bucket:\\n\",\n    \"            output.append(element)\\n\",\n    \"    return output\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1, 2, 2, 3, 4, 5, 5]\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"count_sort([4,3,2,5,5,1,2], 10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Count sort complexity analysis\\n\",\n    \"\\n\",\n    \"We have the following steps:\\n\",\n    \"- allocate space for $b$ buckets: $O(b)$\\n\",\n    \"- loop throgh all the elements in the input array and put them in buckets $O(n)$\\n\",\n    \"- remove elements from the buckets $O(n)$\\n\",\n    \"\\n\",\n    \"Therefore the total complexity is $O(n+b)$\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Radix sort idea\\n\",\n    \"\\n\",\n    \"Imagine that you want to compare two long numbers. For example 85823421348134214 and  85823421348452456. The algorithm you would use is to compare the first digit and if it is the same then compare the next digit etc. We can say that first digit is the primary comparison criterion, second digit is the secondary sorting criterion etc. This is almost correct, but we actually need to make sure that we add extra zeros at the beginning of the number that is shorter (because sorter numbers come before longer numbers). \\n\",\n    \"\\n\",\n    \"Radix sort uses this idea directly for sorting. It first sorts the numbers by last digit. The it *stable-sorts* it by the second to last digit (making second to last digit primary sorting criterion and the last digit secondary sorting criterion) and so on. At the end of that process we end up with digitst sorted in exactly the order we discussed above.\\n\",\n    \"\\n\",\n    \"To implement that idea let's first look at how we would obtain the digits. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def ith_digit(number, i):\\n\",\n    \"    \\\"\\\"\\\"Returns the i-th digit from the end. \\n\",\n    \"    \\n\",\n    \"    i=0 resuts the very last digit.\\\"\\\"\\\"\\n\",\n    \"    for _ in range(i):\\n\",\n    \"        number /= 10\\n\",\n    \"    return number % 10\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"3\\n\",\n      \"2\\n\",\n      \"1\\n\",\n      \"0\\n\",\n      \"0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(ith_digit(123, 0))\\n\",\n    \"print(ith_digit(123, 1))\\n\",\n    \"print(ith_digit(123, 2))\\n\",\n    \"print(ith_digit(123, 3))\\n\",\n    \"print(ith_digit(123, 4))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Sweet! We have a function that returns i-th digit and it even yields additional zeros in the front - just what we needed.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"## Radix Sort using digit $i$ from the end\\n\",\n    \"\\n\",\n    \"The idea is to use count sort with the digit being the key. \\n\",\n    \"\\n\",\n    \"For example if we sort `[123, 42, 73]` by the last digit, bucket nr 2 will have one number `[42]`, while bucket number three would have two numbers `[123, 73]`, while the remaining eight buckets would be empty. It is imporant that bucket nr two has `[123, 73]` not `[73, 123]` - this way if we read out the numbers in order they appear in the buckets we will get a stable sort.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def radix_sort_by_ith_digit(array, i):\\n\",\n    \"    return count_sort(array, \\n\",\n    \"                      10,     # we have 10 different digits.\\n\",\n    \"                      key=lambda number: ith_digit(number, i)) # use i-th digit as a key.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[42, 123, 73]\"\n      ]\n     },\n     \"execution_count\": 14,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# sort by the last digit\\n\",\n    \"pass1 = radix_sort_by_ith_digit([123,42,73], 0)\\n\",\n    \"pass1\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[123, 42, 73]\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# sort result of previous pass by the second to last digit\\n\",\n    \"pass2 = radix_sort_by_ith_digit(pass1, 1)\\n\",\n    \"pass2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[42, 73, 123]\"\n      ]\n     },\n     \"execution_count\": 16,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# sort result of previous pass by the third to last digit\\n\",\n    \"# none of the numbers are longer than third digit, so we are done.\\n\",\n    \"pass3 = radix_sort_by_ith_digit(pass2, 2)\\n\",\n    \"pass3\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"What happened above is exactly radix sort! Sort iteratively by digits further and further from the end until the sequence ends up sorted.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def radix_sort(array):\\n\",\n    \"    \\\"\\\"\\\"Returns array sorted by i-th digit from the end.\\n\",\n    \"    \\n\",\n    \"    The sorting procedure is stable.\\\"\\\"\\\"\\n\",\n    \"    i = 0\\n\",\n    \"    while True:\\n\",\n    \"        if is_sorted(array):\\n\",\n    \"            # we stop once the array is sorted\\n\",\n    \"            # the latest this can happen is when \\n\",\n    \"            # we run the number of passes eqaul to\\n\",\n    \"            # the length of the longest number\\n\",\n    \"            break\\n\",\n    \"        # stable sort by i-th digit.\\n\",\n    \"        array = radix_sort_by_ith_digit(array, i)\\n\",\n    \"        i += 1\\n\",\n    \"    return array\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[42, 73, 123]\"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"radix_sort([123,42,73])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[42, 73, 123, 512, 524, 5214, 123123, 142124]\"\n      ]\n     },\n     \"execution_count\": 19,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# harder example\\n\",\n    \"radix_sort([123,42,73, 123123, 142124, 524, 512, 5214])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Radix sort with different numeric base. \\n\",\n    \"\\n\",\n    \"Let's try to improve our algorithm slightly. Notice that the fact that we use digits in base $10$ is kind of arbitrary. How hard would it be to use any $b \\\\geq 2$? In theory all we should be required to do is to change the digit extraction procedure and the number of buckets. \\n\",\n    \"\\n\",\n    \"Let's start with the digits.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def ith_digit(number, b, i):\\n\",\n    \"    \\\"\\\"\\\"Returns the i-th digit from the end (base b).\\n\",\n    \"    \\n\",\n    \"    i=0 resuts the very last digit.\\\"\\\"\\\"\\n\",\n    \"    for _ in range(i):\\n\",\n    \"        number /= b      # changed 10 to b\\n\",\n    \"    return number % b    # changed 10 to b\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"7 mod 2\\n\",\n      \"1\\n\",\n      \"1\\n\",\n      \"1\\n\",\n      \"0\\n\",\n      \"0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(\\\"7 mod 2\\\")\\n\",\n    \"print(ith_digit(7, 2, 0))\\n\",\n    \"print(ith_digit(7, 2, 1))\\n\",\n    \"print(ith_digit(7, 2, 2))\\n\",\n    \"print(ith_digit(7, 2, 3))\\n\",\n    \"print(ith_digit(7, 2, 4))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"7 mod 3\\n\",\n      \"1\\n\",\n      \"2\\n\",\n      \"0\\n\",\n      \"0\\n\",\n      \"0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(\\\"7 mod 3\\\")\\n\",\n    \"print(ith_digit(7, 3, 0))\\n\",\n    \"print(ith_digit(7, 3, 1))\\n\",\n    \"print(ith_digit(7, 3, 2))\\n\",\n    \"print(ith_digit(7, 3, 3))\\n\",\n    \"print(ith_digit(7, 3, 4))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we are ready to augment to radix_sort.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def radix_sort_by_ith_digit(array, b, i):\\n\",\n    \"    \\\"\\\"\\\"Returns array sorted by i-th digit from the end (base b).\\n\",\n    \"    \\n\",\n    \"    The sorting procedure is stable.\\\"\\\"\\\"\\n\",\n    \"    return count_sort(array, b, key=lambda number: ith_digit(number, b, i))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def radix_sort(array, b):\\n\",\n    \"    \\\"\\\"\\\"Returns array sorted by i-th digit from the end.\\n\",\n    \"    \\n\",\n    \"    The sorting procedure is stable.\\\"\\\"\\\"\\n\",\n    \"    i = 0\\n\",\n    \"    while True:\\n\",\n    \"        if is_sorted(array):\\n\",\n    \"            # we stop once the array is sorted\\n\",\n    \"            # the latest this can happen is when \\n\",\n    \"            # we run the number of passes eqaul to\\n\",\n    \"            # the length of the longest number\\n\",\n    \"            break\\n\",\n    \"        print(\\\"Iteration %d\\\" % (i,))\\n\",\n    \"        # stable sort by i-th digit.\\n\",\n    \"        array = radix_sort_by_ith_digit(array, b, i)\\n\",\n    \"        i += 1\\n\",\n    \"    return array\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's try sorting in base $b=2$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Iteration 0\\n\",\n      \"Iteration 1\\n\",\n      \"Iteration 2\\n\",\n      \"Iteration 3\\n\",\n      \"Iteration 4\\n\",\n      \"Iteration 5\\n\",\n      \"Iteration 6\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[42, 73, 123]\"\n      ]\n     },\n     \"execution_count\": 25,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"radix_sort([123,42,73], 2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Whoah! 7 iterations? That is a lot to sort just 3 numbers. How about if we increase the base? Maybe $b=1000$ ?\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Iteration 0\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[42, 73, 123]\"\n      ]\n     },\n     \"execution_count\": 26,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"radix_sort([123,42,73], 1000)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Much better - we only have one iteration. Notice however that we have many more buckets than numbers - even though in theory we decrease number of iterations, now every iteration is dominated by looping through every bucket. In this example $1000$ buckets visited in one iteration are much worst than two buckets visited in $7$ iterations (total of $14$ acceses). Actually array acceses contribute another 3 operations per iteraions ($7 * 3 = 21$) adding up to total of $35$ operations, but this is still much less than $1000$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Iteration 0\\n\",\n      \"Iteration 1\\n\",\n      \"Iteration 2\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[42, 73, 123]\"\n      ]\n     },\n     \"execution_count\": 27,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# much healthier choice\\n\",\n    \"radix_sort([123,42,73], 5)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Radix sort complexity analysis\\n\",\n    \"\\n\",\n    \"Let $b$ be the base and $n$ size of the array. Moreover let's assume that all the numbers in the array are less than or equal $a$.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Single iteration of count sort is $O(n + b)$.\\n\",\n    \"\\n\",\n    \"How many iterations are there? At most as many as the number of digits in the longest number: O($log_b\\\\ a$)\\n\",\n    \"\\n\",\n    \"Therefore the total complexity of the algorithm is O($(n+b) log_b\\\\ a)$.\\n\",\n    \"\\n\",\n    \"In theory we often assume that both $b$ and $a$ are constants - they are after all independent of $n$ - they won't influence the run time as $n$ grows. That's why some theorists say that Radix Sort is $O(n)$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Exercises\\n\",\n    \"\\n\",\n    \"1. We said that the best possible algorithm that does sorting has complexity $O(n\\\\ lg\\\\ n)$. How is it possible that radix sort takes only $O(n)$ time? \\n\",\n    \"\\n\",\n    \"2. Can you come up with a sorting problem where it would be hard to use Radix Sort?\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Be sure to checkout the Performance of Radix Sort notebook!\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Aside: implementation of count sort from the lectures\\n\",\n    \"\\n\",\n    \"This implementation has the samee time and space complexity, but is faster in practice.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def count_sort_from_the_lecture(array, k, key=lambda x: x):\\n\",\n    \"    # initialize array \\n\",\n    \"    count = [0 for _ in range(k)]\\n\",\n    \"    # for every key count the number of times\\n\",\n    \"    # it occurs\\n\",\n    \"    for element in array:\\n\",\n    \"        count[key(element)] += 1\\n\",\n    \"    # compute cumulative count of occurences\\n\",\n    \"    for i in range(1, k):\\n\",\n    \"        count[i] += count[i-1]\\n\",\n    \"    # create output array\\n\",\n    \"    output = [None for _ in range(len(array))]\\n\",\n    \"    # fill in output array computing slots using\\n\",\n    \"    # counts array\\n\",\n    \"    for i in range(len(array) - 1, -1, -1):\\n\",\n    \"        output[count[key(array[i])] - 1] = array[i]\\n\",\n    \"        count[key(array[i])] -= 1\\n\",\n    \"    return output\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1, 2, 2, 3, 4, 5, 5]\"\n      ]\n     },\n     \"execution_count\": 29,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"count_sort_from_the_lecture([4,3,2,5,5,1,2], 10)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture8/Hashing and hashtables.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 51,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import cProfile\\n\",\n    \"import math\\n\",\n    \"\\n\",\n    \"from collections import namedtuple\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Hash tables and hashing functions\\n\",\n    \"\\n\",\n    \"## Hashing functions\\n\",\n    \"\\n\",\n    \"Want a function $h(k)$ which maps every key $k$ in the universe $U$ to some index $i, 0 \\\\le i < m$. We call this function a \\\\textbf{hash function}. Given a $k$, we compute $i = h(k)$ and then use this $i$ as a basis for insertion, searching or deletion. Some functions are better than others. A good hash function has these properties:\\n\",\n    \"- item want $i$ to be uniformly distributed over all $m$\\n\",\n    \"- item should not hash similar/related keys to the same slot.\\n\",\n    \"- item fast to compute. $O(1)$ time.\\n\",\n    \"- item should not change with time. We want some key $k$ to always hash to the same $h(k)$.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"### Simple Uniform Hashing Assumption\\n\",\n    \"We want our hash functions to distribute the hashes uniformly across all $m$. We usually assume something called simple uniform hashing. It means that given any two randomly chosen keys $k_1$ and $k_2$, the probability that they have equal hashes $= \\\\frac{1}{m}$.\\n\",\n    \"\\n\",\n    \"$$ \\n\",\n    \"P[h(k_1) = h(k_2)] = \\\\frac{1}{m}\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"Let's see some examples of hash functions and analyze them.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Examples of hash functions\\n\",\n    \"\\n\",\n    \"#### Divition method\\n\",\n    \"\\n\",\n    \"The division method is one way to create hash functions. The functions take the form\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"h(k) = k \\\\mod m\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"Since we’re taking a value $\\\\mod m$, $h(k)$ does indeed map the universe of keys to a slot in the hash table. \\n\",\n    \"\\n\",\n    \"It’s important to note that if we’re using this method to create hash functions, $m$ should not be a power of 2. If $m = 2 p$ , then the $h(k)$ only looks at the $p$ lower bits of $k$, completely ignoring the rest of the bits in $k$. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def hashtest(b, mod):\\n\",\n    \"    for i in range(2*mod):\\n\",\n    \"        print(\\\" %d * %d (mod %d) = %d\\\" % (b, i, mod, (b*i) % mod))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 4 * 0 (mod 8) = 0\\n\",\n      \" 4 * 1 (mod 8) = 4\\n\",\n      \" 4 * 2 (mod 8) = 0\\n\",\n      \" 4 * 3 (mod 8) = 4\\n\",\n      \" 4 * 4 (mod 8) = 0\\n\",\n      \" 4 * 5 (mod 8) = 4\\n\",\n      \" 4 * 6 (mod 8) = 0\\n\",\n      \" 4 * 7 (mod 8) = 4\\n\",\n      \" 4 * 8 (mod 8) = 0\\n\",\n      \" 4 * 9 (mod 8) = 4\\n\",\n      \" 4 * 10 (mod 8) = 0\\n\",\n      \" 4 * 11 (mod 8) = 4\\n\",\n      \" 4 * 12 (mod 8) = 0\\n\",\n      \" 4 * 13 (mod 8) = 4\\n\",\n      \" 4 * 14 (mod 8) = 0\\n\",\n      \" 4 * 15 (mod 8) = 4\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"hashtest(4, 8)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Is it enough to take odd numbers then? \\n\",\n    \"\\n\",\n    \"With a composite number you have the additional issue where you get poor performance if a disproportionate number of keys share factors with $m$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 15 * 0 (mod 12) = 0\\n\",\n      \" 15 * 1 (mod 12) = 3\\n\",\n      \" 15 * 2 (mod 12) = 6\\n\",\n      \" 15 * 3 (mod 12) = 9\\n\",\n      \" 15 * 4 (mod 12) = 0\\n\",\n      \" 15 * 5 (mod 12) = 3\\n\",\n      \" 15 * 6 (mod 12) = 6\\n\",\n      \" 15 * 7 (mod 12) = 9\\n\",\n      \" 15 * 8 (mod 12) = 0\\n\",\n      \" 15 * 9 (mod 12) = 3\\n\",\n      \" 15 * 10 (mod 12) = 6\\n\",\n      \" 15 * 11 (mod 12) = 9\\n\",\n      \" 15 * 12 (mod 12) = 0\\n\",\n      \" 15 * 13 (mod 12) = 3\\n\",\n      \" 15 * 14 (mod 12) = 6\\n\",\n      \" 15 * 15 (mod 12) = 9\\n\",\n      \" 15 * 16 (mod 12) = 0\\n\",\n      \" 15 * 17 (mod 12) = 3\\n\",\n      \" 15 * 18 (mod 12) = 6\\n\",\n      \" 15 * 19 (mod 12) = 9\\n\",\n      \" 15 * 20 (mod 12) = 0\\n\",\n      \" 15 * 21 (mod 12) = 3\\n\",\n      \" 15 * 22 (mod 12) = 6\\n\",\n      \" 15 * 23 (mod 12) = 9\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"hashtest(15, 12)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"A good choice for $m$ with the division method is a prime number.\\n\",\n    \"\\n\",\n    \"With a prime number you will still find poor performance if you have a disproportionate number of keys which are congruent $\\\\mod m$. However\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### Multiplication Method\\n\",\n    \"\\n\",\n    \"The multiplication method is another way to create hash functions. The functions take the form\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"h(k) = \\\\lfloor m(kA \\\\mod 1) \\\\rfloor\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"where $0 < A < 1$ and $(kA \\\\mod 1)$ refers to the fractional part of $kA$. Since $0 < (kA \\\\mod 1) <\\n\",\n    \"1$, the range of $h(k)$ is from $0$ to $m-1$. The advantage of the multiplication method is it works equally well with any size $m$. $A$ should be chosen carefully. Rational numbers should not be chosen for $A$.\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def hashtest_multiplication(A, m):\\n\",\n    \"    for k in range(2 * m):\\n\",\n    \"        fraction = (k * A) % 1.0 \\n\",\n    \"        res = math.floor(m * fraction)\\n\",\n    \"        print(\\\"floor(%d * (%d * %f mod 1)) = %d\\\" % \\\\\\n\",\n    \"              (m, k, A, res))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"floor(10 * (0 * 0.750000 mod 1)) = 0\\n\",\n      \"floor(10 * (1 * 0.750000 mod 1)) = 7\\n\",\n      \"floor(10 * (2 * 0.750000 mod 1)) = 5\\n\",\n      \"floor(10 * (3 * 0.750000 mod 1)) = 2\\n\",\n      \"floor(10 * (4 * 0.750000 mod 1)) = 0\\n\",\n      \"floor(10 * (5 * 0.750000 mod 1)) = 7\\n\",\n      \"floor(10 * (6 * 0.750000 mod 1)) = 5\\n\",\n      \"floor(10 * (7 * 0.750000 mod 1)) = 2\\n\",\n      \"floor(10 * (8 * 0.750000 mod 1)) = 0\\n\",\n      \"floor(10 * (9 * 0.750000 mod 1)) = 7\\n\",\n      \"floor(10 * (10 * 0.750000 mod 1)) = 5\\n\",\n      \"floor(10 * (11 * 0.750000 mod 1)) = 2\\n\",\n      \"floor(10 * (12 * 0.750000 mod 1)) = 0\\n\",\n      \"floor(10 * (13 * 0.750000 mod 1)) = 7\\n\",\n      \"floor(10 * (14 * 0.750000 mod 1)) = 5\\n\",\n      \"floor(10 * (15 * 0.750000 mod 1)) = 2\\n\",\n      \"floor(10 * (16 * 0.750000 mod 1)) = 0\\n\",\n      \"floor(10 * (17 * 0.750000 mod 1)) = 7\\n\",\n      \"floor(10 * (18 * 0.750000 mod 1)) = 5\\n\",\n      \"floor(10 * (19 * 0.750000 mod 1)) = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"hashtest_multiplication(3.0 / 4.0, 10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"\\n\",\n    \"All rational numbers can be formulated as $\\\\frac{a}{b}$ for some $a,b$. Note that $h(K) = m(k\\\\frac{a}{b} \\\\mod 1)$ only permits $b$ possible values for $h(k)$. For example if $b = 4$ then the only possible fractional parts are $.0, .25, .75$. In theory that's a bit of a pickle because all the IEEE floating point numbers are rational.\\n\",\n    \"\\n\",\n    \"$\\\\frac{\\\\sqrt{5} - 1}{2}$ is irrational and related to the golden ratio. Chosing this value for $A$ is a special form of hashing known as fibonacci hashing. This has the property that when hashing consecutive keys, each subsequent key falls in between the two widest spaced hash values already computed.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 50,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"floor(10 * (0 * 0.618034 mod 1)) = 0\\n\",\n      \"floor(10 * (1 * 0.618034 mod 1)) = 6\\n\",\n      \"floor(10 * (2 * 0.618034 mod 1)) = 2\\n\",\n      \"floor(10 * (3 * 0.618034 mod 1)) = 8\\n\",\n      \"floor(10 * (4 * 0.618034 mod 1)) = 4\\n\",\n      \"floor(10 * (5 * 0.618034 mod 1)) = 0\\n\",\n      \"floor(10 * (6 * 0.618034 mod 1)) = 7\\n\",\n      \"floor(10 * (7 * 0.618034 mod 1)) = 3\\n\",\n      \"floor(10 * (8 * 0.618034 mod 1)) = 9\\n\",\n      \"floor(10 * (9 * 0.618034 mod 1)) = 5\\n\",\n      \"floor(10 * (10 * 0.618034 mod 1)) = 1\\n\",\n      \"floor(10 * (11 * 0.618034 mod 1)) = 7\\n\",\n      \"floor(10 * (12 * 0.618034 mod 1)) = 4\\n\",\n      \"floor(10 * (13 * 0.618034 mod 1)) = 0\\n\",\n      \"floor(10 * (14 * 0.618034 mod 1)) = 6\\n\",\n      \"floor(10 * (15 * 0.618034 mod 1)) = 2\\n\",\n      \"floor(10 * (16 * 0.618034 mod 1)) = 8\\n\",\n      \"floor(10 * (17 * 0.618034 mod 1)) = 5\\n\",\n      \"floor(10 * (18 * 0.618034 mod 1)) = 1\\n\",\n      \"floor(10 * (19 * 0.618034 mod 1)) = 7\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"golden_ratio = (math.sqrt(5) - 1.0) / 2.0\\n\",\n    \"hashtest_multiplication(golden_ratio, 10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## How Python implements their hashing?\\n\",\n    \"\\n\",\n    \"Which idea does Python employ? Surely not division method. Multiplication method? Well, we managed to show it's drawbacks. Some clever cryptographic algorithm?\\n\",\n    \"\\n\",\n    \"...\\n\",\n    \"\\n\",\n    \"... It uses division method. Which prime number are they using?\\n\",\n    \"\\n\",\n    \"...\\n\",\n    \"\\n\",\n    \"... They are using powers of two. Ba dum tsh.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def test_dict(base):\\n\",\n    \"    d = {}\\n\",\n    \"    for i in range(1000000):\\n\",\n    \"        d[base*i] = True\\n\",\n    \"    print(len(d))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"1000000\\n\",\n      \"         20 function calls in 0.257 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.240    0.240    0.240    0.240 <ipython-input-27-5f4d266ba1d0>:1(test_dict)\\n\",\n      \"        1    0.017    0.017    0.257    0.257 <string>:1(<module>)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 iostream.py:102(_check_mp_mode)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 iostream.py:207(write)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 iostream.py:93(_is_master_process)\\n\",\n      \"        1    0.000    0.000    0.257    0.257 {built-in method exec}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {built-in method getpid}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {built-in method isinstance}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {built-in method len}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {built-in method print}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {built-in method time}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {method 'write' of '_io.StringIO' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"test_dict(2*32-1)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"1000000\\n\",\n      \"         20 function calls in 0.930 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.879    0.879    0.879    0.879 <ipython-input-27-5f4d266ba1d0>:1(test_dict)\\n\",\n      \"        1    0.051    0.051    0.930    0.930 <string>:1(<module>)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 iostream.py:102(_check_mp_mode)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 iostream.py:207(write)\\n\",\n      \"        2    0.000    0.000    0.000    0.000 iostream.py:93(_is_master_process)\\n\",\n      \"        1    0.000    0.000    0.930    0.930 {built-in method exec}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {built-in method getpid}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {built-in method isinstance}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {built-in method len}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {built-in method print}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {built-in method time}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"        2    0.000    0.000    0.000    0.000 {method 'write' of '_io.StringIO' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cProfile.run(\\\"test_dict(2**32)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Yeah, again we managed to exploit the knowledge of Python, to achieve sigificant runtime discrepancy. It is not exactly the differenc between $O(n)$ and $O(n^2)$ as one might expect, because Python hash quite clever mechanisms in place to recover from this siliness. More details during next lecture and here:\\n\",\n    \"http://stackoverflow.com/questions/9010222/how-can-python-dict-have-multiple-keys-with-same-hash\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Collisions\\n\",\n    \"As we mentioned, we do not want our hash functions to have a lot collisions. But collisions are unavoidable. Think of the \\\\textbf{Pigeon-hole principle}. Usually the size of universe $U$ is much larger than our table size $m$. What do we do if we find that two keys hash to the same value? Two ways which we learn in this class are \\\\textbf{chaining} and \\\\textbf{open addressing}.\\n\",\n    \"\\n\",\n    \"### Chaining\\n\",\n    \"Instead of just storing the elements in the slots in the table, let every slot be a linked list which contains all the elements which are in the table and map to that slot. Our operations now become:\\n\",\n    \"\\n\",\n    \"- `Insert` $(k,v)$: hash $k$ to an index $i$ in the table; add $k$ along with $v$ to the linked list at that location.\\n\",\n    \"- `Search` $(k)$: search for $k$ in the linked list by iterating through all the list.\\n\",\n    \"- `Delete` $(k)$: search for $k$ and then remove it from the list.\\n\",\n    \"\\n\",\n    \"These operations no longer take $O(1)$ time. Lookup on the linked lists takes $O(l)$ time where $l$ is the size of the linked list. We define $\\\\alpha = \\\\frac{n}{m}$ as the **load factor**. If we assume simple uniform hashing, then each element has equal probability to go into any slot. So after $n$ independent elements have been inserted we have and expected length of $\\\\frac{n}{m} = \\\\alpha$ for each chain by linearity of expectation. So the run time of all the above operations is time to hash + time to do these operations which is $O(1 + \\\\alpha)$.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"**Note:** It is possible to have expected $O(1 + \\\\alpha)$ runtime for these operations on any given input (i.e. input chosen to make our algorithm perform poorly). This requires more sophisticated hash functions (See \\\"Universal Hashing\\\" in CLRS 11.3.3)\\n\",\n    \"\\n\",\n    \"If we assume that $m = O(n)$, then $\\\\alpha = O(1)$ and we get constant time operations. But what if we want to insert more elements into the hash table and we don't know the number of elements to be inserted before hand? Stay tuned...\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 72,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LLNode(object):\\n\",\n    \"    def __init__(self, key, value, next_node):\\n\",\n    \"        self.key, self.value, self.next_node = \\\\\\n\",\n    \"                key, value, next_node\\n\",\n    \"            \\n\",\n    \"class LinkedList(object):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        \\\"\\\"\\\"Key-value storage over Linked List\\n\",\n    \"        \\n\",\n    \"        unique values per key\\\"\\\"\\\"\\n\",\n    \"        self.root = None\\n\",\n    \"        \\n\",\n    \"    def find(self, key):\\n\",\n    \"        \\\"\\\"\\\"Returns node given key\\\"\\\"\\\"\\n\",\n    \"        # find a node with a given key,\\n\",\n    \"        # by following links: O(n)\\n\",\n    \"        node = self.root\\n\",\n    \"        while node is not None:\\n\",\n    \"            if node.key == key:\\n\",\n    \"                return node\\n\",\n    \"            node = node.next_node\\n\",\n    \"        \\n\",\n    \"    def __getitem__(self, key):\\n\",\n    \"        \\\"\\\"\\\"Returns value for a given key\\\"\\\"\\\"\\n\",\n    \"        node = self.find(key)\\n\",\n    \"        if node is not None:\\n\",\n    \"            return node.value\\n\",\n    \"        else:\\n\",\n    \"            return None\\n\",\n    \"            \\n\",\n    \"    def __setitem__(self, key, value):\\n\",\n    \"        \\\"\\\"\\\"Sets key given value\\\"\\\"\\\"\\n\",\n    \"        node = self.find(key)\\n\",\n    \"        if node is not None:\\n\",\n    \"            # modify existing node\\n\",\n    \"            node.value = value\\n\",\n    \"        else:\\n\",\n    \"            # append front\\n\",\n    \"            self.root = LLNode(key, value, self.root)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 73,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"five None\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"ll = LinkedList()\\n\",\n    \"ll[5] = \\\"fiveo\\\"\\n\",\n    \"ll[4] = \\\"four\\\"\\n\",\n    \"ll[5] = \\\"five\\\"\\n\",\n    \"print(ll[5], ll[6])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 65,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def test_datastructure(ds, size=3000):\\n\",\n    \"    for i in range(size):\\n\",\n    \"        ds[i] = str(i)\\n\",\n    \"    for i in range(size):\\n\",\n    \"        temp = ds[i]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 81,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         15004 function calls in 1.328 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.007    0.007    1.328    1.328 <ipython-input-65-22a1ad701f4a>:1(test_datastructure)\\n\",\n      \"     6000    1.311    0.000    1.311    0.000 <ipython-input-72-629b29942276>:12(find)\\n\",\n      \"     3000    0.003    0.000    0.003    0.000 <ipython-input-72-629b29942276>:2(__init__)\\n\",\n      \"     3000    0.001    0.000    0.633    0.000 <ipython-input-72-629b29942276>:22(__getitem__)\\n\",\n      \"     3000    0.006    0.000    0.688    0.000 <ipython-input-72-629b29942276>:30(__setitem__)\\n\",\n      \"        1    0.000    0.000    1.328    1.328 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    1.328    1.328 {built-in method exec}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"ll = LinkedList()\\n\",\n    \"\\n\",\n    \"cProfile.run(\\\"test_datastructure(ll)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 77,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class HashTable(object):\\n\",\n    \"    def __init__(self, num_slots):\\n\",\n    \"        \\\"\\\"\\\"Initializes chained hash table with num_slots slots\\\"\\\"\\\"\\n\",\n    \"        self.num_slots = num_slots\\n\",\n    \"        self.table = [ LinkedList() for _ in range(self.num_slots)]\\n\",\n    \"        self.golden = (math.sqrt(5) - 1.0) / 2.0\\n\",\n    \"        \\n\",\n    \"    def multiplication_address(self, key):\\n\",\n    \"        \\\"\\\"\\\"Multiplication adressing described above\\\"\\\"\\\"\\n\",\n    \"        # hash(k) maps any Python object that implements it\\n\",\n    \"        # to a 64-bit integer. It is not necessarily in the \\n\",\n    \"        # range of our hashtable.\\n\",\n    \"        fraction = (hash(key) * self.golden) % 1.0 \\n\",\n    \"        return math.floor(self.num_slots * fraction)\\n\",\n    \"        \\n\",\n    \"    def __getitem__(self, key):\\n\",\n    \"        relevant_list = self.table[self.multiplication_address(key)]\\n\",\n    \"        return relevant_list[key]\\n\",\n    \"\\n\",\n    \"    def __setitem__(self, key, value):\\n\",\n    \"        relevant_list = self.table[self.multiplication_address(key)]\\n\",\n    \"        relevant_list[key] = value\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 78,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"five None\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"ht = HashTable(2)\\n\",\n    \"ht[5] = \\\"fiveo\\\"\\n\",\n    \"ht[4] = \\\"four\\\"\\n\",\n    \"ht[5] = \\\"five\\\"\\n\",\n    \"print(ht[5], ht[6])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 79,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         39004 function calls in 0.066 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.011    0.011    0.066    0.066 <ipython-input-65-22a1ad701f4a>:1(test_datastructure)\\n\",\n      \"     6000    0.009    0.000    0.009    0.000 <ipython-input-72-629b29942276>:12(find)\\n\",\n      \"     3000    0.004    0.000    0.004    0.000 <ipython-input-72-629b29942276>:2(__init__)\\n\",\n      \"     3000    0.003    0.000    0.007    0.000 <ipython-input-72-629b29942276>:22(__getitem__)\\n\",\n      \"     3000    0.009    0.000    0.018    0.000 <ipython-input-72-629b29942276>:30(__setitem__)\\n\",\n      \"     3000    0.005    0.000    0.019    0.000 <ipython-input-77-fd11d219214a>:16(__getitem__)\\n\",\n      \"     3000    0.008    0.000    0.037    0.000 <ipython-input-77-fd11d219214a>:20(__setitem__)\\n\",\n      \"     6000    0.012    0.000    0.017    0.000 <ipython-input-77-fd11d219214a>:8(multiplication_address)\\n\",\n      \"        1    0.000    0.000    0.066    0.066 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.066    0.066 {built-in method exec}\\n\",\n      \"     6000    0.003    0.000    0.003    0.000 {built-in method floor}\\n\",\n      \"     6000    0.001    0.000    0.001    0.000 {built-in method hash}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"ht = HashTable(500)\\n\",\n    \"\\n\",\n    \"cProfile.run(\\\"test_datastructure(ht)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Hash table with one slot (just like linked list + overhead)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 80,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         39004 function calls in 1.426 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.007    0.007    1.426    1.426 <ipython-input-65-22a1ad701f4a>:1(test_datastructure)\\n\",\n      \"     6000    1.375    0.000    1.375    0.000 <ipython-input-72-629b29942276>:12(find)\\n\",\n      \"     3000    0.015    0.000    0.015    0.000 <ipython-input-72-629b29942276>:2(__init__)\\n\",\n      \"     3000    0.002    0.000    0.710    0.000 <ipython-input-72-629b29942276>:22(__getitem__)\\n\",\n      \"     3000    0.006    0.000    0.688    0.000 <ipython-input-72-629b29942276>:30(__setitem__)\\n\",\n      \"     3000    0.004    0.000    0.719    0.000 <ipython-input-77-fd11d219214a>:16(__getitem__)\\n\",\n      \"     3000    0.005    0.000    0.699    0.000 <ipython-input-77-fd11d219214a>:20(__setitem__)\\n\",\n      \"     6000    0.008    0.000    0.012    0.000 <ipython-input-77-fd11d219214a>:8(multiplication_address)\\n\",\n      \"        1    0.000    0.000    1.426    1.426 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    1.426    1.426 {built-in method exec}\\n\",\n      \"     6000    0.002    0.000    0.002    0.000 {built-in method floor}\\n\",\n      \"     6000    0.001    0.000    0.001    0.000 {built-in method hash}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"ht = HashTable(1)\\n\",\n    \"\\n\",\n    \"cProfile.run(\\\"test_datastructure(ht)\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Super efficient Python hashtable\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 83,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"         4 function calls in 0.004 seconds\\n\",\n      \"\\n\",\n      \"   Ordered by: standard name\\n\",\n      \"\\n\",\n      \"   ncalls  tottime  percall  cumtime  percall filename:lineno(function)\\n\",\n      \"        1    0.003    0.003    0.003    0.003 <ipython-input-65-22a1ad701f4a>:1(test_datastructure)\\n\",\n      \"        1    0.000    0.000    0.004    0.004 <string>:1(<module>)\\n\",\n      \"        1    0.000    0.000    0.004    0.004 {built-in method exec}\\n\",\n      \"        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}\\n\",\n      \"\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Implemented in C...\\n\",\n    \"cProfile.run(\\\"test_datastructure({})\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## A fun annecdote from Professor Indyk\\n\",\n    \"\\n\",\n    \"As a student in 1999, Professor Indyk was trying to large set of webpages (i.e. group pages with similar content). He hashed all the words in the sites to reduce space usage. There were two issues.\\n\",\n    \"\\n\",\n    \"- His algorithm clustered one of his advisor's home page with some rather shady websites.\\n\",\n    \"- His algorithm was provably correct, with probabily of failure less than $10^{-6}$\\n\",\n    \"\\n\",\n    \"The implementation was for a word $x$ compute $h(x) = (ax \\\\mod P) \\\\mod 2^{8}$, $P = 2^{64}-59$, randomly chosen $a$. Additionally, the only used words divisible by $8$ for speed purposes. It turns out that the language they were using computed $ax$ as $ax \\\\mod 2^{64}$ because of the word size. This means the $\\\\mod P$ operation essentially did nothing. So $x | 8 \\\\implies ax | 8 \\\\implies ax \\\\mod 2^8 | 8$. All $h(x)$ had the 3 lowest order bits as zero! The total range for $h(x)$ was $2^{5}$ instead of $2^{8}$ causing word colisions.\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Practice\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Duplicate Detection\\n\",\n    \"\\n\",\n    \"Given an array $A$ of $n$ integers and an integer $k$, detect if there is an entry $A[i]$ that is equal to one of the $k$ previous entries $A[i-1] \\\\ldots A[i-k]$.\\n\",\n    \"Your algorithm should run in time $O(n)$.\\n\",\n    \"You can assume you have access to a hash function which satisfies the simple uniform hashing assumption (SUHA).\\n\",\n    \"\\n\",\n    \"**Example:** Given an array `A=[1,3,5,7,6,5,2]` and $k=4$, the algorithm should output YES since `A[3]=A[6]=5`.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Point Lookup\\n\",\n    \"Design a data structure to support the following operations on points in a plane.\\n\",\n    \"You can assume you have access to a hash function which satisfies the simple uniform hashing assumption (SUHA).\\n\",\n    \"Additionally, you can assume you know $n$, an upper bound on the total number of elements to ever be inserted into the structure.\\n\",\n    \"Runtimes can be worst-case or expected time.\\n\",\n    \"Your data structure should use $O(n)$ space.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"- **Query($x$)** Of all the points with $x$-coordinate equal to $x$, return the one with the lowest $y$ coordinate. This should run in $O(1)$ time.\\n\",\n    \"\\n\",\n    \"- **Insert($x, y$)** Insert the point $(x, y)$ into the structure. This should run in $O(\\\\log{n})$ time.\\n\",\n    \"\\n\",\n    \"- **Delete($x, y$)** Remove the point $(x, y)$ from the structure. This should run in $O(\\\\log{n})$ time.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.4.1\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "lecture9/Hashing.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Rabin-Karp method\\n\",\n    \"\\n\",\n    \"If you think hard enough, there's nothing that diferrentiates piecs of text from numbers. You can think of letters as digits and base of the numbers as sufficently big to accomodate for all the digits. For example take the following text\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"babacb\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"it can be though of as a number base 26 (for all the english letters):\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"(1,0,1,0,2,1)_{26}\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"We can transform this number to base 10 using the following equation.\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"1*26^5 + 0 * 26^4 + 1*26^3 + 0*26^2 + 2*26^1 + 1*26^0 = 11899005\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"From the formulation above the following property should be clear.\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"abba = abb * 26 + b\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"in general we can write $concat(word, letter) = base * word + letter$ (1).\\n\",\n    \"\\n\",\n    \"There's also a small technicality. When we compare numbers then $0001$ and $001$ and $1$ are equivalent. This means that we cannot map any letter to 0 if we want to be able to successfuly compare the numbers. \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Observation (1) allows us to quickly compute hashes for all the prefixes of a given word. Just like in class we are going to use modular arithmetic for our computations.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"'A' 65\\n\",\n      \"'a' 97\\n\",\n      \"'b' 98\\n\",\n      \"'c' 99\\n\",\n      \"' ' 32\\n\",\n      \"'c' - 'a' + 1 = 3\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# we need to map letters to numbers. Python function ord does the job\\n\",\n    \"print(repr('A'), ord('A'))\\n\",\n    \"print(repr('a'), ord('a'))\\n\",\n    \"print(repr('b'), ord('b'))\\n\",\n    \"print(repr('c'), ord('c'))\\n\",\n    \"print(repr(' '), ord(' '))\\n\",\n    \"\\n\",\n    \"print('%s - %s + 1 = %d' % (repr('c'), repr('a'), ord('c') - ord('a') + 1))\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"BIG_FAT_PRIME = 2**32 - 1\\n\",\n    \"ENGLISH_BASE = 30 # in theory 27 is sufficient but better safe than sorry!\\n\",\n    \"\\n\",\n    \"def compute_hashes(text, base=ENGLISH_BASE, modulo = BIG_FAT_PRIME):\\n\",\n    \"    # \\n\",\n    \"    h = [None for _ in range(len(text) + 1)]\\n\",\n    \"    h[0] = 0 # hash of empty word is 0\\n\",\n    \"    for i in range(len(text)):\\n\",\n    \"        # we only deal with english letters so we subtract 'a'\\n\",\n    \"        # to normalize range. We add 0 to avoid creating zero digit.\\n\",\n    \"        letter_as_number = (ord(text[i]) - ord('a') + 1)\\n\",\n    \"        h[i + 1] = h[i] * base + letter_as_number\\n\",\n    \"        h[i + 1] %= modulo\\n\",\n    \"        # at the end of the iteration h[i+1] is the hash\\n\",\n    \"        # of prefix of text of lenght (i+1) which in\\n\",\n    \"        # Python is text[:(i+1)]\\n\",\n    \"    return h\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"PROTIP: If you happen to ever implemented this is lower level programming language like C or C++, be ware of integer overflows.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0, 2, 61, 1832, 54961, 1648833, 49464992]\"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"compute_hashes(\\\"babacb\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0, 2, 61, 1832, 54964, 1648924, 49467724]\"\n      ]\n     },\n     \"execution_count\": 19,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"compute_hashes(\\\"babddd\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0,\\n\",\n       \" 2,\\n\",\n       \" 61,\\n\",\n       \" 1832,\\n\",\n       \" 54964,\\n\",\n       \" 1648924,\\n\",\n       \" 49467721,\\n\",\n       \" 1484031649,\\n\",\n       \" 1571276524,\\n\",\n       \" 4188622771,\\n\",\n       \" 1104631594,\\n\",\n       \" 3074176759,\\n\",\n       \" 2030989594,\\n\",\n       \" 800145691,\\n\",\n       \" 2529534259]\"\n      ]\n     },\n     \"execution_count\": 20,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# for longer strings modulo matters\\n\",\n    \"compute_hashes(\\\"babddasdasdsad\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## hashes of substrings\\n\",\n    \"\\n\",\n    \"Now here's a crutial observation. Let's take polynomial representation of string  $babacb$ (where $X$ is the base)\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"b*X^5 + a * X^4 + b*X^3 + a*X^2 + c*X^1 + b*X^0 \\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"Say we want to compute hash of $ac$ which is conveniently appears on 4-th index the string we originally hashed. Moreover we have hashes of all the prefixes - it seems like we are in good shape:\\n\",\n    \"\\n\",\n    \"\\\\begin{align}\\n\",\n    \"\\\\text{we have }\\\\ \\\\ \\\\ & hash(babac) &=\\\\ & b*X^4 + a * X^3 + b*X^2 &+& a*X^1 + c*X^0 \\\\\\\\\\n\",\n    \"\\\\text{we have }\\\\ \\\\ \\\\  & hash(bab)   &=\\\\ & b*X^2 + a * X^1 + b*X^0&&\\\\\\\\\\n\",\n    \"\\\\text{we WANT }\\\\ \\\\ \\\\  & hash(ac)    &=\\\\ &                         && a*X^1 + c*X^0\\\\\\\\\\n\",\n    \"\\\\end{align}\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"From above we can clearly see that:\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"hash(ac) = hash(babac) - X^2 * hash(bab)\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"We can generalize this to arbitrary substring of our hashed string. Assume we hashed string $s_0, s_1, ..., s_{n-1}$ such that $h_0 = hash(\\\\emptyset)$, $h_1 = hash(s_0)$, $h_2 = hash(s_0, s_1)$ etc. \\n\",\n    \"Then we can compute $hash(s_i, ..., s_j)$ using the following formula:\\n\",\n    \"\\n\",\n    \"$$\\n\",\n    \"hash(s_i, ..., s_{j-1}) = h_j - h_i * X ^{j - i}\\n\",\n    \"$$\\n\",\n    \"\\n\",\n    \"This looks very close to $O(1)$ complexity hash computation if not for $X ^{j - i}$. But since there are at most $n$ different powers of $X$ that we are interested in, we can precompute them in $O(n)$ time.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def compute_powers(n, base=ENGLISH_BASE, modulo=BIG_FAT_PRIME):\\n\",\n    \"    powers = [None for _ in range(n + 1)]\\n\",\n    \"    powers[0] = 1\\n\",\n    \"    for i in range(n):\\n\",\n    \"        powers[i+1] = (powers[i] * base) % modulo\\n\",\n    \"    return powers\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1,\\n\",\n       \" 30,\\n\",\n       \" 900,\\n\",\n       \" 27000,\\n\",\n       \" 810000,\\n\",\n       \" 24300000,\\n\",\n       \" 729000000,\\n\",\n       \" 395163525,\\n\",\n       \" 3264971160,\\n\",\n       \" 3459854310,\\n\",\n       \" 716414220]\"\n      ]\n     },\n     \"execution_count\": 38,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"compute_powers(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now we can put all those observations together into efficient detastructure that allows us to compute hashes of substrings in $O(1)$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 77,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Hasher(object):\\n\",\n    \"    def __init__(self, word):\\n\",\n    \"        self.h = compute_hashes(word)\\n\",\n    \"        self.powers = compute_powers(len(word))\\n\",\n    \"        \\n\",\n    \"    def substring_hash(self, i, j):\\n\",\n    \"        result = self.h[j] - self.h[i] * self.powers[j-i]\\n\",\n    \"        return result % BIG_FAT_PRIME\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 78,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"TEXT = \\\"abcxabcx\\\"\\n\",\n    \"h = Hasher(TEXT)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 79,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ab]cxabcx 32\\n\",\n      \"abcx[ab]cx 32\\n\",\n      \"abc[xa]bcx 721\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"def highlight(word, i, j):\\n\",\n    \"    return word[:i] + \\\"[\\\" + word[i:j] + \\\"]\\\" + word[j:]\\n\",\n    \"\\n\",\n    \"print(highlight(TEXT, 0, 2), h.substring_hash(0, 2))\\n\",\n    \"print(highlight(TEXT, 4, 6), h.substring_hash(4, 6))\\n\",\n    \"print(highlight(TEXT, 3, 5), h.substring_hash(3, 5))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Hasher complexity analysis.\\n\",\n    \"\\n\",\n    \"Preprocessing (`__init__`):\\n\",\n    \"- `compute_hashes` is $O(n)$\\n\",\n    \"- 'compute_powers` is $O(n)$\\n\",\n    \"Therefore precomputing is $O(n)$.\\n\",\n    \"\\n\",\n    \"Queries (`substring_hash`) is of complexity $O(1)$ - it is just a simple formula.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Notice that this technique is very powerful. More powerful than we need for pattern matching. It should not be a surprise that we can easily use it to solve pattern matching\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 100,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hasher for text\\n\",\n    \"text_h = Hasher(\\\"to be or not to be\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 101,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"65\"\n      ]\n     },\n     \"execution_count\": 101,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# hash of the pattern\\n\",\n    \"compute_hashes(\\\"be\\\")[-1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 102,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"65\"\n      ]\n     },\n     \"execution_count\": 102,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# hash of the occurence of \\\"be\\\" in original text. \\n\",\n    \"text_h.substring_hash(3, 5)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 105,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def compute_matches(text, pattern):\\n\",\n    \"    # hash of patter\\n\",\n    \"    pattern_hash = compute_hashes(pattern)[-1]\\n\",\n    \"    # hasher for text\\n\",\n    \"    text_h = Hasher(text)\\n\",\n    \"    res = []\\n\",\n    \"    for i in range(len(text) - len(pattern) + 1):\\n\",\n    \"        # i is potential match start index\\n\",\n    \"        # compare hash in text with hash of pattern\\n\",\n    \"        if text_h.substring_hash(i, i + len(pattern)) == pattern_hash:\\n\",\n    \"            # if matching append to result list.\\n\",\n    \"            res.append(i)\\n\",\n    \"    return res\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 106,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[3, 16]\"\n      ]\n     },\n     \"execution_count\": 106,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"compute_matches(\\\"to be or not to be\\\", \\\"be\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Rabin-Karp complexity analysis\\n\",\n    \"\\n\",\n    \"Assume that pattern is of length $n$ and text of length $m$\\n\",\n    \"\\n\",\n    \"- pattern hash: $O(n)$\\n\",\n    \"- text preprocessing $O(m)$.\\n\",\n    \"- $n - m$ iterations of main loop with $O(1)$ hash computation in each loop\\n\",\n    \"\\n\",\n    \"total: $O(n+m)$\\n\",\n    \"\\n\",\n    \"Catch? Relies on luck.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.4.1\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}\n"
  }
]